Re[28]: Сравнение Microsoft Windows Vista и Mandriva Linux 2
От: Kluev  
Дата: 04.04.07 19:23
Оценка:
Здравствуйте, aka50, Вы писали:

A>Здравствуйте, Kluev, Вы писали:


K>>Это утешение для слабых умов. Когда каждая прога лежит в отдельном каталоге то никакие dpkg-query не нужны.

A>Предлагаю "сильным умам" объяснить, как будет выглдить установка программы,которая использует ms office api. Все dll от ms office должны лежать в каталоге этой проги?

Это зависит от того как эта прога позиционируется. Если это плагин к оффису то ей надо лежать в каком нибудь из подкаталогов оффиса. А если она использует оффис то длл-и оффиса следует положить в каталог программы. (Для простоты будем считать что оффис работает не через COM, а через статический апи в в длл). И это правильный путь потому что в противном случае dll-hell тебе всю плешь проест. Например ты ставишь более новый оффис с которым тебе удобно работать самому, но с ним плохо совместима эта прога и наоборот.

В качестве позитивного примера можно привести VLC который все кодеки содержит на борту в подкаталоге в виде плагинов (и запускается из любого каталога), что гораздо удобнее и правильнее чем MPC который юзает системные DirectShow кодеки. MPC круче работает с сабами, но codec-hell меня уже достал, на каждый чих и пук CCCP codec pack переустанавливать.


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

A>>>ручками это как? gcc -o mysuperprog -c myprog.cpp ? или всетаки make? а если make то все уже придумано давно http://packages.debian.org/unstable/admin/checkinstall

K>>Вкурсе. Только такие решения — это по сути костыли и воркэраунды вокруг неудачного дизайна структуры каталогов.

A>В конкурирующей ОС вообще никакого дизайна. А этот дизайн появился раньше win и переживет ее еще . Более того, пользователи виндоуз просто не в курсе про hard/soft symlinks, и не представляют, что программа может быть запущена откуда угодно и не обязательно из своего каталога (особенно в случае с chroot, правда сомневаюсь, что ты знаешь что это такое).

А это не играет особой роли т.к. пути берутся не абсолютные, а относительные. Из GetModuleFileName получаем полный путь к экзешнику, а из него мы можем получить путь к каталогу с файлами программы напр. exe_path + "\data\my_file.bla-bla-bla". В линуксе же модно хардкодить пути прямо в исполняемы файлы поэтому программы ищут файло по жестко зашитим абсолютным путям типа /etc/dummt.conf отсюда и необходимость в костылях типа chroot поскольку без этого програму скопированную в другой каталог просто не запустишь. Более того для chroot повторять прийдется всю иеррархию /bin /lib /usr/bla-bla-bla и это следствие жестко зашитых абсолютных путей. Если использовать относительные пути (относительно выполняемого файла) то такие танцы с chroot-ом вообще не нужны.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.