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
テストと 。amd64
armel
mips
mipsel
エントリsources.list
にはDebianテスト(Busterまたは10)があります。 Debian 9(StretchまたはStable)を使用していると報告しました。あなたが作成しましたフランケンデビアン。sources.list
この問題を解決するには、このエントリを適切に削除し、テストストアからインストールされているすべてのパッケージをロールバックまたは削除するように構成を構成する必要があります。
これを完了したら、libicu57
ARMバリアントが必要な場合は、クロスコンパイルソリューションまたはより良い仮想化を検討できます。
ソースリストの変更
最初のステップは、リポジトリが次のようになっていることを確認すること/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イメージでこれが発生する可能性があります。
これが役に立つことを願っています。