mvt написал:
Вы лучше еще раз alv'а почитайте
что именно?
mvt написал:
А что мешает запустить prelink после обновлений или установки новых программ?
alv написал:
После этого начинается собственно предварительное связывание, - процесс во времени длящийся, хотя и не столь уж долго - моя машина управляется с ним за время, затрачиваемое на выкуривание сигареты). Однако в ходе его может начаться самый охмуреж: вывод сообщений (обеспечиваемый нам опцией -v, так что без нее не обойтись), что программа имя_рек собрана с опцией non-fPIC и потому прелинкована быть не может. У меня в дистрибутиве CRUX, установленном из прекомпилировыанных пакетов, в этот черный список попали все приложения KDE и некоторая, зато самая тяжелая, часть Иксовых. То есть именно те софтины, ради ускорения которых все и затевалось.
Выход тут, к сожалению, один, простой, но занудный: пересобрать все, что попало в список. И тут уж, разумеется, впредь не забывать, что любая программа, в выводе ./configure --help которой отмечается доступность опции --with-pic, должна конфигурироваться именно с ее участием (флаг -fPIC можно добавить в и список значений переменной CFLAGS). А после этого - повторить процедуру прелинкинга, уже - с неизменно превосходным результатом.
т.е., после каждого обновления, вы предлагаете пересобирать всё кде и иксы до кучи? кстати, вы хоть раз проделывали подобное в убунте, или в любом другом бинарном дистре (кроме слаки)? попробуйте.
mvt написал:
Это конечно, круто, но либы предварительно линкуются со всеми прогами, которые их используют, нет?
нет.
например многие программы используют libc (точнее все), ядро находит эту либу, загружает её в память, и использует адреса функций из этой либы. Адреса постоянно меняются (вместе с самой либой), потому программе требуется эти адреса запомнить. Сами либы занимают место в памяти, потому они подгружаются только по требованию. И линкуются тоже.
Когда происходит обновление программы или либы, ПМ выполняет команду ldconfig, которая обновляет кеш линковщика. Если эту команду не выполнить, то программа обратится не по тому адресу, и мы увидим сообщение "Ошибка сегментирования". Если конечно увидим. Дело в том, что вы-же предлагаете (вместе с алвом) прелинковать иксы и кеды(гном), потому вы просто тупо не загрузитесь.
Команда-то выполнится, кеш обновится, но вы-же сами пересобрали программу так, что она не смотрит ни в какие кеши, а напрямую обращается к заданным адресам. Это ведь быстрее на несколько миллисекунд!
Самое весёлое в том, что всё будет работать после обновления но до перезагрузки. Старая библиотека в использовании, и хотя ПМ её уже удалил (точнее заменил), но она ещё лежит на диске, в памяти, и работает.
Никто не запрещает вам делать так, как вам нравится, я просто предостерегаю от ошибок. Но мне в общем-то всё равно, если ТС пополнит ряды холиварщиков, с тезисом: "я ставил этот ваш линух - это глючный отстой!" :P
И ещё - мы в разделе убунты, оставьте сборку и оптимизацию разработчикам. Если вам не нравится такая позиция - надо менять дистрибутив. Я не прав?