[Comm] Сборка rpm из исходников
Евгений Косенко
=?iso-8859-1?q?eugine=5Fkosenko_=CE=C1_ukr=2Enet?=
Сб Ноя 29 22:14:00 MSK 2003
Вот, собрался опробовать свои силы в сборке rpm-пакетов из исходников. Как мне
и рекомендовали, посмотрел статью
http://atmsk.ru/indexe98c.html?option=articles&task=viewarticle&artid=40&Itemid=3
и попробовал сделать так же. Могу сказать, что статья явно не для новичков.
Во-первых, в тексте нигде не упомянуто, что "непривилегированный"
пользователь должен входить в группу rpm. Во-вторых, каталог /usr/src, куда
рекомендуется ставить исходники, доступен только для "привилегированного"
пользователя root. Как он может быть доступен другим при установке из коробки
-- ума не приложу. А в-третьих, совершенно неясно, из каких каталогов
выполнять указанные команды. Впрочем, обо всем по порядку. Итак,
$ pwd
/home/user
$ apt-get source gnome-mlview
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Необходимо получить 451kB исходных архивов.
Получено: 1 ftp://ftp.linux.kiev.ua i586/classic gnome-mlview 0.6.0-alt1
(srpm) [451kB]
Получено 26,4kB за 19s (1324B/s).
gnome-mlview
##################################################
$
Мнэ... Он, оказывается, не только тянет файл, как сказано в статье, он еще его
и ставит! Ладно,
$ ls -l /usr/src
итого 2
drwxr-xr-x 3 root root 72 Ноя 8 21:37 kernel
drwxr-xr-x 14 root root 792 Ноя 8 21:37 linux
$ ls -l
...
drwxr-xr-x 4 user user 96 Ноя 29 20:10 RPM
...
Похоже, что подкаталог RPM ставится в тот же каталог... Ладно, может ему нужно
указывать установку явно:
$ rm -rf RPM
$ rpm -i gnome-mlview-0.6.0-alt1.src.rpm
$ ls -l /usr/src
итого 2
drwxr-xr-x 3 root root 72 Ноя 8 21:37 kernel
drwxr-xr-x 14 root root 792 Ноя 8 21:37 linux
$ ls -l
...
drwxr-xr-x 4 user user 96 Ноя 29 20:10 RPM
...
Весело? Мне не очень. Проверял и от обычного пользователя и от
суперпользователя, во всех домашних каталогах и в /usr/src, результат всегда
один и тот же -- файлы ставятся в домашний каталог. На этом фоне фраза типа
> Теперь необходимо положить исходники программы *.tar.gz и патчи *.patch.gz в
> папочку с /usr/src/RPM/SOURCES, файл описания процесса сборки *.spec
> положить в папку /usr/src/RPM/SPECS и можно приступать к сборке. Не спешите
> хвататься за MC и раскладывать файлы вручную, я всего лишь описал процесс,
> чтобы вы знали, где искать концы после этой операции. В реальности все
> вышеперечисленное делает команда
> $rpm -i ваша_программа.src.rpm
выглядит как особо изощренное издевательство. После трехлетней жизни в Линукс
у меня выработалось устойчивое мнение, что результаты сборки не должны
зависеть от положения рабочего каталога так же, как и от фаз Луны. Неужели
каталог /usr/src обладает особой магией?
Ладно, идем дальше... Допустим, вопреки рекомендациям, имея особо продвинутые
права, выполняем следующее:
$ su -
...
# mv ~user/RPM /usr/src
# chgrp -R rpm /usr/src/RPM
# ls -lR /usr/src/RPM
/usr/src/RPM:
total 1
drwxr-xr-x 2 user rpm 248 Nov 29 21:02 SOURCES
drwxr-xr-x 2 user rpm 88 Nov 29 21:02 SPECS
/usr/src/RPM/SOURCES:
total 464
-rw-r--r-- 1 eugine rpm 22753 Sep 24 01:22
gnome-mlview-0.6.0.ru.po
-rw-rw-r-- 1 user rpm 753 Sep 11 22:34 gnome-mlview-16.png
-rw-rw-r-- 1 user rpm 2087 Sep 11 22:34 gnome-mlview-32.png
-rw-rw-r-- 1 user rpm 4859 Sep 11 22:34 gnome-mlview-48.png
-rw-rw-r-- 1 user rpm 432144 Sep 11 09:45 mlview-0.6.0.tar.bz2
/usr/src/RPM/SPECS:
total 4
-rw-r--r-- 1 user rpm 2652 Sep 24 01:22 gnome-mlview.spec
# cd /usr/src/RPM/SPECS
# rpm -ba gnome-mlview.spec
gnome-mlview.spec: No such file or directory
# exit
$ pwd
/home/user
$ rpm -ba gnome-mlview.spec
gnome-mlview.spec: No such file or directory
$ cd /usr/src/RPM/SPECS
$ rpm -ba gnome-mlview.spec
gnome-mlview.spec: No such file or directory
$
И так далее в разных позах с одним и тем же результатом. Цитирую статью:
> Обратите внимание! в отличии от обычных операций установки через RPM - эта
> операция выполняется от пользователя! иначе RPM скажет вам, что сборка
> разрешена только непривилегированным пользователям и собирать ничего не
> будет.
Не знаю, насколько нужно быть "непривилигированным" пользователем, но если
приведенные сообщения обозначают, "что сборка разрешена только
непривилегированным пользователям", то я испанский летчик.
Ладно, это все мелочи и придирки в плохом настроении. Главный вопрос: что я
делаю не так? Или я такой счастливый, что для первого знакомства мне попался
кривой пакет из Сизифа?
Подробная информация о списке рассылки community