私のDebian Jessieインストールでいくつかのパッケージが利用できないのはなぜですか?

私のシステムにはDebian Jessie( i386 multiarch を含む amd64 )があります。しかし、インストールできないパッケージがいくつかありますが、そうするべきです。

mysql-client をインストールしようとしていますが、このエラーが発生します。

$ apt-get install mysql-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package mysql-client is a virtual package provided by:
mysql-client-5.5 5.5.57-0+deb8u1 [Not candidate version]
mysql-client-5.5 5.5.55-0+deb8u1 [Not candidate version]

E: Package 'mysql-client' has no installation candidate

mysql-client-5.5 をインストールしようとすると、もう少しわかります。

$ apt-get install mysql-client-5.5
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package mysql-client-5.5 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

私の sources.list は次のようになります。

deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.de.debian.org/debian/ jessie-updates main contrib non-free
deb https://dl.winehq.org/wine-builds/debian/ jessie main

どうやってこの奇妙な振る舞いを直すことができますか?

更新

apt-cache search MySQL を実行しても、これらのいくつかのパッケージのみが印刷されます。それは私には正しくないようです。

akonadi-backend-mysql - MySQL storage backend for Akonadi
libreoffice-base-drivers - Database connectivity drivers for LibreOffice
libmysqlclient18 - MySQL database client library
mysql-common - MySQL database common files, e.g. /etc/mysql/my.cnf
mysql-server-core-5.5 - MySQL database server binaries
php5-sqlite - SQLite module for php5
libqt4-sql-mysql - Qt 4 MySQL database driver
librdf0 - Redland Resource Description Framework (RDF) library
rsyslog - reliable system and kernel logging daemon
3
nl ru de
あなたの質問に対する答えではありません(mysqlはまだjessieで利用可能であるはずです)が、debianがmysqlからmariadbに数年間移行してきたことは注目に値します。 mariadbはjessieで、明らかに唯一のmysqlの一変形です。そのため、定期的な更新が必要な場合は、mariadbに切り替えることをお勧めします。 wiki.debian.org/Teams/MySQL/MariaDB をご覧ください。また seravo.fi/2015/&hellip ; および softwareengineering.stackexchange.com/questions/120178/… もっとグーグル。
追加された 著者 Carlo Borja,
はい、mariadbに移行したはずですが、それらのパッケージも利用できません。 apt-cache search で "mariadb"を検索しても何も見つかりません。
追加された 著者 rohezal,
珍しいことは何もありません。すべてのパッケージ情報を取得し、終了時に Done と表示します。
追加された 著者 rohezal,
apt-get update は何を表していますか?
追加された 著者 xhienne,

4 答え

[注:解決策はUpdate 2のデータで発見され、一番下の部分で適切な説明が付いています。]

この問題を診断するには、障害が発生している場所を特定する必要があります。

まず、これを試してみてください。ソースに関して何か問題があるように思われるので、これらをこれらに置き換えてから、再度正常に機能するようになったら、逆方向にデバッグしてください。

https://packages.debian.org/search?keywords=mysql-client&searchon=names&suite=oldstable&section=all

完全ヒットパッケージmysql-client

 jessie(oldstable)(データベース):MySQLデータベースクライアント(最新バージョンに応じたメタパッケージ)
5.5.57-0 + deb8u1 [セキュリティ]:すべて
mysql-client-5.5も提供しています。
 
     

その他のヒットパッケージmysql-client-5.5

  jessie(oldstable)(データベース):MySQLデータベースクライアントバイナリ
5.5.57-0 + deb8u1 [セキュリティ]:amd64 arm64 armel armhf i386ミップミップセルpowerpc ppc64el s390x
 

これは問題のパッケージが旧安定版であることを示しています。 sources.listをこれに変更します。

#deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
#deb http://security.debian.org/ jessie/updates main contrib non-free
#deb http://ftp.de.debian.org/debian/ jessie-updates main contrib non-free
# try these instead:
deb http://mirrors.kernel.org/debian jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
# and your wine repo
deb https://dl.winehq.org/wine-builds/debian/ jessie main

Save, then: apt-get update

Then: apt-cache search mysql

これでmysqlクライアントが表示されない場合は、デバッグが非常に難しいものがシステムに破損していると考えています。

また、の完全な結果を表示:apt-get update 最後の行だけではなく、全体的なことですが、欠落しているエラーが表示される場合があります。

