Для пакета не найден кандидат на установку debian

Обновлено: 03.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Бывает что нужно установить пакет .deb для которого в стандартных репозиториях отсутствует нужная версия зависимости. Например, в зависимостях прописан пакет libcurl3, а в системе доступен только libcurl4; или в зависимостях libssl1.0.0, а в системе имеется только libssl1.0.2.

Сам по себе такой пакет .deb обычно берётся не из стандартного репозитория, поэтому надеяться, что проблема будет исправлена в будущем, особо не приходится.

При этом высока вероятность, что интересующий нас .deb пакет будет нормально работать и с libcurl4 вместо libcurl3 (может даже лучше будет работать) и с libssl1.0.2 вместо libssl1.0.0 — и так далее по аналогии, у вас могут быть свои собственные зависимости, которые вызывают проблемы.

Сразу оговорюсь, не стоит делать то, что здесь показано, с драйверами, особенно с драйверами видеокарты — слишком велика вероятность получить систему, которая загружается в чёрный экран. А с какими-нибудь прикладными программами это вполне можно попробовать — в конце-концов, если не заработает, то не заработает — просто удалим её, хуже уже не будет.

Для установки пакета его нужно скачать с официального сайта:

Пакет можно установить с помощью команды dpkg и ключей --ignore-depends:

И уже не обновить систему, не установить новые пакеты пока не удалите программу, вызывающую эти проблемы:

Поэтому лучше пойти другим путём.

По большому счёту, файл .deb — это архив, в который собраны файлы программы (исполняемые файлы, файлы настроек, конфигурационные файлы — всё то, что нужно для запуска и работы программы), а также служебные файлы, в которых содержится описание пакета, требуемые зависимости и прочая метаинформация.

Распаковываем скаченный пакет deb:

Для распаковки используем утилиту ar, которая предназначена для создания, модификации и извлечения из архивов.

В результате будут извлечены следующие файлы:

  • control.tar.gz — архив с файлами в которых содержится метаинформация
  • data.tar.xz — архив с файлами самой программы
  • debian-binary

Вообще, поскольку data.tar.xz содержит саму программу, то может возникнуть идея просто раскидать файлы в системе по нужным путям — это тоже будет работать, но мы сделаем чуть более сложно, но и более правильно.

Распаковываем контрольный архив:

Открываем текстовым редактором файл control:


Найдём там строку, начинающуюся с Depends:

То есть, это и есть список зависимостей.

Скорее всего, свой установочный файл .deb вы уже пробовали установить и уже и так знаете, каких зависимостей не хватает.

Можно сделать проверку следующим образом — берём список, который идёт после Depends:, удаляем запятые, чтобы не нарушить синтаксис apt, и пытаемся установить все эти зависимости просто дописав этот список после sudo apt install, получается следующая команда:

Итак, требуется libcurl3, но в системе есть только libcurl4. Я просто меняю в файле control запись libcurl3 на libcurl4.

Ещё один отсутствующий пакет libssl1.0.0. Поскольку указана конкретная версия, можно предположить, что версия в репозитории была обновлена и по этой причине невозможно найти то, что нужно.

Ищем по более короткому описанию версии, то есть, например вместо libssl1.0.0 я ищу libssl1:


Как можно увидеть, найдено целых два варианта: libssl1.0.2 и libssl1.1. На мой взгляд, libssl1.0.2 ближе к libssl1.0.0, поэтому я в файле control меняю запись libssl1.0.0 на libssl1.0.2.


Сохраняем и закрываем файл control.

Теперь собираем установочный файл — делаем это в обратном разбору порядке.

Я уже пробовал, поэтому я знаю, что команда пожалуется на отсутствие файла postrm, поэтому просто создаём пустой файл postrm командой:

Упаковываем всё наше «добро» в control.tar.gz:

Разберём последнюю команду чуть подробнее. Строки pre post раскрываются в следующие:

