在 Debian 中,据我所知,一些软件包是在 Subversion(著名的 team-pkg-gnome)中维护的,而一些软件包是在 git 中维护的,还有一些是在其他 VCS 中维护的。
有没有办法知道包的来源在哪里而无需执行apt-get source $PACKAGENAME
?
我尝试了三种方法,但都失败了:-
$apt show $PACKAGENAME
$aptitude show $PACKAGENAME
$apt-cache show $PACKAGENAME
以上均无法提供/分享此信息。
无论如何都可以获取信息。我需要知道源代码库。名称以及它是否在 git、svn 或其他版本控制中。
答案1
许多软件包都将其包含在其控制信息字段中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
下载源代码,或在网络上浏览它https://salsa.debian.org/gnome-team/gnome-disk-utility。
并非所有包都有Vcs-*
字段。它们可能会丢失,因为维护者不使用 VCS(或至少不是公共版本),或者由于某种其他原因没有添加标头。apt-get source packagename
尽管不是通过 VCS,但始终会获得源代码。同样,您可以在线浏览所有源代码http://sources.debian.net/
deb-src
(注意:您的文件中将需要这些行sources.list
。)
答案2
使用 CLI 工具
如图所示德罗伯特,在 VCS 中维护的 Debian 软件包应该在Vcs-...
其源软件包的一对字段中指示这一点。
使用此信息的最佳工具位于包debcheckout
中devscripts
,或者apt-cache showsrc
.这两个都会显示您gnome-disk-utility
的存储库信息。
apt-cache showsrc gnome-disk-utility
将显示源包中包含的所有信息,包括指向 VCS 的链接(Vcs-Brower
提供在浏览器中使用的链接,Vcs-Git
提供克隆 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 软件包跟踪器,它将链接到托管该包的 VCS(如果有)。
答案3
你并不完全正确: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 维护者通过合并与某些上游软件存储库相关的补丁来打包源代码。上游软件存储库使用(或可能不)他们想要使用的版本控制系统。