Bagaimana cara memperbarui satu paket? Sejauh man apt-get
kata apt-get upgrade
doesn't mengambil paket/daftar paket sebagai parameter:
upgrade
meng digunakan untuk menginstal versi terbaru dari semua paket saat ini diinstal pada sistem dari sumber-sumber yang disebutkan di
/etc/apt/sources.daftar
. Paket-paket yang terinstal saat ini dengan yang baru versi yang tersedia yang diambil dan ditingkatkan; dalam keadaan tidak saat ini diinstal paket dihapus, atau paket yang tidak sudah diinstal diambil dan diinstal. Versi baru dari saat ini diinstal paket yang tidak dapat ditingkatkan tanpa mengubah status menginstal paket lain akan ditinggalkan di versi mereka saat ini. Update harus dilakukan terlebih dahulu agar apt-get tahu bahwa versi baru dari paket yang tersedia.
Anda hanya perlu melakukan apt-get install --hanya-upgrade <packagename>
. Ini akan meng-upgrade hanya itu satu paket, dan hanya jika diinstal.
Jika anda ingin menginstal paket jika itu doesn't ada, atau meng-upgrade jika tidak, anda mungkin meninggalkan --hanya-upgrade
.
Dalam rangka untuk memperbarui satu paket menggunakan CLI:
sudo apt-get install --only-upgrade <packagename>
misalnya, sudo apt-get install --hanya-meng-ack
Reading package lists... Done
Building dependency tree
Reading state information... Done
Skipping **ack**, it is not installed and only upgrades are requested.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Ada dua cara yang mungkin dapat saya pikirkan:
sudo apt-get install nameofpackage
Ini akan meng-upgrade paket jika sudah diinstal:
~$ sudo apt-get install emesene Membaca daftar paket... Dilakukan Bangunan ketergantungan pohon Membaca informasi negara Dilakukan... Berikut paket-paket yang akan di-upgrade: emesene 1 ditingkatkan, 0 baru terinstal, 0 untuk menghapus dan 5 tidak ditingkatkan. Perlu untuk mendapatkan 1,486 kB arsip. Setelah operasi ini, 696 mb ruang disk yang akan dibebaskan. Mendapatkan:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/alam semesta emesene semua 2.11.4+dfsg-0ubuntu1 [1,486 kB]
Catatan: kadang-Kadang dapat meminta paket-paket tambahan atau dependensi, itu adalah normal.
Dalam pengalaman saya di Ubuntu 12.04 LTS, menggunakan perintah di bawah ini tidak akan meng-upgrade paket jika menggunakan terpisah PPA -
sudo apt-get --only-upgrade install <packagename>
Demikian pula, aku tidak ingin menjalankan perintah upgrade, yang akan meng-upgrade semua paket pada server saya -
sudo apt-get dist-upgrade
Sebagai contoh, saya memiliki PHP 5.3 dipasang dan telah menambahkan ondrej PPA untuk saya apt.sumber-menggunakan -
sudo add-apt-repository ppa:ondrej/php5
Jika saya menjalankan
sudo apt-get install php5
itu hanya akan menginstal PHP 5.3.
Aku harus, pertama, menentukan nomor versi untuk meng-upgrade ke, menggunakan
sudo apt-cache policy php5
Ini akan tersedia daftar semua nomor versi. Anda harus menemukan nomor versi anda ingin meng-upgrade, dan kemudian copy seluruh string yang referensi itu. Sebagai contoh, string untuk PHP 5.5 pada Ubuntu adalah "5.5.16+dfsg-1+deb.sury.org~tepat+2".
Sekarang, anda dapat menjalankan apt-get install perintah dengan nomor versi tertentu, dan voila!
sudo apt-get install php5=5.5.16+dfsg-1+deb.sury.org~precise+2
Saya hanya menambahkan ini karena saya tidak dapat menemukan informasi ini di tempat lain!
Pada Ubuntu 9.04 Jaunty,
apt-get --only-upgrade install <package>
hasil:
E: Sense only is not understood, try true or false.
Perintah
apt-get --only-upgrade true install <package>
bekerja dalam kasus saya.
Untuk baris perintah solusi yang doesn't menginstal paket jika itu doesn't sudah ada:
dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>
Hal ini dapat dengan mudah dibuat menjadi sebuah naskah, misalnya:
upgrade-package.sh:
#!/bin/bash
[[ -z $1 ]] && { echo "Usage: $(basename $0) package"; exit 1; }
if dpkg -s "$1" 2>/dev/null | grep -q Status.*installed; then
echo "Attempting to upgrade $1"
sudo apt-get install "$1"
else
echo "Package $1 is not installed"
fi