LINUX.ORG.RU
ФорумTalks

Как побороть ужас зависимостей в Linux? Может сделать систему полностью статической?


2

1

Здравствуйте. Я неадекват и я считаю концепцию современных пакетных менеджеров настоящей проблемой. Главный недостатoк в том что пакеты очень несовместимы. Т.Е:

1 Вы можете лишиться любимой программы просто потому что её больше некому поддерживать или она несовместима с другими компонентами. Наверно много людей мечтало оставить Gnome 2 в арче? :-)

2 Вы не сможете запустить новомодную примочку которая появилась буквально вчера не обновив при этом половину системы включая графический редактор и фиг знает что ещё. (рядом лежит windows версия которая запускается в windows 95/98/2000/xp/vista/7/8 и wine)

И как это побороть? Или может быть система песочниц?

Ответ на: комментарий от Reset

а в линуксе имена файлов от локали уже не зависят? или всё как всегда плохо?

а в линуксе имена файла никогда от локали не зависели, не зависят, и зависеть не будут. И это - хорошо.

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

а в линуксе имена файлов от локали уже не зависят? или всё как всегда плохо?

и да, я говорил про другое: в WinXP вообще-то юникод(хоть и черезжопный, UTF-16, ну ладно), при этом программы пишут в cp1251(как и все тексты), при этом в консоли cp866. Т.о. ТРИ кодировки СРАЗУ. Я уж молчу о том, в каких кракозябрах у вас имена файлов, если вы даже тупо строчку на экран вывести без костылей не можете.

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

а в линуксе имена файла никогда от локали не зависели, не зависят, и зависеть не будут. И это - хорошо.

4.2 в файловую систему имена сохраняются в зависимости от локали, поэтому куча народу поимела батхерт при переходе koi8->utf-8

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

4.2 в файловую систему имена сохраняются в зависимости от локали

НАБИРАЮТСЯ и ЧИТАЮТСЯ с экрана в зависимости от локали. А вот сохраняются - как строка байтов с \0 на конце.

поэтому куча народу поимела батхерт при переходе koi8->utf-8

проблемы негров шерифа нее^Wне волнуют. УМВР. Просто берёшь, и перекодируешь koi8 → utf-8. Это не сложно.

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

А вот сохраняются - как строка байтов с \0 на конце.

Вот именно, и это плохо!

Просто берёшь, и перекодируешь koi8 → utf-8. Это не сложно.

Зачем это делать? Почему нельзя было сразу сделать нормально?

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

Почему нельзя было сразу сделать нормально?

Если линуксоиды будут сразу делать нормально, то им станет скучно. Программы развивать не нужно будет, начнут клепать дистры. Кто не умеет писать программы, сразу начинает плодить кучу сущностей.

cipher ★★★★★
()

Я неадекват и я считаю концепцию современных пакетных менеджеров настоящей проблемой

Linux ----> Windows
Dependency Hell -------> DLL Hell
Все просто.

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

Для вендузятников то они собирают удобным для пользователя образом, чтобы
можно было раз поставить и пользоваться, независимо от того, что там у тебя ещё стоит.

Ещё раз. Это - мнимое удобство. То есть да, это удобно. Как на свалку выкинуть кучу хлама. Разложить его на складе по полочкам, конечно, менее удобно. Но более правильно. Так вот, Windows - свалка с накиданным, как попало, хламом, с кучей перескающегося кода и т.п. В статье написана, ещё раз повторяю, чушь.

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

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

Это где такие ужасы ?

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

Что-то мне подсказывает что система, в которой библиотека задействованная
не из под рута может взломать всё и вся, очень похожа на решето.

А где она так может ? Все экалации, как раз, делаются за счёт кода, работающего с другими привилегиями, или имеющего доступ к ресурсам, опять же, с другими привилегиями.

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

а пакетные менеджеры должны правильно прописывать пути этих версий к программ.

И вот тут начинается геморрой.

Какие пути и какой геморрой ? Один сказал непонятно, что, другой поддержал. :-)
soname зачем нужен, а ?

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

А зачем её пересобирать если она и так работала? А что делать,
если программа собирается только древним gcc с древними библиотеками?

Если она собирается древним gcc и древними библиотеками, то
а) она таки не нужна, и надо посмотреть вокруг;
б) эти древние библиотеки и древний gcc могут оставаться в репозитарии ради этой программы, если она такая нужная.

Например, в ALT несколько разных gcc всегда, можно выбрать любой. Если не выбирать, то используется самый новый. В p6 сейчас:

gcc3.4 - GNU Compiler Collection
gcc4.1 - GNU Compiler Collection
gcc4.3 - GNU Compiler Collection
gcc4.4 - GNU Compiler Collection
gcc4.5 - GNU Compiler Collection

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

А где она так может ? Все экалации, как раз, делаются за счёт кода, работающего с другими привилегиями, или имеющего доступ к ресурсам, опять же, с другими привилегиями.

Тогда какой высший смысл всем сложным пользовательским приложениям линковаться с одной версией libjpeg, libpng, libz, gdb? Расходы на постоянное поддержание такой совместимости могут быть велики.

Napilnik ★★★★★
()

Тебе на слакваре надо перейти.

ArturK
()
Ответ на: комментарий от olibjerd

А в блендере один архивчик, распаковал и пользуйся:)

Сравнение с ним неуместно, так как назначение разное.

И тот и другой изготавливают картинки и обрабатывают результаты деятельности друг друга. Убери при рендере 3Д 3Д-фичи и получишь картинку которую можно подправить в гимпе. Назначение этих двух редакторов пересекается а сложность кода приблизительно сопоставима, кардинально различается лишь сложность интерфейса.

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

Назначение этих двух редакторов пересекается

Назначение имакса и либреофиса тоже пересекается, ага.

сложность кода приблизительно сопоставима

Активный разработчик того и другого? Вечерами исходники смотришь?

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

DirectX 11 на Windows Vista?

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

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

Так вот, Windows - свалка с накиданным, как попало, хламом, с кучей перескающегося кода и т.п. В статье написана, ещё раз повторяю, чушь.

И кого там это волнует? Пользователям нет до этого дела. Он просто пользуются нужными им программами и знать ничего не знают.

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

Назначение имакса и либреофиса тоже пересекается, ага.

Емакс редактор предназначенный для кодеров на некоторых языках и линуксовых шуток. Если сравнивать ливерофис то делать это логичнее с kwrite - как-никак оба широко употребимые.

Активный разработчик того и другого? Вечерами исходники смотришь?

Такие исходники иногда посматриваю но предпочитаю вникать в другие, когда лор время не съедает:)

Napilnik ★★★★★
()

1. 4.2. Куда она пропадет с моего компа? 2. 4.2.

KendovNorok
()

Наверно много людей мечтало оставить Gnome 2 в арче? :-)

рядом лежит windows версия которая запускается в windows 95/98/2000/xp/vista/7/8

Ты, наверное, хотел сказать, по аналогии: «рядом лежит версия ДЕ от винХР, которая без труда запустится на восьмерке?»

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

Естественно писал, полагаясь на новые фичи в библиотеках, а на старые клал большой и толстый. И как быть? Напомню, что винде такой проблемы просто не существует.

А про игры, не запускающиеся в винХР, потому что требуют директХ 10? Уже все забыли? Где она, эта хваленая обратная совместимость? И это при том, что за обновление линукса никто денег не будет драть, в отличие от...

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

Мне показалось или вендузятники теперь тоже пользуются отмазками типа: «Если оно не работает, значит оно вообще не нужно и нужным никогда не станет»?

trex6 ★★★★★
()

Делаем комплект совместимости. Берём SUSE 10.0, устанавливаем на комп. Делаем «Полную установку», затем устанавливаем проприетарные кодеки из репозитория packman. Копируем куда-нибудь /usr/lib.

Устанавливаем SUSE 10.1 тем же способом. Копируем первый /usr/lib во второй. Заменяем существующие файлы.

Что мы получили. Вот есть библиотеки из первого дистрибутива Linux:

