Pertanyaan Bagaimana cara meng-upgrade satu paket menggunakan apt-get?


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

meningkatkan

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


714
2018-05-20 16:36


asal




Jawaban:


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

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


901
2018-05-20 16:41



@Raphink: Komentar Anda tentang peningkatan itu benar, tetapi pemasangan dianggap setara dengan mengupgrade satu paket; install is followed **by one** or more packages desired for installation or upgrading , Jika Anda memiliki jawaban yang lebih baik, Anda dapat menjawab pertanyaannya. Ini akan sangat bagus. - Binarylife
apt-get install --only-upgrade <packagename> tidak akan menginstal paket baru apa pun - taneli
Akankah install upgrade perintah juga dependensi dari paket tunggal jika diperlukan? - Pino
@Pino Itu akan, masuk akal untuk melakukannya. Bagaimana jika versi yang Anda tingkatkan bergantung pada versi yang lebih baru dari paket lain? Anda disemprot jika Anda tidak meningkatkan keduanya. Ini sebabnya installadalah perintah yang tepat untuk ini, bahkan jika itu tampak kontra-intuitif. - Matt Dodge
Apakah ini menghapus tanda "otomatis"? Terkadang ketika Anda menginstal pustaka, paket khusus ditandai sebagai diinstal secara manual. Saya tidak suka menjalankan 'instal' di perpustakaan karena alasan ini. - isaaclw


Untuk memperbarui satu paket menggunakan CLI:

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

misalnya., sudo apt-get install --only-upgrade 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.

116
2017-10-15 11:22



Saya mendapatkan kesalahan dengan perintah ini: E: Sense only is not understood, try true or false. - Michael
Bagi mereka yang mengalami kesalahan komentator sebelumnya, lihat jawaban saya di bawah ini. - golem
downvoted karena tidak menambah informasi baru dari jawaban sebelumnya - gokul_uf
Anda harus lulus --only-upgrade untuk install sub perintah, tidak langsung ke apt-get, maka Anda tidak perlu menambahkan true. - Ruslan


Ada dua kemungkinan cara yang dapat saya pikirkan:

  1. sudo apt-get install nameofpackage

    Ini akan meningkatkan paket meskipun sudah terpasang:

    ~$ sudo apt-get install emesene
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages will be upgraded:
      emesene
    1 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 → Tandai untuk upgrade:

    enter image description here

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


48
2018-05-20 16:39



Ya, seharusnya, dan sudo apt-get install whatever harus melakukan upgrade sendiri. - Binarylife
upgrade tidak mengambil argumen paket. - ℝaphink
Benar, terima kasih, itu meng-upgrade semua paket. - Binarylife


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>

Sejalan dengan itu, saya tidak ingin menjalankan perintah pemutakhiran, yang akan meningkatkan 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.sources saya menggunakan -

sudo add-apt-repository ppa:ondrej/php5

Jika saya jalankan

sudo apt-get install php5

itu hanya akan menginstal ulang PHP 5.3.

Saya harus, pertama, menentukan nomor versi untuk meng-upgrade ke, menggunakan

sudo apt-cache policy php5

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

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


22
2017-09-18 16:14





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 kasusku.


15
2018-04-13 18:21



Anda harus lulus --only-upgrade untuk install sub perintah, tidak langsung ke apt-get, maka Anda tidak perlu menambahkan true. - Ruslan


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, 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

9
2018-05-22 07:58