Почему apt не может найти исходный код любого пакета?

8

Я пытаюсь загрузить исходный код некоторых пакетов, например, rhythmbox, в целях обучения. Я хочу сделать это apt-getс помощью apt-get sourceкоманды.

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

$ apt-get source rhythmbox
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to find a source package for rhythmbox

Я уже давно ищу ответы, но не могу найти никого с такой же проблемой. apt-getотлично работает с установкой и обновлением, поэтому apt-getотлично работает на мой взгляд. Во время поиска я также узнал, что мне нужно включить «репозитории исходного кода» в Software Sources, так что это также включено.

Я осознаю тот факт, что (возможно, только для определенных пакетов, не уверен) исходные пакеты также можно загрузить с bzrLaunchpad, но я хочу знать, почему этот метод не будет работать.

Muurverf
источник

Ответы:

7

Откройте Центр программного обеспечения и выберите «Правка» -> «Источники программного обеспечения». Какой сервер вы используете? Я использую "Сервер и Соединенные Штаты" и просто скачал исходники для ритмбокса просто отлично. Я на Точной.

GaryBishop
источник
Спасибо за ваш ответ! Оказалось, что я использую не тот сервер. Я использовал сервер из Нидерландов. Перешли в США и теперь это работает! :) Большое спасибо!
Muurverf
я еще не пробовал ... Кстати, где хранится исходный код на машине ... или он появляется в каталоге, откуда вы запустили команду?
juggernauthk108
В директории, где вы запускаете команду, насколько я смутно помню.
GaryBishop
6

apt-get source rhythmbox работает только в том случае, если у вас включены исходные репозитории, обновлен список пакетов и у вас действительно есть этот репозиторий в ваших источниках.

Например, если вы установили обычную установку Ubuntu и не добавили репозитории apt. Тогда все, что вам нужно сделать, это убедиться, что «Исходный код» имеет проверку по нему. Если вы добавили дополнительные репо, то вам нужно иметь две записи для каждого репо. Один для «основного» (обычно) и один для «исходного».

Также на всякий случай, если вы этого не сделали. Запустите apt-get updateснова, чтобы получить все новые репо.

Теперь apt-get source устанавливает исходный код для установленного вами пакета. Это означает, что если вы установили deb из some-odd-ppa (main), то источник должен быть в some-odd-ppa (source). Пакеты, установленные из some-odd-ppa, не будут извлекать исходники из других репозиториев, потому что это не та же версия.

Я проверил и Rhythmbox доступен через исходные хранилища. Вы просто не включили правильный репозиторий исходного кода в свои репозитории apt или еще не запустили обновление apt-get.

coteyr
источник
Спасибо за ваш ответ! Оказалось, что я использовал не тот сервер.
Muurverf