Установка пакетов (структура каталогов)

Аватар пользователя dunin

Всем здраствуйте. Улыбка

Вопрос общий, но начну с описания ситуации...
С виндусом работаю давно, программирую под FireBird (БД такая). На днях поставил Linux. Закачал RPM пакет FireBird под Linux. В GNOME кликаем по пакету - что-то происходит... и пакет устанавливается, причем не спрашивая меня куда и зачем. Ищим. Находим где появились файлы Firebird. Остаемся удовлетворенными (linux у меня меньше недели, т.ч. всему что "не ругается" рад Катается от смеха ).
Вчера закачал пакет XnView (просмотровик графики такой). Так же кликаем по пакету - что-то происходит. По аналогии с виндусом ищим иконку в меню - нету. Ясно. Ищим файлы - опа! А файлы-то запихались не туда где пакет предидущий... :-o

Вопрос: это нормальная ситуация или я что-то не так делаю?
При установки пакетов в linux нельзя выбрать директорию назначения?
Создатель пакета сам определяет куда и что (и сколько) ставить? У пользователя нет возможности выбора?
Почему так? Есть что-то типа видсовской "установка и УДАЛЕНИЕ программ"?

Спасибо.

Аватар пользователя DRVTiny

Re: Установка пакетов (структура катлогов)

Цитата:
При установки пакетов в linux нельзя выбрать директорию назначения?

Выбрать можно, и я Вам даже скажу, как это сделать, если Вы мне сможете объяснить, зачем Вам это нужно. На самом деле для запуска программы достаточно знать её имя, которое можно отыскать в потоке вывода команды rpm -qpl | grep bin. Дело в том, что в Linux и вообще в UNIX-like OS'ях, принята такая система: все бинарники складываются в один набор стандартных каталогов, все конфиги в другой, вся документация - в третий.

Аватар пользователя dunin

Re: Установка пакетов (структура катлогов)

Цитата:
DRVTiny пишет:
Выбрать можно, и я Вам даже скажу, как это сделать, если Вы мне сможете объяснить, зачем Вам это нужно...

Не совсем корректно задал вопрос. Виноват...
Нужно не столь изменение пути инсталляции, сколько вывод информации в процессе установки что и куда складывается. Хотя бы для того чтобы понимать где прибыло-убыло... Ну сама возможность изменения путей тоже помешала бы, например от справки отказаться (пишу ТОЛЬКО для примера).

зы. Ненавижу виндовс-инсталлеры, которые, к примеру, не спрашивают пользователя делать ли ему значки на рабочем столе (перевод: я лучше вас юзверей криворуких знаю что вам надо), или, к примеру программы которые "могут быть установленны только в корневой каталог диска С:" (перевод: программист не умеет определять текущий путь к папке программы)...

Аватар пользователя physieker

Re: Установка пакетов (структура каталогов)

DRVTiny писал(а):
...Дело в том, что в Linux и вообще в UNIX-like OS'ях, принята такая система: все бинарники складываются в один набор стандартных каталогов, все конфиги в другой, вся документация - в третий...

хотя тоже бывают исключения - openoffice.org-2.0 устанавливается в /opt/openoffice.org-2.0

Аватар пользователя sergeil

Re: Установка пакетов (структура каталогов)

Цитата:
physieker пишет:
хотя тоже бывают исключения - openoffice.org-2.0 устанавливается в /opt/openoffice.org-2.0

/opt выполняет функции /usr/local. Так что, никакого исключения...
Катается от смеха

Аватар пользователя dunin

Re: Установка пакетов (структура каталогов)

Цитата:
sergeil пишет:
/opt выполняет функции /usr/local.
...

А какой в этом смысл? Зачем дублировать? Или /opt что-то вроде виндусовских CommonFiles ?

Аватар пользователя sergeil

Re: Установка пакетов (структура каталогов)

Цитата:
dunin пишет:

Цитата:
sergeil пишет:
/opt выполняет функции /usr/local.
...

А какой в этом смысл? Зачем дублировать? Или /opt что-то вроде виндусовских CommonFiles?

Нет, назначение совсем друге...

Для стандартного ПО (поставляемого в составе дистрибутива), директорией верхнего уровня является корень (/). То есть, ипользуется для:
1. системного ПО: /sbin, /usr/sbin
2. прикладного ПО: /bin, /usr/bin

Для опционального ПО, то есть ПО, которое не ходит в стандартную поставку дистрибутива, в свое время директорией верхнего уровня был выбран /usr/local/. То есть, путь для
1. системного ПО: /usr/local/sbin
2. прикладного ПО: /usr/local/bin

