Как заставить apt-get source получить пакет, который вы запрашиваете?

$ apt-get source libtiff4
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'tiff3' as source package instead of 'libtiff4'
E: Unable to find a source package for tiff3

Если я добавлю -f, это не изменит поведение. Что заставляет его делать это и как заставить его загрузить нужный мне пакет?

Основываясь на поиске, я даже не могу сказать, откуда он взял идею tiff3

$ apt-cache search libtiff
libtiff-doc - TIFF manipulation and conversion documentation
libtiff-tools - TIFF manipulation and conversion tools
libtiff5 - Tag Image File Format (TIFF) library
libtiff5-alt-dev - Tag Image File Format library (TIFF), alternative development files
libtiff5-dev - Tag Image File Format library (TIFF), development files
libtiffxx5 - Tag Image File Format (TIFF) library -- C++ interface
gem-plugin-tiff - Graphics Environment for Multimedia - TIFF support
libtiff-opengl - TIFF manipulation and conversion tools
libtiff4 - Tag Image File Format (TIFF) library (old version)
libtiff4-dev - Tag Image File Format (TIFF) library (old version), development files
libtiffxx0c2 - Tag Image File Format (TIFF) library (old version) -- C++ interface
pngtools - series of tools for PNG (Portable Network Graphics) images
python-libtiff - wrapper to the libtiff library to Python using ctypes

2 ответа

Между бинарными пакетами и их соответствующими исходными пакетами нет отношения "один к одному". Причины этого включают в себя:

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

Я не могу воспроизвести вашу конкретную проблему, возможно, потому что у меня установлена ​​более новая версия Ubuntu. Ниже приведено пошаговое описание аналогичной проблемы с похожей библиотекой (обратите внимание, что все в моем примере уже установлено, но отображаемая информация о сопоставлении и зависимостях по-прежнему актуальна). Это должно дать некоторые хорошие советы о том, как бороться с этим типом проблемы.

Я успешно установил пакет под названием libjpeg8:

$ sudo apt-get install libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libjpeg8 is already the newest version.

Я пытаюсь получить источник, но он переназначается на что-то с суффиксом -empty,

$ apt-get source libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg8-empty' as source package instead of 'libjpeg8'
Skipping unpack of already unpacked source in libjpeg8-empty-8c

Я перечисляю зависимости желаемого пакета и замечаю libjpeg-turbo8:

$ apt-cache depends libjpeg8
libjpeg8
  Depends: libjpeg-turbo8
  Replaces: libjpeg8:i386
  Breaks: libjpeg8:i386

Я устанавливаю источник для libjpeg-turbo8и я получаю нужный мне источник:

$ apt-get source libjpeg-turbo8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg-turbo' as source package instead of 'libjpeg-turbo8'
Skipping unpack of already unpacked source in libjpeg-turbo-1.3.0

Убедитесь, что у вас есть проверка входа "Исходный код", помеченная в "Программное обеспечение и обновления".

скриншот программного обеспечения и обновлений

Если нет, отметьте его и откройте терминал и:

sudo apt-get update

(вам, вероятно, нет необходимости делать это, если вы получите диалоговое окно с просьбой перезагрузить список пакетов после того, как вы отметите галочкой, если не было), а затем выполните:

apt-get source libtiff4-dev

получить исходный код для libtiff4.

Другие вопросы по тегам