Я собираюсь установить пару компьютеров общего пользования на одном из рабочих мест в моей лаборатории.
Существует целая куча репозиториев и приложений PPA из репозиториев Ubuntu, которые я хотел бы установить после первоначальной установки Ubuntu.
Можно ли написать сценарий, который будет устанавливать все эти приложения и PPA за один раз, требуя от меня только двойного щелчка по исполняемому сценарию и ввода пароля администратора?
Я полагаю, что это будет довольно просто. Может кто-нибудь указать мне на краткое руководство или, возможно, даже предоставить какой-нибудь шаблонный скрипт, чтобы я мог добавить имена PPA и пакеты установки apt-get?
Спасибо.
Я использовал простой скрипт ниже, чтобы добавить texworks и Ubuntu GIS PPA, а затем установить texworks и Quantum Gis из их соответствующих источников, вы можете расширить его, добавив другие PPA и добавив имена пакетов в установку apt-get командная строка.
#!/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
Если вы хотите перейти непосредственно к примеру, я написал статью в блоге об одном таком автоматическом скрипте bash для установки приложений из разных источников:
В скрипте я спрашиваю root разрешения для сценария заранее, чтобы команды не запускались с sudo перед ним, как вы и просили.
Конкретный пример установки из PPA показан в статье при установке другой версии libnotify.
Для установки без сопровождения списка пакетов и добавления нескольких 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.
Примечание: нам, вероятно, также придется загрузить допустимый ключ с панели запуска keyserver, чтобы смочь установить от ppa, который мы добавили.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3
Замените ключ подписи (здесь 72D340A3) соответствующим
Примечание 2: Это - хорошая идея запустить скрипт в терминале а не двойным щелчком, потому что мы действительно хотим знать об ошибках.