Unix замітки дилетанта

Проте, Slackware надзвичайно привабливий для багатьох користувачів. Він виключно стійкий і безпечний, що робить його дуже підходящим для застосування на серверах. Досвідчені адміністратори знаходять, що цей дистрибутив містить менше помилок, т. К. Використовує більшість пакетів в їх первинному вигляді - без зайвих змін, які можуть внести нові помилки. Нові випуски Slackware нечасті (приблизно один раз на рік), хоча оновлені пакети завжди доступні для завантаження. Slackware - відмінний дистрибутив для тих, хто зацікавлений в більш глибокому знанні пристрої Linux.

З почутих мною характеристик цього дистрибутива найвдаліша, ймовірно, така: якщо вам потрібна допомога в роботі з Linux, знайдіть користувача Slackware. Швидше за все, він вам допоможе краще, ніж той, хто працює в будь-який інший різновиди Linux.

За. висока стійкість, відсутність помилок, тверде дотримання принципів UNIX.

Проти. ручна настройка шляхом редагування текстових файлів, обмежена здатність розпізнавати обладнання.

Slackware Linux я встановив в основному заради цікавості. По тому, що я про нього чув, він повинен був мені сподобатися. Так воно і виявилося. А далі вийшло за приказкою: "коготок загруз - всій пташці пропасти". Поставивши Slackware заради розширення кругозору, я в ньому і залишився (на деякий час. Див. Сторінку про Gentoo).

Після FreeBSD - Slackware виглядає знайомим. Прозорий, логічний. Система управління пакетами частково нагадує FreeBSD, але не відстежує залежностей, що часто ставлять в докір Slackware. Насправді ж це майже непомітно, т. К. Ніхто і не передбачає установку нових, що не входять в дистрибутив програм за допомогою пакетів. З пакетів встановлюється тільки система; додаткові програми збираються звичайним чином за допомогою configure make make install і за бажанням користувача перетворюються в двійкові пакети за допомогою checkinstall. Про задоволення програмних залежностей піклуються сценарії configure. (NB. Звичайно, звикнувши до системи автоматичного складання програм, яка є в Gentoo / FreeBSD, від ручного підбору правильних аргументів для чергового configure кілька відвикаєш.) Система швидко працює, не намагається думати за мене і, як висловився один користувач Slackware, «не плутається під ногами ".

Отже - установка і налаштування Slackware Linux 9.x, приблизно за тим же планом, що і замітка про FreeBSD.

P. S. До речі, багато корисного про Slackware можна знайти на сторінці Андрія Осика.

Підтримка російської мови. Потрібно виправити або створити такі файли (причому сценарії в каталозі /etc/rc.d повинні бути позначені як виконувані):

a) /etc/rc.d/rc.font: b) /etc/rc.d/rc.keymap: c) /etc/profile.d/lang.sh: d) / usr / share / locale / locale. alias. Тут потрібно запис "russian" змінити наступним чином: e) / etc / X11 / XF86Config:

Ось готовий пакет для "русифікації" консолі в Slackware 9. *. Він робить все, що описано вище, за винятком русифікації X Window. Одне зауваження: якщо ви видалите його командою removepkg, будуть видалені і деякі системні файли. (

Про пресу по-російськи за допомогою Ghostscript дивіться нижче.

Створення нового ядра.

Як мені довелося дізнатися, 9-й Slackware мимовільно перезавантажується приблизно через 30 секунд після завантаження, будучи запущений на материнській платі з мікросхемою i810. Щоб щонайменше припинити перезавантаження, потрібно видалити модуль ядра i810-tco (якийсь WatchDog Timer):

Можна навіть тимчасово помістити цей рядок в /etc/rc.d/rc.local.

Радикальне лікування в тому, щоб перекомпіліровать ядро, прибравши з нього підтримку пристроїв WatchDog Timer (в розділі Character Devices) і заодно i8x0 Random Number Generator (там же) - цей модуль теж викликає помилку. Якщо у вас мережева карта Realtek 8139, доведеться прибрати і другий драйвер для неї, позначений як "експериментальний". З двома драйверами мережева карта працювати не захоче. Можна заодно і очистити ядро ​​від екзотики на кшталт Bluetooth, IrDA, RAID (щонайменше, для мене це екзотика).

На жаль, в Однодискова дистрибутиві Slackware каталог / slackware / k - з вихідними текстами ядра - недоречний. Потрібно забирати його з Мережі, з ftp.slackware.com або його дзеркал (наприклад, ftp.sai.msu.su). А можна взяти найсвіжішу версію на www.kernel.org.

Трохи про збірку ядра.

Послідовність команд (за умови, що вихідний текст ядра розпакований в /usr/src/linux-2.x.x):

Перед цим непогано підправити Makefile, змінивши в ньому рядок EXTRAVERSION:

В цьому випадку модулі нового ядра виявляться в окремому каталозі, ім'я якого буде виглядати, наприклад, як /lib/modules/2.4.21-tim1. Якщо у вас встановлено одночасно кілька ядер - це зручно.

Файли vmlinuz і System.map будуть записані в кореневій каталог - /. Їх можна перейменувати (напр. Vmlinuz-tim1, System.map-tim1) і перенести в / boot. Потім потрібно додати новий запис в /etc/lilo.conf.

і перевстановити lilo командою lilo (від імені root).

Але це все загальновідомо. Найцікавіше тут інше - настройка ядра. Можна використовувати вже готовий файл конфігурації - / boot / config, і внести в нього необхідні зміни. Збираючи ядро, взяте на www.kernel.org, я вирішив піти складним шляхом і налаштувати все "з чистого аркуша". У наведеній нижче таблиці показано, що і в якому розділі конфігурації мені довелося змінити, і навіщо ці зміни. "M" у другому стовпці означає "модуль", "Y" - блок, вбудований в ядро. Модулі мережевих пристроїв, звукових карт і ін. у вашому випадку, можливо, будуть інші.

Чи не стверджую, що ця конфігурація найкраща, але вона працює. Чого я і домагався. ;-)

