it-swarm.com.de

Wie aktualisiere ich ein einzelnes Paket mit apt-get?

Wie aktualisiere ich ein einzelnes Paket? Soweit man apt-getapt-get upgrade sagt, wird kein Paket/keine Liste von Paketen als Parameter verwendet:

pgrade

mit dem Upgrade werden die neuesten Versionen aller derzeit auf dem System installierten Pakete aus den in /etc/apt/sources.list aufgeführten Quellen installiert. Derzeit installierte Pakete, für die neue Versionen verfügbar sind, werden abgerufen und aktualisiert. Derzeit installierte Pakete werden unter keinen Umständen entfernt oder Pakete, die noch nicht installiert sind, werden abgerufen und installiert. Neue Versionen der aktuell installierten Pakete, die nicht aktualisiert werden können, ohne den Installationsstatus eines anderen Pakets zu ändern, behalten ihre aktuelle Version bei. Zuerst muss ein Update durchgeführt werden, damit apt-get weiß, dass neue Versionen von Paketen verfügbar sind.

814
lurscher

Sie müssen nur apt-get install --only-upgrade <packagename> ausführen. Dadurch wird nur dieses einzelne Paket aktualisiert und nur, wenn es installiert ist.

Wenn Sie das Paket installieren möchten, wenn es nicht vorhanden ist, oder wenn Sie es aktualisieren möchten, können Sie --only-upgrade weglassen.

1013
Josh

So aktualisieren Sie ein einzelnes Paket mithilfe der CLI:

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

z. B. 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.
128
Ian

Ich kann mir zwei Möglichkeiten vorstellen:

  1. Sudo apt-get install nameofpackage

    Dadurch wird das Paket aktualisiert, auch wenn es bereits installiert ist:

    ~$ 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. UsingSynaptic Package Manager: Rechtsklick → Zum Aktualisieren markieren:

    enter image description here

    Anmerkung: Manchmal werden zusätzliche Pakete oder Abhängigkeiten angefordert, was normal ist.

54
Binarylife

Nach meiner Erfahrung mit Ubuntu 12.04 LTS wird das Paket mit dem folgenden Befehl nicht aktualisiert, wenn ein separater PPA verwendet wird.

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

Ebenso wollte ich nicht den Upgrade-Befehl ausführen, der alle Pakete auf meinem Server aktualisiert -

Sudo apt-get dist-upgrade

Zum Beispiel habe ich PHP 5.3 installiert und die PPA ondrej zu meiner apt.sources hinzugefügt, indem ich -

Sudo add-apt-repository ppa:ondrej/php5

Wenn ich renne

Sudo apt-get install php5

es wird nur PHP 5.3 neu installieren.

Ich muss zuerst die Versionsnummer bestimmen, auf die das Upgrade durchgeführt werden soll

Sudo apt-cache policy php5

Dies listet alle verfügbaren Versionsnummern auf. Sie sollten die Versionsnummer finden, auf die Sie aktualisieren möchten, und dann die gesamte Zeichenfolge kopieren, die darauf verweist. Beispielsweise lautet die Zeichenfolge für PHP 5.5 unter Ubuntu "5.5.16 + dfsg-1 + deb.sury.org ~ exact + 2".

Jetzt können Sie den Befehl apt-get install mit der spezifischen Versionsnummer ausführen und voila!

Sudo apt-get install php5=5.5.16+dfsg-1+deb.sury.org~precise+2

Ich habe dies nur hinzugefügt, weil ich diese Informationen nirgendwo anders finden konnte!

24
chopsuei3

Unter Ubuntu 9.04 Jaunty

apt-get --only-upgrade install <package>

ergibt:

E: Sense only is not understood, try true or false.

Der Befehl

apt-get --only-upgrade true install <package>

arbeitete in meinem Fall.

16
golem

Für eine Befehlszeilenlösung, die das Paket nicht installiert, wenn es noch nicht vorhanden ist:

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

Dies kann leicht zu einem Skript gemacht werden, z.

pgrade-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
10
Shane