Соголасно новым веяниям (рекомендациям, спецификациям) для опционального ПО директорией верхнго уровня принят /opt (вместо /usr/local)

Надеюсь, не очень запутанно...

Аватар пользователя dunin

Re: Установка пакетов (структура каталогов)

Цитата:
sergeil пишет:
Надеюсь, не очень запутанно...

Очень понятно. :good:

Т.е. теперь вопрос можно поставить по-другому:
как мне установить пакет в /opt если он уже сам, меня не спрашивая, установился в /usr/local/ ??? (переустановить, переместить... снести-поставить)

Зачем? Да чтоб порядок был.

Аватар пользователя DRVTiny

Re: Установка пакетов (структура каталогов)

Цитата:
тоже бывают исключения - openoffice.org-2.0

Ну, OpenOffice.org - это вообще полностью автономное приложение, не имеющее определённого "гражданства" в той или иной ОС.

Цитата:
как мне установить пакет в /opt если он уже сам, меня не спрашивая, установился в /usr/local/

Вот пусть в /usr/local/'е и остаётся. Человек, придумавший (от не фиг делать, наверное) устанавливать программы в /opt, скорее всего, просто был не слишком адекватен: получается, что при таком подходе, когда опциональное ПО устанавливается в совершенно иное поддерево корневого каталога, нежели всё остальное ПО, пользователь будет вынужден либо создавать отдельный раздел /opt, либо отказаться от полезной практики "выноса" всех (в том числе и этих вот "опциональных", которые на самом деле от всех остальных ничем не отличаются) программ, не составляющих базовую операционную систему GNU/Linux (и всё-таки Linux - это далеко не только ядро ;-) ), на раздел /usr. И вообще меня удивляет вся эта LFS-стандартизация: с одной стороны, люди, создавшие это стандарт, считают вполне нормальным то, что в домашних каталогах пользователей должен царить полный хаос - мешанина из личных документов и далеко не всегда хранящихся хотя бы в подкаталогах $HOME'а настроек сотен разных программ (выходом из этой ситуации является только личная (индивидуальная) инциатива самого пользователя по созданию внутри домашнего каталога поддерева документов. Например, у меня аналог папки "Мои документы" находится в ~/Desktop), с другой стороны - они же придумывают какие-то маразматические нововведения, наподобие замены /usr/local на /opt (основываясь на вполне справедливом положении о том, что набирать на клавиатуре 3 символа легче, чем 9, но почему-то напрочь забывая о существовании таких полезных вещей, как символические ссылки и алиасы. К тому же, сам факт того, что кому-то лень вводить длинные пути, по-моему не является основанием, достаточным для того, чтобы перекраивать традиционную для UNIX-систем структуру каталогов, обладающую характерным только для неё свойством развития дерева по рекурсивному принципу: (1-й уровень) - /bin (2-й уровень) - /usr/bin, (третий уровень) - /usr/local/bin, и т.д.)

Аватар пользователя sergeil

Re: Установка пакетов (структура каталогов)

Цитата:
dunin пишет:

Цитата:
sergeil пишет:
Надеюсь, не очень запутанно...

Очень понятно. :good:

Т.е. теперь вопрос можно поставить по-другому:
как мне установить пакет в /opt если он уже сам, меня не спрашивая, установился в /usr/local/ ??? (переустановить, переместить... снести-поставить)

Зачем? Да чтоб порядок был.

ASPLinux-10 - это дистрибутив-переросток. Он не стабилизировался, а развивался... Сравнив оригинальную систему на базе ASPLinux-10 и систему после установки всех обновлений, Вы обнаружите очень большую разницу.

IMHO, ASPLinux-10 с обновлениями - это уже почти ASPLinux-11. Пытаясь самостоятельно развивать ASPLinux-10, вы только зря тратите свое драгоценное время. Используйте его на что-то более полезное.

Я советую Вам перейти на ASPLinux-11, в котором OpenOffice-2.0 идет в составе дистрибутива и, как следствие, устанавливается в стандартные директории.

Аватар пользователя Archont

Re: Установка пакетов (структура каталогов)

Читайте man hier (описание иерархии каталогов линукс-систем),
man rpm (там есть раздел о том, как ставить "неперемещаемый" софт в каталоги, отличные от предусмотренных по-умолчнию).
Иногда возникает необходимость иметь несколько версий одной и той же программы. Тогда нужно поставить её с помощью этого механизма. При этом нужно иметь ввиду, что чтобы запустить её, нужно использовать специальные переменные окружения среды, например $PATH.

RSS-материал