次のようにして、あなたの地元のaptが知っていることをいつでもチェックすることができます。

apt-cache show mysqlクライアント

そして出力を注意深く調べてください。

also: apt-cache policy mysql-client

あなたの apt update が何らかの理由で更新に失敗しているのは明らかです。質問からいくつかの変数を削除するためにリポジトリの上記の変更を提案します。

[Updated] Note, I corrected a line in sources.list update yours, but your paste shows that was the only item failing, which means your primary jessie main contrib non-free local database is not for some reason updating correctly.

sources.listを修正し、もう一度 apt-get update を実行して、エラーをもう一度探します。 aptパッケージデータベースが更新に失敗しているのは明らかです。

[Update 2] If apt-get update is working and not showing errors, and if you see the end result: 18.9 MB updated which your paste does show in the end, this strongly suggests that the issue is a failure to write the data to disk, in a way that apt itself is not able to be aware of in order to show error messages due to that failure.

チェック: dmesg |同様にどんなエラーメッセージでもgrep apt-getdf -hT でシステムをチェックして、/ varパーティションaptが更新データを書き込んでいるのがいっぱいでないことを確認してください。/varを含むパーティションに対してfsckを実行します。

再インストールしてもハードウェア障害は修正されないので、問題を解決することを期待して再インストールするよりも、なぜ失敗したのかを判断することをお勧めします。

何かあるいは誰かがaptデータベースのパーミッションを変更しましたか?

以下を確認してください(特にファイルのサイズに注意してください)。

ls -l /var/cache/apt
# the results should look like this:
drwxr-xr-x 3 root root   147456 Jul 22 16:50 archives
-rw-r--r-- 1 root root 32808269 Aug 13 16:15 pkgcache.bin
-rw-r--r-- 1 root root 32088021 Aug 13 16:15 srcpkgcache.bin

さらに、apt-get updateを実行する度に最終更新日が変わるはずです。

さらなるチェック

ls -l /var/lib/apt/lists/

apt-get updateから取得された、あるいは明らかに取得されたが更新されていないすべてのリポジトリとそれらに関連するデータを表示するはずです。

検索を繰り返します。 apt-cache search mysql-client これまでのように何も表示されないか、表示されるはずです。

次の作業:/ etc/aptに以前のディストリビューションまたはその他の問題のないイベントを使用するようにapt設定を設定していないことを確認します。

