Собрался поставить заместо старой фришки новую систему. Колебаюсь между debian и gentoo. Нужна стабильность и что бы при апдейте небыло проблем. Что выбрать? У кого, какой опыт?
>Вообщем я же в вопросе не поставил Слаку....
Дебиана ставь тогда и не парься, я тоже Генту хорошо знаю,
но компилять нужный софт иногда напрягает...
да и к тому же Дебиан, как бы, stable и все такое...
блин, что я говорю? - Slackware :)
>Перманентная компиляция - непременный атрибут боевого сервера.
У меня боевой сервер. С двумя MMORPG. С форумом, на котором сидит до 470 человек в онлайне. И перманентной компиляции что-то не наблюдается. Что я не так делаю?
ты все так буквально понимаешь? Пример из жизни - нашли дыру в apache || sshd || и-что-еще-там-у-тебя-есть. Дыра серьезная. Что будешь делать? Обновлять на сервере? Емержить на нем? Ну-ну. Как минимум, за наличие компилятора на сервере я бы уже по голове не погладил, про нагрузку вообще не говорю. Собирать на другом компьтере и ставить на сервер? Это у тебя сервер один, а у людей и побольше бывает.
А администраторы/пользоветели debian просто открывают (если нужно)коннект с сервера в сторону репозитория и одной командой в течении считаных секунд или минут (в зависимости от объема/канала) ставят патченые пакеты.
Компилю. Только на таком загруженном сервере, при nice +15, компиляция обновлений занимает в среднем минут 20..30 в день. Выполняется ежедневно в 7 утра. Сегодня не было, так как в emerge -puvtDN world образовался конфикт, который система самостоятельно не разруливает, пришлось с утра вмешаться. Вчера обновились:
- file-4.17-r1
- java-config-wrapper-0.9-r4
- automake-1.9.6-r2
- python-docs-2.4.3
- python-2.4.3-r1
- sysvinit-2.86-r5
>Как минимум, за наличие компилятора на сервере я бы уже по голове не погладил
Да ну? Даже когда для его выполнения требуется рутовый доступ? Не кажется ли тебе, что если кто-то уже добрался до рута, то компилятор ему не обязателен? :)
>про нагрузку вообще не говорю
Вот и не говори. Повторюсь для тормозов, что на том же сервере -две ММОРПГ, на которых было до полутора сотни человек в онлайне в пике. Процесс компиляции никаких лагов у них не вызывал :)
>Это у тебя сервер один, а у людей и побольше бывает.
А я где-то говорю за всех? Не нужно мне свои фантазии приписывать :)
> Компилю. Только на таком загруженном сервере, при nice +15, компиляция обновлений занимает в среднем минут 20..30 в день. Выполняется ежедневно в 7 утра. Сегодня не было, так как в emerge -puvtDN world образовался конфикт, который система самостоятельно не разруливает, пришлось с утра вмешаться. Вчера обновились:
Ты болен. Просто болен. Нарвешься на несовместимость новой свежесобранной версии со старой -- вот тогда поймешь, но поздно будет.
PS. Я так живо представляю, что я на всех своих несчастных ~ 50 машинах что-то гордо пересобираю по ночам -- дурно становится. А ведь есть люди, у которых машин поболее.
>Нарвешься на несовместимость новой свежесобранной версии со старой
1. Автоматическое обновление происходит только для очевидных случаев. Или ты не заметил выше, почему у меня сегодня не прошло автоматическое обновление? :)
2. Ты забываешь, что Gentoo - это source based. И в стабильных версиях нарваться на несовместимость библиотек - практически нереально. По крайней мере за полтора года её эксплуатации на сервере такого не было ни разу. А вот Red Hat у меня постоянно и методично умирал через год после установки. Достаточно сказать, что к концу функционирования система сама себя именовала Fedora Core 7.3 :)
После RH, Gentoo - это просто одно удовльствие.
>А ведь есть люди, у которых машин поболее.
А есть люди, у которых сервер один. Я где-то ратовал за переход всех твоих серверов на Gentoo?
# time emerge apache
...
real 8m54.167s
user 2m20.681s
sys 1m32.490s
Это время не только компиляции, но и установки (у апача вагон и маленькая тележка мелких файлов - дока, например, да и /etc/ld.so.cache долго обновляется)... Так что компиляция сама по себе ещё меньше времени занимает. Кстати, всё с nice=+15 и интенсивным сёрфингом во время компиляции :)
> И в стабильных версиях нарваться на несовместимость библиотек - практически нереально
Зато такое бывает.
>>> Unpacking source...
>>> Unpacking gettext-1.05.tar.gz to /var/tmp/portage/Locale-gettext-1.05/work
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/Locale-gettext-1.05/work/gettext-1.05 ...
[32;01m*[0m Using ExtUtils::MakeMaker
checking for gettext... no
checking for gettext in -lintl...gettext function not found. Please install libintl at Makefile.PL line 18.
no
!!! ERROR: dev-perl/Locale-gettext-1.05 failed.
Call stack:
ebuild.sh, line 1539: Called dyn_compile
ebuild.sh, line 939: Called src_compile
ebuild.sh, line 1248: Called perl-module_src_compile
perl-module.eclass, line 128: Called perl-module_src_prep
perl-module.eclass, line 117: Called die
!!! Unable to build! (are you using USE="build"?)
!!! If you need support, post the topmost build error, and the call stack if relevant.
>>> Unpacking source...
>>> Unpacking libintl-perl-1.11.tar.gz to /var/tmp/portage/libintl-perl-1.11/work
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/libintl-perl-1.11/work/libintl-perl-1.11 ...
[32;01m*[0m Using ExtUtils::MakeMaker
Checking whether we can compile the XS version ... no
=> Cannot build the XS version of libintl-perl (see 'config.log' for
=> details). This is harmless!
Checking if your kit is complete...
Looks good
Error: Unable to locate installed Perl libraries or Perl source code.
It is recommended that you install perl in a standard location before
building extensions. Some precompiled versions of perl do not contain
these header files, so you cannot build extensions. In such a case,
please build and install your perl from a fresh perl distribution. It
usually solves this kind of problem.
(You get this message, because MakeMaker could not find "/usr/lib/perl5/5.8.7/i386-linux/CORE/perl.h")
!!! ERROR: dev-perl/libintl-perl-1.11 failed.
Call stack:
ebuild.sh, line 1539: Called dyn_compile
ebuild.sh, line 939: Called src_compile
ebuild.sh, line 1248: Called perl-module_src_compile
perl-module.eclass, line 128: Called perl-module_src_prep
perl-module.eclass, line 117: Called die
!!! Unable to build! (are you using USE="build"?)
!!! If you need support, post the topmost build error, and the call stack if relevant.
>Зато такое бывает.
# emerge -av dev-perl/Locale-gettext
...
[ebuild R ] dev-perl/Locale-gettext-1.05 USE="-minimal%" 7 kB [14]
...
checking for gettext... yes
...
>>> Merging dev-perl/Locale-gettext-1.05 to /
...
>>> dev-perl/Locale-gettext-1.05 merged.
Кто из нас что не так делает?
# emerge -av dev-perl/libintl-perl
...
[ebuild N ] dev-perl/libintl-perl-1.11 USE="-minimal" 535 kB [23]
...
Writing Makefile for libintl-perl
...
>>> Merging dev-perl/libintl-perl-1.11 to /
...
>>> dev-perl/libintl-perl-1.11 merged.
В первом случае - на боевом сервере, во втором - мне эта либа не
нужна на сервере, так что поставил на десктопном amd64, на котором
сижу.
Вообще, с Perl-либами, на сколько помню, проблем никогда не было,
даже, когда немалую их часть ставлю через g-cpan, а до того - вообще
средствами Перла ставил :)
Единственные места, где на сервере иногда вылезают глюки - это то,
что касается Java 1.5
Но, кстати, какие ещё дистрибутивы способны, пусть и с глюками,
порой, одновременно работать с Java 1.5, 1.4 и 1.6? :)
# euse -i build global use flags (searching: build) ************************************************************ [- ] build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping.
Зачем тебе !!internal use only!! ? :)
Ведь, вполне вменяемо написано: DO NOT SET THIS FLAG YOURSELF!
Подбери пальцы и сопли и подумай, почему у тебя на бутстрапе получилась петля. Не вижу смысла в дальнейшем диалоге с неумным человеком, слишком много о себе возомнившем.