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


9

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

在初始安装Ubuntu之后,我想安装一大堆PPA存储库和来自Ubuntu存储库的应用程序。

是否可以编写一个脚本来一次性安装所有这些应用程序和PPA,只需要我双击可执行脚本并输入管理员密码即可?

我想那将是相当简单的。有人可以为我提供快速教程,或者甚至提供某种模板脚本,以便我可以添加PPA名称和apt-get安装软件包吗?

谢谢。

Answers:


7

我使用下面的简单脚本添加了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

add-apt-repository通常会要求我输入Y,以同意将其添加到源列表中。这会影响脚本的自动流程吗?
mloman 2012年

在我的测试中,没有问题,所有内容均已添加并自动安装。
Sabacon

11.04中没有提示,在11.10中令人讨厌“按Y添加”提示。我不知道该如何摆脱-抱歉。
Scaine

2
应该提到的-如果您对apt-get将安装的内容有信心,则可以通过apt-get install -y,它不会提示您“继续”。也许add-apt-repository支持相同的选择?
Scaine 2012年

3
@Scaine是的,add-apt-repository支持-y
jcollado 2012年

2

bash脚本可以很轻松地完成您的要求。

这是我使用的良好bash脚本指南的链接:http : //tldp.org/LDP/abs/html/

简而言之,您需要调用3个命令以从PPA安装

  1. sudo add-apt-repository ppa:
  2. sudo apt-get更新
  3. 须藤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安装的特定示例。


0

列表中的无人参与安装

为了无人值守安装软件包列表并向我们​​的系统中添加几个ppa,我们可以使用以下脚本:

#! /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脚本目录中的文件(例如),在该文件中,我们根据sources.list的规范保存了我们的软件来源列表,例如:

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使用xargs安装我们提供的列表中的所有软件包。

注意:我们可能还必须从启动板密钥服务器下载有效的密钥,才能从添加的ppa安装。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3

将签名密钥(此处为72D340A3)替换为适当的一个

注2:在终端中而不是通过双击运行脚本是一个好主意,因为我们确实想知道错误。


这对于备份和还原我自己的源列表和软件包非常有用。但是您能否在密钥服务器部分进行详细说明。我将在脚本中包含最后一个代码,还是单独运行它?我需要对所有PPA的签名密钥执行此操作吗?
mloman 2012年

实际上,由于我可以编写自己的源列表和软件包列表,因此这可能是一种更简单的安装方法,但请在密钥服务器部分进行详细说明。我怎么知道“适当的”签名密钥是什么?
mloman 2012年

您可以在ppa主页上进行检查,否则apt-get会告诉您错误。一旦钥匙在机器上,就不会再询问了。它不包含在脚本中。你还不知道这些数字。
塔卡特2012年

好的,我现在都明白了。我发现此链接可快速备份密钥文件。
mloman'1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.