Для пакета не найден кандидат на установку debian
Этичный хакинг и тестирование на проникновение, информационная безопасность
Бывает что нужно установить пакет .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, который содержит эти пакеты, и добавлять его с помощью некоторых инструкций, которые легко найти и в Интернете.
Я бы рекомендовал это как последнее средство, так как вы могли бы повредить вашу систему. Для меня это спасло меня примерно за час переустановки.
Может ли кто-нибудь помочь мне в этом?
Сначала проверьте, существует ли пакет на самом деле:
- Перейдите на http://packages.ubuntu.com/ с помощью веб-браузера.
- Прокрутите вниз до "Поиск по каталогам пакетов"
Введите пакет, который вы пытаетесь установить, в поле "Ключевое слово".
Включить "Показывать только точные совпадения:"
Измените "Распространение", на какую версию Ubuntu вы используете.
Если результатов нет, то пакет, который вы ищете, не существует, и следующие шаги не будут работать. Может потребоваться сторонний PPA или альтернативный метод установки.
Если результаты найдены, пакет существует, и вы можете продолжить с этими шагами:
- Откройте Software Sources (или Software & Updates в 13.04+), выполнив поиск в Dash.
- Откройте вкладку "Программное обеспечение 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". Есть три обстоятельства, когда это может произойти с шоком.
- Это может произойти после установки Ubuntu, если вы не обновляете его, а затем выполняете обновления.
- Если в будущем произойдет много обновлений программного обеспечения, убедитесь, что все важные обновления / рекомендуемые обновления отключены, введя "Диспетчер обновлений" при нажатии Alt + F2 .
- Первая и вторая проблема может возникнуть даже после обновления или очистки всех обновлений. Но вечное решение: попробуйте пункты 1 и 2, затем введите sudo apt-get killmanager Если не работает, не проблема перейти к типу sudo apt-get update затем введите sudo apt-get upgrade ,
Теперь вы сможете установить любое программное обеспечение через терминал.
Часто бывает достаточно просто обновить списки пакетов из всех репозиториев и PPA:
Это должно быть первое, что нужно сделать.
Если это не сработает, вам нужно найти репозиторий или PPA, который содержит нужный вам пакет, добавить его и запустить sudo apt-get update еще раз. Шаги этого процесса подробно описаны в других ответах на этой странице.
1с Тонкий клиент linux
1c thin-client или 1с тонкий клиент. Устанавливаем в Debian 10 и в дистрибутивах на его основе, использующие deb пакеты.
Уже не первый раз приходится обновлять тонкий клиент 1с на новую версию. Если в операционной системе windows это все сводится к простому нажатию Далее, Далее и ОК, то в системах Linux как правило возникают нюансы.
Порядок установки 1c тонкого клиента
Для установки тонкого клиента в системах Linux использующих deb пакеты как правило необходимо установить два пакета.
Первым ставим пакет самого клиента, а затем ставим языковый пакет. Пакет содержащий переводы, языки отличные от английского.
Хочу напомнить, если вы используете debin 10, то для установки пакета используйте командную строку
команда будет выглядеть так
Если будете устанавливать с помощью приложения GDebi, то вначале запустите его, а потом из его меню выберите пакет для установки.
Для этого выберите пункт файл, затем открыть и в открывшемся окне выберите нужный пакет.
Распространенная ошибка с пакетом libwebkitgtk в 1с
Как правило многие столкнутся с ошибкой в зависимостях с пакетом libwebkitgtk на момент написания статьи его версия 3.0 и полное го название libwebkitgtk-3.0
Последняя цифра это, как уже догадались, его версия.
Ошибка выглядит так
Соответственно, чтоб решить эту проблему нужно добавить репозиторий с этим пакетом и установить его.
Первый вариант
Подойдет для дистрибутивов Ubuntu и Mint
Подключаем репозиторий с этим пакетом, для этого в терминале откроем sources.list идобавим его туда.
Открываем файл sources.list командой в терминале, с помощью редактора nano
В конец добавляем строчку нашего репозитория
Выглядеть это будет так
Затем сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl+x
Далее традиционно обновляемся
Ну и затем ставим пакет
Просто откройте снова его через терминал в редакторе nano
Не забудьте сохранить файл сочетанием клавиш Ctrl+O и закрываем Ctrl+x
Далее ставим наш клиент 1с, ошибок не должно быть, не забываем про пакет с поддержкой языков.
Вариант второй для Debian 10
Если у вас Debian 10 то добавьте в список репозиториев репозиторий stretch.
Откройте файл репозиториев в терминале при помощи редактора nano
Добавьте в конец репозиторий
Не забываем после изменений сохранить Ctrl+O и закрыть Ctrl+x
Далее традиционно обновимся
sudo apt update
Теперь поставим, недостающий пакет именно из того репозитория который указали
После ставим наш пакет 1с с тонким клиентом и его языковый пакет.
Ошибки со шрифтом 1с
Как правило после установки тонкого клиента многим не нравится шрифт.
Иногда не корректно отображается шрифт.
Для решения этих вопросов необходимо до установить пакеты с нужными шрифтами.
Порядок установки и их название описаны в статье по первоначальным настройкам debian и настройкам debian10.
Читайте также: