Bagaimana cara memutakhirkan satu paket menggunakan apt-get?

Bagaimana cara memperbarui satu paket? Sejauh man apt-get mengatakan apt-get upgrade tidak mengambil paket/daftar paket sebagai parameter:

upgrade

upgrade digunakan untuk menginstal versi terbaru dari semua paket yang saat ini diinstal pada sistem dari sumber yang disebutkan dalam /etc/apt/sources.list. Paket yang saat ini diinstal dengan versi baru tersedia diambil dan ditingkatkan; dalam keadaan apa pun paket yang saat ini diinstal dihapus, atau paket yang belum diinstal diambil dan diinstal. Versi baru dari paket yang saat ini diinstal yang tidak dapat ditingkatkan tanpa mengubah status instalasi paket lain akan ditinggalkan pada versi mereka saat ini. Pembaruan harus dilakukan terlebih dahulu sehingga apt-get tahu bahwa versi paket baru tersedia.

Anda hanya perlu melakukan apt-get install --only-upgrade <packagename>. Ini hanya akan meningkatkan paket tunggal itu, dan hanya jika diinstal.

Jika Anda ingin menginstal paket jika tidak ada, atau meng-upgrade jika tidak, Anda dapat meninggalkan --only-upgrade.

Untuk memperbarui satu paket Menggunakan CLI:

sudo apt-get install --only-upgrade <packagename>

misalnya., sudo apt-get install --only-upgrade ack

Reading package lists... DoneBuilding dependency tree       Reading state information... DoneSkipping **ack**, it is not installed and only upgrades are requested.0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Ada dua kemungkinan cara yang dapat saya pikirkan:

  1. sudo apt-get install nameofpackage

    Ini akan meng-upgrade paket bahkan jika sudah diinstal:

    ~$ sudo apt-get install emeseneReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following packages will be upgraded:  emesene1 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.Need to get 1,486 kB of archives.After this operation, 696 kB disk space will be freed.Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1,486 kB]
  2. MenggunakanSynaptic Package Manager: Klik kanan tanda untuk upgrade:

    Catatan: Kadang-kadang mungkin meminta paket tambahan atau dependensi, itu adalah normal.

Dalam pengalaman saya di Ubuntu 12.04 LTS, menggunakan perintah di bawah ini tidak akan meningkatkan paket jika menggunakan PPA terpisah -

sudo apt-get --only-upgrade install <packagename>

Demikian pula, saya tidak ingin menjalankan perintah upgrade, yang akan mengupgrade semua paket di server saya -

sudo apt-get dist-upgrade

Sebagai contoh, saya telah menginstal PHP 5.3 dan telah menambahkan PPA ondrej ke apt saya.sumber menggunakan -

sudo add-apt-repository ppa:ondrej/php5

Jika saya lari

sudo apt-get install php5

ini hanya akan menginstal ulang PHP 5.3.

Saya harus, pertama, menentukan nomor versi untuk ditingkatkan, menggunakan

sudo apt-cache policy php5

Ini akan mencantumkan semua nomor versi yang tersedia. Anda harus menemukan nomor versi yang ingin Anda tingkatkan, lalu salin seluruh string yang mereferensikannya. Misalnya, string untuk PHP 5.5 di Ubuntu adalah "5.5.16 + dfsg-1+deb.sury.org ~ tepat + 2".

Sekarang, Anda dapat menjalankan perintah apt-get install 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!

Di 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 solusi baris perintah yang tidak menginstal paket jika belum ada:

dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>

Ini dapat dengan mudah dibuat menjadi skrip, mis.:

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

Untuk memutakhirkan satu paket di Ubuntu 18.04 LTS:

sudo apt update && sudo apt install --only-upgrade <packagename>

Untuk meng-upgrade beberapa paket:

sudo apt update && sudo apt install --only-upgrade <package1> <package2> <package3>