LINUX.ORG.RU

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

Ну все. Растоптали мужика, вякнувшего про шлибы. Растоптали и асфальтовым катком на этом месте покрутились:)

svu ★★★★★
()
Ответ на: про shared libs от Dselect

> раз эдак в 5...

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

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

> Дыра в zlib делает уязвимыми сразу все сервисы, ее исполь.

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

anonymous
()

Мне кажется, что чаще всего проблема не в самом RPM, а в криво сляпанных SRPM... Слишком часто приходится крутить spec и искать причины, почему софтина не компилится (ну, забыл автор spec'а прописать пару зависимостей, бывает :))...

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

Можете рассказать эту сказку своей бабушке.

> А веришь, что статически слинкованный бинарник может весить меньше,
> чем динамический, быть быстрее в полтора раза и требовать меньше памяти?


$ cat series_again.cpp

#include <iostream>
#include <stdexcept>
using namespace std;
#include <ginac/ginac.h>
using namespace GiNaC;

int main(int argc, char** argv) {


try {
symbol eps("epsilon");

ex part1 = tgamma(2-eps)*pow(eps, -1)*pow(tgamma(3-eps), -1);
ex part2 = tgamma(2-eps)*pow(eps, 2)*pow(tgamma(3-eps), -1);
ex test = part1 + part2;

cout << "Expanding" << endl;
cout << test << " = " << test.series(eps, 1) << endl;
cout << part1 << " = " << part1.series(eps, 1) << endl;
cout << part2 << " = " << part2.series(eps, 1) << endl;

return 0;
}
catch ( exception & ee) {
cerr << ee.what() << endl;
return 1;
}
}


$ g++ -O0 `ginac-config --libs` series_again.cpp -o series_din

$ ls -gG series_din
-rwxrwxr-x 1 29430 Apr 6 19:10 series_din


$ g++ -O0 series_again.cpp /usr/lib/libginac.a /usr/lib/libcln.a /usr/lib/libgmp.a -o series_stat

ls -gG ./series_stat
-rwxrwxr-x 1 3081058 Apr 6 19:22 ./series_stat


P.S.

Если туда еще присобачить libstdc++, libm и прочие, то вообще весело будет.

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

--prefix

> Ключик сделать "--поискать-не-в-базе"
--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() в <каталог>.

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

--prefix

> Прикинь, сколько копий libc и прочей муйни будет висеть у тебя в
> памяти при хотя бы 100 запущенных статических процессах
а какая разница? они всё равно занимают совершенно тот же объём RSS
надеюсь, понятно почему?

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

>Не ставь новый КДЕ - ты же не с оболочкой работаешь, а с прогой?
>Вот с ней и работай.
Ты прям гипнотизер "этого rpm не может поэтому это тебе не нужно"
Ты не поверишь я с и KDE работаю =)
KPanel там KMail всякие

>На тему home - учу. Врядли у тебя там будет много прог. Заходишь в
>rpm и распаковываешь его в home. Добавляешь путь в библиотеки и к
>~/bin. Тебе счастье.
Спасибо гуру за очередную главу в камасутре.
Я об этом и говорил - потрахался немного и все установилось.
Хотя вроде как установка софта (распаковка
раскладывание по папкам etc)дело rpm или я чего не понимаю?

>Что касается злого админа - если программа нужна тебе по работе, он
>обязан тебе ее поставить. А если нет - то ты идешь лесом. Наверняка
>ты что-то подписывал на тему стороннего софта и прочего.
Мне по работе посмотреть в день бывает нужно пяток программ
часть оставить часть снести. Хочется иметь возможность
сказать что-то вроде rpm -i --home и все, а не бегать за админом.
туда сюда.

>Перепиши spec. Это довольно просто.
Я и говорю - гуру камасутры.
Спасибо пробовал зае-ло уже =)

>Да, но ты привел библиотеку, которая есть во всех пакетах + есть
>rpmfind.net rpmseek.com и наверняка есть сообщество твоего
>дистрибутива, которое собирает программы, не вошедшие в дистриб.
Ты понимаешь что "сообщества дистрибутивов" которые доделывают
за дистрибутором недостающие rpm в которых в файлы разложены
по тем папкам как это принято в дистрибутиве это - в большой
степени недосток rpm.

>Многие "писатели" собирают сами rpm под suse, rh и mdk.
Или не собирают, или собирают не с теми версиями библиотек.




Troll
() автор топика

> Если туда еще присобачить libstdc++, libm и прочие, то вообще весело будет.

Мне глубоко наплевать на твои детские экперименты. Я спросил: на что ты
готов поспорить, если я покажу тебе статический бинарь, который меньше,
быстрее и т.д., чем динамический.

anonymous
()
Ответ на: --prefix от mumpster

