Как установить несколько PPA и приложений одновременно?

9

Я собираюсь установить пару компьютеров общего пользования на одном из рабочих мест в моей лаборатории.

Существует целая куча репозиториев PPA и приложений из репозиториев Ubuntu, которые я хотел бы установить после первоначальной установки Ubuntu.

Можно ли написать сценарий, который установит все эти приложения и PPA за один раз, требуя от меня только дважды щелкнуть исполняемый сценарий и ввести пароль администратора?

Я полагаю, это было бы довольно просто. Может кто-нибудь указать мне на краткое руководство или, возможно, даже предоставить какой-нибудь шаблонный скрипт, чтобы я мог добавить имена PPA и пакеты установки apt-get?

Спасибо.

mloman
источник

Ответы:

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
Sabacon
источник
add-apt-repository часто просит меня ввести Y, чтобы согласиться добавить его в список источников. Повлияет ли это на автоматическое выполнение скрипта?
Мломан
В моем тесте вопросов не выдавалось, все добавлялось и устанавливалось автоматически.
Сабакон
Нет запроса в 11.04, досадная подсказка «Нажмите Y для добавления» в 11.10. Я не знаю, как от этого избавиться - извините.
Scaine
2
Должен был упомянуть - если вы уверены в том, что будет установлено с помощью apt-get, вы можете пройти, apt-get install -yи он не предложит вам «Y для продолжения». Может add-apt-repositoryподдерживает ту же опцию?
Scaine
3
@Scaine Да, add-apt-repositoryподдерживает-y
jcollado
2

Сценарий bash сделает то, что вы просите, очень легко.

Вот ссылка на хорошее руководство по написанию сценариев bash, которое я использую: http://tldp.org/LDP/abs/html/

Проще говоря, вам нужно вызвать 3 команды для установки из PPA

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

Если вы хотите перейти непосредственно к примеру, я написал статью в блоге об одном таком автоматическом скрипте bash для установки приложений из разных источников:

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

В сценарии я заранее запрашиваю права доступа для сценария, чтобы команды не запускались с sudo перед ним, как вы и просили.

Конкретный пример установки из PPA показан в статье при установке другой версии libnotify.

Gautham C.
источник
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: Хорошая идея - запускать скрипт в терминале, а не двойным щелчком, потому что мы хотим знать об ошибках.

Takkat
источник
Это действительно полезно для резервного копирования и восстановления моих собственных списков источников и пакетов. Но не могли бы вы подробнее остановиться на части сервера ключей. Должен ли я включить последний код в скрипт или запустить его отдельно? Нужно ли это делать для ключа подписи всех PPA?
Мломан
На самом деле, поскольку я могу написать свой собственный список источников и список пакетов, это может быть еще более простой способ установки, но, пожалуйста, уточните часть о сервере ключей. Откуда мне знать, что такое «подходящий» ключ подписи?
Мломан
Вы можете проверить либо на домашней странице ppa, либо вы получите сообщение об ошибке от apt-get. Когда ключ находится на машине, он больше не спрашивает. Это не для включения в сценарий. Вы еще не знаете цифры.
Таккат
Хорошо, теперь мне все ясно. Я нашел эту ссылку для быстрого резервного копирования ключевых файлов.
Мломан