কোনও ইউআরএল থেকে .deb ইনস্টল করা কি সম্ভব?


74

শেল ব্যবহার করে কোনও ইউআরএল থেকে সরাসরি কোনও ডেবি প্যাকেজ ইনস্টল করার কোনও উপায় আছে কি ? কিছুটা এইরকম

dpkg -i http://domain.com/path/to/package.deb

(আমি জানি আমি উইজেট ব্যবহার করতে পারি এবং তারপরে ডিপি কেজি, আমি ভাবছি যে এটি ইতিমধ্যে কিছু আছে কিনা)

উত্তর:


48

সম্পাদনা: আপনি কীভাবে জেতে পারছেন তা জানার বিষয়ে আমি আপনার পূর্ববর্তী বিবৃতিটি দেখতে পাইনি তাই এটি কিছুটা বিশ্রীজনক ... আমি এটি যে কারও কাছে জানতে চাইলে এটির জন্য এখানে রেখে দেব। অতিরিক্ত হিসাবে আমার উত্তরের পূর্ববর্তী সংস্করণটি কাজ করে না তবে এই সংস্করণটি (কিছুটা দীর্ঘ হওয়ার ব্যয়ে) কাজ করে:

TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'http://path.to/my.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"

শুরুতে আপনার কেবল URL পরিবর্তন করতে হবে। এটি ব্যাশ ফাংশন হিসাবে প্রবণতাযুক্ত বা লিখিত হতে পারে।

আমি বুঝতে পারি এর চারপাশে প্রযুক্তিগত এবং সুরক্ষা সংক্রান্ত সমস্যা রয়েছে (আপনি স্বয়ংক্রিয় আপডেট পাবেন না, উত্সটি বিশ্বাসযোগ্য হতে পারে ইত্যাদি), তবে খাঁটি-ই-ডু-ইটের ভিত্তিতে এটি কার্যকর হতে পারে।


3
আমি dpkg --skip-same-version -i $FILEএটি ব্যবহার করার পরামর্শ দিচ্ছি যদি এটি স্ক্রিপ্ট থেকে চালানো হয়। এখানে আরও তথ্য - manpages.debian.org/unstable/dpkg/dpkg.1.en.html
ভাদিম কোতোভ

26

এটা সম্ভব নয় একটি অস্থায়ী ফাইল তৈরি করে। সাধারণত আপনি এটি পছন্দ করবে

### Does not work
wget --quiet --output-document=- http://example.com/path/to/package.deb | dpkg --install -

অথবা হতে পারে

