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、またはその他のバージョン管理にあるかどうか。
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
あなたのためにそれをします。
この情報は Debian Package Tracker でも確認できます。これは、パッケージがホストされているVCS(存在する場合)にリンクします。
多くのパッケージでは、これが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 Kitt はdebcheckout -d
;初めて聞いたのですが。詳細については、 Stephen Kittの回答 を参照(および賛成)してください。
あなたは完全に正しいわけではありません。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
$