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是您想要的包,则以下任何一个都可以:aptapt-getaptitude
apt-get download $PKG
apt download $PKG
aptitude download $PKG
Run Code Online (Sandbox Code Playgroud)
这不需要root权限。也可以使用apt-getand来近似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 次 |
| 最近记录: |