脚本自动安装软件包

我想写一个bashperl脚本来在我的基于debian的机器上安装一些软件包。

我希望它是这样的:

aptitude install package1 aptitude install package2 

但是,我不知道如何在提示中通过脚本自动说“是”,以确认您想要安装该软件包。 有人可以给我一个Perl和bash的例子吗?

格拉茨!

aptitude install -y package1 package2 package3

我想这不是一个真正的脚本,但你可以安装puppet和使用包types。 那么它只是一个用一堆package指令创build一个文件的问题。

例如:

 package { zsh: ensure => latest } package { vim-enhanced: ensure => latest, name => $operatingsystem ? { 'centos' => 'vim-enhanced', 'ubuntu' => 'vim', } } 

你也可以使用puppet自定义一些其他的东西,比如你的shell,你的.rc文件等,如果你有心情扩展你的范围。 这可能听起来像是过火了,但从长远来看,额外努力的一点点可能会有所回报。

除了使用-y标志作为肯定的答案之外,你还需要设置DEBIAN_FRONTEND =非交互式以防止debconf设置问题出现。

 DEBIAN_FRONTEND=noninteractive apt-get install PACKAGE -y 

话虽如此,但从长远来看,遵循凯尔的build议,看看像Puppet这样的configurationpipe理系统可能是一条更好的道路。

我的答案是比原来的问题略宽一些,但是如果你想从头开始重复这样的操作,在你设置的多台机器上,那么我build议你花时间看看pxeboot 。 (我假设你是一个提到天赋的Debian衍生物)。 学习曲线陡峭,文档有点不整齐,但如果你需要的话,值得坚持下去。

如果你必须定期做这样的机器,这是一个不容易的事情。 我们有大约8分钟的时间从空白到完全configuration的机器,有大量的自定义包,自动安装。

对于奖励点,也可以考虑一些适当的caching机制。

一个完美的设置是从虚拟机映像中创build一个构build服务器/适配器caching,以避免污染现有的机器