Mar*_*ana 12 dpkg apt package-management
有没有办法(dpkg,apt?)在 Debian 中获取软件包的来源和存储库的 URL(如果可用)?
小智 10
对于最新版本:
apt-get download --print-uris package | cut -d' ' -f1
Run Code Online (Sandbox Code Playgroud)
对于特定版本
apt-get download --print-uris package=version | cut -d' ' -f1
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 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
应该做的伎俩。
尝试:
apt-get install --yes --no-download --reinstall --print-uris package-name
Run Code Online (Sandbox Code Playgroud)
您可以通过添加以下内容来提取 URL: | tail -n1 | grep -o "http[^']\+"
关于什么sudo apt-get source packageName
?它将在当前工作目录中安装最新的可用源代码树(如果可用)。
查看man apt-get
更多详细信息。