web-dev-qa-db-ja.com

パッケージのソースリポジトリをdebianで知る方法は?

Debianでは、AFAIKの一部のパッケージはSubversion(有名なteam-pkg-gnome)で維持され、一部はgitで維持され、その他は他のVCSで維持されます。

apt-get source $PACKAGENAMEを実行せずに、パッケージのソースがどこにあるかを知る方法はありますか?

私は3つの方法を試しましたが、すべて失敗しました:-

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

上記のいずれも、この情報を提供/共有することはできません。

とにかく情報を入手することはありますか。ソースリポジトリを知る必要があります。名前と、それがgit、svn、またはその他のバージョン管理にあるかどうか。

9
shirish

CLIツールの使用

derobert で示されているように、VCSで管理されているDebianパッケージは、ソースパッケージのVcs-...フィールドのペアでこれを示すことになっています。

この情報を使用するのに最適なツールは、debcheckoutパッケージのdevscripts、またはapt-cache showsrcです。これらは両方とも、gnome-disk-utilityのリポジトリ情報を表示します。

apt-cache showsrc gnome-disk-utility

vCSへのリンクを含むソースパッケージに含まれるすべての情報が表示されます(リポジトリがgitを使用していると仮定すると、Vcs-Browerはブラウザで使用するためのリンクを提供し、Vcs-Gitはgitリポジトリを複製するためのリンクを提供します)::

Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-disk-utility
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-disk-utility.git

一方、

debcheckout -d gnome-disk-utility

vCS情報と関連する詳細のみが表示されます(パッケージがVCSでホストされている場合)。

チェックアウト

その後、ソースをチェックアウトしたい場合は、

debcheckout gnome-disk-utility

あなたのためにそれをします。

Webインターフェイス

この情報は Debian Package Tracker でも確認できます。これは、パッケージがホストされているVCS(存在する場合)にリンクします。

8
Stephen Kitt

多くのパッケージでは、これがVcs-*フィールドの制御情報に含まれています。 apt-cache showsrcを使用すると、(ソースパッケージをダウンロードせずに)簡単に確認できます。

$ apt-cache showsrc gnome-disk-utility
⋮
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-disk-utility
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-disk-utility.git
⋮

したがって、この場合、git clone https://salsa.debian.org/gnome-team/gnome-disk-utility.gitを実行してソースをダウンロードするか、Web https://salsa.debian.org/gnome-team/gnome-diskで参照できます。 -ユーティリティ

すべてのパッケージにVcs-*フィールドがあるわけではありません。メンテナがVCSを使用していない(または少なくともパブリックVCSを使用していない)か、その他の理由でヘッダーを追加していないため、これらが欠落している可能性があります。 apt-get source packagenameは、VCS経由ではありませんが、常にソースを取得します。同様に、 http://sources.debian.net/ ですべてのソースをオンラインで閲覧できます。

(注:deb-srcファイルにはsources.list行が必要です。)

更新:Stephen Kittdebcheckout -d;初めて聞いたのですが。詳細については、 Stephen Kittの回答 を参照(および賛成)してください。

11
derobert

あなたは完全に正しいわけではありません。Debianのソースコードはソースパッケージに含まれています。たとえば、deb-src/etc/apt/sources.listが含まれる行が必要です。

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

(それをあなたの地理と習慣に適応させてください)

次に、そのソースコードをソースからビルドするように依頼できます。 aptitude build(そして、aptitude build-depを使用して、そのビルドに必要なパッケージをインストールすることをお勧めします)。

Debianメンテナは、いくつかのアップストリームソフトウェアリポジトリに関連するパッチを組み込むことによってソースコードをパッケージ化しています。そのアップストリームソフトウェアリポジトリは、使用したいバージョン管理システムを使用します(または使用しない可能性があります)。

Debianのデータベースからデータをフェッチしているだけですが、これは古くなっているか、正しくない可能性があります。その警告とともに:

同じデータを取得するために現在行っているように、ソースをフェッチするときに、no-actフラグ-sをapt-getに渡すことができます。

$ 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
$ 

または、apt-getが使用するデータの解析を試みることができます。これは、マシンの/var/lib/apt/listsにすでに保存されています。これには、テキストファイルの解析作業が必要ですが、apt-getを繰り返し実行するよりも高速です。たとえば、私のマシンで利用可能なソースを使用すると、次のようになります。

$ 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
$ 
1
drewbenn