То есть, фактически в создаваемый архив добавляются файлы postinst, postrm, preinst, prerm. Эти файлы представляют собой скрипты, выполняемые на различных этапах установки/удаления:

  • preinst — выполняется перед установкой пакета
  • postinst — выполняется после установки пакета
  • prerm — выполняется перед удалением пакета
  • postrm — выполняется после удаления пакета

Они являются необязательными — то есть могут отсутствовать. Если команда tar написала, что отсутствует какой-либо файл (например, файл postrm), то отредактируйте эту команду — уберите из списка отсутствующий файл, например, вместо создания postrm можно было записать команду следующим образом:

Продолжаем. Вновь собираем deb:

Устанавливаем наш пофиксенный пакет:

Ошибка «в значении поля «Description» обнаружена пустая строка»

Если при установки пакета возникла ошибка:

То это означает, что в файле control есть последняя пустая строка — удалите эту пустую строку и пересоберите установочный файл.

После этого всё ставится как нужно:


Если вам действительно просто нужен Viber, то смотрите статью «Как установить Viber на Linux».

Вам понравилось «потрошить» .deb пакеты? Тогда смотрите подробную справочную информацию об их устройстве в статье «Структура APT пакета: разбираемся в строении пакета Debian».

Я не могу установить какой-либо пакет с помощью команды «apt-get install».

Всякий раз, когда я выполняю команду выше, чтобы установить какой-либо пакет, он показывает мне общую ошибку: E: Package <PackageName> has no installation candidate

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

Команда

Ошибка

ввод команда

Ошибка

Также я попытался обновить и обновить, используя следующую команду

Но после этого тоже; команда apt-get install также показывает ту же ошибку.

Найдите /etc/apt/sources.list содержимое файла, как показано ниже, сообщите мне, если я что-то не так в конфигурации.

Пожалуйста, помогите мне.

4 ответа

Глядя на файл sources.list, ваша проблема может заключаться в том, что вы используете только «Wheezy» , но также имеете «jessie» - если у вас предыдущий был последним без комментирования , вы, возможно, установили пакеты из более поздних версий, а затем, когда они были закомментированы снова, у вас установлены версии, которые позже те, которые присутствуют в более раннем распределении.

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

После поиска в Интернете какое-то время я нашел правильное программное обеспечение. Существует программа, называемая gdebi, которая устанавливает пакеты с зависимостями, поэтому она будет установлена ​​при запуске следующих скриптов /с рядом (надеюсь) nap, ntpdate и postfix. Эти программы созданы для систем Jessie, поэтому для их работы вам необходимо установить последний raspbian. Если по какой-то причине у вас есть старая версия, дайте мне знать, и я могу обойти это:)

Это временное исправление. Мне придется углубиться, чтобы найти реальную причину этого. Я также заметил, что сон все еще работает? Попробуйте запустить 'sudo apt-get nap' и посмотреть, работает ли это.

Выполните следующие команды:

Я прочитал некоторые комментарии, и я заметил, что @goldilocks сказал использовать armel, поэтому, если вы получаете ошибки, попробуйте следующее:

Это обычно означает, что пакет существует, но он недоступен из источника приложения Raspberry Pi.

Попробуйте выполнить следующие команды:

Если вам не повезло, я рекомендую искать в google для репозитория ArmHF, который содержит эти пакеты, и добавлять его с помощью некоторых инструкций, которые легко найти и в Интернете.

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

Может ли кто-нибудь помочь мне в этом?

Сначала проверьте, существует ли пакет на самом деле:

  1. Перейдите на http://packages.ubuntu.com/ с помощью веб-браузера.
  2. Прокрутите вниз до "Поиск по каталогам пакетов"

Введите пакет, который вы пытаетесь установить, в поле "Ключевое слово".

Включить "Показывать только точные совпадения:"

Измените "Распространение", на какую версию Ubuntu вы используете.

введите описание изображения здесь

Если результатов нет, то пакет, который вы ищете, не существует, и следующие шаги не будут работать. Может потребоваться сторонний PPA или альтернативный метод установки.

