Kaip atnaujinti vieną paketą? Kiek man apt-get
sako, apt-get upgrade
nepriima paketo/paketų sąrašo kaip parametro:
upgrade
atnaujinimas naudojamas naujausioms visų paketų versijoms įdiegti šiuo metu sistemoje įdiegtų paketų iš šaltinių, išvardytų
/etc/apt/sources.list
. Šiuo metu įdiegti paketai su naujomis versijos yra surandamos ir atnaujinamos; jokiu būdu neatsinaujina šiuo metu įdiegti paketai pašalinami arba paketai, kurie dar nėra įdiegtų paketų. Šiuo metu įdiegtų naujų versijų paketai, kurių negalima atnaujinti nekeičiant įdiegimo būsenos kito paketo, bus palikta dabartinė jų versija. Atnaujinimas pirmiausia turi būti atliktas, kad apt-get žinotų, jog naujos versijos paketai yra prieinami.
Jums tereikia atlikti apt-get install --only-upgrade <packagename>
. Taip bus atnaujintas tik tas vienintelis paketas ir tik tuo atveju, jei jis yra įdiegtas.
Jei norite įdiegti paketą, jei jo nėra, arba jį atnaujinti, jei yra, galite neįrašyti --only-upgrade
.
Galiu įvardyti du galimus būdus:
sudo apt-get install nameofpackage
Tai atnaujins paketą, net jei jis jau yra įdiegtas:
~$ sudo apt-get install emesene
Paketų sąrašų skaitymas... Atlikta
Kuriamas priklausomybių medis
Informacijos apie būseną skaitymas... Atlikta
Bus atnaujinti šie paketai:
emesene
1 atnaujintas, 0 naujai įdiegtas, 0 pašalinti ir 5 neatnaujinti.
Reikia gauti 1 486 kB archyvų.
Po šios operacijos bus atlaisvinta 696 kB disko vietos.
Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1 486 kB]
Synaptic Package Manager
: Dešiniuoju pelės klavišu spustelėkite→Pažymėti atnaujinimui:Įveskite paveikslėlio aprašymą]1
Pastaba: Kartais gali būti paprašyta papildomų paketų ar priklausomybių, tai normalu.
Komandinės eilutės sprendimas, kuris neįdiegia paketo, jei jo dar nėra:
dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>
Tai galima lengvai paversti scenarijumi, pvz:
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