Весь останній рік я використовував на сервері Gentoo Linux. Так як на багатьох серверах зараз використовується FreeBSD, мені стало цікаво, яку швидкість я можу отримати на старому залозі, використовуючи Gentoo. Gentoo це дистрибутив, який дозволяє легко скомпілювати програми з величезною кількістю прапорів компілятора, які відповідають за будь-яку частину заліза. Теоретично така оптимізація повинна сильно прискорити систему.
Однак досвід показав, що не все так добре. Є речі які мені дуже подобаються в Gentoo: менеджмент пакетів, використання USE прапорів і опрацьована система залежностей. Але на жаль виникли великі труднощі при налаштуванні сервера.
Ця система краще, ніж більшість Linux систем в області менеджменту пакетів і установки. Команда emerge правосходна. З її допомогою дуже просто встановити або оновити програму з усіма необхідними залежностями. Продумана система USE прапорів доповнює цю систему. Замість того, щоб вказувати прапори кожної модульна програми, можна встановити глобальний прапор USE. Більшість пакетів використовує його і система встановиться правильно.
Найбільш простий спосіб спосіб описати ці переваги - це порівняти з процесом установки FreeBSD на сервер. Приймемо, що у нас немає X11 і він нам не потрібен. Тепер нам треба встановити PHP і включити підтримку графічних операцій (перетворення зображень, генерація CAPTHA і т.д.). Для цього ви шукайте make прапори і додаєте їх в make.conf. Потім ви набираєте "make install". Під час процесу компіляції система портів побачить залежність від графічних бібліотек. Графічні біблоітекі вимагають шрифти. Шрифти вимагають менеджера шрифтів. Менеджер шрифтів налаштований для X11. Таким чином ми виявляємо, що X11 необхідний для виконання залежностей і доводиться натискати Ctrl-C для скасування установки.
З іншого боку, в Gentoo просто необхідно додати "-X" в USE прапори і все буде чудово. Це відмінна система.
Gentoo також має активну підтримку спільноти. Як написано в цьому блозі. є відмінний форум для користувачів Gentoo.
Незручність, виражене в часі.
Всі ці речі показують, що Gentoo приємно використовувати. І я із задоволенням буду використовувати її на своєму робочому столі, коли Apple OS X розчарує мене. Але я не буду устанавілвать Gentoo на сервер. Ось чому:
Gentoo вимагає багато часу для установки
Принаймні коли я встановлював Gentoo, не було нормального інсталятора. Документація чудова і в ній точно описано все, що потрібно зробити, але це займає багато часу. Фактично, щоб підняти систему я витратив кілька годин. І це був тільки початок.
Gentoo вимагає дуже багато часу для установки
Гідність Gentoo полягає в "розумної" компіляції всього - принаймні так прийнято вважати. Але на жаль на моєму режимі низької продуктивності тестовому сервері, компіляція навіть базової системи з Apache, MySQL, Python і деякими іншими важливими програмами зайняла близько трьох днів. Причому весь цей час машина безперервно компілювати систему.
Я розумію, що останні рекомендації на радять робити робити установку з першої стадії ( "stage-1"). І я б пішов з цими рекомендаціями. Але що тоді буде з перевагою компіляції всього?
Стратегія стабільності Gentoo: оновлення всього
Після того як ви витратили багато часу на компіляцію програм, вам швидше за все не захочеться робити це часто. На жаль, Gentoo змушує оновлювати програми просто заради поновлення програм.
Не існує "стабільною" версії Gentoo. Gentoo постійно оновлюється, таким чином у вас завжди будуть найсвіжіші версії програм. Як написано в керівництві Gentoo (Gentoo handbook):
Якщо ваша основна турбота - Підтримую сервер в робочому стані, то вам необхідно поставити стабільну систему, налаштувати її і забути про неї. Іноді треба буде лише встановлювати необхідні оновлення безпеки. З Gentoo у вас такого не вийде, так як не існує "стабільного" релізу Gentoo.
Що набагато гірше, є щось на зразок "системного оновлення". Це називається новий "профіль". У документації Gentoo рекомендується оновлювати профіль. Це оновлення замінить базову систему. Якщо ви системний адміністратор - вам доведеться налаштовувати все заново.
Оновлення профілю торкнеться величезної кількості конфігураційних файлів і може навіть торкнутися процес завантаження. Це явно не те, що ви хочете робити на сервері. Так як буде важко переконатися, що все працює як належить, і не перестане працювати після перезавантаження. Фактично це те, що сталося зі мною, не дивлячись на велику кількість часу, витрачений на оновлення файлів в / etc. Кінцевий результат: сервер довелося оживляти вручну, що призвело до вимушеного простою.
Для більш важливих серверів, ніж моя тестова система, ви захочете просто повернути систему зі старим профілем. Для цього просто встановіть Gentoo на іншій машині. Потім переконайтеся, що вона добре працює після перезавантаження. Після того, як ви переконалися, що все працює, ви можете перемикатися на нову систему.
Стратегія безпеки Gentoo: оновлення всього
Як ви можливо знаєте, FreeBSD має маленьку приємну програму, яка називається portaudit. Ця утиліта попередить вас, якщо ви встановите програму з відомими "дірками" в безпеці. Після цього ви можете просто оновити цю програму за допомогою команди "portupgrade". З цим процесом рідко трапляються проблеми.
Тепер Gentoo. Тут теж є щось подібне до portupgrade. Але тут немає portaudit.
По правді кажучи, в Gentoo є експериментальна команда "glsa-check". Ця команда автоматично перевірить відомі уразливості вашої системи. Вона також скаже, що треба зробити, щоб виправити проблеми безпеки. Мені подобається ця розробка, але я розумію, що ця команда ще не до кінця готова. Довідник Gentoo містить безліч попереджень про те, що ця утиліта знаходиться в стадії розробки.
А між тим, Gentoo змушує оновлювати всю систему. І звичайно поновлення можуть викликати руйнування системи.
Gentoo займає надто багато часу і занадто ризикована для серверів.
Найкращий спосіб зберегти систему стабільною - це налаштувати її і нічого не міняти. Це важко зробити з Gentoo. Gentoo хоче змінити безліч речей. Хоче постояно бути на вістрі розвитку.
І звідси мій висновок. З Gentoo весело грати, але вона займає дуже багато часу. Я думаю це плата за те, щоб завжди бути на передньому краї. Для домашніх систем Gentoo відмінно підходить. З нею приємно працювати, у неї є відмінна система портів, використовуються зручні USE прапори.
На закінчення я хочу процитувати те, що останнім часом повідомляла мені Gentoo: