А кроме glibc ты что-нибудт в жизни видел? Похоже, что нет. А веришь,
что статически слинкованный бинарник может весить меньше, чем
динамический, быть быстрее в полтора раза и требовать меньше памяти?
На что спорим?
Мне кажется, что чаще всего проблема не в самом RPM, а в криво сляпанных SRPM... Слишком часто приходится крутить spec и искать причины, почему софтина не компилится (ну, забыл автор spec'а прописать пару зависимостей, бывает :))...
> Ключик сделать "--поискать-не-в-базе"
--nodeps и есть тот ключик: "use them if you know what the hell you're doing, you're on your own". не понимаю претензий.
> То есть например можно сделать ключи у rpm
rtfm. man rpm:
--root <каталог>
Использовать для всех операций файловую систему с корнем в <каталог>. Обратите
внимание, что это значит, что база данных также будет читаться и
модифицироваться под <каталог> и все pre и post скрипты будут исполняться после
chroot() в <каталог>.
> Прикинь, сколько копий libc и прочей муйни будет висеть у тебя в
> памяти при хотя бы 100 запущенных статических процессах
а какая разница? они всё равно занимают совершенно тот же объём RSS
надеюсь, понятно почему?
>Не ставь новый КДЕ - ты же не с оболочкой работаешь, а с прогой?
>Вот с ней и работай.
Ты прям гипнотизер "этого rpm не может поэтому это тебе не нужно"
Ты не поверишь я с и KDE работаю =)
KPanel там KMail всякие
>На тему home - учу. Врядли у тебя там будет много прог. Заходишь в
>rpm и распаковываешь его в home. Добавляешь путь в библиотеки и к
>~/bin. Тебе счастье.
Спасибо гуру за очередную главу в камасутре.
Я об этом и говорил - потрахался немного и все установилось.
Хотя вроде как установка софта (распаковка
раскладывание по папкам etc)дело rpm или я чего не понимаю?
>Что касается злого админа - если программа нужна тебе по работе, он
>обязан тебе ее поставить. А если нет - то ты идешь лесом. Наверняка
>ты что-то подписывал на тему стороннего софта и прочего.
Мне по работе посмотреть в день бывает нужно пяток программ
часть оставить часть снести. Хочется иметь возможность
сказать что-то вроде rpm -i --home и все, а не бегать за админом.
туда сюда.
>Перепиши spec. Это довольно просто.
Я и говорю - гуру камасутры.
Спасибо пробовал зае-ло уже =)
>Да, но ты привел библиотеку, которая есть во всех пакетах + есть
>rpmfind.net rpmseek.com и наверняка есть сообщество твоего
>дистрибутива, которое собирает программы, не вошедшие в дистриб.
Ты понимаешь что "сообщества дистрибутивов" которые доделывают
за дистрибутором недостающие rpm в которых в файлы разложены
по тем папкам как это принято в дистрибутиве это - в большой
степени недосток rpm.
>Многие "писатели" собирают сами rpm под suse, rh и mdk.
Или не собирают, или собирают не с теми версиями библиотек.
> Если туда еще присобачить libstdc++, libm и прочие, то вообще весело будет.
Мне глубоко наплевать на твои детские экперименты. Я спросил: на что ты
готов поспорить, если я покажу тебе статический бинарь, который меньше,
быстрее и т.д., чем динамический.
> а какая разница? они всё равно занимают совершенно тот же объём RSS надеюсь, понятно почему?
Нет, ни разу не понятно.
Есть и меня программы A, B, C,..., которые динамически линкуются с libblah.so. В памяти будет только одная копия libblah.so ( не считая стеков ). А если их статически собрать с libblah.a ?
>А кроме glibc ты что-нибудт в жизни видел? Похоже, что нет. А веришь, что статически слинкованный бинарник может весить меньше, чем динамический, быть быстрее в полтора раза и требовать меньше памяти?
Ок показывай, но только не cat написанный на asm и дергающий сисколы напрямую а что нибудь более серьезное.
hint: бинарники - с динамически подгружаемыми либами еще и грузятся быстрей ;) Угадай почему ;)
>> А кроме glibc ты что-нибудт в жизни видел? Похоже, что нет. А веришь, что статически слинкованный бинарник может весить меньше, чем динамический, быть быстрее в полтора раза и требовать меньше памяти?
> Ок показывай, но только не cat написанный на asm и дергающий сисколы напрямую а что нибудь более серьезное.
Ну была у меня года 2 назад небольшая программа на fortran 77. После выделения части программы (самописный FFT :) в отдельную библиотеку суммарный размер бинарников (.so + сама прога) оказался больше, чем размер бинарника до выделения библиотеки.
И я этому особо не удивлялся :)
Насчёт скорости уже не припомню, но вряд ли там была принципиальная разница.
>Мне по работе посмотреть в день бывает нужно пяток программ
часть оставить часть снести. Хочется иметь возможность
сказать что-то вроде rpm -i --home и все, а не бегать за админом.
туда сюда.
То есть начальнику докладную никак не написать, чтобы тебе рутовые права дали?
Тяжело...
>Ты понимаешь что "сообщества дистрибутивов" которые доделывают
за дистрибутором недостающие rpm в которых в файлы разложены
по тем папкам как это принято в дистрибутиве это - в большой
степени недосток rpm.
Этот недостаток называется "следование стандартам". Не читал такой документ по файловой системе unix?
>Или не собирают, или собирают не с теми версиями библиотек.
Почему у меня все (за исключением sim 0.9.x) работает в любой сборке - и своей и их, и даже gimp, собраный под alt linux, прекрасно пашет на моей fedora core?
P.S. Хорошая работа - ставить программы, да еще и разные, по несколько штук в день.
>Ну была у меня года 2 назад небольшая программа на fortran 77. После выделения части программы (самописный FFT :) в отдельную библиотеку суммарный размер бинарников (.so + сама прога) оказался больше, чем размер бинарника до выделения библиотеки.
Кто бы сомневался. Так и должно быть вне зависимости на чем пишешь.
hint: тот же самый libc используется более чем одной программой.
PS: попробовал своему текущему проектику ради шутки юмора сказать -static
при сборке.
ss@xantippe:~/Work/OpenCFD-0.1$ ls -l OpenCFD*
-rwxr-xr-x 1 ss users 1064391 2004-04-06 21:44 OpenCFD-0.11
-rwxr-xr-x 1 ss users 4645488 2004-04-06 21:44 OpenCFD-0.11-static
так что если к кажному бинарнику привернуть +3.5Mb это пожалуй будет не в 5 раз ;)
BTW:
s@xantippe:~/Work/OpenCFD-0.1$ ldd OpenCFD-0.11
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x0013e000)
libm.so.6 => /lib/libm.so.6 (0x001f0000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00213000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0021b000)
libc.so.6 => /lib/libc.so.6 (0x0026c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00110000)
ss@xantippe:~/Work/OpenCFD-0.1$ ldd OpenCFD-0.11-static
not a dynamic executable
Блин, ну автор и тупой, конкретно тупой... Он пробовал интересно хоть один spec сам сделать? RPM очень рульный пакетный менеджер, огромнейший респект его разработчикам!!!
Troll: по поводу твоих замечаний:
> 1)Ненужные зависимости которые задолбаешся удовлетворять.
> --nodeps это все таки ненормальный режим работы
> тогда уж rpm не особо нужен и tar.gz сгодится.
Если правильно писать зависимости, ненужных зависимостей нет, ибо ты получишь либо невозможность работы по причине отсутствия шареной либы, либо пакет можно будет установить с nodeps, если ему какая-нибудь gtkdoc необходима.
> 2)Нелзя без tirdparty средств выяснить чего
> нехватает - зависимости только на один
> уровень вглубь.
Пардон, а RPM - телепат? Откуда он знает что написано в REQUIRES в требуемых пакетах?
> 3)Нельзя корректно поставить несколько
> версий одного пакета. Это действительно нужно
> бывает, _особенно_ в Linux.
В таких крайних случаях никто не мешает слинковать статически. Мне например ни разу не приходилось держать несколько пакетов одной версии.
> Нельзя ставить программы от пользователя
> в его домашний каталог. Нет то-есть если
> потрахаться то конечно все можно. Но простых
> способов это сдеть с RPM нет.
А кто следить за этим зоопарком будет ? RPM тем и хорош, что позволяет следить за всеми зависимостями. А если сильно припечет от пользователя - --root/
> Не видит то что поставлено мимо RPM. Из tar.gz
> например. Чего орать что libXm нет если я Lesstif
> скачал скомпилил и поставил. Сложно что ли
> в LD_LIBRARY_PATH посмотреть?
Ибо нефиг. Иначе не получится следить за зависимостями... Вот удалишь ты свой lesstif а его какая-то прога требует. Нарушится целостность системы. Если вам, товарищи нужен зоопарк файлов а не четко отлаженная система - юзайте slackware и ставьте софт из tar.gz.
It seems that author never heared about redhat-networks , ximian's red-carpet , or aduva's OnStage. Even those 3d-party application costs money , they provide good enterprise solutions for complex dependecies.
Причем тут фантазия.
Ты предлагаешь нам показать какую-то отдельную прогу, которая будучи собрана статически, будет занимать меньше места в памяти и быстрее работать.
Вполне возможно, что такое есть. Вполне возможно, что оно быстрее работает. Никто с этим не спорит.
Я же тебе предлагаю сделать то, что советует автор - слинковать все статически (или хотя бы большую часть). И сделать это для реального приложения - кде или гнома. После чего загрузить это все и посмотреть на работу обычного пользователя с обычным компьютером - где и памяти 256-512 и проц не слишком шустрый...
Почему-то мне кажется, что вариант со статикой провалится - иначе бы все ключевые части были собраны статически по умолчанию.
Так расскажи нам про случай с zlib, раз ты считаешь, что смысла нет.
Как нам быстро при обнаружении баги все поменять? Что у нас там есть критичного - openssl, zlib, glibc опять же. Предлагаешь все пересобирать при обнаружении любой дыры?
Или чего? Объясни свою позицию.
P.S. Хотя в случае с embeded устройствами использование статики во многих случаях оправдано.
Позиция простая: не использовать openssl, zlib и glibc ;)
Я понимаю, что после этих слов глазки пионеров стали размером в пять
копеек образца 1858-го года, но...
>слинковать все статически (или хотя бы большую часть). И сделать это для реального приложения - кде или гнома
В свое время по ошибке слинковал KDE Beta4 (это еще до 1.0) со статической qt. Запуск KDE, по сравнению с динамической qt был ужасен, памяти статическая KDE жрала гораздо больше.
Может, глаза пионеров и стали в 5 копеек, а вот нормальные люди при совете использовать статический libc повертели пальцем у виска и отошли в сторону...
Я думаю, что у якобы нормальных людей всё-таки остались сомнения.
В противном случае они на самом деле отошли бы в сторонку, и не
встревали бы с очередным умным комментарием ;)
Сомнения в том, что libc должен быть прилинкован динамически? Если у кого остались эти сомнения - пусть вспомнит древнюю историю со статически линкованным staroffice 5.2 (или 5.1?) - когда при выходе очередной версии редхата он просто оказался неработоспособен. Все же бинарники с динамически линкованной libc прекрасно "вписАлись".
> У меня же не превращается система в помойку - с rh 7.3 до fc 1. Все как надо.
> Пользоваться уметь надо тем, что тебе дали в руки.
Значит для того, чтобы моя система не превращалась в помойку надо еще постараться? Менеджер пакетов должен за всем этим следить, а не пользователь. Если я хочу поставить программу, я должен просто написать одну строчку и не беспокоиться о всякой фигне. В печку этот RPM.