Почему некоторые пакеты недоступны в моей установке Debian Jessie?

У меня есть Debian Jessie ( amd64 с i386 multiarch ), установленный в моей системе. Но некоторые пакеты недоступны для установки, хотя они должны.

Я пытаюсь установить 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, eg /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 

4 Solutions collect form web for “Почему некоторые пакеты недоступны в моей установке Debian Jessie?”

[Примечание: решение было обнаружено в данных Update 2 и объяснено внизу, apt pinning.]

Для диагностики этой проблемы необходимо определить, где происходит сбой.

Во-первых, попробуйте это, похоже, что что-то не так с точки зрения ваших источников, поэтому просто замените их на них, а затем отлаживайте назад, как только у вас снова будет рабочая настройка:

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

Точные удары Пакет mysql-client

 jessie (oldstable) (database): MySQL database client (metapackage depending on the latest version) 5.5.57-0+deb8u1 [security]: all also provided by: mysql-client-5.5 

Другие хиты Пакет mysql-client-5.5

 jessie (oldstable) (database): MySQL database client binaries 5.5.57-0+deb8u1 [security]: amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x 

Это показывает, что пакеты, о которых идет речь, находятся в старой стабильной версии. Измените свой источник.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 

Сохраните, затем: apt-get update

Затем: apt-cache search mysql

Если это не показывает ваш mysql-клиент, я считаю, что что-то очень трудное для отладки повреждено в вашей системе.

Кроме того, покажите в полном объеме: apt-get update не только последнюю строку, но и все, что может показаться вам недостающими.

Вы также можете всегда проверять, что знает ваш местный apt, с чем-то вроде этого:

apt-cache show mysql-client

и внимательно изучите выход.

также: политика apt-cache mysql-client

Понятно, что ваше apt-обновление не обновляется по какой-либо причине, я предлагаю вышеупомянутое изменение РЕПО удалить некоторые переменные из вопроса.

[Обновлено] Примечание. Я исправил строку в sources.list update yours, но ваша паста показывает, что это был единственный элемент, который не работает, что означает, что ваша основная база данных jessie main contrib не является бесплатной локальной базой данных, по какой-то причине не обновляется корректно.

Измените source.list, запустите apt-get update еще раз и снова ищите ошибки. Понятно, что ваша база данных apt-пакетов не обновляется.

[Обновление 2] Если apt-get update работает и не показывает ошибок, и если вы видите конечный результат: обновленный 18,9 МБ, который ваша паста показывает в конце, это сильно говорит о том, что проблема заключается в неспособности записать данные в диска, таким образом, что apt сам не может быть осведомлен, чтобы отображать сообщения об ошибках из-за этого сбоя.

Проверьте: dmesg | grep apt-get dmesg | grep apt-get для любых сообщений об ошибках. Проверьте систему с помощью df -hT чтобы убедиться, что df -hT / var partition apt записывает данные обновления, не заполнен. Запустите fsck в разделе, содержащем / var.

Обратите внимание, что переустановка не будет устранять аппаратные сбои, поэтому, вероятно, лучше понять, почему она терпит неудачу, чем переустанавливать надежду на решение этих проблем.

Кто-нибудь или кто-либо изменил права доступа к базе данных 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.

Дальнейшие проверки:

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

должен показать все ваши репозитории и связанные с ними данные, которые были схвачены с помощью apt-get update, или в вашем случае, по-видимому, захвачены, но не обновлены.

Повторите поиск: apt-cache search mysql-client который должен либо ничего не показывать, как это было до сих пор, либо он должен что-то показывать.

Далее: убедитесь, что вы не задали предпочтения apt для использования предыдущего дистрибутива или какого-либо другого события без примечания в / etc / 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"; 

[ОБНОВЛЕНИЕ 3 – Решено?]

И пользовательские конфигурации от кота / etc / apt выше показывают проблему, которая была очевидна, как только я ее увидел, но не очевидно, чтобы догадаться, хотя намек на запуск Jessie, старой стабильной, после новой стабильной Stretch был выпущен должно быть достаточно, чтобы проверить пиннинг без других тестов:

 // 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 не показывает пакетов. Зачем? Потому что ваша система привязана к стабильной, что растягивается, а не jessie.

Измените пиннинг, сначала найдите файл, в котором есть пиннинг:

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

Затем измените «stable» на «jessie», и все должно работать снова.

Кроме того, я полагаю, вам нужно изменить его (обратите внимание на n вместо a, n – это название выпуска):

 Pin: release n=jessie 

И, возможно, добавить в /etc/apt/apt.conf эту строку, хотя я не считаю, что это необходимо в вашем случае.

 APT::Default-Release "jessie"; 

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

Обратите внимание, что jessie я не верю, что все каталоги .d все же, так что трудно вспомнить, куда его файлы должны идти, возможно, в каталогах .d / будут работать нормально.

По умолчанию-релиз установлен в: /etc/apt/apt.conf.d/80Basics. Пиннинг находится в: /etc/apt/preferences.d/80Basics. В вашем случае скобка находится в / etc / apt / preferences