cd /etc/apt
cat apt.conf apt.conf.d/* preferences preferences.d/*

これにより、これらのファイルに設定されている設定がすべて返されます(たとえば)。

APT::Default-Release "buster";
APT::Get::AutomaticRemove "0";
APT::Get::HideAutoRemove "1";

[UPDATE 3 - 解決しましたか?]

そして、上の/ etc/apt catからのユーザー設定は、私がそれを見た直後には明らかだった問題を示しています。他のテストなしでピン止めをチェックするのに十分であるべきでした:

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";
// Pre-configure all packages with debconf before they are installed.
// If you don't like it, comment it out.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
Package: *
Pin: release a=stable [***** my emphasis]
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
cat: preferences.d/*: No such file or directory

今では理にかなっています、技術的な問題、ハードウェアの問題はありませんが、aptはパッケージを表示していません。どうして?あなたのシステムは安定して固定されているからです。

固定を変更し、まずその固定が含まれているファイルを探します。

grep -snR 'Pin: release a=stable' /etc/apt

それから、 'stable'を 'jessie'に変更すれば、すべてが再び機能するはずです。

あなたがそれをに変更する必要があると私が信じるのを除いて(aの代わりにnに注意しなさい、nはリリースの名前です):

Pin: release n=jessie

そして/etc/apt/apt.confにこの行を追加してください。あなたの場合は必要ないと思います

APT::Default-Release "jessie";

https://manpages.debian.org/stretch/apt/apt_preferences 5.en.html

私はまだすべての.dディレクトリを持っていたとは思いませんので、jessieに注意してください。そのため、おそらく.d /ディレクトリ内で問題なく動作するでしょう。

Default-Releaseは/etc/apt/apt.conf.d/80Basicsに設定されています。 ピン留めは/etc/apt/preferences.d/80Basicsにあります。 あなたの場合、計画は/ etc/apt/preferencesにあります。

基本的にあなたは安定版に固定するようaptに言いました、そしてそれはあなたがそれをするようにあなたが言ったことを忠実にやっています。ですから、あなたがパッケージについてそれを尋ねるとき、あなたがjessieソースを更新した後に、基本的に見つけられるべきパッケージがないことを忠実に伝えます。エラーが発生しなかった、更新がうまくいった、パッケージデータベースが正しく更新された、パッケージリストがすべて更新されたが、残念ながらストレッチ(安定)データが含まれていないため、エラーは報告されません。実際のディストリビューション名の代わりに 'stable'を使用する危険性があるので、忘れたのは非常に簡単です。また、stableがold stableまたはEOL stableに変更されると、さらに混乱します。一般的にはあなたのソースでsid/testing/stableを使うことができますが、私はテストが新しいテストに移行するときそれらが失敗することができ、stableがold stableになるので、実際の名前はもちろん私の好みです。決して変わらない。

見ての通り、これが解決策だと私は信じています。再インストールすることはほとんど解決策ではありません。

ピン設定は/ etc/apt/preferencesにあると思います(preferences.dはあなたのjessieには存在しなかったので)。

APT PINNING: https://wiki.debian.org/AptPreferences

As a a result, I use a more conservative "only if I say so" approach to a mixed distribution, with a Pin file like this:

Package: * Pin: release a=testing Pin-Priority: 900

Package: * Pin: release o=Debian Pin-Priority: -10

Thus all debian packages are defaulted to priority -10, while testing receives a 900 point bonus. This invokes the behaviors:

From apt_preferences(5)

500 < P <=990 : causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent [...] P < 0 : prevents the version from being installed

[...]

P < 0 : prevents the version from being installed

お分かりのように、基本的に安定していないもの(-10)を無視し、stable(900)のみを使用するようにaptに指示しました。

これは安定した、シドやテスト用のインストールではないので、私は一般的に-10ピンを使用しません。100や200のようなものを使用します。ストレッチとjessie、またはsidとテストで、Jessieのみを使用している場合は混乱させることはできません。その場合でも、aptは基本的にピン留めを無視し、Default-Releaseを使用します。 900に固定されていますが、デフォルトのリリースに設定されているので、apt-cacheポリシーはこれを表示します。

apt-cache policy nano
nano:
  Installed: 2.7.4-1
  Candidate: 2.8.6-1
  Version table:
     2.8.6-2 300
        300 http://mirrors.kernel.org/debian unstable/main i386 Packages
     2.8.6-1 990
        990 http://mirrors.kernel.org/debian buster/main i386 Packages
 *** 2.7.4-1 100
        100 /var/lib/dpkg/status

ご覧のとおり、固定値は990です。これは私が行ったことではありません。デフォルトリリースを明示的に宣言した場合はaptが行うことです。

https://manpages.debian.org/stretch/apt/apt_preferences 5.en.html

好みのためのストレッチマニュアルページはかなり明確です。

4
追加された
このコマンドをもう一度確認してください。アップデートプロセスで内部のaptエラーが発生する可能性があります。 grep apt-get
追加された 著者 Lizardx,
それは、debianがしばらく前にしたことかもしれませんか?あなたがそうしなかったからといって、あなたがそれをするのを覚えておくのがさらに困難になったのではありません。ただし、Googleで登場したコードを固定するのと非常によく似ています。あなたのディストリビューションを「安定」ではなく「安定」ではない名前としてあなたのディストリビューションを守っている限り、単に固定を外すことも私の選択でしょう。奇妙なことに、私はフレッシュストレッチインストールをしたばかりで、sources.listには 'stretch'があります。それはあなたがインストールした他のパッケージかもしれません、それは知るのが難しいです、デフォルトのストレッチは固定されません。
追加された 著者 Lizardx,
アップデート3を見てください、私が信じるフルペーストは問題を示しています。
追加された 著者 Lizardx,
最新のテストを見てください。
追加された 著者 Lizardx,
上記を参照してください。[ls -l/var/cache/apt]はファイルが最後に更新された時を示します。そして許可。
追加された 著者 Lizardx,
一般に、ほとんどすべての問題は修正可能であるため、私はDebianを再インストールすることは決してありません。たとえば、/ varがいっぱいの場合、パーティションに空きがあるかどうか(df -hT)、apt-getが更新時に書き込むことができないため、失敗する可能性があります。ハードウェア障害を指す可能性があるディスクの問題もあります。再インストールをしてもこれらの問題は解決されないので、パーティションとディスクをチェックして、再インストールの前にすべての手順を実行します。
追加された 著者 Lizardx,
修正されたsources.listの行を見て、もう一度試してください。あなたのローカルデータベースは更新されていませんし、明らかにかなり長い間更新されていないようです。
追加された 著者 Lizardx,
sources.list を変更した後、 apt-get update でエラーが発生します。こちら
追加された 著者 rohezal,
これもうまくいきませんでした、またエラーはもう起こりませんでした:-(私は私のシステムを再インストールしなければならないようです...とにかくあなたの助けをありがとう!
追加された 著者 rohezal,
dmesg | grep apt-get には何も表示されず、すべてのパーティションに十分なスペースがあります。
追加された 著者 rohezal,
pkgcache.binsrcpkgcache.bin は本日更新され、r/wアクセス権を持つ root が所有します。
追加された 著者 rohezal,
提案されたテストの出力は次のとおりです。 pastebin.com/bLFgQxAB 問題はありません... dmesgにはヒントは含まれていません。
追加された 著者 rohezal,
今日私はそれを新しい試みをする時間を見つけました、そして、あなたは絶対に正しかったです。ピン留めが問題でした。しかし、私はそれがどこから来たのかわかりません。私は以前ピン留めから聞いたことがないので、それは私ではなかったと確信しています。しかし、私はピン留めを削除しました、そして今、すべては再びうまくいきます:-)ありがとう!
追加された 著者 rohezal,

MySQLクライアントは言う

これはデフォルトMySQLに依存する移行MySQLデータベースです。   クライアントメタパッケージ。安全に削除できます。

default-mysql-clientかdefault-mysql-client-coreのどちらかが必要だと思います

前者は言う

MySQLは高速で安定した真のマルチユーザー、マルチスレッドSQLです。   データベースサーバー。 SQL(構造化照会言語)が最も人気があります。   世界のデータベースクエリ言語。 MySQLの主な目的は、   スピード、堅牢性、そして使いやすさ。

     

このパッケージはクライアントのデフォルト実装に依存します   バイナリと追加ツールinnotopとmysqlreport。

後者は言う

MySQLは高速で安定した真のマルチユーザー、マルチスレッドSQLです。   データベースサーバー。 SQL(構造化照会言語)が最も人気があります。   世界のデータベースクエリ言語。 MySQLの主な目的は、   スピード、堅牢性、そして使いやすさ。

     

このパッケージはコアクライアントのデフォルト実装に依存します   Akonadiが使用するファイル。

1
追加された
E: default-mysql-client-core のパッケージdefault-mysql-client と同じ出力が見つかりません。
追加された 著者 rohezal,

apt policy mysql-client-5.5 が必要な場合は、 apt policy および apt policy mysql-client コマンドも実行できますか。

You will also need to install pastebinit apt install pastebinit and then run this two commands cat /etc/apt/sources.list | pastebinit -b paste.debian.net

also you might want to pastebin output of apt policy and mysql-client-5.5apt policy mysql-client

あなたはたぶん少し適切な固定をする必要があるでしょう、しかし我々はこれを解決するでしょう。 キャッシュ apt clean をきれいにすることを忘れないでください。

0
追加された

Replace /etc/apt/sources.listに ftp with http. apt-mirrors Sooner or later you have to to this. Following as root or with sudo. dpkg --clear-avail and rm -f /var/lib/apt/lists/* After that refresh apt update && apt install mysql-client

Your mirror is at time not reachable. Maybe related

    ping -c 4 http://mirrors.kernel.org/
ping: unknown host http://mirrors.kernel.org/

/etc/apt/sources.listに

deb http://http.us.debian.org/debian/ jessie main contrib non-free 
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://http.us.debian.org/debian/ jessie-updates contrib non-free main 

dpkg --clear-avail and rm -f /var/lib/apt/lists/* After that refresh apt update && apt install mysql-client

0
追加された
キャッシュをクリアしてaptアップデートをした後でも、パッケージはまだ見つかりません:-(
追加された 著者 rohezal,
FTPサービスのみが無効になります。 ftp.debian.orgとftp。 .debian.orgのDNS名は変わりません。ミラーは代わりにHTTPを使用してアクセスする必要があります( debian.org/News/2017を参照)。 /20170425.en.html
追加された 著者 rohezal,