Получить источники пакетов и ссылку на репозиторий

10

Есть ли способ (dpkg, apt?) Получить исходные коды пакета и URL-адрес хранилища, если таковой имеется, в Debian?

Мариус Котофана
источник

Ответы:

3

Как насчет sudo apt-get source packageName? Он устанавливает новейшее доступное дерево исходных текстов, если оно доступно, в текущем рабочем каталоге.

Проверьте man apt-getдля более подробной информации.

jippie
источник
Мне нужно только имя. Есть ли способ получить это? Кроме того, как я могу получить URL-адрес git-репо, откуда он загружает пакет?
Мариус Котофана
3
Здесь нет реальной необходимости sudo, верно?
sr_
6

для последней версии:

apt-get download --print-uris package | cut -d' ' -f1

для конкретной версии

apt-get download --print-uris package=version | cut -d' ' -f1
Omriko
источник
5

apt-cache policy package показывает, какие версии могут быть установлены из каких репозиториев.

bash$ apt-cache policy dpkg
dpkg:
  Installed: 1.16.1.2ubuntu7.1
  Candidate: 1.16.1.2ubuntu7.1
  Version table:
 *** 1.16.1.2ubuntu7.1 0
        500 http://fi.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://mirrors.nic.funet.fi/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     1.16.1.2ubuntu7 0
        500 http://fi.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
tripleee
источник
5

Чтобы получить источник:
Проверьте, что у вас есть deb-srcстрока /etc/apt/sources.list.
От имени пользователя root запустите apt-get build-dep package.
Как обычный пользователь, запустите apt-get source package.

Чтобы получить URL, перейдите на http://packages.debian.org/source/sourcepackage. Затем вы получите список различных версий в поддерживаемых архивах.
Если имя пакета с исходным кодом отличается от двоичного, оно находится в описании пакета, кажется, 2-я строка.
grep -A1 binpackagename /var/lib/apt/*Packages |grep Sourceдолжен сделать свое дело.

М Ноит
источник
5

Пытаться:

apt-get install --yes --no-download --reinstall --print-uris package-name

Вы можете извлечь только URL, добавив: | tail -n1 | grep -o "http[^']\+"

Амра
источник
у меня не работает
lalebarde
Работал на меня, спасибо. Важная часть--print-uris
Габриэль Devillers
Не работает, если в пакете есть неудовлетворенные депы
Эван Кэрролл
0

Вы можете использовать сайт pkgs.org, где вы можете искать пакеты. Это даст вам пакет и путь к хранилищу.

linuxexplore
источник
0

Вы можете использовать очень простой скрипт apt-url, который используется apt-moveза кулисами, чтобы показать URL пакета.

Этот скрипт можно найти по адресу:

https://github.com/leitao/apt-url

Брено Лейтау
источник