Если результаты найдены, пакет существует, и вы можете продолжить с этими шагами:

  1. Откройте Software Sources (или Software & Updates в 13.04+), выполнив поиск в Dash.
  2. Откройте вкладку "Программное обеспечение Ubuntu".

Убедитесь, что первые 4 флажка на этой вкладке включены:

введите описание изображения здесь

Обновите списки пакетов, затем протестируйте их с помощью следующих команд:

Есть много вопросов по этой теме. Здесь я даю основной / общий ответ.

когда apt-get install не может найти пакет, пакет, который вы хотите установить, не может быть найден в репозиториях, которые вы добавили (в /etc/apt/sources.list и под /etc/apt/sources.list.d/ ).

Следующая (общая) процедура помогает решить эту проблему:

Убедитесь, что вы включили репозитории Ubuntu:

Чтобы включить все репозитории ( main , universe , restricted , multiverse ), используйте следующие команды:

Посетите справку для получения дополнительной информации.

Для поиска PPA для дополнительных пакетов:

экран

  • Перейти к поиску пакетов Ubuntu. (Уже объяснил в этом ответе)
  • Для внешних репозиториев посетите Обновления Ubuntu и выполните поиск по кнопка. или посетите PPA.
  • Или поиск в панели запуска ppa
  • Найдите подходящий ppa в соответствии с вашей версией Ubuntu.

Добавьте PPA (из командной строки):

Используйте эту команду:

Посетите справку сообщества Ubuntu для получения дополнительной информации.

Не забудьте обновить (сообщить о своих изменениях):

Необходимо выполнить эту команду после изменения любых репозиториев:

Выбор лучшего сервера загрузки может помочь ускорить обновление.

Наконец, установите пакет:

Дополнительно / Совет: вы можете найти правильное имя пакета (то есть имя в хранилище), используя apt-cache search <package-name> ,

Связанные часто задаваемые вопросы и ответы:

Примечание. Если пакет недоступен в хранилище каким-либо образом, вам придется подождать, пока он станет доступен (в случае новых / обновленных версий), или использовать другие процессы установки, кроме apt-get например, компиляция из исходного кода, загрузка исполняемого двоичного файла и т. д.

xbmc доступен только в репозитории юниверсов, только начиная с Ubuntu 12.04 (точнее). Если у вас более старая версия Ubuntu, вам нужно обновить или получить xbmc из другого места.

Если у вас Ubuntu 12.04, убедитесь, что вы включили хранилище юниверсов. Вы можете увидеть, какие репозитории вы включили в файл /etc/apt/sources.list (и в файлах в каталоге /etc/apt/sources.list.d ). Убедитесь, что этот файл содержит строку вроде

Если вы найдете только строку, как

и не соответствует universe , добавлять universe в конце этой строки или отдельной строкой с precise universe , как показано выше.

Если вам нужно изменить /etc/apt/sources.list , бежать sudo apt-get update затем попробуйте установить снова. Если пакет все еще не найден, опубликуйте полное содержание /etc/apt/sources.list и выход sudo apt-get update ,

В случае, когда пытались установить файл:

потому что вы пытались установить файл libstdc++.so.6 что вы не можете установить, потому что он находится в пакете debian.

Ты можешь использовать apt-file искать пакет, содержащий этот файл. Чтобы установить его, введите:

Затем вы должны обновить индекс.

После этого вы можете искать пакет, который содержит файл libstdc++.so.6 :

Затем вы найдете много пакетов, которые содержат искомый файл. Для этого примера я вставляю только один результат поиска:

Затем вы можете установить необходимый пакет libstdc++6 :

