現在の問題

現在の問題

Debian 9でこのパッケージをインストールしたいlibicu57リポジトリ)しかし、何らかの理由で次のことはできません。

$ sudo apt install libicu57
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libicu57 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libicu57' has no installation candidate

私の中には/etc/apt/sources.listこれがあります(何よりも):

deb http://ftp.cvut.cz/debian/ testing main non-free contrib

問題は何であり、どのように解決しますか?

答え1

現在の問題

libicu57以下からインストールしたいと思います。テストリポジトリ。しかし、このパッケージはx86テストと 。amd64armel mipsmipsel

エントリsources.listにはDebianテスト(Busterまたは10)があります。 Debian 9(StretchまたはStable)を使用していると報告しました。あなたが作成しましたフランケンデビアンsources.listこの問題を解決するには、このエントリを適切に削除し、テストストアからインストールされているすべてのパッケージをロールバックまたは削除するように構成を構成する必要があります。

これを完了したら、libicu57ARMバリアントが必要な場合は、クロスコンパイルソリューションまたはより良い仮想化を検討できます。

ソースリストの変更

最初のステップは、リポジトリが次のようになっていることを確認すること/etc/apt/sources.listです。いいね/etc/apt/sources.list.d/各リポジトリを独自のファイルにすることをお勧めしますが、それを1つのファイルとして実行することもできます。

#stable.list
deb http://deb.debian.org/debian stable main contrib non-free 
deb-src http://deb.debian.org/debian stable main contrib non-free

#updates.list
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 

#security.list 
deb http://deb.debian.org/debian-security stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-security stable/updates main contrib non-free

あなたのsource.listは次のようになります。希望のミラーに合わせて正確なhttpアドレスを変更できます。必ずテストリポジトリが必要な場合は、上記と同様の方法でエントリを追加し、次を使用してください。適切な好み精神のレベルを維持しなさい。 apt-pinningはFrankenDebianが生成される可能性があるため、慎重に使用する必要があります。

ソフトウェアのインストール

今残っているのはパッケージをインストールするだけです。これは、次のコマンドを使用して実行できます。

 apt-get install libicu57

または

apt-get install -t stable libicu57 **or** apt-get install libicu57/stable

ソースから必要なパッケージをインストールすることを選択するか、Debianパッケージサイトからそのパッケージとその依存関係をダウンロードして使用することもできます。dpkg -i [packageName].deb

これはインストールする必要がありますlibicu57。他のエラーがある場合は、コメントを残してください。解決策を見つけてみましょう。次のセクションでは、ARMまたはMIPSバージョンのソフトウェアが絶対に必要な場合は、このバージョンのライブラリを安全に使用するためにクロスコンパイルを検討するか、適切な命令セットで仮想環境を作成することを検討できることを説明します。

これはMultiarchに関するDebian Wikiエントリです。そしてこれはクロスコンパイルされたwikiです。。以下の手順に従って、dpkgクロスコンパイルなしで適切な設定変更などを実行できます。

しかし、同じソフトウェアの複数のバージョンをインストールすることはできません!

したがって、ARMバージョンにすでにバージョンがある依存関係とライブラリが必要な場合は、x86これをamd64行うことはできません。別のアプローチは、選択した仮想化ソリューション(正しい命令セットを使用)を使用してARM用のDebian仮想マシンを作成することです。

キーボード仮想マシン良い選択ですが、ユースケースに最適なソリューションを使用できます。

結論として

お願いしますこの記事を専門に読んでください。実際にコマンドを実行する前に、私が提供するすべてのリンクを注意深く読んでください。この投稿について質問や懸念がある場合は、お気軽にお問い合わせください。この回答に修正や誤解がある場合はお知らせください。必要に応じて投稿を更新できます。

頑張ってください!

答え2

問題が特定のリポジトリに関連している場合は、適切な設定を確認してください。/etc/apt/preferences.d/

これらの特定のパッケージのアップグレードを許可しない固定ファイルがある可能性があります。

パッケージバージョンの変更によって問題が発生する可能性がある場合は、Dockerイメージでこれが発生する可能性があります。

これが役に立つことを願っています。

関連情報