Налаштування мережі робиться за допомогою команди netsetup ще під час початкової установки. Якщо мережева карта буде розпізнано правильно, в каталозі /etc/rc.d з'явиться файл rc.netdevice приблизно такого змісту:

Після встановлення

Мережеві диски машин, що працюють під Windows. можна підключити командою mount.smbfs. Синтаксис дещо відрізняється від FreeBSD:

Детальніше - man mount.smbfs.

На мій погляд, простіше і зручніше використовувати для роботи з SMB-дисками Midnight Commander - див. Нижче.

Віртуальні сервери в Apache (і трохи про налаштування Apache взагалі).

Створення віртуального сервера:

a) в /etc/apache/httpd.conf додати:

b) в / etc / hosts додати:

Поправка для Slackware 9.1. CUPS вже входить в цю версію Slackware, проте встановлюється разом з lprng. Образ дій:

Сказане в попередній замітці про друк за допомогою a2ps повністю відноситься і до Slackware.

Програми для повсякденної роботи. З цим справа краще, ніж в FreeBSD. teTeX 2.0, Mozilla 1.3, XMMS, Midnight Commander вже є в системі. Sylpheed. Downloader for X. Gimageview і дещо ще я збирав з вихідних текстів. Про налаштування teTeX для роботи з російською мовою див. Розділ про FreeBSD.

teTeX 2 і шрифти cm-super. Підключення нових векторних шрифтів до teTeX'у тепер робиться по-іншому. Раніше потрібно було додавати список файлів * .map до сценарію / usr / share / texmf / dvips / updmap. У новому teTeX'е, як виявилося, потрібно діяти інакше: приписати той же список в кінці файлу /usr/share/texmf/web2c/updmap.cfg, ось так:

І після цього запустити / usr / share / texmf / bin / updmap.

Кажуть, що можна добитися того ж і більш простим способом: запустити

для кожної з нових кодувань. Втім, я цього поки не пробував робити.

SAMBA і Midnight Commander. Включений в дистрибутив mc зібраний без підтримки файлової системи smbfs. Його можна видалити командою:

і зібрати заново з вихідних текстів з наступними ключами:

Можливо, ви знайдете в цьому файлі і інші корисні модулі.

Щоб не займатися налаштуванням брандмауера, можна встановити Shoreline Firewall. У нього дуже хороша документація; настройки зводяться до виправлення конфігураційних файлів в / etc / shorewall. У всякому разі, це простіше і зручніше метушні з iptables.

Запис CD. Все, як завжди в Linux, але потрібно додати в /etc/lilo.conf рядок:

izto / checkinstall /), що дозволяє з "початкових кодів" створити пакет в форматі tgz. Для цього достатньо в каталозі з вихідними текстами потрібної програми запустити:

WvDial і pppd без прав root. Щоб за допомогою wvdial виходити в Мережу з правами звичайного користувача, потрібно зробити наступне (до речі, цей опис підходить - з одним застереженням - і для ASP Linux і Gentoo).

1. Створити нову групу для користувачів pppd. Назвемо її network:

2. Додати в цю групу потрібного користувача або користувачів (див. Man usermod):

У разі ASP Linux (і, можливо, деяких інших заснованих на RedHat дистрибутивів), потрібно додати користувача модему не тільки в групу network, а й в групу lock - інакше wvdial буде скаржитися на те, що "пристрій модема недоступно" :.

У разі Gentoo - замість групи lock потрібно використовувати uucp, саме їй належить каталог / var / lock. Команда usermod для Gentoo буде виглядати так:

До групи audio нові користувачі Gentoo приписані спочатку; wheel (як і в FreeBSD) потрібна для роботи з правами суперкористувача (su).

