LINUX.ORG.RU

Идея для решения проблем с производительностью и несовместимости между дистрибутивами


0

1

Берём дистрибутив 2000 года, который летает и на первом пентиуме. Что сейчас изменилось в графических DE? Стали чуть-чуть красивее, функционал почти не изменился, стали сильно прожорливее. Берём все новые версии дистрибутива, копируем во временный каталог весь /usr/lib. Имеем от 500 до 1000 мегабайтов всех стандартных линуксовых библиотек, libxxx.so от нулевой до 4 версии. У некоторых извращенских библиотек может быть версий 10. Симлинк libxxx.so ведёт на последнюю версию, libxxx.so.X, поэтому все новые программы компилируются именно с ней. Копируем всё это в системный /usr/lib. Таким образом мы имеем систему, работающую на Pentium 100 и летающую на нём, при этом запускающую все пакеты от федоры, суси, мандривы, любых годов выпуска и версий, а также официальные бинарники всех программ, от FireFox до Nero.

Завтра на работу, а ты синий до сих пор.

baverman ★★★
()

У меня есть другое решение проблем несовместимости, более реальное и правильное:
1. Делаем убунту единственным десктопным дистрибутивом.
2. Пользуемся.
3. Все, проблем с несовместимостью нет.

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

В убунту есть что-то заслуживающее внимания? Убунта тормозна и глючна, увы.

ZenitharChampion ★★★★★
() автор топика

>Идея для решения проблем с производительностью и несовместимости между дистрибутивами

Java называется это самое решение проблем

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

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

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

Открытая программа распространяется в исходниках и бинарниках. Исходники сами скомпилируются с последней доступной в системе системной библиотекой, кроме того, их можно ставить без консоли с помощью src.rpm. Бинарники скомпилированы с какой-либо старой библиотекой и могут не запуститься в новой системе. Для этого можно сделать так: скомпилировать статически, тогда будет как в PC-BSD, когда FireFox занимает 70 мегабайтов, а пакетный менеджер тормозит даже на мощном компьютере. Можно положить те библиотеки, которые часто меняют номер версии, вместе с пакетом, а сам пакет скомпилировать с новыми пакетами и ОБЯЗАТЕЛЬНО старым glibc. Последнее я считаю оптимальным, но так делают единицы. Вон пакет с Java упомянули, openoffice, проприетарные игры и драйверы nvidia. Неро ещё. Всё. Последний инди-бандл так вообще много где не запускается. Поэтому я и предлагаю такую концепцию.

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

Забыл сказать: игры и некоторые программы нельзя компилировать статически, потому что им нужен libGL, который на всех компьютерах свой. Где-то mesa, где-то проприетарный.

ZenitharChampion ★★★★★
() автор топика

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

ZenitharChampion ★★★★★
() автор топика

Вот та же убунта и дебиан. Она проверяет зависимости и говорит мне не то, что другой пакет не той версии, а что библиотека не той версии. Это можно как-то доработать. В RPM вообще не разбираюсь, в Deb только чуть-чуть. А может, просто сделать один здоровенный пакет типа old-stable.rpm, который всё ставит и всё чудесным образом начинает работать

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

> Открытая программа распространяется в исходниках и бинарниках.

В этом и проблема, что закрытых программ мало.

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

Распакуй содержимое пакета архиватором file-roller в новый каталог, зайди в распаковавшийся usr из консоли, запусти командой ./programma. Посмотри какую библиотеку хочет. Скачай её, положи рядом с программой и запускай так: LD_LIBRARY_PATH=. ./programma . Это обход проблемы, но ты так можешь выискивать тонны библиотек, от 2 до 10 для программы.

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

Ага, и что исходник не поставишь как пакет двумя кликами мыши. Генту это конечно упрощает, но мне бы хотелось, чтобы все программы предоставляли src.rpm или deb-src.

ZenitharChampion ★★★★★
() автор топика

Еще пара мыслей, и ты изобретешь Windows COM, OLE, или как там оно сейчас называется...

ИМХО, линуксоиды несовместимы со стабильностью, разве что только в формате криокамеры (читай, Debian). Ниасилят они поддерживать одновременную совместимость, даже если будут все ресурсы для этого. Скучно оно, уныло, совсем не just for fun.

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

Ну вот смотри. Сейчас пакетный менеджер проверяет наличие пакета libcurl 4, не больше и не меньше. Это грустно я считаю. Нужно проверять только наличие пакета меньшей версии, чем нужно программе. Для этого в системе должны лежать libcurl.so.0, libcurl.so.1, libcurl.so.2, libculr.so.3 и libcurl.so.4. И симлинк libcurl.so => libcurl.so.4. Все предыдущие версии разумеется должны быть последними с последними багфиксами.

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

А DLL Hell, это когда библиотека можен называться ТОЛЬКО wininet.dll и больше никак, иначе всё не заработает. А если пора ломато API и ABI - то всё, программу не запустить никак.

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

> пакетный менеджер проверяет наличие пакета libcurl 4, не больше и не меньше

Нужно проверять только наличие пакета меньшей версии, чем нужно программе


1) есть достаточно убогий пакетный менеджер, который не умеет обрабатывать строчку libcurl <=4 ?

2) помойму, мантейнерам пакетов просто лень вдаваться в такие детали

3) а программерам лень пейсать код, совместимый с разными версиями. «Ибо это скучно, уныло, совсем не just for fun.»

все вместе это означает, что даже при наличии технической возможности, никто не будет делать программу для libcurl <=4, потому что это неинтересно. Правильно?

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

Программа компилируется с libcurl любой версии, и если хочется чтобы она работала с третьей версией, надо всего лишь перекомпилировать исходник. Бинарник жёстко привяжется к третьей версии и с четвёртой не заработает ни в какую. Я так недавно делал с ufasoft bitcoin miner, готовый бинарник укомплектовал libcurl 4 и openssl 1.

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

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

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

> Программа компилируется с libcurl любой версии

где ты видел такую программу?

у библиотек между версиями меняются апи

А если пора ломато API и ABI - то всё, программу не запустить никак.


программу запустить - с помощью API proxy/decorator, который должны писать разработчики библиотеки

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

Все открытые программы такие. У меня устаревший на 5 лет дистрибутив openSuSE 10.2, и когда я скачиваю бинарник и он не запускается, хочет libavformat.so.52, а у меня только 45, я беру исходник и компилирую её. И всё работает. На днях так делал с TeeWorlds. Все такие, ещё раз говорю. Configure смотрит, чтобы GTK был версии 2.10 или старше, а готовый бинарник будет работать только на 2.20, только потому что он с ней скомпилирован. Вот кстати мой бинарник с биткойн-майнером. Все зависимости рядом. http://zenitur.narod.ru/ufasoft-miner-0.20.tar.lzma Прекрасно компилируется с libcurl3 и openssl0.9.8, говорю так потому что компилировал в пятом дебиане. Но с целью закрытия уязимостей и снижения количества зависимостей я собрал последние версии библиотек, отключив ldap, idu и прочие ненужные зависимости.

ZenitharChampion ★★★★★
() автор топика

Идея не нова... я иногда так и делаю симлинки на какие-то библиотеки, когда какая-то старая программа не запускается. работает, хоть и не всегда... тот же maple 8 я так и не смог запустить. плюнул и скачал последнюю (13-ю на тот момент) версию. сейчас уже по-моему 14-я есть.

Сейчас мне мапле не нужен, не пользуюсь. раньше по учёбе было надо.

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

намякиваешь - результатов - 14500

намекать - результатов - 514000

514/14.5 = 35.44

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

Причем, 35.44 - это около 3 процентов, что примерно совпадает с распространенностью линуксов на десктопах

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

Почему у школьников?

А у кого?

Разве школьников это интересует?

Вот их это больше всех и интересует.

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

На этом сайте есть школьники с мировоззрением «всё решено за нас. Ничего менять не надо, всё идеально. Проблем нет. Линукс - лучшая система де-факто. Мир чёрно-белый: всё, что связано с Windows, это плохо, а в Linux всё хорошо. Если что-то не нравится - вали в винду. Только великие люди могут что-то менять в линуксе, если менять хочет кто-то другой, он не прав и он школьник. Поцаны, слушайте рэп и жуйтё сёмки». Как такие люди могут решать проблемы, если они их даже не видят?

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

Проблема: в Windows я устанавливаю любую стабильную версию программы. В Linux обязан юзать то, что дали. FireFox 3.5, не больше и не меньше, потому что для моей версии дистрибутива выходят только обновления безопасности. По-твоему она надуманная?

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

На этом сайте есть школьники с мировоззрением «всё решено за нас. Ничего менять не надо, всё идеально. Проблем нет. Линукс - лучшая система де-факто. Мир чёрно-белый: всё, что связано с Windows, это плохо, а в Linux всё хорошо. Если что-то не нравится - вали в винду.

Какой черно-белый взгляд на ЛОР и его публику...

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

Моги растут от задетого ЧСВ. :)

Как такие люди могут решать проблемы, если они их даже не видят?

А зачем решать надуманные проблемы?! Нахрена тебе совместимость пакетов?! Какие проблемы с производительностью спобно решить твоё „решение“?!

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

«А зачем решать надуманные проблемы» - вот это и есть деление мира на чёрное и белое. «У меня всё работает. У кого не работает - в игнор».

ZenitharChampion ★★★★★
() автор топика

идея говно, да и тс недалеко от говна утёк

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

Проблема: в Windows я устанавливаю любую стабильную версию программы.

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

В Linux обязан юзать то, что дали. FireFox 3.5, не больше и не меньше, потому что для моей версии дистрибутива выходят только обновления безопасности. По-твоему она надуманная?

Надуманная, не юзай LTS дистры если тебе нужно свежее ПО, LTS для того дабы один раз поставить и долгие годы юзать. Это инструмент мейнстрима, а не удовлетворения потребностей прыщавых школоло.

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

Что такое ЧСВ?

Вот и выросло поколение...

А вот такие. Я могу юзать старое DE и новый софт.

Я юзаю стабильный рантайм и свежие кеды, в чём проблема?!

«А зачем решать надуманные проблемы» - вот это и есть деление мира на чёрное и белое.

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

«У меня всё работает. У кого не работает - в игнор».

Где я до этого писал УМВР?! Я спросил что может исправить твоё «решение» особенно в плане производительности... :D

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

Вместо того, что бы ныть якобы тебя тут обвиняют в чём-то аргументировал бы свою позицию. :D Демонстрация собсвенных комплексов есть всего лишь правокация на толстый троллинг.

erfea ★★★★★
()

>Таким образом мы имеем систему, работающую на Pentium 100 и летающую на нём, при этом запускающую все пакеты от федоры, суси, мандривы, любых годов выпуска и версий

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

anonymous
()
Ответ на: комментарий от annulen

Подойдет любой дистрибутив, главное — чтобы он был один. Убунта просто больше всех похожа на мако^Wнормальную систему.

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

Я юзаю KDE 3 и свежий софт. Но для этого нужно постараться и поколдовать в консоли. Поэтому предложить поставить KDE 3 попробовать друзьям нереально. Так что такое ЧСВ? Аргументацию ищи в треде сам, она есть. Либо задавай наводящие вопросы, если что не понял.

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

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

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