LINUX.ORG.RU

[debian] Добавить что-то в PATH

 


0

1

Например, я делаю пакет для своей проги, и устанавливаю ее в /opt/megacorp. Что (по стандарту) должен сделать postinstall-скрипт, чтобы /opt/megacorp/bin добавился в системный PATH? В Debian Policy Manual такого не нашел.

★★★★★

А зачем линукс в мастдай превращать? Ставьте в /usr/bin или /usr/local/bin. А то из-за вот таких, как вы, приходится в PATH добавлять /opt/* и /opt/*/bin

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от elipse

> проще сделать симлинк

А это кошерно с точки зрения Policy?

«простреливаемые» разделы

Что это такое?

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

> echo \«export PATH=»$PATH:/opt/bin:/opt/share:/opt/lib"\" ~/.bashrc

И пользователь, инсталлирующий программу (root, внезапно) получит ее себе в PATH. При том, что как раз ему она и не нужна.

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

В /usr/bin ссылка на твою прогу.
А расширив зону поиска, ты увеличишь время запуска погружаемых автоматом либ в системе.

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

от же ж зараза )): погружаемых -> подгружаемых

elipse ★★★
()

Добавить в /etc/profile.d/ свой скрипт, изменяющий $PATH?

AITap ★★★★★
()

чтобы /opt/megacorp/bin добавился в системный PATH


менять системный PATH ради одной программы некошерно нигде, в Debian тем более. Кошерно делать ссылки в /usr/bin, как это делает iceweasel или xulrunner.

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

Ишь ты...

А все-таки, если уж так припекает сделать что-нибудь не так, как принято, советую приглядеться, как поступают те, кто пихает свои бинарники в /opt: они PATH не портят, оставляя это на усмотрение пользователя.

Во что превратится PATH, если каждый будет туда пихать что попало?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> Ишь ты...

Здесь не толксы, здесь девел.

А все-таки, если уж так припекает сделать что-нибудь не так, как принято,

/opt - это стандартная иерархия для 3rd-party, я делаю именно так, как принято.

Во что превратится PATH, если каждый будет туда пихать что попало?

Поэтому я и задаю вопрос.

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

Делайте уж тогда симлинк куда-нибудь в стандартные директории.

// но, если честно, не доходит до меня, зачем что-то устанавливать в /opt/..., а не, скажем, /usr/local ?

Eddy_Em ☆☆☆☆☆
()

Так нельзя. Есть стандарт расположения файлов по файловой системе. всякие левые пакеты делают так:

jet@earth:~$ ls -l /usr/bin/google-chrome
lrwxrwxrwx 1 root root 32 кві 15 10:13 /usr/bin/google-chrome -> /opt/google/chrome/google-chrome

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

Симлинк лучшее решение имхо, а вот собирать в /opt есть не есть гуд, если прога распространяется бинарем со статически слинкованными либами, зло конечно, но часто так решают проблему разных дистров.

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

Он конечно троль. Но говорит дело :)

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

Никто не мешает править rpath (для динамической линковки) :)
А если статиком то тут вопросов нет совсем, мне так кажется :)

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

Динамическая линковка - большой гимор, в дебиане довольно крупная доля ПО не работоспособна из-за перехожа на eglibc, многие программы до сих пор собраны для libc и валятся с сегфолтом.

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

> в дебиане довольно крупная доля ПО не работоспособна из-за перехожа на eglibc,

Oу, у Reset-а есть хорошая смена.

многие программы до сих пор собраны для libc и валятся с сегфолтом.


отсыпь, не жмись же.))

elipse ★★★
()

> Что (по стандарту) должен сделать postinstall-скрипт, чтобы /opt/megacorp/bin добавился в системный PATH?

Где Вы в Linux нашли системный PATH, покажите?

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

А откуда, по-вашему, она берется, например, здесь:

/etc/X11/gdm/Init/Default:PATH=/usr/bin:$PATH

?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от tailgunner

Кстати, в той же FHS пишут, что рекомендуется либо симлинки создавать, либо бинарники в «нормальные» директории копировать, либо оставлять на усмотрение пользователя.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Вообще-то там говорится об /opt/bin... наверное, это и есть правильное решение - класть файлы в /opt/megacorp/bin, симлинки на них - в /opt/bin, а администратор пусть сам добавляет /opt/bin в PATH.

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

> Потому что там нет PATH

В Debian - есть.

и потому что например такой shell как tcsh его не читает.

Думаю, я вполне могу этим пренебречь.

Так что для моих целей /etc/profile устанавливает системный PATH. Впрочем, благодаря этому топику мне это уже не нужно.

Спасибо всем, кто помог.

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

> В Debian - есть.

Вот это новости, покажи где?

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux stable-updates (sid)
Release: stable-updates
Codename: sid
$ grep -v ^# /etc/profile | grep PATH
$

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

В Lenny:

$ grep -v ^# /etc/profile | grep PATH
PATH=«/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin»
PATH=«/usr/local/bin:/usr/bin:/bin:/usr/games»
export PATH
$

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

> В Lenny не считается :)

А для меня не считается в Sid.

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

> / но, если честно, не доходит до меня, зачем что-то устанавливать в /opt/..., а не, скажем, /usr/local ?

Стандарт для 3rd party apps.

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

[на правах офтопа]
А что вообще такое это «3rd party apps»? Что-то в википедии как-то пространно записано...
[/на правах офтопа]

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Например, установка наборов софта для скриптовых языков от activstate , они уже сами «топают» в /opt и не засоряют систему.

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

Программа, заворачиваемая в .deb пакет, по определению является не 3rd party app, а частью системы. И ставиться должна в /usr, и линковаться должна динамически. Не нравится - заворачивай в tar.gz и ставь в /opt, но и никакого неявно вызываемого post-install скрипта в данном случае не должно быть.

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