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 |