Jawaban:
Sunting: Saya tidak melihat pernyataan Anda sebelumnya tentang mengetahui Anda bisa wget jadi ini agak canggung ... Saya akan meninggalkan ini di sini untuk siapa saja yang ingin tahu bagaimana melakukan ini. Selain itu versi sebelumnya dari jawaban saya tidak berfungsi tetapi versi ini (dengan mengorbankan yang agak lama) tidak:
TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'http://path.to/my.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"
Anda hanya perlu mengubah URL di awal. Ini bisa alias atau ditulis sebagai fungsi bash.
Saya menyadari ada masalah teknis dan keamanan di sekitar ini (Anda tidak mendapatkan pembaruan otomatis, dapatkah sumbernya dipercaya, dll), tetapi murni atas dasar dapat-lakukan-itu, ini mungkin berhasil.
Itu tidak mungkin tanpa membuat file sementara. Biasanya Anda akan melakukan ini seperti
### Does not work
wget --quiet --output-document=- http://example.com/path/to/package.deb | dpkg --install -
atau mungkin
### Does not work
dpkg --install <(wget --quiet --output-document=- http://example.com/path/to/package.deb)
tapi dpkg menggunakan mmap untuk mengakses file sehingga tidak berfungsi. Ada laporan bug tentang ini: # 367297
Metode tercepat adalah seperti ini. Klik untuk mulai menginstal rana .
URL yang digunakan untuk mengklik nama:
http://packages.ubuntu.com/shutter
... dan untuk klik pada ikon:
http://apt.ubuntu.com/p/shutter
Dan ya, Anda perlu Pusat Perangkat Lunak Ubuntu untuk menyelesaikan instalasi .DEB. Kalau tidak, Anda harus menjalankan instalasi dari Nautilus atau baris perintah.
Teks lengkap yang digunakan untuk ini adalah untuk Tanya Ubuntu saja sehingga Anda perlu memformat ulang ini menjadi jangkar:
[shutter](http://packages.ubuntu.com/shutter) [![Install shutter]
(https://i.stack.imgur.com/HjNGK.png)](http://apt.ubuntu.com/p/shutter)
Info lebih lanjut dapat ditemukan di halaman apturl wiki :
1 Paket:
a href="apt:package"
Bundling beberapa paket:
a href="apt:package1,package2,package3"
Mengaktifkan repositori:
apturl apt:freevial?section=universe
Jadi, jika perangkat lunak tidak dalam repositori yang diaktifkan default Anda harus menambahkan 'section =' ke dalamnya. Kalau tidak, Anda tidak dapat menggunakan metode ini dan membutuhkan pengguna untuk mengunduhnya dan menginstal sendiri.
Anda dapat mencobanya curl
.
Untuk mengunduh file ke folder saat ini dan menginstal dari file lokal:
curl -sLO https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i puppetlabs-release-precise.deb
atau unduh /var/cache/apt/archives/
dan instal dari sana:
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
--install needs at least one package archive file argument
dpkg-deb: error:
/ dev / fd / 63 'bukan arsip format debian`
dpkg: error processing archive puppetlabs-release-precise.deb (--install):
Saya sebenarnya memiliki skrip yang melakukan hal serupa:
Cukup salin dan tempel skrip ini ke ~/bin
(buat folder ini jika tidak ada):
#!/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
Kemudian tambahkan ini ke baris terakhir di ~/.bashrc
PATH="~/bin:$PATH"
Script hanya untuk pembungkus dpkg
. Baris dalam ~/.bashrc
file memberi tahu bash
bahwa setiap kali Anda mengetik dpkg
, itu akan berjalan ~/bin/dpkg
(skrip), bukan /usr/bin/dpkg
.
Script hanya akan meneruskan argumen dpkg
jika tidak ada URL yang diberikan. Skrip juga mendukung banyak URL. Berikut ini beberapa contoh yang bisa digunakan:
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
lynx
dapat menelepon dpkg
(atau Pusat Perangkat Lunak, jika tampilan tersedia) dan menawarkan untuk menginstal paket yang diunduh untuk Anda. Misalnya, menggunakan:
lynx http://archive.ubuntu.com/ubuntu/pool/main/z/zsh/
Dan mengunduh salah satu .deb
file, prompt berikut ditunjukkan:
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:
(Mungkin saya seharusnya tidak mencoba menginstal paket acak dari internet.)
Saya tahu bahwa sudah lama sejak pertanyaan ini dijawab / diposting, tetapi inilah kontribusi saya yang sederhana :
#!/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"
Cara menginstal dpkg-get
dari Pastebin dengan satu perintah:
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"
Cara menggunakannya (misalnya menginstal PowerShell 6 alpha):
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
Dan itu saja.
Saya tahu itu tidak sempurna, tetapi sederhana dan berhasil.
Ingatlah untuk berhati-hati dengan apa yang Anda instal dan dari mana Anda mengunduhnya.
One-liner ini berdasarkan pada jawaban SO bekerja untuk saya di Ubuntu 15.04 untuk mengidentifikasi rilis atom terbaru di github untuk lingkungan saya (64-bit Ubuntu) dan kemudian menginstalnya:
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))
Jika Anda melakukan ini dalam dir tmp, file deb akan dibersihkan setiap kali Anda mengosongkan folder tmp Anda. Kalau tidak, Anda dapat menghapus paket deb secara manual jika Anda membutuhkan ruang disk.
Anda dapat menambahkannya /etc/bash.bashrc
sebagai berikut (ini merupakan peningkatan dari skrip Chen):
'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
}
Meskipun saya tidak melihat mengapa saya mendapatkan kesalahan ini ketika memanggilnya sebagai berikut:
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' !
Hanya berpikir saya akan memberikan dua sen saya sendiri pada ini. Anda dapat menginstal paket dari URL menggunakan perintah berikut:
wget insert_url_here
Setelah diunduh, Anda perlu menjalankan perintah dpkg sebagai superuser:
sudo dpkg -i insert_file_name_here
Kemudian ikuti saja instruksi yang disajikan di terminal.
dpkg --skip-same-version -i $FILE
jika akan dijalankan dari skrip. Info lebih lanjut di sini - manpages.debian.org/unstable/dpkg/dpkg.1.en.html