про разницу...

> а какая разница? они всё равно занимают совершенно тот же объём RSS надеюсь, понятно почему?

Нет, ни разу не понятно.

Есть и меня программы A, B, C,..., которые динамически линкуются с libblah.so. В памяти будет только одная копия libblah.so ( не считая стеков ). А если их статически собрать с libblah.a ?

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

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

У ls галлюцинации? Или таки anonymous несет чушь?

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

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

Ок показывай, но только не cat написанный на asm и дергающий сисколы напрямую а что нибудь более серьезное.

hint: бинарники - с динамически подгружаемыми либами еще и грузятся быстрей ;) Угадай почему ;)

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

> Хули ты изворачиваешься как проститутка? Ты что, не всосал суть вопроса?

Нет, просто я верю фактам, а не глюкам LOR'-овсих анонимусов. Обсуждение закончено, всего доброго.

Dselect ★★★
()
Ответ на: --prefix от mumpster

>> Прикинь, сколько копий libc и прочей муйни будет висеть у тебя в >> памяти при хотя бы 100 запущенных статических процессах

>а какая разница? они всё равно занимают совершенно тот же объём RSS надеюсь, понятно почему?

Неа, объясняй ;)

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

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

> Ок показывай, но только не cat написанный на asm и дергающий сисколы напрямую а что нибудь более серьезное.

Ну была у меня года 2 назад небольшая программа на fortran 77. После выделения части программы (самописный FFT :) в отдельную библиотеку суммарный размер бинарников (.so + сама прога) оказался больше, чем размер бинарника до выделения библиотеки.

И я этому особо не удивлялся :)

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

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

Правда, надо признать, мой пример не совсем в тему :)))

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

>Мне по работе посмотреть в день бывает нужно пяток программ
часть оставить часть снести. Хочется иметь возможность
сказать что-то вроде rpm -i --home и все, а не бегать за админом.
туда сюда.

То есть начальнику докладную никак не написать, чтобы тебе рутовые права дали?
Тяжело...

>Ты понимаешь что "сообщества дистрибутивов" которые доделывают
за дистрибутором недостающие rpm в которых в файлы разложены
по тем папкам как это принято в дистрибутиве это - в большой
степени недосток rpm.

Этот недостаток называется "следование стандартам". Не читал такой документ по файловой системе unix?

>Или не собирают, или собирают не с теми версиями библиотек.
Почему у меня все (за исключением sim 0.9.x) работает в любой сборке - и своей и их, и даже gimp, собраный под alt linux, прекрасно пашет на моей fedora core?

P.S. Хорошая работа - ставить программы, да еще и разные, по несколько штук в день.

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

>Ну была у меня года 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



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

Ближе к массам. Зачем нам один какой-то статический бинарь? Ты нам кде покажи или gnome, собранные статически. Автор статьи это предлагает делать.

P.S. И посчитай время на замену всех компонентов, когда в какой-нибудь общей библиотеке найдут дыру.

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

> hint: бинарники - с динамически подгружаемыми либами еще и грузятся быстрей ;) Угадай почему ;)
Только если либы уже висят, иначе наоборот.

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

>Только если либы уже висят, иначе наоборот.

Разумеется. Иначе какой смысл вообще в shared libs.

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

> Нет, просто я верю фактам,

Эти факты ты сам на ходу и создаёшь. Ссышь, когда страшно, пионерия?

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

> Ок показывай,

Дык тогда ты подписывайся на спор. Ща я всем за так показывать буду...

> hint: бинарники - с динамически подгружаемыми либами еще и грузятся быстрей ;) Угадай почему ;)

Потому что ты догадался смайлик в конце поставить.

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

Блин, ну автор и тупой, конкретно тупой... Он пробовал интересно хоть один 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.

vs240
()
Ответ на: комментарий от Troll

> 2)Нелзя без tirdparty средств выяснить чего нехватает - зависимости только на один уровень вглубь.

$ apt-cache showpkg xmms
Dependencies:
1.2.10-1 - libc6 (2 2.3.2.ds1-4) libglib1.2 (2 1.2.0)
libgtk1.2 (2 1.2.10-4) xlibs (20 4.1.0) libice6 (0 (null))
xlibs (20 4.1.0) libsm6 (0 (null)) xlibs (20 4.1.0)
libx11-6 (0 (null)) xlibs (20 4.1.0) libxext6 (0 (null))
xlibs (20 4.1.0) libxi6 (0 (null)) unzip (0 (null))
libasound2 (4 1.0.0) libaudiofile0 (2 0.2.3-4) libesd0 (18 0.2.29-1)
libesd-alsa0 (2 0.2.29-1) libmikmod2 (2 3.1.10) libogg0 (2 1.1.0)
libvorbis0a (2 1.0.1) libvorbisfile3 (2 1.0.1) xlibmesa3-gl (16 (null)) libgl1 (0 (null)) zlib1g (2 1:1.2.1) x11ampg (0 (null))
x11amp (0 (null)) xmms-vorbis (0 (null)) alsa-xmms (0 (null))
x11ampg (0 (null)) x11amp (0 (null))
xmms-vorbis (0 (null)) alsa-xmms (0 (null))

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