Я новичок в Ubuntu, но я пишу это, поскольку я обнаружил некоторые решения, чтобы избежать ошибок "Unable to Locate Package". Есть три обстоятельства, когда это может произойти с шоком.

  1. Это может произойти после установки Ubuntu, если вы не обновляете его, а затем выполняете обновления.
  2. Если в будущем произойдет много обновлений программного обеспечения, убедитесь, что все важные обновления / рекомендуемые обновления отключены, введя "Диспетчер обновлений" при нажатии Alt + F2 .
  3. Первая и вторая проблема может возникнуть даже после обновления или очистки всех обновлений. Но вечное решение: попробуйте пункты 1 и 2, затем введите sudo apt-get killmanager Если не работает, не проблема перейти к типу sudo apt-get update затем введите sudo apt-get upgrade ,

Теперь вы сможете установить любое программное обеспечение через терминал.

Часто бывает достаточно просто обновить списки пакетов из всех репозиториев и PPA:

Это должно быть первое, что нужно сделать.

Если это не сработает, вам нужно найти репозиторий или PPA, который содержит нужный вам пакет, добавить его и запустить sudo apt-get update еще раз. Шаги этого процесса подробно описаны в других ответах на этой странице.

propk.ru

1с Тонкий клиент linux

1c thin-client или 1с тонкий клиент. Устанавливаем в Debian 10 и в дистрибутивах на его основе, использующие deb пакеты.

Уже не первый раз приходится обновлять тонкий клиент 1с на новую версию. Если в операционной системе windows это все сводится к простому нажатию Далее, Далее и ОК, то в системах Linux как правило возникают нюансы.

Порядок установки 1c тонкого клиента

Для установки тонкого клиента в системах Linux использующих deb пакеты как правило необходимо установить два пакета.

Первым ставим пакет самого клиента, а затем ставим языковый пакет. Пакет содержащий переводы, языки отличные от английского.

1с пакеты тонкого клиента и порядок их установки

Хочу напомнить, если вы используете debin 10, то для установки пакета используйте командную строку

команда будет выглядеть так

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

интерфейс программы gdebi

Для этого выберите пункт файл, затем открыть и в открывшемся окне выберите нужный пакет.

Распространенная ошибка с пакетом libwebkitgtk в 1с

Как правило многие столкнутся с ошибкой в зависимостях с пакетом libwebkitgtk на момент написания статьи его версия 3.0 и полное го название libwebkitgtk-3.0

Последняя цифра это, как уже догадались, его версия.

Ошибка выглядит так

1с ошибка связанная с пакетом libwebkitgtk-3.0

Соответственно, чтоб решить эту проблему нужно добавить репозиторий с этим пакетом и установить его.

Первый вариант

Подойдет для дистрибутивов Ubuntu и Mint

Подключаем репозиторий с этим пакетом, для этого в терминале откроем sources.list идобавим его туда.

Открываем файл sources.list командой в терминале, с помощью редактора nano

В конец добавляем строчку нашего репозитория

Выглядеть это будет так

1c добавляем репозиторий libwebkitgtk-3.0

Затем сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl+x

Далее традиционно обновляемся

Ну и затем ставим пакет

libwebkitgtk-3.0-0 - процесс установки пакета

Просто откройте снова его через терминал в редакторе nano

Не забудьте сохранить файл сочетанием клавиш Ctrl+O и закрываем Ctrl+x

Далее ставим наш клиент 1с, ошибок не должно быть, не забываем про пакет с поддержкой языков.

Вариант второй для Debian 10

Если у вас Debian 10 то добавьте в список репозиториев репозиторий stretch.

Откройте файл репозиториев в терминале при помощи редактора nano

Добавьте в конец репозиторий

Не забываем после изменений сохранить Ctrl+O и закрыть Ctrl+x

Далее традиционно обновимся

sudo apt update

Теперь поставим, недостающий пакет именно из того репозитория который указали

После ставим наш пакет 1с с тонким клиентом и его языковый пакет.

Ошибки со шрифтом 1с

Как правило после установки тонкого клиента многим не нравится шрифт.

Иногда не корректно отображается шрифт.

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

Порядок установки и их название описаны в статье по первоначальным настройкам debian и настройкам debian10.

Читайте также: