web-dev-qa-db-ja.com

特定のパッケージバージョンをインストールする

tofrodos 1.17.3i386をインストールする必要があります。 Ubuntu 16.04.2を実行していますが、Sudo apt-get install tofrodos:i386を実行すると、バージョン1.17.3がインストールされます。ただし、これは後で使用される可能性のあるスクリプトに含まれるので、バージョン1.17.3と32ビットアーキテクチャi386を修正する必要があります。誰もそれを行う方法を知っていますか?

私はすでに試しました

Sudo apt-get install tofrodos=1.17.3:i386
Sudo apt-get install tofrodos:i386=1.17.3

どれも機能しませんでした。

どんな助けも大歓迎です。

3
flashburn

リポジトリ内のパッケージが修正バージョンであることを保証することはできません。

インストールされたパッケージのアップグレードを保留することは可能ですが、aptは常にリポジトリから利用可能なバージョンをインストールします。古いバージョンをそこに保持している人はいません。

実際には、最初のバージョンと「アップグレード」バージョンの2つのバージョンがあります。

しかし、パッケージがLTSリポジトリの新しいメジャーバージョンにアップグレードされることはほとんどありません。いくつかのマイナーな修正がリリースされる可能性がありますが、機能に影響を与える可能性はないと思います。

Sudo apt-get install tofrodos:i386=version

正しいコマンドです。ただし、リポジトリには1.17.3バージョンはありません。

正しいバージョンは1.7.13+ds-2ubuntu1です。

pilot6@Pilot6:~$apt-cache policy tofrodos
tofrodos:
  Installed: (none)
  Candidate: 1.7.13+ds-2ubuntu1
  Version table:
     1.7.13+ds-2ubuntu1 500
        500 http://ru.archive.ubuntu.com/ubuntu xenial/universe AMD64 Packages

だから

Sudo apt-get install tofrodos:i386=1.7.13+ds-2ubuntu1

動作するはずです。

xenialの「初期」バージョンです。パッケージがxenial-updatesでアップグレードされた場合でも、コマンドはこのバージョンをインストールします。

2
Pilot6

パッケージがリポジトリで利用可能な場合、次のコマンドを使用して、パッケージの特定のアーキテクチャから特定のバージョンをインストールできます。

Sudo apt-get install package:i386=version

目的のバージョンが使用可能かどうかを確認するには、次を使用します。

apt-cache madison package-name

または

apt-cache policy package-name

あなたのケースの他のオプションは次のとおりです。

apt list -a i386 tofrodos

また、目的のパッケージバージョンがリポジトリに存在しないようです。

0
Ravexina