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

Как заставить 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

решение1

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

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

Я не могу воспроизвести вашу конкретную проблему, возможно, потому что у меня установлена ​​более новая версия 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

решение2

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

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

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

sudo apt-get update

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

apt-get source libtiff4-dev

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

Связанный контент