3. Змінити права доступу і групу пристрою модема (замініть ttyS1 на потрібне):

4. Те ж саме з деякими файлами в / etc / ppp:

5. Встановити біт suid (виконання з правами root) для файлу pppd:

6. Можливо (мені це не знадобилося), доведеться змінити права і власників файлу /etc/resolv.conf:

7. Перевірити, чи є в / etc / ppp файл options:

До речі, час від часу права доступу до / dev / ttyS1 чомусь скидаються: пристрій виявляється доступним тільки для root, як і було до наших налаштувань. Фокуси pppd? На цей випадок я заготовив командний файл repair_modem.sh:

Звичайно, щоб його використовувати, потрібно бути вписаним в / etc / sudoers. Man sudo.

Файл menu.lst буде містити наше завантажувальний меню. Детально про нього можна прочитати в info grub. У мене зараз він виглядає так:

Тепер запускаємо GRUB і вводимо наступні команди:

Після перезавантаження - бачимо меню GRUB.

Щоб за допомогою LILO завантажити другу систему Linux (* BSD), потрібно створити точку монтування для завантажувального каталога цієї другої системи, наприклад:

Потім доповнити / etc / fstab:

І в lilo.conf при вказівці завантажувального образу (image) використовувати саме цю точку монтування:

Після GRUB це виглядає трохи дивно. Але інакше не зробити.

Команда eject в Slackware доступна тільки членам групи disk. Відкриваємо / etc / group, знаходимо рядок disk і додаємо потрібних користувачів:

налаштування служб

SAMBA. Все сказане про настройках SAMBA в замітці про FreeBSD вірно і тут. Запуск - через сценарій /etc/rc.d/rc.samba. Зробіть його виконуваним для запуску SAMBA при завантаженні системи.

MySQL в Slackware 9.0 не бажає працювати відразу після установки. Ось що довелося зробити для приведення MySQL до тями:

Потім я додав в /etc/rc.d сценарій rc.mysql:

Зробив rc.mysql виконуваним і дописав його виклик в /etc/rc.d/rc.M прямо перед викликом rc.local:

До речі, викликати safe_mysqld з rc.local мені не вдалося: сервер запускався і відразу ж повідомляв: mysqld ended. Що це означає, не знаю.

Демон LISa. за допомогою якого Konqueror показує вміст мережевих дисків, пропонується запускати з /etc/rc.d/rc.local. Однак такий виклик нічого не дає. LISa не починається. Ручний запуск через sudo спрацьовує чудово, але мені-то потрібна автоматична завантаження. Виявилося, що якщо після виклику LISa в rc.local додати невелику затримку, все спрацьовує:

Slackware 9.1

Відключення непотрібних модулів ядра. Звук після перекомпіляції. Slackware 9.0, як зазначено вище, на материнській платі з чіпом i8x0 перезавантажувався через кілька секунд після старту системи - через модуля i810-tco. У версії 9.1 цього не відбувається - модуль i810-tco "заборонений" у файлі / etc / hotplug / blacklist. Я додав у список "заборонених" ще й модуль i810_rng. Звичайно, краще було б перекомпіліровать ядро, але тут у Slackware 9.1 своє "вузьке місце". Через перехід на звукову підсистему ALSA (не входить в ядро ​​серії 2.4) після ручної збірки ядра ми отримуємо систему без звуку. ALS'у треба ставити заново. Див. Цю сторінку. В общем-то, нічого складного тут немає. З сервера www.alsa-project.org потрібно завантажити вихідні тексти драйверів і скомпілювати їх, вказавши місцезнаходження модулів ядра:

Після завантаження нового ядра може знадобитися запуск alsaconf.

Включена в Slackware 9.1 збірка броузера Mozilla - з дивацтвами. Не працюють пункти меню File | Save Page As. . File | Open. . Save Link Target As. . Щонайменше, це те, з чим я зіткнувся. Тому Mozill'у потрібно збирати заново з вихідних текстів. Мій спосіб: в домашньому каталозі створити файл .mozconfig з потрібними нам настройками збірки. наприклад:

Тепер, розпакувати вихідні в (наприклад) / usr / local / src / mozilla, запускаємо звичайну послідовність команд:

Сценарій configure візьме настройки з

/.mozconfig. Перед установкою стаємо root'ом. Команду 'make install' передаємо будівник пакетів checkinstall, щоб отримати готовий Slackware'овскій пакет формату tgz. Години через два-три :( нова Mozilla буде готова.

Встановивши Slackware 9.1, я виявив, що можу слухати mp3 через XMMS, але не можу добитися жодного звуку від GNOME. Пошук в Мережі показав, що для роботи зі звуком користувач повинен бути включений в групу sys. Я відкрив / etc / group і додав себе в зазначену групу, вийшов з системи і увійшов знову - звук з'явився.

Дивно: у версії 9.0 цього не було.