Apt-getを使用して単一のパッケージをアップグレードする方法は?

単一のパッケージを更新するにはどうすればよいですか? 限り man apt-get "と述べている apt-get upgrade パラメータとしてパッケージ/パッケージのリストを取りません:

アップグレード

upgradeは、システムに現在インストールされているすべてのパッケージの最新バージョンを、以下に列挙されているソースからイ /etc/apt/sources.list. 現在インストールされているパッケージが削除されたり、まだインストールされていないパッケージが取得されてインストールされたりすることはあ 別のパッケージのインストール状態を変更せずにアップグレードできない現在インストールされているパッケージの新しいバージョンは、現在のバージ Apt-getが新しいバージョンのパッケージが利用可能であることを知るために、最初に更新を実行する必要があります。

あなただけの行う必要があります apt-get install --only-upgrade <packagename>. これは、その単一のパッケージのみをアップグレードし、インストールされている場合にのみアップグレードします。

パッケージが存在しない場合はインストールし、存在しない場合はアップグレードしたい場合は、省略することができます --only-upgrade.

CLIを使用して単一のパッケージを更新するには、次の手順を実行します。:

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

例えば、, 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.

私が考えることができる二つの可能な方法があります:

  1. sudo apt-get install nameofpackage

    これにより、既にインストールされていてもパッケージがアップグレードされます:

    ~$ 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. を使用してSynaptic Package Manager: 右クリック→アップグレード用マーク:

    メモ:時々、それは追加のパッケージや依存関係を要求することがあり、それは正常です。

Ubuntu12.04LTSでの私の経験では、別のPPAを使用している場合、以下のコマンドを使用してもパッケージはアップグレードされません -

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

同様に、サーバー上のすべてのパッケージをアップグレードするupgradeコマンドを実行したくありませんでした -

sudo apt-get dist-upgrade

たとえば、私はPHP5.3をインストールし、私のaptにondrej PPAを追加しました。を使用したソース -

sudo add-apt-repository ppa:ondrej/php5

私が実行した場合

sudo apt-get install php5

それはちょうどPHP5.3を再インストールします。

私は、最初に、アップグレードするバージョン番号を決定する必要があります

sudo apt-cache policy php5

これにより、利用可能なすべてのバージョン番号が一覧表示されます。 アップグレードするバージョン番号を見つけて、それを参照する文字列全体をコピーする必要があります。 たとえば、UbuntuのPHP5.5の文字列は「5.5.16+dfsg-1+」ですdeb.sury.org~2"を発表した。

これで、特定のバージョン番号を指定してapt-get installコマンドを実行できます。

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

私はこの情報をどこか他の場所で見つけることができなかったので、私はこれを追加しました!

Ubuntu9.04Jauntyで,

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

利回り:

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

コマンド

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

私の場合は働いていました。

パッケージがまだ存在しない場合にパッケージをインストールしないコマンドラインソリューションの場合:

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

これは簡単にスクリプトにすることができます。:

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

Ubuntu18.04LTSで単一のパッケージをアップグレードするには:

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

複数のパッケージをアップグレードするには:

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