LINUX.ORG.RU

В каком окружении запускает команды Portage?

 , , ,


0

1

Пытаюсь собрать в Gentoo компилятор языка D.

Он сам от себя зависит и я поставил бинарники dmd в home. Пытался:

  1. Выставить переменные окружения PATH/LDPATH в /etc/env.d/50baselayout и сделать envupdate

  2. Сделать символические ссылки в /usr/local/bin и /usr/local/lib64

С одинаковым результатом: в системе пользователи команду dmd видят, а emerge dev-lang/dmd проваливается с ошибкой «команда не найдена»:

/var/tmp/portage/dev-lang/dmd-2.099.1/temp/environment: строка 1328: dmd: команда не найдена

Что за чертовщина? В каком окружении portage запускает команды? Как его исправить?

★★★★★

Последнее исправление: unDEFER (всего исправлений: 1)

strace всемогущий с флагом «–follow-forks» помог прояснить ситуацию. Оказывается это банальный «доступ запрещён».

chmod a+rx dlang/dmd-2.100.2/

Разрешил ситуацию.

unDEFER ★★★★★
() автор топика
Ответ на: комментарий от unDEFER

Он сам от себя зависит и я поставил бинарники dmd в home.

Вообще, интересно получается, чтобы поставить язык, надо поставить язык. Они там, вроде, какие-то юзы ипользовать предлагают, чтобы этой истории избежать. Но так-то муть какая-то, да.

gill_beits ★★★★
()

Portage работает с исходниками в sandbox.

Только непонятно, если ставишь через portage, зачем в home что-то собирать для этого?

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Ну да, это понятно. Но я уж думал chroot-окружение, если системную команду не видит. Но оказалось всё проще.

unDEFER ★★★★★
() автор топика
Ответ на: комментарий от gill_beits

Примерно то же самое go и freepascal, там для сборки загруженные бмнарники сначала используются, если в системе их нет.

grem ★★★★★
()
Ответ на: комментарий от grem

На самом деле и для C ситуация не сильно отличается. Бинарник компилятора C насколько я понимаю лежит в stage3.

unDEFER ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.