> Ты нам кде покажи или gnome, собранные статически.

Это всё, на что способна фантазия современного пионера?

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

> Иначе какой смысл вообще в shared libs.

А вот это уже хорошо, когда чел задумывается о смысле ;) Далеко не все
на такое способны.

anonymous
()

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.

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

Причем тут фантазия.
Ты предлагаешь нам показать какую-то отдельную прогу, которая будучи собрана статически, будет занимать меньше места в памяти и быстрее работать.

Вполне возможно, что такое есть. Вполне возможно, что оно быстрее работает. Никто с этим не спорит.

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

Почему-то мне кажется, что вариант со статикой провалится - иначе бы все ключевые части были собраны статически по умолчанию.

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

Так расскажи нам про случай с zlib, раз ты считаешь, что смысла нет.

Как нам быстро при обнаружении баги все поменять? Что у нас там есть критичного - openssl, zlib, glibc опять же. Предлагаешь все пересобирать при обнаружении любой дыры?

Или чего? Объясни свою позицию.

P.S. Хотя в случае с embeded устройствами использование статики во многих случаях оправдано.

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

> для реального приложения - кде или гнома

"Где" пишется черег букву "Г", а про гномов я не понял ;)

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

> Или чего? Объясни свою позицию.

Позиция простая: не использовать openssl, zlib и glibc ;)
Я понимаю, что после этих слов глазки пионеров стали размером в пять
копеек образца 1858-го года, но...

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

>слинковать все статически (или хотя бы большую часть). И сделать это для реального приложения - кде или гнома

В свое время по ошибке слинковал KDE Beta4 (это еще до 1.0) со статической qt. Запуск KDE, по сравнению с динамической qt был ужасен, памяти статическая KDE жрала гораздо больше.

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

Может, глаза пионеров и стали в 5 копеек, а вот нормальные люди при совете использовать статический libc повертели пальцем у виска и отошли в сторону...

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

Я думаю, что у якобы нормальных людей всё-таки остались сомнения.
В противном случае они на самом деле отошли бы в сторонку, и не
встревали бы с очередным умным комментарием ;)

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

Да, кстати, а кто тебе сказал, что ты нормальный? Ты же самый обычный
крэзик.

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

У, ещё один про кде бормочет. Неужели на свете больше нет других
программ? Неужели кде - самая важная программа в линуксе? О, времена, о, нравы...

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

И Вас с тем же:)

Сомнения в том, что libc должен быть прилинкован динамически? Если у кого остались эти сомнения - пусть вспомнит древнюю историю со статически линкованным staroffice 5.2 (или 5.1?) - когда при выходе очередной версии редхата он просто оказался неработоспособен. Все же бинарники с динамически линкованной libc прекрасно "вписАлись".

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

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

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

Да мы в курсе. Но нам вещают про ускорение. Вот хочу увидеть ускорение на реальных приложениях в linux.

P.S. Самый хороший пример статики, который я знаю - military os.

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

Ускорение надо тестировать на тяжелых приложениях, чтобы прирост скорости был сразу заметен - вот kde и gnome как раз подходят.

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

> У меня же не превращается система в помойку - с rh 7.3 до fc 1. Все как надо.

> Пользоваться уметь надо тем, что тебе дали в руки.

Значит для того, чтобы моя система не превращалась в помойку надо еще постараться? Менеджер пакетов должен за всем этим следить, а не пользователь. Если я хочу поставить программу, я должен просто написать одну строчку и не беспокоиться о всякой фигне. В печку этот RPM.

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

>Дык тогда ты подписывайся на спор. Ща я всем за так показывать буду...

С Вами все ясно - в сад...

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

не надо стараться, тора-гой. дистростроители постарались за тебя.

если в силу каких-либо обстоятельств не можешь обернуть нужный тебе софт в rpm пакет, см. ниже.

хочешь ставить пакеты из исходников так, чтобы rpm о них знал - checkinstall тебе поможет.

хочешь иметь несколько версий одного пакета в системе одновременно - man alternatives.

если эти способы не устраивают, то неправильно выбран дистрибутив. slackware, gentoo, e.t.c - будут правильным выбором.

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

В частном (специально подотовленном) случае
это так. В общем - нет.
+делать plugin систему без динамической линковки
будет очень весело

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