Como saber o repositório de origem de um pacote no debian?

8

No Debian, AFAIK alguns pacotes são mantidos no Subversion (famoso team-pkg-gnome), enquanto alguns são mantidos no git e outros em algum outro VCS.

Existe uma maneira de saber onde a origem de um pacote é sem fazer um apt-get source $PACKAGENAME ?

Eu tentei três métodos e todos falharam: -

$apt show $PACKAGENAME
$aptitude show $PACKAGENAME 
$apt-cache show $PACKAGENAME 

nenhuma das opções acima é capaz de fornecer / compartilhar essas informações.

Existe de qualquer maneira para obter as informações. Eu preciso saber o repositório de origem. nome e se está em git, svn ou algum outro controle de versão.

    
por shirish 20.08.2015 / 22:14

4 respostas

8

Usando ferramentas CLI

Como indicado por derobert , os pacotes Debian que são mantidos em um VCS devem indicar isso em um par de Vcs-... campos no pacote de origem.

A melhor ferramenta para usar essas informações é debcheckout no devscripts package ou apt-cache showsrc . Ambos mostrarão as informações do repositório gnome-disk-utility .

apt-get showsrc gnome-disk-utility

mostrará todas as informações contidas no pacote fonte, incluindo links para o VCS ( Vcs-Brower fornece um link para uso em um brower, Vcs-Git fornece o link para clonar o repositório git, assumindo que o repositório usa git) :

Vcs-Browser: https://anonscm.debian.org/cgit/pkg-utopia/gnome-disk-utility.git
Vcs-Git: git://anonscm.debian.org/pkg-utopia/gnome-disk-utility.git

enquanto

debcheckout -d gnome-disk-utility

mostrará apenas as informações do VCS e os detalhes pertinentes (se o pacote estiver hospedado em um VCS).

Checkout

Se você quiser verificar a origem,

debcheckout gnome-disk-utility

fará isso por você.

Interface da Web

Você também pode ver esta informação no Debian Package Tracker , que irá linkar ao VCS onde o pacote está hospedado (se houver é um).

    
por 20.08.2015 / 23:36
11

Muitos pacotes incluem isso em suas informações de controle nos campos Vcs-* . Você pode vê-lo facilmente (e sem baixar o pacote fonte) usando apt-cache showsrc .

$ apt-cache showsrc gnome-disk-utility
⋮
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-utopia/gnome-disk-utility.git
Vcs-Git: git://anonscm.debian.org/pkg-utopia/gnome-disk-utility.git
⋮

Então, neste caso, você pode fazer um git clone git://anonscm.debian.org/pkg-utopia/gnome-disk-utility.git para baixar o código-fonte ou navegar na web em link .

Nem todos os pacotes possuem campos Vcs-* . Eles podem estar faltando porque o mantenedor não usa um VCS (ou pelo menos não um public), ou não adicionou os cabeçalhos por algum outro motivo. apt-get source packagename sempre obterá a fonte, embora não através de um VCS. Da mesma forma, você pode procurar todas as fontes on-line no link

(Nota: você precisará de deb-src linhas no seu arquivo sources.list .)

Atualização: Stephen Kitt aponta debcheckout -d ; primeira vez que eu ouvi falar disso também. Veja (e upvote) a resposta de Stephen Kitt para detalhes.

    
por 20.08.2015 / 22:35
1

Você não está totalmente certo: o código fonte do Debian está nos pacotes fonte: você precisa de algumas linhas com deb-src no seu /etc/apt/sources.list , como, por exemplo.

 deb-src http://ftp2.fr.debian.org/debian/ jessie main contrib non-free

(adapte isso à sua geografia e hábitos)

Em seguida, você pode solicitar que o código-fonte seja criado a partir da fonte usando, por exemplo, aptitude build (e você pode querer usar aptitude build-dep para instalar os pacotes necessários para essa compilação).

Os mantenedores do Debian estão empacotando o código-fonte, incorporando seus patches em relação a algum repositório de software upstream. Esse repositório de software upstream usa (ou talvez não) o sistema de controle de versão que deseja usar.

    
por 20.08.2015 / 22:24
1

Você está apenas buscando dados do banco de dados do Debian, que podem estar desatualizados ou incorretos. Com essa ressalva:

Você pode passar o no-act flag, -s para o apt-get ao buscar a fonte como você está fazendo agora para obter os mesmos dados:

$ apt-get -s source konsole
Reading package lists... Done
Building dependency tree       
Reading state information... Done
NOTICE: 'konsole' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/pkg-kde/kde-sc/konsole.git
Need to get 465 kB of source archives.
Fetch source konsole
$ 

Você também pode tentar analisar os dados que apt-get usa, já armazenados em sua máquina em /var/lib/apt/lists , o que levará algum trabalho de análise de arquivos de texto, mas provavelmente é mais rápido do que executar repetidamente apt-get . Por exemplo, com as fontes disponíveis na minha máquina:

$ grep -hE '^Vcs-' /var/lib/apt/lists/* 2>/dev/null | grep -v Vcs-Browser | sort -u | sed s/:.*// | uniq -c
      7 Vcs-Arch
    175 Vcs-Bzr
      9 Vcs-Cvs
    721 Vcs-Darcs
  11323 Vcs-Git
     53 Vcs-Hg
     23 Vcs-Mtn
   3394 Vcs-Svn
$ 
    
por 20.08.2015 / 22:34