次のコマンドを使用してリポジトリを選択できることを知っています。
apt-get install -t backports|testing|unstable|etc software
私は最近mysql-repositoryを使用する必要がありました/etc/apt/sources.list.d/mysql.list
:
deb http://repo.mysql.com/apt/debian/ stretch mysql-apt-config
deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7
deb http://repo.mysql.com/apt/debian/ stretch mysql-tools
deb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7
オプションを使用して指定するためにこのリポジトリの名前を見つける方法は-t
?
apt-get install -t mysql-community mysql-server
E: The value 'mysql-community' is invalid for APT::Default-Release as such a release is not available in the sources
apt-get install -t mysql-5.7 mysql-server
E: The value 'mysql-5.7' is invalid for APT::Default-Release as such a release is not available in the sources
apt-get install -t mysql mysql-server
E: The value 'mysql' is invalid for APT::Default-Release as such a release is not available in the sources
私も関連情報が見つかりませんでしたapt-cache showpkg mysql-server
。また、私のシステムのすべてのリポジトリを一覧表示するコマンドがありますか?
答え1
この-t
オプションはリポジトリではなくバージョンを指定します(設定の略語ですAPT::Default-Release
。参照man apt_preferences
)。
Release
ファイルを見ると、特定のリポジトリがどのバージョンをターゲットにしているかがわかります。あなたの場合。stretch
(find)を指定しているためCodename:
使用できなくなります...
答え2
リポジトリに関する情報を取得するには、次のようにします。
sudo apt-cache policy
しかし、それは目標を達成するのに役立ちません。特定のリポジトリからパッケージをインストールする場合は、リポジトリを選択するのではなく、特定のパッケージのバージョンを選択することです。このパッケージのすべてのバージョンのリストを取得するには、次の手順を実行しますmysql-server
。
apt-show-versions | grep mysql-server
私のUbuntu 18.04では、出力は次のようになります。
mysql-server:all/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-5.7:amd64/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-5.7:i386 not installed
mysql-server-core-5.7:amd64/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-core-5.7:i386 not installed
リポジトリを指定するには、リポジトリでgrepを実行します。apt search
たとえば、bionic-updates
リポジトリーの場合は、次のようにします。
apt search linux-image | grep -i bionic-updates
次に、必要なバージョンを選択してインストールします。例:
sudo apt-get install mysql-server-5.7:amd64
したがって、ルールは次のようになります。リポジトリの代わりにパッケージのバージョンを選択します。
アップグレードを避けるために以前のバージョンのパッケージが必要な場合は、以下を使用してくださいapt-mark
。
sudo apt-mark hold mysql-server-5.7
最後のコマンドはパッケージがアップグレードされないようにします。この動作を復元するには、unhold を使用します。
sudo apt-mark unhold mysql-server-5.7
また、Askubuntuに関する同様の質問に対する私の答えも参照してください。Ubuntu 16.04とカーネル4.15
別のオプションは次のとおりです。決定した、この項目を注意深くお読みください。特定のリポジトリのアップデートのみをインストールする方法は?