В принципе, вы сказали, что готовы прикрепить к конюшне, и он послушно делает то, что вы ему сказали, только у вас нет стабильной в ваших источниках, у вас есть то, что теперь стабильно. Так что, когда вы спрашиваете об пакетах, он с радостью сообщает после обновления источников jessie, что в основном нет пакетов, которые можно найти. Ошибок не сообщается, потому что ошибок не произошло, обновление отлично работало, база данных пакетов была обновлена ​​в порядке, в списке пакетов все обновлено, но, к сожалению, ни одна из них не содержит растянутых (стабильных) данных. Это риск использования «стабильного» вместо фактического имени распределения в этом, очень легко забыть, что вы это сделали, и еще более запутанно, когда стабильные изменения старой стабильной или стабильной EOL. Обратите внимание, что в большинстве случаев вы можете использовать sid / testing / stable в своих источниках, но я обнаружил, что они могут терпеть неудачу при тестировании рулонов до нового тестирования, а стабильная становится старой стабильной, поэтому фактические имена являются моими предпочтениями, за исключением, конечно, для sid, который никогда не меняется.

Я считаю, что это решение, как вы можете видеть, переустановка практически никогда не является решением, и я все чаще начинаю подозревать, что у вас что-то настроено где-то, о чем вы забыли, поскольку все работает, по-видимому.

Я считаю, что пиннинг будет в / etc / apt / preferences (так как preferences.d не существует в вашей jessie).

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

В результате я использую более консервативный подход «только если я так говорю» для смешанного распространения, с таким файлом Pin:

Пакет: * Pin: release a = тестирование Приоритет: 900

Пакет: * Pin: release o = Приоритет Debian: -10

Таким образом, все пакеты debian по умолчанию имеют приоритет -10, а тестирование получает бонус в 900 пунктов. Это вызывает поведение:

Из apt_preferences (5)

500 <P <= 990: приводит к установке версии, если только версия, доступная для целевой версии, или установленная версия более поздняя […] P <0: предотвращает установку версии

[…]

P <0: предотвращает установку версии

Как вы можете видеть, вы сказали apt игнорировать все, что нестабильно (-10), и использовать только стабильный (900), поэтому apt сделал то, что вы ему сказали.

Учитывая, что это была стабильная, а не сидская или тестовая установка, я бы вообще не использовал этот -10 пиннинг, я бы использовал что-то вроде 100 или 200. Но я бы использовал только пиннинг, если бы на самом деле я запускал различные пулы, например стрейч и jessie, или sid и тестирование, нет смысла не путать себя с тем, чтобы использовать его, если вы используете только Jessie, и даже тогда, скорее всего, игнорирует привязку и использует по умолчанию-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

Страница растягивания для предпочтений довольно ясна.

Mysql-клиент говорит

Это временная база данных MySQL, которая зависит от метапотока клиента MySQL по умолчанию. Его можно безопасно удалить.

Я думаю, вам нужен либо mysql-клиент по умолчанию, либо default-mysql-client-core

Первый говорит

MySQL – это быстрый, стабильный и истинный многопользовательский многопоточный сервер базы данных SQL. SQL (язык структурированных запросов) – самый популярный язык запросов к базе данных в мире. Основными задачами MySQL являются скорость, надежность и простота использования.

Этот пакет зависит от реализации двоичных файлов клиента по умолчанию и дополнительных инструментов innotop и mysqlreport.

Последний говорит

MySQL – это быстрый, стабильный и истинный многопользовательский многопоточный сервер базы данных SQL. SQL (язык структурированных запросов) – самый популярный язык запросов к базе данных в мире. Основными задачами MySQL являются скорость, надежность и простота использования.

Этот пакет зависит от реализации основных клиентских файлов по умолчанию, используемых Akonadi.

Замените в /etc/apt/sources.list ftp с помощью http. apt-mirror Рано или поздно вам нужно это сделать. Следуя за root или с sudo. dpkg --clear-avail и rm -f /var/lib/apt/lists/* После этого обновить apt update && apt install mysql-client

Ваше зеркало вовремя не доступно. Возможно, связанный

  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 и rm -f /var/lib/apt/lists/* После этого обновить apt update && apt install mysql-client

Можете ли вы запустить команду apt policy и apt policy mysql-client также запускается, если вы хотите, чтобы apt policy mysql-client-5.5

Вам также потребуется установить pastebinit apt install pastebinit а затем запустить две команды cat /etc/apt/sources.list | pastebinit -b paste.debian.net cat /etc/apt/sources.list | pastebinit -b paste.debian.net

также вы можете захотеть вывести pastebin из apt policy mysql-client-5.5apt policy mysql-client

Вам, вероятно, придется немного притворяться, но мы разрешим это. Также не забудьте очистить кеш apt clean .

  • Подсказка для ввода в пост-инсталляционный скрипт в dpkg
  • Как возобновить сборку пакетов в debian?
  • Как отладить код ошибки dpkg (1) при обновлении пакета deb?
  • Создание debianpackage - пакет плохого качества
  • Как проверить, соответствуют ли файлы, установленные пакетом, оригиналам?
  • Debian 7.3 не может удалить postgresql
  • Распаковка файла .deb, содержащего двоичный код MIPS
  • Где я могу извлечь или скопировать man executable
  • Описание списка пакетов
  • Является ли поврежденное дерево зависимостей apt-get?
  • Сохранение дискового пространства в виртуальных машинах
  • Linux и Unix - лучшая ОС в мире.