Gentoo Archives: gentoo-user-ru

From: Dmitry Dzhus <dima@×××××.org>
To: gentoo-user-ru@l.g.o
Subject: [gentoo-user-ru] Re: Размещение ebuild
Date: Sun, 08 May 2011 08:39:37
Message-Id: 87zkmxbn9g.fsf@dzhus.org
In Reply to: Re: [gentoo-user-ru] Re: Размещение ebuild by Alexander Tiurin
1 Alexander Tiurin wrote:
2
3 > Тогда делаю
4 > src_compile() {
5 > if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]];
6 > then emake || die "emake failed"
7 > fi
8 > }
9
10 То, что написано в Package Manager Specification — это реализация
11 функции src_compile *по умолчанию*. Если для вашего пакета её
12 достаточно, то в ебилде писать вообще ничего не надо.
13
14 > С одной стороны все работает. С другой стороны я прогрепал портаж на
15 > предмет этого синтаксиса , и ничего похожего как-то не нагрепал.
16
17 Разумеется, потому что никто не копирует в ебилд реализацию по
18 умолчанию.
19
20 > вторых подсветка vim этот синтаксис не воспринимает.
21 > Например, тот же vim намекает на что, что нельзя делать именно
22 > S=${WORKDIR}/${P}
23 > ровно так, как написано, и действительно, в портаже я не нашел ничего
24 > подобного.
25 >
26 > Возникает вопрос, правильно ли применять eapi 4 в gentoo
27 > arch?
28 >
29 >
30 > Далее, эта часть к eapi 4 я так понимаю не относится?
31 >
32 > src_install() {
33 > cd ${WORKDIR}/${P} || die
34 > dobin sysshot || die
35 > dodoc README NEWS AUTHORS COPYING || die
36 > }
37
38 Вопрос не очень понятен. В вашем ебилде есть `dobin sysshot`, который в
39 реализации src_install по умолчанию отсутствует. Поэтому вам нужна своя
40 функция src_install. Если, конечно, у этой программы нету нормальной
41 установки по `make install` — тогда можно будет оставить реализацию по
42 умолчанию.
43
44 > Так? Вот тут спрашиваю потому, что здесь уже возникают проблемы при
45 > установке
46 >
47 > make -j5 -s install
48 > ACCESS DENIED open_wr: /usr/bin/sysshot
49 > cp: cannot create regular file `/usr/bin/sysshot': Permission denied
50 > make: *** [install] Error 1
51
52 На стадии src_install ебилд устанавливается не сразу в систему, а в
53 подкаталог образа во временной папке Portage (обозначается переменной
54 ${D}). Только потом установленный образ пакета подвергается «слиянию» с
55 живой системой. Это сделано для того, чтобы плохой ебилд не мог
56 накосячить в системе у юзера — затереть важные файлы или повредить
57 информацию на диске. В вашем src_install ебилд пытается сразу установить
58 бинарный файл в настоящий каталог, выйдя за пределы песочницы, о чём и
59 говорится в ошибке. Нужно делать dobin ${D}/usr/bin/sysshot.
60
61 Подробнее здесь: http://devmanual.gentoo.org/general-concepts/install-destinations/index.html
62 --
63 Happy Hacking.
64
65 http://dzhus.org

Replies

Subject Author
[gentoo-user-ru] Re: Размещение ebuild Dmitry Dzhus <dima@×××××.org>