首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在下载apt之前运行命令?

如何在下载apt之前运行命令?
EN

Unix & Linux用户
提问于 2015-05-19 20:00:21
回答 4查看 6.1K关注 0票数 8

如何在apt-get开始下载包之前运行命令?

我知道dpkg预调用钩子( 用钩子把脚本挂起来 ),但这似乎是在下载之后运行的。

代码语言:javascript
运行
复制
$ apt-get update
Get: 11 http://security.debian.org/ wheezy/updates/main qemu amd64 1.1.2+dfsg-6a+deb7u7 [115 kB]
Fetched 70.9 MB in 10s (6,776 kB/s)
refreshing freenet index
--2015-05-19 15:55:25--  http://127.0.0.1:8888/freenet:USK@oRy7ltZLJM-w-kcOBdiZS1pAA8P-BxZ3BPiiqkmfk0E,6a1KFG6S-Bwp6E-MplW52iH~Y3La6GigQVQDeMjI6rg,AQACAAE/deb.mempo.org/-42/

我们需要的是在下载之前运行一个命令。更确切地说:脚本必须在调用apt-get之后运行,但在apt-get访问任何在线资源之前运行。

有什么像下载前挂钩的东西吗?

重要的是,不需要替换apt脚本就可以完成安装工作(也不需要做任何可以通过更新来撤消的操作)。

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2015-06-01 08:44:57

首先确定apt在何处使用whereis apt-getwhich apt-get;我将假定它在/usr/bin/apt中。

然后用以下内容在/usr/local/bin/apt中创建一个文件:

代码语言:javascript
运行
复制
#!/bin/bash
# (commands to run before apt-get)
exec /usr/bin/apt-get "$@"

现在是chmod +x /usr/local/bin/apt-get

这应该在发行版的所有升级中存活下来,但是它不应该改变apt的行为(除了在执行任何其他操作之前运行命令)。更重要的是,它可以解析命令行参数,只在真正需要时运行命令。

(这个答案建立在Mohammad Etemaddar的答复的基础上,并与来自muru的反馈进行了合并)

票数 3
EN

Unix & Linux用户

发布于 2016-02-17 04:40:34

那么使用apt前后调用钩子呢?

本质上,它类似于dpkg的前后调用钩子,但对于apt (我假设这实际上是您的使用场景中的重要部分)。AFAIK还有其他的,但我只这样用过。

例如。

代码语言:javascript
运行
复制
$ sudo cat /etc/apt/apt.conf.d/05new-hook
APT::Update::Pre-Invoke {"your-command-here"};
票数 8
EN

Unix & Linux用户

发布于 2015-05-19 20:25:56

您可以在.bashrc文件中使用“别名”。例如,将其放在根.bashrc文件中:

代码语言:javascript
运行
复制
alias apt-get='echo blahblah && apt-get'

命令行参数将自动添加到别名的末尾。

只需用所需的命令替换echo blahblah即可。

但在这种情况下,它只在以root用户身份执行命令时才起作用(而不是sudo)。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/204414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档