如何一次安装多个PPA和应用程序?
我打算在我实验室的一个工作台上安装一些通用计算机。
Ubuntu存储库中有一大堆PPA存储库和应用程序,我想在最初的Ubuntu安装后安装它们。
是否可以编写一个脚本,一次性安装所有这些应用程序和PPA,要求我只需双击可执行脚本并输入管理员密码?
我想这将是相当直接的。 有人可以指点我快速教程,或者甚至提供某种模板脚本,这样我就可以添加PPA名称和apt-get安装包吗?
谢谢。
我使用下面的简单脚本添加texworks和Ubuntu GIS PPA,然后从各自的源代码安装texworks和Quantum Gis,您可以通过添加其他PPA并将软件包名称添加到apt-get install命令行来扩展它。
#!/bin/bash echo "Adding PPAs" add-apt-repository ppa:texworks add-apt-repository ppa:ubuntugis/ubuntugis-unstable echo "updating repositories" apt-get update echo "Installing packages" apt-get install texworks qgis echo "Finished adding PPAs and insatlling applications" exit 0
bash脚本可以很容易地完成你的要求。
这是我使用的一个好的bash脚本指南的链接: http : //tldp.org/LDP/abs/html/
简单地说,你需要调用3个命令来从PPA安装
- sudo add-apt-repository ppa:
- sudo apt-get update
- sudo apt-get dist-upgrade
如果你想直接进入一个示例,我已经写了一篇博客文章,其中包含一个这样的自动bash脚本来安装来自不同来源的应用:
在脚本中,我提前要求脚本的root权限,以便命令不必像你问的那样在它前面运行sudo。
安装不同版本的libnotify时,文章中显示了从PPA安装的具体示例。
从列表中无人参与安装
对于无人参与的软件包列表安装和向我们的系统添加几个ppa ,我们可以使用以下脚本:
#! /bin/bash # Save as eg 'uptodate' and make executable # Usage: # sudo ./uptodate sudo cp $1 /etc/apt/sources.list.d/mysource.list sudo apt-get update xargs -a "$2" sudo apt-get -y install
该脚本有两个参数。 第一个是脚本目录中的文件(例如mysources
),我们根据sources.list的规范保存了我们的软件源列表,例如:
deb http://ppa.launchpad.net/// main deb http://ppa.launchpad.net/// main ...
用所需的值替换所有变量
第二个参数是一个文件(例如packages
),其中包含我们希望以以下格式安装的包列表:
packagename otherpackage ...
使用例如名称uptodate
保存脚本,使其可执行并从终端运行:
cd /directory/of/script sudo ./uptodate mysources packages
脚本做了什么?
它只是将我们的mysources
列表复制到/etc/sources.list.d/mysources.list
,更新包信息并从我们使用xargs提供的packages
列表中安装所有包。
注意:我们可能还必须从launchpad keyserver下载有效密钥才能从我们添加的ppa安装。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3
将签名密钥(此处为72D340A3)替换为适当的密钥
注意2:最好在终端中运行脚本而不是双击,因为我们确实想知道错误。