### Does not work
dpkg --install <(wget --quiet --output-document=- http://example.com/path/to/package.deb)

কিন্তু dpkg ফাইল অ্যাক্সেস করতে এমএমএপ ব্যবহার করে তাই দুটোই কাজ করে না। এটি সম্পর্কে একটি বাগ রিপোর্ট রয়েছে: # 367297


4
এটি একটি দরকারী উত্তর, তবে এটি যেভাবে এটি কাঠামোগত করা হয়েছে তা দেখে মনে হয় উত্তরটি হ্যাঁ "হ্যাঁ, এটি করার দুটি উপায় এখানে রয়েছে"।
Bonh

1
সম্পাদনা করা হয়েছে। নোট করুন যে dpkg 1.17.7+ এর কিছু কমান্ডের জন্য স্ট্যান্ডিন আর্গুমেন্ট নেয় তবে ইনস্টলের জন্য নয়।
Tgr

হা হা! গুগলিংয়ের আগে আমি দুটোই চেষ্টা করেছিলাম। "আপনি পাগল নন" বলে মত উত্তর দেওয়ার জন্য এই উত্তরটি তৈরি করার জন্য ধন্যবাদ।
ব্রুনো ব্রোনোস্কি

9

দ্রুততম পদ্ধতিটি এরকম। শাটার ইনস্টল শুরু করতে ক্লিক করুন

নামটিতে ক্লিক করার জন্য ব্যবহৃত ইউআরএল:

http://packages.ubuntu.com/shutter

... এবং আইকনে ক্লিক করার জন্য:

http://apt.ubuntu.com/p/shutter

এবং হ্যাঁ .DEB ইনস্টলেশন শেষ করার জন্য আপনার উবুন্টু সফ্টওয়্যার কেন্দ্রের দরকার। অন্যথায় আপনাকে নটিলাস বা কমান্ড লাইন থেকে ইনস্টলেশনটি চালাতে হবে।

এর জন্য ব্যবহৃত সম্পূর্ণ পাঠ্য জিজ্ঞাসা উবুন্টুকে কেবল তাই আপনার এটি একটি অ্যাঙ্কারে পুনরায় ফর্ম্যাট করা প্রয়োজন:

[shutter](http://packages.ubuntu.com/shutter) [![Install shutter]
(https://i.stack.imgur.com/HjNGK.png)](http://apt.ubuntu.com/p/shutter)

অপ্টুরাল উইকি পৃষ্ঠায় আরও তথ্য পাওয়া যাবে :

  1. 1 প্যাকেজ:

    a href="apt:package"
    
  2. বেশ কয়েকটি প্যাকেজ বান্ডিলিং:

    a href="apt:package1,package2,package3"
    
  3. সংগ্রহস্থল সক্ষম করা:

    apturl apt:freevial?section=universe
    

সুতরাং যদি সফ্টওয়্যারটি কোনও ডিফল্ট সক্ষম সক্ষম সংগ্রহস্থলে না থাকে তবে আপনার এটিতে একটি 'বিভাগ =' যুক্ত করা উচিত। অন্যথায় আপনি এই পদ্ধতিটি ব্যবহার করতে পারবেন না এবং এটিকে ডাউনলোড এবং সেগুলি ইনস্টল করার জন্য ব্যবহারকারীর প্রয়োজন।


8
কেবলমাত্র একটি দ্রষ্টব্য: অ্যাপ্টরাল সফ্টওয়্যারগুলির জন্য কাজ করে না যা ব্যবহারকারীদের ভান্ডারে নেই
sergio91pt

1
দারুণ, ধন্যবাদ! যাইহোক আমি কমান্ড লাইন থেকে কাজ করবে এমন কিছু সন্ধান করছি, আমি প্রশ্নটি সম্পাদনা করেছি। দু: খজনকভাবে
এপট্রল

6

আপনি চেষ্টা করতে পারেন curl

বর্তমান ফোল্ডারে ফাইলটি ডাউনলোড করতে এবং স্থানীয় ফাইল থেকে ইনস্টল করতে:

curl -sLO https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i puppetlabs-release-precise.deb

অথবা /var/cache/apt/archives/সেখান থেকে ডাউনলোড এবং ইনস্টল করুন:

curl -sL -o/var/cache/apt/archives/puppetlabs-release-precise.deb https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i /var/cache/apt/archives/puppetlabs-release-precise.deb

1
কার্ল পেতে ত্রুটিটি ব্যবহার করে:--install needs at least one package archive file argument
ইটজাদাদ 27'15

dpkg-deb: error: ডিপিকিজি ব্যবহার করে ত্রুটি: / dev / fd / 63 'কোনও ডেবিয়ান ফর্ম্যাট আর্কাইভ নয়
Itazzad

শেষ কার্ল ব্যবহার করে:dpkg: error processing archive puppetlabs-release-precise.deb (--install):
ইটজাদাদ

1
Wkhtmltopdf ইনস্টল করার চেষ্টা করা হয়েছিল
itazzad

4
নিশ্চিত করা: সমস্ত ভেরিয়েন্টগুলি ডেপিয়ান জেসিতে dpkg 1.17.27 এর সাথে কাজ করে না
এনভেক

3

আমার আসলে একটি স্ক্রিপ্ট রয়েছে যা একই রকম কিছু করে:

কেবলমাত্র এই স্ক্রিপ্টটিকে অনুলিপি করুন এবং আটকান ~/bin(এই ফোল্ডারটি উপস্থিত না থাকলে এটি তৈরি করুন):

#!/bin/bash
# ~/bin/dpkg
COUNT=0
for i in $@; do
        echo $i | grep http 2>&1 > /dev/null
        if [ $? == 0 ]; then
                URL="$URL $i"
                continue
        fi
        PASSTODPKG="$PASSTODPKG $i"
done

#Remove beginning and trailing space
URL=$(echo $URL | sed -e 's/^ //g' -e 's/ $//g')

if [ ! -z $URL ]; then
        mkdir /tmp/debs
        cd /tmp/debs
        for i in $URL; do
                wget "$i"
        done
        dpkg $PASSTODPKG /tmp/debs/*.deb
else
        dpkg $PASSTODPKG
fi

তারপরে এটি শেষ লাইনে যুক্ত করুন ~/.bashrc

PATH="~/bin:$PATH"

স্ক্রিপ্টটি কেবল একটি মোড়কের জন্য dpkg~/.bashrcফাইলটির লাইনটি জানায় bashযে আপনি যখনই টাইপ করবেন তখন dpkgএটি ~/bin/dpkg(স্ক্রিপ্ট) পরিবর্তে চলবে /usr/bin/dpkg

dpkgকোনও URL না দেওয়া থাকলে স্ক্রিপ্টটি কেবল আর্গুমেন্টগুলি পাস করবে । স্ক্রিপ্টটি একাধিক ইউআরএল সমর্থন করে। এখানে কয়েকটি উদাহরণ যা কাজ করবে:

sudo dpkg -i http://www.example.com/file1.deb
sudo dpkg -i http://www.example.com/file1.deb http://www.example.com/file2.deb
sudo dpkg -i http://www.example.com/file1.deb existing.deb http://www.example.com/file2.deb
sudo dpkg -i existing.deb

স্ক্রিপ্টে কোনও সমস্যা আছে কিনা তা দয়া করে আমাকে জানান। আমি আমার উবুন্টু কম্পিউটারে নেই, তাই এটি আমার স্মৃতি থেকে লিখে রেখেছি।
অ্যান্ড্রু গোনারসন

1
কি স্মৃতি!
এনজোটিব

@ এঞ্জোটিব: হাহাহা! আমি যে পরিমাণ পুনরায় ইনস্টল করি তা দিয়ে আমার স্মৃতি আমার ব্যাকআপগুলির চেয়ে বেশি কার্যকর :) :)
অ্যান্ড্রু গোনারসন

2

lynxকল করতে পারেন dpkg(বা কোনও সফ্টওয়্যার সেন্টার, যদি কোনও ডিসপ্লে পাওয়া যায়) এবং আপনার জন্য ডাউনলোড প্যাকেজ ইনস্টল করার প্রস্তাব দিতে পারে। উদাহরণস্বরূপ, ব্যবহার করে:

lynx http://archive.ubuntu.com/ubuntu/pool/main/z/zsh/

এবং .debফাইলগুলির মধ্যে একটি ডাউনলোড করে নীচের প্রম্পটটি দেখানো হয়েছে:

Info for debian package '/tmp/user/1000/L11127-6774TMP.udeb':
 new debian package, version 2.0.
 size 2545218 bytes: control archive=5830 bytes.
     857 bytes,    21 lines      control              
   14682 bytes,   169 lines      md5sums              
     225 bytes,    20 lines   *  postinst             #!/bin/sh
 Package: zsh-doc
 Source: zsh
 Version: 5.1.1-1ubuntu1
 Architecture: all
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Installed-Size: 5291
 Depends: zsh-common (= 5.1.1-1ubuntu1)
 Section: doc
 Priority: optional
 Homepage: http://www.zsh.org/
 Description: zsh documentation - info/HTML format
  Zsh is a UNIX command interpreter (shell) usable as an
  interactive login shell and as a shell script command
  processor. Of the standard shells, zsh most closely resembles
  ksh but includes many enhancements. Zsh has command-line editing,
  built-in spelling correction, programmable command completion,
  shell functions (with autoloading), a history mechanism, and a
  host of other features.
  .
  This contains the documentation in GNU info and HTML formats.
 Original-Maintainer: Debian Zsh Maintainers <pkg-zsh-devel@lists.alioth.debian.org>

Do you wish to:
 - I)nstall the package now,
 - S)ave it to a file, or
 - Q)uit now
Your choice (I/S/Q)? I
Installation of Debian packages needs to be done as root.
Enter command used to become root (default=sudo): 

Installing package...
[sudo] password for bro3886: 
(Reading database ... 756955 files and directories currently installed.)
Preparing to unpack .../user/1000/L11127-6774TMP.udeb ...
Unpacking zsh-doc (5.1.1-1ubuntu1) over (5.0.5-4ubuntu1~ubuntu14.04.1) ...
dpkg: dependency problems prevent configuration of zsh-doc:
 zsh-doc depends on zsh-common (= 5.1.1-1ubuntu1); however:
  Version of zsh-common on system is 5.0.5-4ubuntu1~ubuntu14.04.1.

dpkg: error processing package zsh-doc (--install):
 dependency problems - leaving unconfigured
Processing triggers for doc-base (0.10.5) ...
Processing 1 changed doc-base file...
Processing triggers for install-info (5.2.0.dfsg.1-2) ...
Errors were encountered while processing:
 zsh-doc

Done.  Press <return> to continue: 

(সম্ভবত আমি ইন্টারনেট থেকে এলোমেলো প্যাকেজ ইনস্টল করার চেষ্টা করা উচিত নয়।)


1

আমি জানি যে এই প্রশ্নের উত্তর দেওয়া / পোস্ট হওয়ার পরে অনেক দিন হয়ে গেছে, তবে এখানে আমার নম্র অবদান :

#!/bin/bash
dir="/tmp/dpkg-get"
url="$1"
file="${url##*/}"

if [ "$EUID" -ne 0 ]
then
echo "Please run as root"
exit
fi

[ -d $dir ] || mkdir $dir
wget -q --show-progress -O "$dir/$file" $url && \
dpkg -i "$dir/$file"

dpkg-getএকক কমান্ড দিয়ে কীভাবে পাস্তবিন থেকে ইনস্টল করবেন :

sudo bash -c "wget http://pastebin.com/raw/GWu7qLwK -O- | tr -d '\r' > /usr/local/bin/dpkg-get && \
chmod a+x /usr/local/bin/dpkg-get"

এটি কীভাবে ব্যবহার করবেন (উদাহরণস্বরূপ পাওয়ারশেল 6 আলফা ইনস্টল করার জন্য):

sudo dpkg-get https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.10/powershell_6.0.0-alpha.10-1ubuntu1.16.04.1_amd64.deb

এবং সব শেষ.

আমি জানি এটি নিখুঁত নয়, তবে এটি সহজ এবং এটি কার্যকর।

আপনি কী ইনস্টল করেন এবং কোথা থেকে আপনি এটি ডাউনলোড করেন সে সম্পর্কে সতর্কতা অবলম্বন করুন।


0

এসও উত্তরের উপর ভিত্তি করে এই ওয়ান-লাইনার আমার জন্য উবুন্টু 15.04 এ আমার পরিবেশের জন্য ith৪-বিট উবুন্টু-র জন্য গিথুবের সর্বশেষতম পরমাণু প্রকাশের জন্য এবং এটি ইনস্টল করার জন্য কাজ করেছিল:

sudo dpkg -i $(curl -w "%{filename_effective}" -LO $(curl -s https://api.github.com/repos/atom/atom/releases | grep browser_download_url | grep '64[.]deb' | head -n 1 | cut -d '"' -f 4))

আপনি যদি কোনও টিএমপি ডায়ারে এটি করেন, আপনি যখনই আপনার টিএমপি ফোল্ডারটি খালি করবেন তখনই ডেব ফাইলটি পরিষ্কার হয়ে যাবে। অন্যথায় আপনার যদি ডিস্কের জায়গার প্রয়োজন হয় তবে আপনি ডিবে প্যাকেজটি ম্যানুয়ালি মুছতে পারেন।


0

আপনি /etc/bash.bashrcএটি অনুসরণ হিসাবে এটি যুক্ত করতে পারেন (এটি চেনের স্ক্রিপ্ট থেকে আপগ্রেড):

'dpkg-url'() {

COUNT=0

for package in "${urls[@]}"; do
    if [[ $package = *http* ]]; then 
    urls+=("$package")
    fi

    dpkg_url="$dpkg_url "$package""
done

# Remove beginning and trailing spaces #

url=$(echo "$url" | sed -e 's/^ //g' -e 's/ $//g')

if [[ ! -z "$url" ]]; then
    directory=$(mktemp -d);
        trap 'rm -rf "$directory"' EXIT

    cd "$directory" || exit
        for package in "$url"; do
            wget ""$package""
        done
    dpkg $dpkg_url "$directory"/*.deb
else
    dpkg $dpkg_url
fi
}

যদিও এটিকে কল করার সময় আমি এই ত্রুটিটি কেন পাই তা দেখতে পাচ্ছি না:

dpkg-url -i http://downloads.sourceforge.net/ldview/ldview-4.2-beta1.x64.deb
dpkg: error: need an action option

Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;

Options marked [*] produce a lot of output - pipe it through `less' or `more' !

0

আমি ভেবেছিলাম এই বিষয়ে আমি আমার নিজস্ব দুটি সেন্ট দেব। আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি URL থেকে একটি প্যাকেজ ইনস্টল করতে পারেন:

wget insert_url_here

এটি ডাউনলোড হয়ে গেলে, আপনাকে সুপার-ইউজার হিসাবে dpkg কমান্ডটি চালাতে হবে: sudo dpkg -i insert_file_name_here

তারপরে টার্মিনালে উপস্থাপিত নির্দেশাবলী অনুসরণ করুন।


1
হ্যাঁ অবশ্যই, প্রশ্নে বর্ণিত হিসাবে, প্রথম বন্ধনী :)
জোরিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.