Hvordan oppdaterer jeg en enkelt pakke? Så langt man apt-get
sier apt-get upgrade
tar ikke en pakke / liste over pakker som parameter:
upgrade
upgrade brukes til å installere de nyeste versjonene av alle pakker som for øyeblikket er installert på systemet fra kildene oppført i
/etc/apt/sources.list
. Pakker som for øyeblikket er installert med nye tilgjengelige versjoner hentes og oppgraderes; ikke under noen omstendigheter er for øyeblikket installerte pakker fjernet, eller pakker som ikke allerede er installert, hentes og installeres. Nye versjoner av allerede installerte pakker som ikke kan oppgraderes uten å endre installasjonsstatusen av en annen pakke vil bli stående i sin nåværende versjon. En oppdatering må utføres først slik at apt-get vet at nye versjoner av pakker er tilgjengelige.
Du trenger bare å gjøre apt-get install --only-upgrade <packagename>
. Dette vil bare oppgradere den ene pakken, og bare hvis den er installert.
Hvis du ønsker å installere pakken hvis den ikke finnes, eller oppgradere den hvis den finnes, kan du utelate --only-upgrade
.
Det er to mulige måter jeg kan tenke meg:
sudo apt-get install nameofpackage
(installer navnpåpakke)Dette vil oppgradere pakken selv om den allerede er installert: .
~$ sudo apt-get install emesene
Leser pakkelister... Ferdig
Bygger avhengighetstreet
Leser tilstandsinformasjon... Ferdig
Følgende pakker vil bli oppgradert:
emesene
1 oppgradert, 0 nylig installert, 0 skal fjernes og 5 ikke oppgradert.
Trenger å hente 1 486 kB arkiver.
Etter denne operasjonen frigjøres 696 kB diskplass.
Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1 486 kB]
Synaptic Package Manager
: Høyreklikk→Merk for oppgradering:skriv inn bildebeskrivelse her.
Bemerk: Noen ganger kan det be om tilleggspakker eller avhengigheter, det er normalt.
For en kommandolinjeløsning som ikke installerer pakken hvis den ikke allerede eksisterer:
dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>
Dette kan enkelt gjøres til et skript, f.eks:
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