如何一次安装多个 PPA 和应用程序?

如何一次安装多个 PPA 和应用程序?

我打算在实验室的一个工作台上安装几台通用计算机。

在初始安装 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 安装

  1. sudo add-apt-repository ppa:
  2. sudo apt-get 更新
  3. sudo apt-get dist-upgrade

如果你想直接看一个例子,我已经写了一篇博客文章,其中有一个这样的自动 bash 脚本,用于从不同来源安装应用程序:

http://gautham-chandra.tumblr.com/post/15544311989/ninite-like-bash-script-to-install-and-configure-some

在脚本中,我提前请求脚本的 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:最好在终端中运行脚本,而不是通过双击,因为我们确实想知道错误。

相关内容