/usr/lib/libX11.so.6
/usr/lib/libXext.so.6
/usr/lib/libfreetype.so.6
/usr/lib/libfontconfig.so.1
/usr/lib/libGL.so.1
/usr/lib/libGLU.so.1
/usr/lib/libXrender.so.1
/usr/lib/libXinerama.so.1
/usr/lib/libXi.so.6
/usr/lib/libXrandr.so.2
/usr/lib/liblcms.so.1
/usr/lib/libcrypto.so.0.9.8
/usr/lib/libssl.so.0.9.8
/usr/lib/libxml2.so.2
/usr/lib/libjpeg.so.62
/usr/lib/libXcomposite.so.1
/usr/lib/libcups.so.2
/usr/lib/libXcursor.so.1
/usr/lib/libsane.so.1
/usr/lib/libhal.so.1
/usr/lib/libpng12.so.0
/usr/lib/libgphoto2.so.2
/usr/lib/libgphoto2_port.so.0
/usr/lib/libldap.so.2
/usr/lib/libldap_r.so.2
/usr/lib/liblber.so.2
/usr/lib/libxslt.so.1
/usr/lib/libXxf86vm.so.1

И есть из второго:

/usr/lib/libX11.so.6
/usr/lib/libXext.so.6
/usr/lib/libfreetype.so.6
/usr/lib/libfontconfig.so.1
/usr/lib/libGL.so.1
/usr/lib/libGLU.so.1
/usr/lib/libXrender.so.1
/usr/lib/libXinerama.so.1
/usr/lib/libXxf86vm.so.1
/usr/lib/libXi.so.6
/usr/lib/libXrandr.so.2
/usr/lib/liblcms.so.1
/usr/lib/libpng12.so.0
/usr/lib/libcrypto.so.0.9.8
/usr/lib/libssl.so.0.9.8
/usr/lib/libxml2.so.2
/usr/lib/libjpeg.so.62
/usr/lib/libXcomposite.so.1
/usr/lib/libcups.so.2
/usr/lib/libXcursor.so.1
/lib/libdbus-1.so.3
/usr/lib/libhal.so.1
/usr/lib/libsane.so.1
/usr/lib/libgphoto2.so.2
/usr/lib/libgphoto2_port.so.0
/usr/lib/libldap-2.4.so.2
/usr/lib/libldap_r-2.4.so.2
/usr/lib/liblber-2.4.so.2
/usr/lib/libxslt.so.1
/usr/lib/libcapi20.so.3
/usr/lib/libjack.so.0
/usr/lib/libodbc.so.1
/usr/lib/libgnutls.so.26

Часть библиотек изменила версию, часть добавилась, часть удалилась. Что мы сделали, скопировав /usr/lib от SUSE 10.1 в /usr/lib от SUSE 10.0? Мы обновили уже существующие библиотеки до последней версии, например libjpeg.so.62 был версии 1.0.25, а стал 1.0.31. Мы дополнили libpng12.so.0 новой версией libpng14.so.0, а libopenssl.so.0.9.8 - libopenssl.so.1.0.0. Наконец, удалённый в новой версии дистрибутива HAL был переписан в него из старой..

Принцип понятен? Продолжаем операцию с openSUSE 10.3, 11.0, 11.1, 11.2, 11.3, 11.4, 12.1, 12.2 и 12.3. Всё в один единый /usr/lib.

Зачем? Допустим, нужен нам Pidgin 2.5.x, а у нас в системе только 2.11.x. Например, разработчик умер и больше не разрабатывает свой плагин. Компилировать из исходников? Да вы что! Давайте просто найдём в интернете RPM-ку и установим её! Запускаем - а нам окошко «не найдено 11 библиотек!» и их список. Находим в меню программ «Универсальный запускатор», который спросит у нас то запускать. Говорим что надо запустить Pidgin 2.5. И он работает!

Как работает универсальный запускатор. Он делает:

LD_LIBRARY_PATH=/opt/compat_libraries/:$LD_LINRARY_PATH /opt/pidgin/bin/pidgin

И всё работает!

Я бы давно занялся, да лень.

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

Мне показалось или вендузятники теперь тоже пользуются отмазками типа: «Если оно не работает, значит оно вообще не нужно и нужным никогда не станет»?

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

Napilnik ★★★★★
()

Пока читал тред появилась идея сделать небольшой экскурс в историю и показать откуда у «реп» ноги растут.
Да только очень лень.

Deleted
()
Ответ на: комментарий от Reset

А вот сохраняются - как строка байтов с \0 на конце.

Вот именно, и это плохо!

чем плохо?

Просто берёшь, и перекодируешь koi8 → utf-8. Это не сложно.

Зачем это делать? Почему нельзя было сразу сделать нормально?

