Apt

Материал из Xgu.ru

Перейти к: навигация, поиск

Debian-icon.png

Эта страница имеет отношение к дистрибутивам Debian/Ubuntu (и, скорее всего, что только к ним).

Содержание

[править] Вопросы и ответы

[править] Как посмотреть, какие в наших репозиториях есть версии пакета?

%$ apt-show-versions -a git-core
Not installed
No oldstable version
git-core 1:1.5.6.5-3 stable   192.168.72.2:9999
git-core 1:1.6.2.1-1 testing  192.168.72.2:9999
git-core 1:1.6.2.4-1 unstable 192.168.72.2:9999
git-core not installed

И поставить:

$ apt-cache policy git-core
$ sudo apt-get install git-core=1:1.6.2.4-1

Если нужно зафиксировать пакет на какой-то определённой версии, делать это нужно в /etc/apt/preferences. Например:

Package: udev
Pin: release n=lenny
Pin-Priority: 900

[править] Как добавить новые ключи для аутентификации пакетов?

# gpg --recv-key --keyserver pool.sks-keyservers.net 4D270D06F42584E6
# gpg --export 4D270D06F42584E6 | apt-key add -

[править] Как собрать пакет Debian для модуля Perl?

Вообще-то, это вопрос не столько про apt, сколько про deb, но ничего.

Можно взять прямо из CPAN и собрать одной командой:

  $ dh-make-perl --build --cpan HTML::Template::JIT

Или, поэтапно[1]:

$ sudo apt-get install dh-make-perl

$ wget http://xgu.ru/lilalo/Term-VT102.tar.gz
--2010-01-04 20:49:17--  http://xgu.ru/lilalo/Term-VT102.tar.gz
...
2010-01-04 20:49:17 (83,2 KB/s) - `Term-VT102.tar.gz' сохранён [29802/29802]

$ tar xvfz Term-VT102.tar.gz
Term-VT102-0.91/
...

Указываем адрес майнтейнера пакета с помощью ключа -e (по умолчанию будет взят адрес `whoami`@`hostname`).

$ dh-make-perl -e igor@chub.in Term-VT102-0.91/
Found: Term-VT102 0.91 (libterm-vt102-perl arch=all)
Using maintainer: Igor Chubin <igor@chub.in>
Found changelog: Changes
Found docs: TODO README
Using rules: /usr/share/dh-make-perl/rules.dh7.tiny
--- Done
$ cd Term-VT102-0.91/

Вообще, у вас должен быть PGP-ключ, которым будет подписан пакет. Если же его у вас нет, то при нормальной процедуре сборки возникнет ошибка:

$ debuild
...
Now signing changes and any dsc files...
 signfile libterm-vt102-perl_0.91-1.dsc Igor Chubin <igor@chub.in>
gpg: пропущено "Igor Chubin <igor@chub.in>": секретный ключ не найден
gpg: /tmp/debsign.XXCWp3hm/libterm-vt102-perl_0.91-1.dsc: clearsign failed: секретный ключ не найден
debsign: gpg error occurred!  Aborting....
debuild: fatal error at line 1245:
running debsign failed

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

$ debuild -us -uc
...
Finished running lintian.
$ cd ..
#=20:53:08 
$ ls -l *deb
-rw-r--r-- 1 igor igor 34594 Янв  4 20:52 libterm-vt102-perl_0.91-1_all.deb
#=20:53:09 
$ sudo dpkg -i *deb
Выбор ранее не выбранного пакета libterm-vt102-perl.
(Чтение базы данных... на данный момент установлено 299046 файлов и каталогов.)
Распаковывается пакет libterm-vt102-perl (из файла libterm-vt102-perl_0.91-1_all.deb)...
Настраивается пакет libterm-vt102-perl (0.91-1) ...
Обрабатываются триггеры для man-db ...

Пакет собран и установлен.

[править] Примечания

  1. Дополнительная информация о процедуре сборки Building Debian packages of Perl modules (англ.)
Источник — «http://xgu.ru/wiki/Apt»