Работа с репозиториями в Ubuntu

Репозиторий в Ubuntu — это архив программ, расположенный в интернете. Удобство установки программы из репозитория заключается в том, что пользователю не нужно беспокоиться о совместимости и безопасности устанавливаемого пакета.

О репозиториях

Владельцы репозитория скомпилировали исходный код, оформили его в виде пакета для установки и протестировали программу на совместимость с операционной системой. Для программного обеспечения из репозитория имеется определенная гарантия, что программа A, версии B, заработает в дистрибутиве версии C. Кроме этого, получение программы из репозитория гарантирует, что в программу не внесены несанкционированные изменения третьей стороной.

Виды репозиториев

В Ubuntu имеется штатных 4 репозитория:

  1. Main — это основной репозиторий, содержащий официально поддерживаемые приложения.
  2. Restricted — здесь содержится официально поддерживаемый софт, но который не лицензирован на условиях открытой лицензии GPL.
  3. Universe — для программ, не имеющих официальной поддержки. Этот репозиторий поддерживается силами сообщества.
  4. Multiverse — содержит ПО, которое не является свободным.

Добавление и удаление репозиториев

Кроме этих четырех репозиториев существует огромное количество сторонних, которые еще иногда называют репозиториями третьей стороны. Любой желающий может создать свой частный репозиторий, который потом можно будет подключить к Ubuntu.

Добавить новый источник пакетов очень просто. Делается это всего одной командой:

sudo apt-add-repository ppa:user/repository

Здесь ppa:user/repository — имя зарегистрированного репозитория. Удаляется источник пакетов аналогично, с помощью программы apt-add-repository, но с указанием ключа -r:

sudo apt-add-repository –r ppa:user/repository

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

sudo apt-get update

После проделанных манипуляций можно приступать к установке, которая осуществляется самым привычным образом:

sudo apt-get install имя-программы
Ваша оценка: Нет Средняя оценка: 3.7 (3 votes)
omg

Для полноты картины надо бы добавить пару слов о скрипте для автоматизации получения ключей (может об этом уже писали на Либератуме, но на всякий случай добавлю):

#! /bin/sh
 
# Simple script to check for all PPAs refernced in your apt sources and
# to grab any signing keys you are missing from keyserver.ubuntu.com.
# Additionally copes with users on launchpad with multiple PPAs
# (e.g., ~asac)
#
# Author: Dominic Evans https://launchpad.net/~oldman
# License: LGPL v2
 
for APT in `find /etc/apt/ -name *.list`; do
    grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
        # work out the referenced user and their ppa
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        # some legacy PPAs say 'ubuntu' when they really mean 'ppa', fix that up
        if [ "ubuntu" = "$PPA" ]
        then
            PPA=ppa
        fi
        # scrape the ppa page to get the keyid
        KEYID=`wget -q --no-check-certificate https://launchpad.net/~$USER/+archive/$PPA -O- | grep -o "1024R/[A-Z0-9]\+" | cut -d/ -f2`
        sudo apt-key adv --list-keys $KEYID >/dev/null 2>&1
        if [ $? != 0 ]
        then
            echo Grabbing key $KEYID for archive $PPA by ~$USER
            sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $KEYID
        else
            echo Already have key $KEYID for archive $PPA by ~$USER
        fi
    done
done
 
echo DONE

От вас требуется скачать его, сделать исполняемым (chmod +x launchpad-update, если вы сохранили его под именем launchpad-update, или правой кнопкой мыши вызовите Свойства и настройте Права), а затем запустить его на выполнение. Недостающие ключи буду скачаны и установлены.
Кроме того, можно создать новый файл "/etc/apt/apt.conf.d/05ppa", в который вписать строчку:

APT::Update::Pre-Invoke { "if [ -x путь_к_скрипту ]; then путь_к_скрипту; fi"; };

В этом случае sudo apt-get update автоматически будет проверять и устанавливать недостающие ключи.

Чтобы после каждого ключа не вводить пароль пользователя в в /etc/sudoers прописать:

user ALL = NOPASSWD: /usr/bin/launchpad-update

Я бы сказал что есть следующие репозитории:
$release – это пакеты на момент выхода релиза.
$release-security – пакеты критических обновлений безопасности.
$release-updates – пакеты обновления системы (т.е. более поздние версии ПО, вышедшие уже после релиза).
$release-backports – бэкпорты более новых версий некоторого ПО, которое доступно только в нестабильных версиях Ubuntu.
partner – репозиторий содержащий ПО компаний-партнеров Canonical.

А вот Main, Restricted, Universe и Multiverse это скорее компоненты ПО (если верить убунтушной вики).

Ваша оценка: Нет Средняя оценка: 5 (3 votes)

$release-backports – бэкпорты более новых версий некоторого ПО, которое доступно только в новых версиях Ubuntu.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
omg

теги CODE не сработали, заменил цитированием :(

Ваша оценка: Нет
pomidorium

По-моему, очень даже сработали. :) Спасибо за ценное дополнение!

Ваша оценка: Нет
omg

Всегда приятно делиться тем, над чем сам в свое время ломал голову :)

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Яндекс.Метрика