Кандидат установки Ubuntu для пакета не найден
Обновлено: 22.11.2024
Одним из многих способов установки программного обеспечения в Ubuntu является использование команды apt-get или apt. Вы открываете терминал и используете имя программы для ее установки следующим образом:
Иногда вы можете столкнуться с ошибкой при попытке установить приложение таким образом. Ошибка гласит:
Ошибка не требует пояснений. Ваша система Linux не может найти пакет, который вы пытаетесь установить. Но почему это так? Почему он не может найти пакет? Давайте посмотрим, что можно предпринять, чтобы решить эту проблему.
Исправление «Не удалось найти ошибку пакета» в Ubuntu
Давайте пошагово рассмотрим, как решить эту проблему.
1. Проверьте имя пакета (нет, серьезно)
Это нужно проверить в первую очередь. Вы сделали опечатку в названии пакета? Я имею в виду, что если вы пытаетесь установить vlc и набрали vcl, это наверняка потерпит неудачу. Опечатки распространены, поэтому убедитесь, что вы не допустили ошибок при вводе имени пакета.
Кроме того, команды в Linux вводятся с учетом регистра. Поэтому убедитесь, что вы вводите правильное имя пакета. Например, имя команды должно быть vlc, а не Vlc или VLC.
2. Обновите кеш репозитория
Если вы впервые используете систему после установки, вам следует запустить команду обновления:
Эта команда не сразу обновит Ubuntu. Я рекомендую разобраться с концепцией репозиториев Ubuntu. По сути, команда «apt update» создает локальный кеш доступных пакетов.
Когда вы используете команду install, диспетчер пакетов apt выполняет поиск в кэше, чтобы получить информацию о пакете и версии, а затем загружает его из своих репозиториев по сети. Если пакета нет в этом кеше, ваша система не сможет его установить.
Если у вас только что установленная система Ubuntu, кэш пуст. Вот почему вы должны запустить команду apt update сразу после установки Ubuntu или любого другого дистрибутива на основе Ubuntu (например, Linux Mint).
Даже если это не новая установка, ваш apt-кэш может устареть. Всегда полезно обновить его.
3. Проверьте, доступен ли пакет для вашей версии Ubuntu
Хорошо! Вы проверили имя пакета, и оно правильное. Вы запускаете команду обновления, чтобы перестроить кеш, и все же видите ошибку невозможности найти пакет.
Возможно, пакет действительно недоступен. Но вы следуете инструкциям, упомянутым на каком-то веб-сайте, и все остальные, похоже, могут установить его таким образом. В чем может быть проблема?
Я вижу здесь две вещи. Либо пакет доступен в репозитории Universe, и ваша система не включила его, либо пакет вообще недоступен в вашей версии Ubuntu. Не запутайтесь. Я объясню это для вас.
Первый шаг, проверьте версию Ubuntu, которую вы используете. Откройте терминал и используйте следующую команду:
Как вы можете видеть здесь, я использую Ubuntu 18.04 с кодовым названием bionic. У вас может быть что-то еще, но вы получите суть того, что вам нужно отметить здесь.
Получив номер версии и кодовое имя, перейдите на веб-сайт пакетов Ubuntu:
Прокрутите немного вниз на этой странице и перейдите к части поиска. Вы увидите поле ключевого слова. Введите имя пакета (которое не может быть найдено вашей системой), а затем задайте правильное кодовое имя дистрибутива. Раздел должен быть «любой». Установив эти три параметра, нажмите кнопку поиска.
Это покажет, доступен ли пакет для вашей версии Ubuntu, и если да, то к какому репозиторию он принадлежит. В моем случае я искал инструмент для создания снимков экрана Shutter, и вот что он показал мне для версии Ubuntu 18.04 Bionic:
В моем случае имя пакета точно совпадает. Это означает, что затвор пакета доступен для Ubuntu 18.04 Bionic, но в «репозитории Universe». Если вам интересно, что такое репозиторий Universe, обратитесь к статье о репозитории Ubuntu, о которой я упоминал ранее.
Если предполагаемый пакет доступен для вашей версии Ubuntu, но это репозиторий, такой как юниверс или мультивселенная, вы должны включить эти дополнительные репозитории:
Вы также должны обновить кеш, чтобы ваша система знала о новых пакетах, доступных в этих репозиториях:
Теперь, если вы попытаетесь установить пакет, все должно быть в порядке.
4. Проверьте, используете ли вы активную версию Ubuntu
Ubuntu имеет два основных типа выпусков. Обычный выпуск поддерживается в течение девяти месяцев, а выпуски с долгосрочной поддержкой — в течение пяти лет.
В любом случае, если вы используете выпуск Ubuntu, жизненный цикл которого подошёл к концу, вы не сможете установить какие-либо новые пакеты и увидите сообщение об ошибке «Невозможно определить местонахождение пакета».
Как узнать, поддерживается ваша версия Ubuntu или нет? Используйте эту простую команду, чтобы узнать это:
Для моей поддерживаемой версии отображается следующий вывод:
На данный момент вы можете забыть о стеке включения оборудования. Важная информация заключается в том, активно ли поддерживается система. В приведенном выше примере моя система поддерживается до апреля 2025 года.
Ничего не работает, что теперь?
Если веб-сайт Ubuntu Packages также показывает, что пакет недоступен для вашей конкретной версии, вам придется найти другие способы установки пакета.
Возьмите, к примеру, Shutter. Это отличный инструмент для создания скриншотов для Linux, но он не обновлялся годами, поэтому Ubuntu исключил его из Ubuntu 18.10 и более новых версий. Как теперь установить? К счастью, какой-то сторонний разработчик создал личный репозиторий (PPA), и вы можете установить его с его помощью. [Пожалуйста, прочитайте это подробное руководство, чтобы понять PPA в Ubuntu.] Вы можете искать пакеты и их PPA на веб-сайте Launchpad Ubuntu.
Имейте в виду, что вы не должны добавлять случайные (неофициальные) PPA в свой список репозиториев. Я советую придерживаться того, что предлагает ваш дистрибутив.
Если PPA отсутствуют, проверьте официальный сайт проекта и посмотрите, предоставляют ли они какие-то альтернативные способы установки приложения. Некоторые проекты предоставляют файлы .DEB или файлы AppImage. Некоторые проекты перешли на пакеты Snap.
Другими словами, зайдите на официальный сайт проекта и проверьте, изменился ли у них способ установки.
Если ничего не работает, возможно, сам проект прекращен, и в этом случае вам следует поискать его альтернативное приложение.
В конце…
Если вы новичок в Ubuntu или Linux, все может быть ошеломляющим. Вот почему я освещаю некоторые основные темы, подобные этой, чтобы вы лучше поняли, как все работает в вашей системе.
Я надеюсь, что это руководство поможет вам справиться с ошибкой пакета в Ubuntu. Если у вас есть вопросы или предложения, задавайте их в разделе комментариев.
В этой статье мы постараемся решить, что пакет "имя_пакета" не имеет ошибки кандидата на установку на серверах на базе Debian. Прошлой ночью, когда я пытался установить пакеты Openssh Server на свой только что собранный сервер Debian 11, я заметил ошибку «у пакета «openssh-server» нет кандидата на установку», которая мешала мне устанавливать какие-либо новые пакеты. Это очень распространенная ошибка в только что собранных системах на основе Debian, поэтому я решил написать об этом статью, чтобы она помогла и вам, ребята. Итак, без дальнейших проволочек, давайте сразу приступим к делу и посмотрим, что можно сделать, чтобы устранить эту ошибку.
Решено: пакет "имя_пакета" не имеет кандидата на установку в Debian
Я получал сообщение об ошибке «Пакет 'openssh-server» не имеет кандидата на установку», когда пытался установить пакет openssh-server в моей только что созданной системе Debian 11 с помощью команды apt-get install openssh-server, как вы можете видеть ниже. Подробнее о команде apt-get.
Хотя эта ошибка может возникать из-за нескольких проблем, поэтому, чтобы понять основную причину ошибки, нам нужно двигаться шаг за шагом. Чтобы решить эту проблему, первое, что вам нужно проверить, это список репозиториев в вашей системе Debian. Вы можете легко проверить это, запустив команду cat /etc/apt/sources.list, как показано ниже.
Обратите внимание, что здесь я использую пользователя root для запуска всех приведенных ниже команд. Вы можете использовать любого пользователя с доступом sudo для запуска всех этих команд. Для получения дополнительной информации см. Шаг за шагом: как добавить пользователя в Sudoers, чтобы предоставить пользователю доступ к sudo.
Поскольку в моем случае он не добавляется, поэтому я добавлю сначала, открыв этот файл с помощью моего любимого редактора nano. Я просто запущу команду nano /etc/apt/sources.list, чтобы открыть файл. Затем я добавлю ниже источник репозитория в начале файла.
После добавления репозитория я сначала попытаюсь сначала обновить все свои пакеты, выполнив команду обновления apt-get, как показано ниже.
Затем я снова попытаюсь установить пакет openssh-server с помощью команды apt-get install openssh-server, как показано ниже.
Как вы можете видеть выше, на этот раз это сработало, и теперь я могу установить свой пакет. Следовательно, подтверждается, что в моем случае проблема заключалась в отсутствии информации о репозитории на моем сервере.
Но что, если информация о репозитории также есть, но вы все равно получаете ту же ошибку? Что ж, в этом случае вам нужно проверить множество других вещей, которые могут вызвать эту ошибку. Например, вы могли забыть запустить команду apt-get update или apt update перед установкой каких-либо пакетов, поэтому в этом случае вам нужно сначала попробовать обновить пакеты сервера, прежде чем устанавливать какой-либо новый пакет.
Далее, если ваш сервер уже обновлен, возможно, пакет, который вы пытаетесь установить, недоступен в добавленных вами источниках репозитория. В моем случае пакет openssh-server был доступен в репозитории, поэтому я смог его установить, но возможно, что вы попытаетесь установить любой пакет, которого нет в добавленном источнике репозитория. Поэтому рекомендуется всегда проверять список пакетов, доступных в репозитории, прежде чем пытаться установить этот пакет. Вы всегда можете использовать поиск apt-cache
команда для поиска определенного пакета в репозитории.
Вы также можете проверить пакет в локальном списке пакетов с помощью политики apt-cache
команда, как показано ниже.
Надеюсь, приведенные выше шаги кажутся вам понятными и помогут решить проблему. В пакете "package_name" нет ошибки кандидата на установку. Пожалуйста, дайте мне знать ваши отзывы о поле для комментариев.
Вы пытались что-то установить, но Ubuntu не может с этим справиться? Apt упоминает что-то, связанное с «Нет кандидата на установку». Что это значит, откуда берется источник проблемы и можно ли это исправить?
Вот несколько способов решить эту проблему.
Что означает «Нет кандидатов на установку»?
Если вы попытаетесь установить пакет, в котором Apt не имеет информации, он уведомит вас о том, что его не удается найти. Это может произойти, если вы неправильно введете имя пакета или попытаетесь установить приложение, которого нет в репозитории.
Есть еще один случай отсутствия пакета: Apt не может найти его в обычном месте, но знает, что он существует благодаря другому пакету, который ссылается на него.
В таких случаях проблема в том, что Apt не знает, где и как его найти.
Как исправить ошибку «Нет кандидата на установку» в Ubuntu?
Начните с проверки того, была ли запись удалена при последнем обновлении, которое вы выполняли. Вам не нужно искать это в запутанных журналах. Вам просто нужно запустить еще одно обновление / обновление, чтобы установить последние версии программного обеспечения. В ходе этого процесса база данных Apt будет обновляться. Затем попробуйте установить пакет еще раз.
Если это не сработает, вы, скорее всего, найдете конкретный пакет в архиве, которого в данный момент нет в списке. Вам просто нужно найти и добавить его в исходный код вашего дистрибутива.
Интернет — полезный помощник в поиске пропавшего хранилища. После обнаружения вы можете добавить репозиторий в Ubuntu с помощью команды:
В редких случаях проблема не в отсутствии архива, а в переименованном пакете. Чтобы проверить наличие пакетов с похожими именами, используйте команду:
В зависимости от того, что вы ищете, может появиться огромный список доступного программного обеспечения. Вот совет, как сузить этот список: обычно пакет не переименовывается полностью, а только номер версии или подключевые слова. К счастью, apt-cache поддерживает Regex (регулярные выражения или регулярные выражения). Поэтому вы можете искать пакеты, начинающиеся с определенного ключевого слова.
Например, предположим, что если вы ввели приведенную выше команду с 'firefox' как PACKAGE_NAME , в этом случае вы увидите много записей со словом firefox в названии или описании. Вместо этого вы можете попробовать следующее:
Приведенная выше команда вернет список всех пакетов, имена которых начинаются с PACKAGE_NAME. Если вы заменили PACKAGE_NAME на firefox, вы должны увидеть список всех пакетов, имена которых начинаются со слова «firefox». Среди них вы наверняка найдете альтернативу той, которую ищете.
При попытке установить openssh-server на 64-разрядную версию Ubuntu 14.04 я получаю следующую ошибку:
Я вижу ту же ошибку при попытке установить любой пакет.
Это файл sources.list:
salman@salman-Inspiron:~$ sudo apt-cache policy [sudo] пароль для salman: Файлы пакетов: 100 /var/lib/dpkg/status release a=now Закрепленные пакеты: salman@salman-Inspiron:~$
4 ответа 4
Если это действительно весь ваш файл /etc/apt/sources.list, это объясняет вашу текущую ситуацию. И у меня нет объяснения, почему у вас установлен репозиторий Hardy. Я подозреваю, что вы следовали старому руководству, и в нем что-то сломалось.
Ваш первый шаг – вернуть репозитории в нужное русло. Я бы посоветовал использовать такой инструмент, как RepoGen, чтобы освоить основы, но если это не удастся, вот самые важные:
Вставьте их в нужное место с помощью sudoedit /etc/apt/sources.list (с тем же успехом вы можете выбросить эти строки о харди). Когда это будет сохранено, запустите sudo apt-get update, и тогда вы сможете снова установить что-то.
У меня была та же проблема, я попробовал все вышеперечисленное решение вместе с проверкой программного центра Ubuntu. Я не смог взломать, чтобы решить ее. Я попробовал другой способ, который сработал для меня. Вот мое решение
Во-первых, нам нужно подключиться к Интернету, чтобы процесс обновления происходил.
Если обновление не может произойти из-за /var/lib/apt/lists/lock, вы можете удалить этот файл, что поможет загрузить процесс обновления. Затем выполните следующую команду, которая должна работать
Согласен, не пытайтесь это сделать. Удаление openssh-client прошло успешно, а установка openssh-server (в моем случае) завершилась ошибкой установки. В результате я все порвал.
Это сообщение об ошибке указывает на "виртуальный пакет", который существует только в строке Provides: другого пакета или упоминается в строках Depends: , Recommends: или Suggests: других пакетов.
Читайте также: