apt-get build-dep не в змозі знайти вихідний пакет


16

Я вже дотримувався цього керівництва, щоб відключити середню кнопку вставки миші на моєму Ubuntu 12.04.

Працює як шарм.

Зараз я намагаюся досягти того ж на моєму Linux Mint 17. Коли я намагаюся

sudo apt-get build-dep libgtk2.0-0

це дає мені такий вихід:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

Для мене це виглядає як APT-GET як - то «рішення» , 'libgtk2.0-0'щоб 'gtk+2.0', але не знаходить пакет з ім'ям , як це.

EDIT: хоча я зараз вмію складати програму (див. Мою відповідь), я все ще не знаю, що Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'це повинно означати. Будь-яке розуміння цього буде вдячне, дякую!


Чи ввімкнено відповідне deb-srcсховище у вашому /etc/apt/sources.list?
steeldriver

Відповіді:


18

Як уже зазначали інші, переконайтеся, що для кожного deb …запису в, /etc/apt/sources.listі у /etc/apt/sources.list.d/*вас є відповідна deb-src …запис. Решта рядка повинна бути однаковою. debЗапис для бінарних пакетів (тобто готовий до установки), то deb-srcдля вихідних пакетів (тобто готовий до компіляції). Причина, по якій два види джерел розділені, полягає в тому, що ними керують дуже по-різному: бінарні пакети мають механізм відстеження залежностей та встановлений на даний момент список, тоді як вихідні пакети відстежуються лише для зручного завантаження. Зверніть увагу , що під час обговорення репозиторії пакетів, слово джерело означає дві незв'язані речі: джерело, в місці для завантаження пакетів з і вихідного пакета , на відміну від бінарного пакета.

libgtk2.0-0- це назва двійкового пакету. Він побудований з вихідного пакету під назвою gtk+2.0. Причина джерела та назви бінарних пакетів не завжди збігається в тому, що побудова вихідного пакету може створювати кілька двійкових пакетів; наприклад, gtk+2.0є джерелом для 14 пакетів, оскільки він розділений на дві бібліотеки ( libgtk2.0, libgail ), corresponding packages to build programs using these libraries (… -dev ), documentation for developers (… -doc ), companion programs (libgtk2.0-bin`) тощо.

Ви можете побачити ім'я вихідного пакета, що відповідає двійковому пакунку, перевіривши Source: …рядок у висновку dpkg -s BINARY_PACKAGE_NAME(якщо пакет встановлений) або apt-cache show BINARY_PACKAGE_NAME. Ви можете перелічити бінарні пакунки, створені пакетом джерела aptitude search '?source-package(^SOURCE_PACKAGE_NAME$).

Команда apt-get sourceзавантажує вихідний пакет. Якщо ви дасте йому аргумент, який не є відомим вихідним пакетом, він шукає його в базі даних встановлених бінарних пакетів і намагається завантажити відповідний вихідний пакет. Команда apt-get build-depдотримується того ж підходу до виводу імені вихідного пакета, після чого запитує базу даних вихідного пакета для отримання списку бінарних пакетів (список у Build-Dep:полі) та встановлює ці двійкові пакети.

Графічний інтерфейс програмного забезпечення "Джерела програмного забезпечення" має прапорець "Увімкнути сховища з вихідним кодом" для офіційних сховищ, переконайтесь, що він позначений. Якщо ви додаєте сторонні сховища вручну, переконайтеся, що ви додали обидва deb-srcта debрядки.


6

Завдяки @steeldriver я зрозумів, що робити.

Просто довелося додати мою таку лінг /etc/apt/sources.list:

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

репозиторії deb-src містять пакети джерел (на відміну від двійкових, готових до встановлення пакетів), необхідних для компіляції.

Редагувати: Після додавання цього потрібно виконати sudo apt-get update


5

Метод CLI

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Тестовано на зображенні Docker Ubuntu 18.04. Після цієї зміни я можу успішно зробити, наприклад:

sudo apt-get build-dep hello

і перед зміною не вдалося з помилкою:

E: You must put some 'source' URIs in your sources.list

software-properties-gtk опція "Вихідний код"

З GUI можна запустити:

software-properties-gtk

потім на вкладці "Програмне забезпечення Ubuntu" натисніть "Вихідний код":

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

Це додало deb-srcрядки під /etc/apt/sources.list, і тепер я можу це зробити sudo apt-get build-dep <package>.

Тестували на Ubuntu 16.04 по 18.04.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.