откуда мне знать, почему ты в 90х годах так криво файлы называл?

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

Если линуксоиды будут сразу делать нормально, то им станет скучно.

«нормально» по твоему — встроенный в архиватор костыли для перекодирования cp866 → cp1251 → utf-16?

Пусть программа будет сделана через жопу, лишь бы пользователю дать видимость работы?

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

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

Это где такие ужасы ?

слака+рукожопость.

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

И кого там это волнует? Пользователям нет до этого дела. Он просто пользуются нужными им программами и знать ничего не знают.

вот ты определись, за кого ты играешь: за пользователя, за одмина, за домохозяйку, или за тупорылого чучмека.

Или за демагога, который каждый раз нужное вставляет - сейчас ты чучмек, а в след. посте - одмнин.

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

вот ты определись, за кого ты играешь: за пользователя, за одмина, за домохозяйку, или за тупорылого чучмека.

Или за демагога, который каждый раз нужное вставляет - сейчас ты чучмек, а в след. посте - одмнин.

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

за кого ты играешь: за пользователя, за одмина, за домохозяйку, или за тупорылого чучмека.

Нормальной системы хочется всем.

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

лишь бы пользователю было удобно

и да, встраивать в программу костыли - не самая лучшая идея для пользователя. Даже если они работают. В WinXP они работают, а вот в Win7, в вендроиде, в телефоне - работать не будут. И это не вина win7, вендроида и телефона. Это вина разработчика, который вставил костыли.

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

Но ставить костыли - не лучшая идея

Проектируйте сразу нормально, а не так, чтобы потом приходилось городить кучу слоев абстракции, сетевой прозрачности и прочих ненужных в быту вещей.

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

Но ставить костыли - не лучшая идея

Проектируйте сразу нормально, а не так, чтобы потом приходилось городить кучу слоев абстракции, сетевой прозрачности и прочих ненужных в быту вещей.

ну вот - пытаемся. Например имена файлов в ext4 плохо спроектировали? Согласись, что получше, чем в WinNT & NTFS?

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

Тогда какой высший смысл всем сложным пользовательским приложениям линковаться с одной версией

А при чём тут «поломать» ? «Просто не работать» - это по барабану ? Опять же, некоторые процессы таки работают с высокими привилегиями.

Расходы на постоянное поддержание такой совместимости могут быть велики.

А расходы на неподдержание велики без всяких «могут». Зачем их нести, если можно не нести ? У Windows, повторяю, просто нет выхода.

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

Он просто пользуются нужными им программами и знать ничего не знают.

Ну и пусть пользуются. Ломать ради них нормальную систему никто не будет.

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

А ты попробуй подменить у себя какую нибудь libc6.so и остальное, что идёт с ней в пакете.

libc6.so - это какой-то косяк: так не бывает. Или же это плагин для чего-то, и от него точно ничего не зависит.

AS ★★★★★
()

И как это побороть?

Никак.

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

Ломать ради них нормальную систему никто не будет.

Блин, какие же фанаты тупые. Я ничего не предлагаю ломать. Для религиозных фанатов ничего не изменится, вы будете как и прежде жрать то что дают. Зато другая часть пользователей получит новые удобства. Найди мой первый комментарий в этой теме и перечитай.

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

Выше были приведены ссылки бери тулчейн и идею иерархии фс из GoboLinux. А все бинарники держи в FatELF.

Будет модно, просто, понятно, статично а главное работать будет где угодно ;)

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

Блин, какие же фанаты тупые.

Сам тупой. :-)

Я ничего не предлагаю ломать

Собирать статические пакеты - это значит ломать.

вы будете как и прежде жрать то что дают.

Вообще тупой. :-)
Я сам собираю себе то, что мне надо, если этого нет в репозитарии. И храню результаты в том самом репозитарии. То есть, оно там сразу и появляется.

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

Тебя никто не заставляет использовать эти пакеты. Можешь как и прежде брать то что лежит в репах, либо собирать сам.

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

Тебя никто не заставляет использовать эти пакеты.

Ты, в частности, меня заставляешь их собирать. Вот тебе надо - иди и собирай. ;-)
И зависимости/имена пакетов разруливай сам, чтобы твои пакеты не мешались нормальным и не вытягивались, случайно, по каким-то зависимостям другими нормальными пакетами.

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