[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