barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 7 июня 2011 г.

Добавление ppa-репозиториев в Debian

Для Ubuntu есть очень полезный способ получения пакетов - репозитории типа ppa (имеют адрес вида ppa:user/ppa-name, прочитать про них можно тут). В Ubuntu ppa-репозитории добавлялись с помощью команды apt-add-repository, в Debian же её нет, поэтому приходится использовать собственный скрипт (взял я его тут: http://blog.anantshri.info/howto-add-ppa-in-debian/ и немного доделал, добавив возможность выбирать дистибутив Ubuntu, пакеты для которого будут загружаться из репозитория). Вот исходный текст срипта:


#!/bin/bash
if [ $# -ge 1 ]
then
ppa_name=`echo "$1" | cut -d":" -f2 -s`
if [ -z "$ppa_name" ]
then
echo "PPA name not found"
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name [ubuntu-distributive]"
echo "For example: $0 ppa:mozillateam/firefox-stable maverick"
else
echo "$ppa_name"
if [ $# -eq 1 ] #запущен с 1 параметром - дистрибутив по-умолчанию lucid
then
ubuntuver='lucid'
else
ubuntuver=$2
fi
echo "$ubuntuver"

echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu $ubuntuver main" >> /etc/apt/sources.list
apt-get update >> /dev/null 2> /tmp/apt_add_key.txt
key=`cat /tmp/apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3`
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
rm -rf /tmp/apt_add_key.txt
fi
else
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name [ubuntu-distributive]"
echo "For example: $0 ppa:mozillateam/firefox-stable maverick"
fi

Можно поместить его, например, в /usr/sbin, назвав add-apt-repository, не забыв дать права 755 и сменив владельца на root:
chmod o+x /usr/sbin/add-apt-repository
chown root:root /usr/sbin/add-apt-repository

Теперь добавлять ppa-репозитории (для примера я добавляют репозиторий с пакетами для нетбука eeepc t101mt) можно так:

sudo add-apt-repository ppa:plippo/t101mt

или

sudo add-apt-repository ppa:plippo/t101mt natty

Именно второй вариант работает, т.к. по-умолчанию в скрипте стоит дистрибутив lucid (10.04), но его почему-то apt не находит (при попытке apt-get update вылезают ошибки 404). В таких случаях версия дистрибутива, для которой пакет есть, подбирается вручную.
Правда, использование ppa не всегда помогает - например, поставить Firefox из ppa все равно не полуится - она зависит от пакетов, которые есть в Ubuntu, но отсутствуют в Debian. Подцеплять же весь убунтовский репозиторий в список репозиториев apt (/etc/apt/sources.list) - не вариант, в таком случае apt захочет снести пол-дебиана и заменить его на убунтовские версии пакетов,

Комментариев нет:

Отправить комментарий