Lek*_*eyn 56 package-management apt
我经常对安装触发器(postinst、postrm)或包的某些部分(如/usr/share
和/etc
)感兴趣。目前,我正在运行下一个命令来检索源代码:
apt-get source [package-name]
Run Code Online (Sandbox Code Playgroud)
缺点是,这个文件通常比二进制包大得多,并且不反映安装树。
现在,我正在通过http://packages.ubuntu.com/下载软件包:
[package-name]
这对我来说太长了,作为一个真正喜欢 shell 的人,我想做一些类似下一个(虚构的)命令的事情:
apt-get get-deb-file [package-name]
Run Code Online (Sandbox Code Playgroud)
我在apt-get 手册页中找不到这样的东西。我发现最接近的是--download-only
开关,但这会将包放入/var/cache/apt/archives
(需要 root 权限)而不是当前目录中。
Kee*_*ook 76
您可以使用,或的download
子命令。例如,如果$PKG是您想要的包,则以下任何一个都可以:apt
apt-get
aptitude
apt-get download $PKG
apt download $PKG
aptitude download $PKG
Run Code Online (Sandbox Code Playgroud)
这不需要root权限。也可以使用apt-get
and来近似wget
:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2)
Run Code Online (Sandbox Code Playgroud)
但是,这将获取安装软件包所需的所有软件包,因此您可以尝试限制它:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | grep "/${PKG}_")
Run Code Online (Sandbox Code Playgroud)
您还可以将 wget 行放入函数中,以便能够将其用作命令 apt-download 并将包名称作为参数:
function apt-download { wget -c $(apt-get install --reinstall --print-uris -qq $1 | cut -d"'" -f2); }
Run Code Online (Sandbox Code Playgroud)
请注意修改:$PKG 替换为 $1,-c 参数允许继续中断下载。
sudo apt-get -o dir::cache::archives="/path/to/folder/" -d install package
Run Code Online (Sandbox Code Playgroud)
笔记:
您需要在目标文件夹中创建一个名为 partial 的文件夹。
小智 5
在 Ubuntu 14.04(我相信是apt
包版本1.0.1ubuntu2
)中,apt-get
包含download
将给定包下载为.deb
当前目录中的命令。
例如,假设我们要下载文件管理器Ranger
:
$ apt-get download ranger
Run Code Online (Sandbox Code Playgroud)
结果是:
$ ls . | grep ranger
ranger_1.6.0-1_all.deb
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
92807 次 |
最近记录: |