Пакет linux headers generic недоступен но упомянут в списке зависимостей другого пакета

Обновлено: 01.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».


посмотрите, чего не хватает в sources.list - почему не может найти kernel-headers?

"соответственно, делай"
"sudo apt-get install linux-headers-generic"

Точно? Прям-таки generic? А как насчет конкретики?
sudo apt-get install linux-headers-$(uname -r)

это я делал, только вот что выходит:

unable to build NVIDIA Kernel module

смотри, мол, nvidia-installer.log
в той теме я все описал, и файлы приложил, а что делать? - не пойму

во-первых откройте терминал, дайте команду sudo apt-get install linux-headers-$(uname -r) введите пароль root-а и скопируйте сюда буква-в-букву ВСЕ что выдаст эта команда.
во-вторых если вам надо поставить драйвер nvidia установите программу envyng-gtk , запустите ее и щелкните кнопку "установить драйвер nvidia". далее программа сделает все за вас. Если что-то не сработает копируете буква-в-букву сюда ВСЕ что выводится в окне программы.

п.с. вам уже в той теме все подробно рассказали а вы все на месте топчетесь. что теперь будете 10 одинаковых тем создавать?

во-первых откройте терминал, дайте команду sudo apt-get install linux-headers-$(uname -r) введите пароль root-а и скопируйте сюда буква-в-букву ВСЕ что выдаст эта команда.
во-вторых если вам надо поставить драйвер nvidia установите программу envyng-gtk , запустите ее и щелкните кнопку "установить драйвер nvidia". далее программа сделает все за вас. Если что-то не сработает копируете буква-в-букву сюда ВСЕ что выводится в окне программы.

п.с. вам уже в той теме все подробно рассказали а вы все на месте топчетесь. что теперь будете 10 одинаковых тем создавать?

то, что там рассказали - у меня не работает. неужели непонятно?


про envyng я писал, что он предлагает три драйвера ставить на выбор - все пробовал, а автоматом - один из них, разницы нет. Я ставил драйвер, который у меня отлично работал на предыдущих Убунтах - а здесь не вышло - я выставил протокол установки - но никто про него ничего не сказал.

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

Если версия вашего ядра не менялась после установки дистрибутива, или вы обновляли его с использованием системного менеджера пакетов (то есть apt-get, aptitude или yum) из системных репозиториев, то заголовочные файлы вы также можете установить с помощью пакетного менеджера. Однако если вы скачивали исходный код ядра и компилировали его самостоятельно, то заголовочные файлы необходимо устанавливать с помощью команды make.

Здесь мы предполагаем, что ваше ядро установлено из основного системного репозитория вашего дистрибутива, и вы хотите установить соответствующие заголовочные файлы ядра.

Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint

Если вы не компилировали ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды apt-get.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы с помощью команды:

Теперь установите заголовочные файлы, как показано ниже.

установка заголовочных файлов

Проверьте, что установка прошла успешно.

По умолчанию в Debian, Ubuntu или Linux Mint заголовочные файлы находятся в /usr/src.

Установка заголовочных файлов ядра в Fedora, CentOS или RHEL

Если вы не обновляли ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды yum.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы. По умолчанию заголовочные файлы ядра расположены в /usr/src/kernels/.
Если подходящих заголовочных файлов не установлено, вы можете установить их с помощью команды yum. Она автоматически найдет подходящий пакет.

установка заголовочных файлов

Если заголовочные файлы ядра, установленные с помощью вышеприведенной команды, не соответствуют установленному в системе ядре, значит оно устарело. В этом случае обновите ядро системы до последней версии с помощью приведенной ниже команды. После обновления необходимо перезагрузить систему.

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

Проблемы с установкой драйвера на веб-камеру Ricoh Co., Ltd Visual Communication Camera VGP-VCC7 [R5U870]

Система debian 9
скачал два файла

ricoh-webcam-r5u870-firmware_0.11.6-0arakhne0_amd64.deb установился нормально, а вот второй

Помогите пожалуйста установить драйвер для этой веб-камеры, очень нужна!

и у меня сразу второй вопрос:

Как в debian 9 в графическом столе kde отключить блокирование сеанса при бездействии (именно блокирование, а не гашение экрана). Что то я в параметрах системы соответствующих настроек не нашёл.


За помощь заранее благодарен!

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

Итак:
Необходимо потсавить драйвер к веб-камере
Ricoh Visual Communication Camera VGP-VCC7 [R5U870] на debian 9 64 бит,
это встроенная веб-камера на ноутбуке vaio sony pcg-6s5p.

r5u87x-loader. -archive-extra
Если не установлены ставим следующие программы:
apt-get -y install pm-utils kmod build-essential fakeroot dpkg-dev debhelper cdbs libglib2.0-dev
потом распаковываем ранее скачанный пакет командой:
dpkg-source -x r5u87x_0.2.1+r64+dfsg1-0ppa12.dsc
он распаковывается в папку:
r5u87x-0.2.1+r64+dfsg1
входим в неё и выполняем команду:
sed -i 's/module-init-tools/kmod/g' ./debian/control
заменяя тем самым module-init-tools на kmod, так как в debian 9
module-init-tools уже нету.
Далее командой:
dpkg-buildpackage -rfakeroot -b
собираем этот пакет, в каталоге выше должен появиться пакет:
r5u87x_0.2.1+r64+dfsg1-0ppa12_amd64.deb
и далее командой:
dpkg -i ../r5u87x_0.2.1+r64+dfsg1-0ppa12_amd64.deb
устанавливаем его.
После всего этого в папке /etc/init.d должен появиться
стартовый скрипт: ricoh-webcam-r5u870
который при запуске пытается запустить модуль ядра r5u870.
Но в результате вышеописанных манипуляци модуль ядра так и не скомпилировался.
Наверное надо запустить этот скрипт, но я просто перезагрузился.
После перезагрузки появился файл /dev/video0 (модуль ядра r5u870 так и не появился)
через который теперь все приложения и осуществляют работу с данной веб-камерой.

Нашёл как отключить блокировку экрана:
K меню запуска приложений -> Параметры системы -> Поведение рабочей среды -> Блокировка экрана
Снять галочку Блокировать экран автоматически после.

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