我打算在实验室的一个工作台上安装几台通用计算机。
在初始安装 Ubuntu 之后,我想要安装 Ubuntu 存储库中的一大堆 PPA 存储库和应用程序。
是否可以编写一个脚本,一次性安装所有这些应用程序和 PPA,只需要我双击可执行脚本并输入管理员密码?
我想这应该相当简单。有人能给我一个快速教程,或者甚至提供某种模板脚本,以便我可以添加 PPA 名称和 apt-get 安装包吗?
谢谢。
答案1
我使用下面的简单脚本来添加 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
答案2
Bash 脚本可以非常轻松地完成您的要求。
下面是我使用的优秀 bash 脚本指南的链接: http://tldp.org/LDP/abs/html/
简单来说,你需要调用 3 个命令来从 PPA 安装
- sudo add-apt-repository ppa:
- sudo apt-get 更新
- sudo apt-get dist-upgrade
如果你想直接看一个例子,我已经写了一篇博客文章,其中有一个这样的自动 bash 脚本,用于从不同来源安装应用程序:
在脚本中,我提前请求脚本的 root 权限,这样命令就不必像您要求的那样在前面使用 sudo 运行。
文章中展示了安装不同版本的 libnotify 时从 PPA 安装的具体示例。
答案3
通过列表进行无人值守安装
对于无人值守安装的软件包列表并添加几个苯甲酸对于我们的系统,我们可以使用以下脚本:
#! /bin/bash
# Save as e.g. 'uptodate' and make executable
# Usage:
# sudo ./uptodate <mysources> <packages>
sudo cp $1 /etc/apt/sources.list.d/mysource.list
sudo apt-get update
xargs -a "$2" sudo apt-get -y install
该脚本有两个参数。第一个是脚本目录中的文件(例如mysources
),我们根据以下规范保存了软件源列表:来源列表例如:
deb http://ppa.launchpad.net/<maintainer>/<name>/<ubuntu> <release> main
deb http://ppa.launchpad.net/<other_maintainer>/<name>/<ubuntu> <release> main
...
用所需值替换所有变量
第二个参数是一个文件(例如packages
),其中包含我们希望安装的包的列表,格式例如:
packagename
otherpackage
...
使用例如名称保存脚本uptodate
,使其可执行并从终端运行:
cd /directory/of/script
sudo ./uptodate mysources packages
该脚本起什么作用?
它只是将我们的mysources
列表复制到/etc/sources.list.d/mysources.list
,更新包信息并安装packages
我们提供的列表中的所有包参数。
笔记:我们可能还必须从启动板密钥服务器下载有效密钥,才能从我们添加的 ppa 进行安装。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3
将签名密钥(此处为 72D340A3)替换为适当的密钥
笔记2:最好在终端中运行脚本,而不是通过双击,因为我们确实想知道错误。