---------------------------------------------------------------
25.10.2002. Оригинал этого документа расположен на
http://www.sensi.org/~ak/linuxfaq/
---------------------------------------------------------------
RU.LINUX Frequently Asked Questions
Alexander Kanavin, ak@sensi.org
Версия от 25.10.2002.
Сборник часто задаваемых вопросов (с ответами), связанных с ОС Linux.
Последняя версия находится по адреcу <http://www.sensi.org/~ak/linux-faq/>
1. Преамбула
Hовые вопросы и вопросы с обновленными ответами отмечены *
1.1. Как добиться занесения вопроса в FAQ?
Дайте составителю вопрос и ответ, пригодные к включению в FAQ методом
copy-and-paste. (Alex Kanavin)
1.2. Куда посылать дополнения?
Дополнения к FAQ в виде пар вопрос-ответ принимаются на ak@sensi.org
1.3. Что составитель был бы рад получить в качестве дополнения к FAQ?
Внимание: ищутся желающие написать следующие ответы для FAQ.
· SSL (openssl). VPN. Kerberos.
· обзор сред, методов и идеологий разработки программ
Годятся и интернетовские ссылки на статьи, описывающие эти вещи -
но они должны быть на русском языке и технически грамотными.
Ищу человека, готового перевести и поддерживать раздел "Русификация"
на английском языке.
1.4. Где в интернете находится последняя официальная версия FAQ?
1.5. С каких узлов в Fidonet можно получить FAQ через файловый запрос
или через запрос к роботу?
FAQ доступен для Fidonet FREQ здесь:
2:450/176.15 freq alias: LINUXFAQ (work time: 21:30-6:30).
2:5013/14 алиас linuxfaq (по нодлистовому времени)
2:5020/1255 по алиасу NEWFAQ (c 21:00 до ZMH, CM на выходных)
2:5030/902 по алиасу LINUXFAQ (по нодлистовому времени)
2:5045/71 freq alias: LINUXFAQ worktime: CM
2:5061/108 алиас LINUXFAQ (с 00:00 до 06:00)
2:5069/11 CM алиас LINUXFAQ
2:5077/7, Alias: LINUXFAQ (Work time: 23:30-06:00 [MSK+2])
FAQ можно получить от следующих роботов:
to: faqrobot 2:5036/26 subj: rulinux.faq
Для появления в этих списках необходимо регулярно выкладывать у себя
свежую версию FAQ. Пишите мне, если вы получили старье с одного из
этих узлов.
1.6. Предыдущие составители FAQ, его распространение и использование.
Составлено по материалам RU.LINUX (и не только).
(c)Составление - Станислав Корсуков, FidoNet 2:5030/532.
(s)Поддержание - Михаил Браво, mbravo@kronverk.spb.su, до сентября
1999
(s)Поддержание - Aлександр Канавин, ak@sensi.org
Приветствуется выкладывание данного FAQ на ftp/www/etc и прочее
распространение. Пожалуйста, не забывайте давать ссылку на оригинал.
Коммерческое использование возможно лишь с письменного разрешения. (Я
рассчитываю на процент :-)
1.7. Что делать, если я не нашел здесь ответ на свой вопрос?
Если вы не нашли ответ на свой вопрос - почитайте руководство к своему
дистрибутиву (вообще говоря, к нему надо обращаться прежде всего),
faq's из дистрибутива (обычно /usr/doc/faq), HOWTOs и т.п. Попробуйте
сделать запрос на <http://groups.google.com/>. Весьма вероятно, что
ваша проблема уже обсуждалась - если это так, то вы получите более
быстрый и полный ответ, вовсе не написав письмо в конференцию.
Если у вас возникает несколько разных вопросов, лучше напишите одно
письмо подлиннее, чем десять однострочных. Если вы задаете вопрос,
связанный с вашей конкретной системой, всегда включайте как можно
больше деталей - какой дистрибутив, какая версия дистрибутива, какая
версия ядра, с какими именно железками у вас проблемы (опять же
версии, надписи на микросхемах), и так далее.
Перед тем, как писать в эху ru.linux, подумайте, возможно ваш вопрос
более уместен в ru.unix - эхе, посвященной Unix-подобным ОС в целом
или ru.gnu - эхе, посвященной программному обеспечению проекта GNU.
Еще существуют эхи ru.unix.prog - программирование под Unix,
ru.unix.multimedia - название не требует пояснений и ru.unix.ftn -
фидософт под Unix. Для начинающих еще есть эха ru.linux.chainik, но
на мой взгляд в нее обращаться не стоит, так как вероятность получить
квалифицированный ответ там ниже чем в ru.linux и особенно ru.unix.
Что касается эхи ru.unix.linux, то в нее желательно вообще не писать,
так как она является копией ru.linux, если не считать отсутствия
модератора и по непонятным мне причинам до сих пор не удалена с
бекбона.
1.8. * Как мне задать свой вопрос так, чтобы вероятность получить
Прежде всего Вам нужно ответить на один вопрос: для чего Вы
собираетесь его использовать ? Если Вы можете дать ответ на него, то
нужно быть готовым к следующим вещам:
· под Linux-ом пока не существует надежного и бесплатного способа
запускать программы для Windows. В частности, это означает, что у
вас могут возникнуть проблемы с "Документами Word" и "Документами
Excel".
· нужно будет вдумчиво читать большое количество англоязычной
документации с экрана
· основным устройством ввода станет клавиатура
· первые несколько месяцев Вам придется нелегко
· вам придется обзавестись соединением с сетью Интернет. Пусть
платным или эпизодическим, но оно у вас быть должно. Вся
документация, новости и программы ищутся и находятся там (а не на
фреках или пиратских дисках). Более подробно эта тема разжевана
чуть ниже.
2.2. Как поставить Linux, не покупая диски с дистрибутивом и не
скачивая дистрибутив из Интернета?
Найдите на <http://www.lug.ru> координаты группы пользователей Linux
вашего города. Придите на их ближайшую встречу, можно сразу с жестким
диском. Попросите на этой встрече кого-нибудь дать вам диск с
дистрибутивом на пару дней. Некоторые LUG имеют общую дискотеку
(собрание дисков), посмотрите, есть ли в ней что-нибудь подходящее.
Подпишитесь на список рассылки LUG вашего города, спросите там "А не
перепишет ли мне кто-нибудь на мой винчестер (CD-R) дистрибутив?"
Можно задать тот же вопрос в городской эхоконференции Fido,
посвященной обмену файлами или Unix/Linux (пример: SPB.LINUX,
SPB.FILES). Однако осознайте сразу такую вещь: записать дистрибутив
гораздо проще, чем помочь новичку c установкой и настройкой, поэтому
не стоит расчитывать, что человек, давший вам дистрибутив в дальнейшем
посвятит себя вашему обучению.
2.3. Подскажите, какой дистрибутив выбрать ?
Любой, вышедший менее полугода назад, и купленный не на пиратском
лотке, а у официальных дистрибьюторов: <http://linux.iplabs.ru>,
<http://linux.vinchi.ru>, <http://www.linux-ink.ru>,
<http://www.mistral.ru>, <http://www.bolero.ru>,
<http://www.books.ru>, <http://www.linux-online.ru>.
Жители Украины могут купить лицензионные дистрибутивы на
<http://www.ebuy.dp.ua>. Жители Санкт-Петербурга -
<http://www.shopsys.spb.ru>.
Отличительными внешними признаками пиратского дистрибутива являются
· низкая цена - того же порядка, что и цена обычных пиратских дисков
· отсутствие адреса производителя дистрибутива
· "шесть операционок/дистрибутивов на одном диске". Hормальный
дистрибутив линукса крайне редко умещается на единственном диске.
(пяти-шестидисковые наборы с двумя-тремя разными дистрибутивами в
одной коробке от walnut creek, cheapbytes или infomagic пиратскими
не являются. Это вполне нормальные дистрибутивы, но, может быть,
без коммерческих и полукоммерческих программ. Стоит такой набор
примерно столько же, сколько "коммерческий" дистрибутив.)
· отсутствие исходников строго говоря не является основанием для
причисления к пиратам, но должно вызвать у вас серьезные
подозрения. Если те, у кого вы купили дистрибутив без исходников,
отказываются выдать вам их по цене носителя и посылают на ftp (или
просто посылают подальше) - они однозначно нарушают лицензию GPL.
Однако, это не касается cd-r копий и прочих копий, полученных на
некоммерческой основе (например, переписанных на винчестер за
пиво).
Если у вас есть знакомый гуру, на помощь которого вы на первых порах
рассчитываете, то, в случае, если вы поставите у себя то, что он
использует сам, у вас будет больше шансов получить ответы на вопросы о
тонкостях настройки.
2.4. А где в Москве (Петербурге, где-либо еще) можно купить
официальные диски с Линуксом?
Петербург: у Михаила Браво mbravo@kronverk.spb.su, у Дмитрия Иванова
(2:5030/902, idv@aanet.ru, возможна рассылка в другие города на
территории России), в фирме Кронверк (Загородный 68, 110-1303), в
фирме Аякс (312-5208, <http://linuxcenter.ru>).
Москва: в Доме Книги на Hовом Аpбате. Hа пеpвом этаже от входа
напpаво, фиpма - CompuLink, соответственно, и в дpугих ее филиалах.
Реселлеры ALT Linux: <http://www.altlinux.ru/index.php?module=buy>)
Офис Vinchi Group (адрес и телефон на <http://www.vinchi.ru>)
Офис Bolero (ул. Кедрова, 14, вход со двора, этаж 3, комн.319.
Телефон 124-6455).
Ростов-на-Дону: диски с дистpибутивами можно купить в фиpме "Proga" -
ул. Большая Садовая 188, офис 320. Тел.53-41-22.
Алма-Ата: TOO e.com (480091, ул. Фурманова 103, 3 этаж, тел.
многоканальный 505-777, факс 505-778)
Киев: КОМИЗДАТ (553-5547, спроосить Сергея Антончука)
Севастополь. (0692)553148 <http://www.sevcom.net>
Харьков: продажа ASPLinux <http://www.spez.com.ua>
Другие города: ?
2.5. Как узнать последнюю версию софта XXX/url его домашней странички
? Мне нужна некая фича, но я не знаю, как называется соответствующий
2.6. У меня стоит <название-дистрибутива> и в нем "`^:,:#`! Как с
этим бороться?
Первым делом надо сходить на веб или фтп cайт производителя вашего
дистрибутива или его ближайший миррор и посмотреть, нет ли update'а к
пакету, вызывающему проблему. Если нет, тогда уже надо искать другие
пути решения проблемы. И очень желательно сообщить разработчикам
дистрибутива о ней. Для Red Hat это можно сделать, зайдя на
<http://bugzilla.redhat.com/bugzilla/>
Когда проблемы возникают еще при установке, можно обратиться в службу
поддержки производителя дистрибутива (если дистрибутив не пиратский,
на нем как правило указываются координаты этой службы) или описать
свою проблему в его списке рассылки, на который можно выйти через
веб-сайт производителя. Учтите, что в случае, если у вас пиратский
дистрибутив, причина проблем может быть в том, что он криво записан на
компакт-диск.
2.7. Как научиться линуху, если pядом нет гуpу? (если он есть, то
тоже прочтите обязательно)
Прочесть ru.books.computing faq ( <http://alexm.here.ru/rbcfaq.txt>).
Посмотреть на книгу "Linux. Руководство по операционной системе". BHV,
1997, ISBN 5-7315-0002-9 , но лучше ее (и в особенности прилагающийся
к ней дистрибутив 96го года) не покупать. Для начинающих хорошими
книгами являются "Путь к Linux" Владимира Водолазского (печатное
издание 99го года, а не электронное 97го) и "UNIX: универсальная
среда программирования" Б.Кернигана и Р.Пайка, а для более
продвинутых (и желающих таковыми стать) - "UNIX: Руководство
системного администратора" Эви Hемет. Кернигана-Пайка можно
попробовать найти в библиотеке вашего вуза. Для _пользователей_ (не
для чайников!) еще рекомендуется найти книжку Дж.Армстронга "Секреты
UNIX", (первое издание - Киев, Диалектика, 1996, ISBN 966-506-043-0,
второе - Вильямс, май 2000). Очень хорошая книжка, только везде, где
там написано "unix", надо читать "linux". Автор хотя и гордо
демонстрирует останки соляриса на своей машине и вспоминает как в
молодости работал с какими-то древними монстрами, но очень хорошо
видно, что его познания в настоящих юниксах малость заржавели. Следует
серьезно подумать, прежде чем покупать недавно (осень 1999)
переведенную "Unix Power Tools" от O'Reilly - единственным известным
авторскому коллективу могучим тулзом является shell. Остальное -
буквально в трех словах или вовсе проигнорировано. А для заменителя
man bash она дороговата.
Обратиться в существующую Linux Users Group, или создать свою. С.-Пб
LUG (spblug) доступна через <http://www.spb.lug.ru/> Московская
(mlug) -- через <http://www.moscow.lug.ru> Более подробная информация
и полный список lug имеется на <http://www.lug.ru>.
Подписаться на список рассылки, посвященный вашему дистрибутиву. Как
правило, этот список ведется производителем дистрибутива, а информация
о подписке доступна через веб-сайт производителя
Пpочесть паpу книжек от Linux Documentation Project.
<http://www.linuxdoc.org>
Переводы на русский, возможно, устаревшие, есть на
<http://www.linux.org.ru/books/>.
Вот неполный список сайтов с документацией на русском языке:
· <http://www.linux.org.ru>
· <http://lib.ru>
· <http://www.gnu.org.ru>
· <http://www.opennet.ru>
· <http://linux-ve.chat.ru>
· <http://www.nevod.ru/linux/doc/>
· <http://xtalk.price.ru>
· <http://alexm.here.ru>
2.8. Я поставил Red Hat Linux (или Red Hat-подобный дистрибутив). Что
следует прочесть в первую очередь, чтобы уяснить его специфику?
Начните с Red Hat Reference Guide (/doc/ref-guide на компакт-диске).
Особенно стоит обратить внимание на главы Package Management with RPM
и System Administration. Также полезно прочесть cодержимое
/usr/doc/initscripts-x.xx. Очень многие вопросы, которые сюда стоило
бы включить, не включены именно потому, что на них есть ответы там.
Два последних источника являются частичной компенсацией отсутствия
Linux-специфичных вещей в книге Немет, издание 94го года.
2.9. А у меня нет интернету, что вы мне тут урлями тычете! Хочу
фреков! Это фидошная конференция или где?! (вариант: пришлите мне
нетмейлом русскую и подробную доку по ...! Очень надо!)
Linux - система, целиком и полностью разрабатывающаяся в интернете.
Поэтому, нравится вам такое положение вещей или нет, но если вы не
хотите сидеть на версиях программ, с глюками которых все уже давно
позабыли, как бороться, мучаться с поисками документации и платить
пиратам и халтурщикам за CD с кучей устаревшего и глючного мусора, то
для нормальной жизни в линуксе вам необходимо хоть какое-то
интернет-подключение (вполне сгодится, на первое время, и вариант
"попросить приятеля скачать что-нибудь нужное" - но чем сложнее этот
процесс, тем меньше удовольствия и больше проблем вы получите от
линукса). И никто, увы, не жаждет сперва за свои деньги что-то
скачивать, а потом выкладывать вам для халявной раздачи. Да, это
делалось где-то, когда-то, когда интернет был дорог и малодоступен, а
качали все, в общем, одно и то же - но сейчас те, кто этим занимался,
давно потеряли и интерес, и технические возможности. Поэтому
об'единяйтесь с такими же страдальцами, покупайте интернет вскладчину,
публикуйте свои адреса для freq, восстанавливайте файлэхи U*, но не
ждите, что кто-то сделает это за вас. Тем не менее, некоторое
количество ббс c юниховым софтом существует, они перечислены в
следующем вопросе.
2.10. А у меня нет Интернета, где бы мне найти ... для Линукса?
Желающие могут присылать свои координаты для включения в FAQ.
Запись на CD-R:
В Петербурге: У Дмитрия Иванова (2:5030/902, idv@aanet.ru). Hа freq
FILES отдается полный список имеющегося. Возможна рассылка в другие
города на территории России.
BBS с софтом для юникса:
В Москве: Quasi-BBS 702-52-49 23:00-08:00
Ultrix BBS, 00:00-07:00, 462-8291, Sysop - Arthur Komarov
(5020/943.17) (TNSDrive 2.0b1)
unitrecordHQ, 0:00-7:30, 162-9286, только фреки, sysop - tim
kondratyev (2:5020/1989.1)
В Петербурге:
2:5030/763 TMA BBS, по нодлистовому времени (файл-реквесты).
И станции в Харькове - 2:461/220
Spezvuz BBS CM 057-7123313 Alexander Grinevich (2:461/1024)
2:463/57 в Киеве (только файл-реквесты)
Алма-Ата: ISP BBS CM 3272-638796 Alexander Uskov (2:5083/21) (TNSDrive
2.0b4)
2.11. Программирование - документация
info gcc,libc,gdb
/usr/doc/LDP/lpg и другие книжки от LDP, лежащие на их сайте. (
<http://www.linuxdoc.org>)
Ccылки на гайд по программированию при помощи curses и много другого
полезного: <http://www.linuxprogramming.com/>
Раздел "Юниксоидам всех стран" на <http://lib.ru> Обратите внимание
на книжку Морриса Баха <http://lib.ru/BACH/>
Она же выходила и в печатном виде. Еще на бумаге издавались:
"Системное программирование на C++ для Unix" Теренс Чан, BHV
"ОС UNIX" Андрея Робачевского - это почти общепризнанно сборник плохих
переводов хороших оригиналов. К сожалению, альтернативы этой книге
нет, пока не будут переведены и/или (пере)изданы сами оригиналы,
перечисленные в конце книжки: Бах, Стивенс, Лефлер. Книгу можно
получить бесплатно - взяв в библиотеке вашего вуза.
Вопросы программирования под Unix обсуждаются в ru.unix.prog[22m, а также
в news:comp.unix.programmer. Там есть свой FAQ и документ "Properly
tuned Unix Application".
2.12. Hе могу загрузить Линукс с {тpетьего винта / гигабайтного винта
в normal моде / чего-то экзотического / раздела выше 8Gb } Что делать
?
Если поместить ядpо Линукса на 1-й hd, в пpеделах доступности bios
(1024 цилиндpа), то ядpо _гаpантиpованно загpузится_, а остальные
части Линукса можно пpоизвольно pазбpосать по pазным дискам/pазделам.
Ядpо можно записать в ДОСовский pаздел и загpужать его пpогpаммой
loadlin.exe. Также полезно почитать man rdev.
Последние версии lilo (>21.3) умеют загружать ядро и с цилиндров,
больших, чем 1024. При этом BIOS должен быть не слишком старым и
поддерживать lba32, эту опцию надо прописать в /etc/lilo.conf.
В качестве альтернативы lilo очень рекомендуется поглядеть на GRUB
<http://www.gnu.org/software/grub>
Существует еще малоизвестный загрузчик NUNI, который вообще не
пользуется BIOS и напрямую работает с IDE-контроллером. Причем
понимает даже PCI IDE с нестандартными(большими) номерами портов.
Диск должен быть с системой ext2fs.
2.13. Как мне поставить линукс, не выделяя ему раздел - только на
познакомиться. (вариант: мегабайт на 150 - у меня больше нет, я бедный
студент) А то у меня диск весь занят NT'ей/виндами/OS/8, etc.
(Alex Korchmar) Для первого знакомства с женским полом - _не_надо_
использовать резиновую бабу.
Для того, чтобы познакомиться с линуксом/посмотреть, на что он годится
- _не надо_ ставить его под win4lin, vmware и прочими эмуляторами, не
надо искать "урезанные", "упрощенные", "live-fs" и прочие
недо-дистрибутивы, и не надо пытаться поставить их на FAT -
начинающему и без этого хватит проблем.
И аргумент "мне эти три-пять гигабайт еще могут понадобиться" - не
аргумент вовсе. Если они тебе так нужны, что нельзя с пол-годика без
них обойтись - значит, не надо ставить линукс. Ибо если ты его будешь
раз в три дня переустанавливать - то вот только переставлять отдельно
взятый (кривой) дистрибутив на отдельно взятой (кривой) конфигурации
ты и научишься. А это знание, увы, работодателями не ценится.
2.14. Хочу поставить на один винт несколько операционок: Linux, Win-
dows NT, Windows 9?. Как лучше сделать это ?
Прежде всего: другую операционку, в особенности win'95/98 или dos,
очень желательно ставить первой, а значит, начальное разбиение диска
проводить ее средствами. Дело в том, что в некоторых случаях (в каких
- выяснить пока не удалось) этим ОС или их инсталляторам не нравится
MBR, созданный средствами Linux.
Затем вам нужно решить: что вы будете использовать в качестве
основного загрузчика ? Если NT Loader, то этот вариант подробно
расписан в HOWTO/mini/Linux+NT-loader. Если LILO, то нужно учесть
следующие вещи:
1. LILO может быть в MBR или в начале активного Primary linux раздела,
тогда в MBR должно быть нечто, способное его загрузить, например
стандартный загрузчик MS-DOS (записывается путем fdisk /mbr).
2. Как бы вы ни ставили Windows 9?, до или после линуха, помните что
ее инсталлятор независимо от вашего желания записывает в MBR свой
стандартный загрузчик, который умеет только передавать управление
на первый сектор активного раздела. В таблице разделов инсталлятор
ставит признак активности на свой раздел. Что делать после этого -
смотрите в разделе "Прочее". Установщики Windows NT и 2000
загрузчик из MBR не трогают, но Windows NT трогает MBR при первом
запуске Disk Administrator - он спрашивает, можно ли записать Disk
signature (это нечто 32-битное вроде контрольной суммы), пишется
оно в MBR и по слухам прибивает LILO.
3. NT Loader должен обязательно находиться на hda1 или hda2, причем,
на fat16 разделе.
4. Если вы хотите грузить Win 9? непосредственно из lilo, а не из NT
Loader, то добавьте в lilo.conf:
other = /boot/bootsect.dos
label = win
bootsect.dos берется из корневого каталога того диска, на котором
стоит NT Loader
Методы решения проблем и варианты с другими операционками/загрузчиками
подробно расписаны в /usr/doc/HOWTO/[mini/]Linux+{другая ОС}
(Alexander Pevzner, 2:5020/59.9) IMHO, в сомнительных и сложных
случаях лучше вообще сначала раздать каждой операционке по партиции,
причем начиная не с линуха и доверяя откусывание места на диске
собственному fdisk-у каждой ОС. А потом уже продолжать инсталляцию.
2.15. А давайте спортируем DN под Linux, FAR под Linux, допишем mc,
чтобы он был не хуже DN, есть ли приличный файловый менеджер для Linux
(mc не предлагать) etc etc
(Andrey Terebecky <mailto:arey@penguinpowered.com>) Hужно начать с
того, что задуматься каких функций из DN, FAR, etc - Вам не хватает в
MC. После этого внимательно изучить все, что mc рассказывает по
клавише F1 (документация идущая с ним довольно скудная), обычно это
решает большинство вопросов. Hе нужно искать функции типа
CD-проигрывателя, запуска нескольких копий редактора в разных окнах -
таких возможностей в MC нет. В DN эти функции введены для преодоления
недостатков операционной системы (однозадачность,
однопользовательность, отсутствие нужных утилит). Линукс таких
недостатков лишен и поэтому такими вещами занимаются внешние
программы, а MC это просто файловый менеджер.
Строго говоря, MC и ему подобные программы в Unix\Linux вообще не
нужны. Все их функции обычно решаются гораздо быстрее с помощью shell
(zsh, tcsh, bash, etc). Конечно для этого потребуется достаточно
подробно изучить документацию к Вашему любимому shell и приобрести
некоторые навыки работы с ним, но результат себя оправдает. В защиту
MC часто говорят, что в shell не удобно работать с архивами - возможно
это действительно так, а возможно говорящие это, никогда не видели
AVFS ( <http://www.inf.bme.hu/~mszeredi/avfs/>)
В Unix\Linux есть и аналоги MC - X Northern Captain (
<http://xnc.dubna.su>), deco ( <ftp://ftp.cronyx.ru/cronyx/>), а также
его модификация от Nickolay N. Parfenov ( <http://usrsrc.chat.ru>),
VFU ( <http://www.biscom.net/~cade/vfu>), ytree (
<http://www.han.de/~werner/>).
Если же Вы и после этого убеждены в необходимости DN, FAR под Linux -
портируйте если можете. Hо помощников в этом будет найти сложно, те
кто могут - не захотят это делать по выше перечисленным причинам, а те
кто захочет скорее всего не смогут.
(Viktor Krapivin 2:450/102.1 и Dmitry Chernyak 2:503/983.998)
В самом начале 90х был такой теpмин - "интегpатоp". Вот DN им и
является (почти). А полуночный командиp - нет. Точно так же, как
XEmacs пpетендует на это же "звание", а вот vim - нет 8-) Гpань
тонка, но она есть. И дело не в набоpе всякого баpахла. "Интеграторы"
имели смысл в однозадачном ДОСе, отсутствие необходимости выходить
из редактора, чтобы потаскать файлы было их основным достоинством.
В многозадачном юниксе "интегрирование" может быть с успехом заменено
использованием нескольких консолей, телнетов, команд bg/fg, программы
screen и, наконец, X-Window. Кроме того, мало кому нужен такой
"интегрированный редактор", который не дотягивает до уровня vi. А он
никогда до него не дотянет, просто потому, что vi - _редактор_, а
"редактор" в DN - просто заплатка, которой времени уделено не больше,
чем всем остальным компонентам. Такова цена интегрирования.
2.16. * Есть ли в Linux-е интегрированные среды разработки типа Bor-
land C++ Builder, Borland Delphi, Microsoft Visual C++, и т.д.?
Borland Kylix <http://www.borland.com/kylix/> Victor Wagner
<mailto:vitus@communiware.ru>
А как же.
xwpe (очень похожа именно на Turbo C++), rhide, motor, KDevelop,
Glade, Source Navigator
Hо все они до жути неудобные.
По той простой причине, что ни один квалифицированный программист с
ними не связывается. Это софт, написанный чайниками и для чайников.
Потому что те, кто более-менее разбирается в идеологии *nix прекрасно
понимают, что практически любой проект надо разрабоатывать не на одном
языке, а на нескольких разного уровня (критические по скорости части -
на C, интерфейс - на perl/tcl/python/slang, работу с данными на SQL и
так далее).
Между прочим, большинство из выше упомянутых оболочек расчитаны на
работу с несколькими языками.
Hо все равно они хуже, чем обыкновенный мощный редактор. Благо, все
мощные редакторы под эхотаг умеют вызывать внешние программы, и
анализировать их выдачу.
Поэтому рекомендуется освоить один из двух наиболее распространенных
редакторов - vim или emacs, и пользоваться для разработки им. Благо
такие вещи как подсветка синтаксиса, вызов make прямо из редактора, и
позиционирование курсора на строку, про которую компилятор выругался,
в них обоих есть.
(от Alex Kanavin: намного более подробно все это объясняется в книжке
The Art of Unix Programming, которую я рекомендую прочесть всем, кто
начинает программировать под Unix - она очень хорошо помогает осознать
идеологию Unix и избавиться от предрассудков, свойственных
Windows-программистам. Книжка лежит здесь:
<http://www.tuxedo.org/~esr/writings/taoup/>
2.17. * Ищу конфернцию, посвященную программированию под Linux...
Программирования "под Linux" не бывает. Бывает программировние под
*nix. И ему посвящена эха <news:fido7.ru.unix.prog>.
2.18. А вот ответьте мне нетмейлом на такой вопрос: ... ?
Как заметил Victor Wagner, написание писем в эху есть самовыражение,
написание писем нетмейлом есть техническая поддержка. Первое
бесплатно, второе платно. Подумайте об этом.
2.19. У меня совсем чайниковый вопрос...
Обратитесь в RU.LINUX.CHAINIK. Правда, при этом есть риск получить
совсем чайниковый ответ.
3. Русификация
Значительная часть этого раздела написана Alexander Voropay
<mailto:alec@sensi.org>.
3.1. У меня проблемы с русским в...
Проблему русификации можно разделить на несколько частей :
· русификацию консоли
· установку системной (libc) locale
· русификацию системы X Window - шрифты и клавиатура
· включение поддержки русского в конкретных программах
· печать
Все эти части настраиваются по-отдельности.
Существует Cyrillc-HOWTO
<http://www.ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/Cyrillic-
HOWTO>, однако он довольно долго не обновлялся и больше не
поддерживается, поэтому отнеситесь к нему критически (Last version :
v4.0, 23 January 1998), перевод:
<http://www.inp.nsk.su/~baldin/Cyrillic-HOWTO-russian-old/Cyrillic-
HOWTO.html>.
Евгений Балдин создал новую версию Cyrillic-HOWTO на русском (версия
не имеет английского перевода и не включена в официальную базу HOWTO).
Доступна здесь : <http://www.inp.nsk.su/~baldin>
Лучше всего сперва искать решение проблемы здесь и лишь потом - в
Cyrillic-HOWTO (англоязычном).
3.2. Русификация консоли.
В системе Linux существуют два конкурирующих пакета управления
шрифтами и клавиатурой : kbd и consoletools.
<ftp://ftp.win.tue.nl/pub/linux/utils/kbd/> или
<ftp://ftp.kernel.org/pub/linux/utils/kbd/>
<http://lct.sourceforge.net>
В разных дистрибутивах применяются или один, или другой. Например, в
Red Hat 4.х и 5.x для русификации консоли применялся пакет kbd. Однако
в Red Hat 6.x и выше применяется уже другой пакет - consoletools.
Существует Keyboard-and-Console-HOWTO, автор этого HOWTO является
также автором пакета kbd, поэтому естественно, всех склоняет к
использованию kbd. ;-) <http://linuxdoc.org/HOWTO/Keyboard-and-
Console-HOWTO.html>
На "низком уровне" для русификации консоли достаточно выполнить
следующие команды (пакет kbd):
$ setfont Cyr_a8x16
$ mapscrn koi2alt
$ echo -ne "\033(K"
$ loadkeys ru1
Если используется пакет console-tools:
$ consolechars -f UniCyr_8x16 -m koi8-r
$ echo -ne "\033(K"
$ loadkeys ru1
См. man на соответствующие команды и 'man console_codes'. Описание,
что есть что, у console-tools в /usr/doc/console-tools*, довольно
внятное.
NB! К сожалению, в пакете console-tools некоторые русские фонты не
содержат UNICODE screen-font map (SFM) и в таком виде попадают во
многие дистрибутивы. Исправленные фонты живут в пакете console-tools-
cyrillic: <ftp://ftp.ice.ru/pub/fonts/linux/>
Как правило, настройка шрифтов и клавиатуры скрыта среди стартовых
скриптов, а ключевые управляющие параметры вынесены в отдельные
файлики. Иногда существуют даже специальные программы настройки.
"Идеологически правильно" не нарушать системную архитектуру
дистрибутива, а всего лишь поменять настройки в этих файликах.
К сожалению, в Linux только один загружаемый фонт на все виртуальные
консоли.
Если вы хотите видеть русские буквы и рамки (например в mc) на консоли
одновременно, используйте только TERM=linux .
У вас будут проблемы при работе консоли в CP-866 из-за того, что
некоторые русские буквы в этой кодировке совпадают со "старшими"
управляющими кодами C1, например буква "Ы" 0x9B совпадает со старшим
ESC (CSI). Работайте в KOI8-R.
3.3. Мне говорят "Настрой локаль!" Что это значит ?
Речь идет о настройке системной locale. Проверить установки можно,
просто сказав locale:
$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_ALL=
$
Если результат именно такой, значит настроена русская locale (ru_RU) в
кодировке KOI8-R. Проверить можно командами 'cal' или 'date' - даты
должны быть на русском.
На самом деле, для настройки locale достаточно всего лишь установить
переменную окружения LANG= из стартовых скриптов (например
/etc/profile) или руками.
$ export LANG=ru_RU.KOI8-R
В Red Hat-based дистрибутивах это делается путем редактирования файла
/etc/sysconfig/i18n где, кроме прочего, должна быть строчка
LANG=ru_RU.KOI8-R
3.4. * Как настроить locale ? Я установил LANG, но русских дат нет.
Прежде всего - подробная дока о locale имеется на
<http://www.sensi.org/~alec/locale>. Обращайтесь туда, если вам нужны
нестандартные варианты (например, отключение русскоязычного интерфейса
с сохранением правильной сортировки и т.д.)
Система X-Window и библиотеки Xlib и Xt имеют собственные механизмы
локализации (XLC_LOCALE) которые являются "надстройкой" над системной
locale. Подробности: {X11Root}/doc/i18n (в RedHat:
/usr/share/Xfree86-doc/i18n). Документация в .PS
<http://www.tsu.ru/~pascal/x_locale/>.
Хотя в принципе допустимо задавать короткое именование, вроде
LANG=ru_RU или даже LANG=ru, лучше использовать _полное_ имя :
LANG=ru_RU.KOI8-R . Совершенно недопустимо задавать LANG=ru_SU, такой
страны больше нет :-)
К сожалению, не все дистрибутивы "от рождения" позволяют использовать
ru_RU.KOI8-R . Воспользуйтесь 'locale -a' для получения списка
допустимых значений. Если в списке нет значения ru_RU.KOI8-R, его
нужно добавить, а то LANG= будет указывать "в пустоту" :
$ localedef -c -i ru_RU -f KOI8-R ru_RU.KOI8-R
Computing table size for character classes might take a while... done
Computing table size for collation information might take a while... done
$
$ cd /usr/lib/locale
$ mv ru_RU.koi8r ru_RU.KOI8-R
(в старых версиях - /usr/share/locale)
NB! Утилита localedef фомирует "сжатое" (mangled) имя кодировки, так
что имя превращается в "ru_RU.koi8r". Это приводит в замешательство
некоторые программы. Но к счастью, все же можно установить полное имя
LANG="ru_RU.KOI8-R" и благодаря mangling-у все будет работать и
программы будут счастливы. Еще один вариант -- переименовать каталог.
Некоторые дистрибутивы неправильно включают
LANG=ru
LC_ALL=ru_RU.KOI8-R
Это НЕПРАВИЛЬНО. Лучше не устанавливать переменную окружения LC_ALL
вообще (достаточно полного LANG=, а все переменные LC_xxxx
"унаследуются" от него). Подробнее смотрите на
<http://www.sensi.org/~alec/locale/> в главе "Как включить..."
3.5. Как отключить вывод сообщений на русском, сохранив при этом
остальные свойства русской локали ?
Нужно определить переменные окружения :
LANGUAGE=en_US
LC_MESSAGES=en_US
В RedHat эти строки можно вписать прямо в /etc/sysconfig/i18n .
3.6. Я настроил locale и русский в консоли, но bash все равно не
вводит русские буквы, пищит.
Хотя для большинства программ вполне достаточно установки
LANG=ru_RU.KOI8-R чтобы начать распознавать русские буквы, многие
программы, основанные на библиотеке readline (например bash), все
равно считают символы с кодами больше 128 особыми META-символами
(пищит при вводе).
Чтобы отучить библиотеку readline от этого, необходимо определить
переменную
INPUTRC=/etc/inputrc
Кроме того, создать файл /etc/inputrc
set meta-flag on
set convert-meta off
set output-meta on
После этого библиотека readline (и bash) начнет воспринимать русские
буквы.
Еще один вариант : Не задавать INPUTRC=, а прописать те же значения в
файл ~/.inputrc (в home-каталоге). Но тогда придется заводить такой
файл в домашнем каталоге каждого пользователя.
См. man readline.
3.7. Red Hat и русификация
Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:
SYSFONT=UniCyr_8x16
SYSFONTACM=koi8-r
LANG=ru_RU.KOI8-R
Раскладка клавиатуры выбирается утилитой kbdconfig и прописывается в
файл /etc/sysconfig/keyboard, в виде:
KEYTABLE=ru1
Эти файлы используются в скриптах /etc/rc.d/rc.sysinit, /sbin/setsys-
font. Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если
возникли вопросы или проблемы.
3.8. Debian и русификация
Debian 2.2: Насторойка фонтов запускается из /etc/init.d/console-
screen.sh
/etc/console-tools/config:
#
SCREEN_FONT=Cyr_a8x16
APP_CHARSET_MAP=koi8-r
#
APP_CHARSET_MAP_vc2=koi8-r
APP_CHARSET_MAP_vc3=koi8-r
APP_CHARSET_MAP_vc4=koi8-r
APP_CHARSET_MAP_vc5=koi8-r
APP_CHARSET_MAP_vc6=koi8-r
Фонты нужно заменить, взяв правильные из console-tools-cyrillic.
Клавиатура настраивается из /etc/init.d/keymaps-lct.sh и загружает
раскладку /etc/console-tools/default.kmap.gz Именно под этим именем
нужно разместить требуемую раскладку или создать symlink. Для
интерактивного выбора клавиатуры есть полезная утилита: kbdconfig.
/etc/environment:
LANG=ru_RU.KOI8-R
3.9. Как установить русские фонты KOI8-R на XFree86 ?
В современных дистрибутивах они скорее всего уже стоят. Первым делом
(на работающем X сервере) запустите :
$ xlsfonts -fn "*-koi8-r"
Если список не пустой - примите наши поздравления :-)
Начиная с версии XFree86 3.3.2 русские фонты cronyx-* входят прямо в
дистрибутив XFree. Если фонтов нет -- их нужно установить. Для Red Hat
просто поставьте пакет XFree86-cyrillic-fonts-XXXX.rpm . Фонты
установятся в /usr/X11R6/lib/X11/fonts/cyrillic .
Далее нужно подключить шрифты к X Window. Убедитесь, что в файле
/etc/X11/XF86Config прописан путь :
Section "Files"
...
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
...
EndSection
Путь с cyrillic лучше всего поставить первым. Перезапустите X сервер и
проверьте командой : xlsfonts -fn "*-koi8-r" .
Еще см. вопрос "Где найти хорошие русские шрифты для иксов?" Про
подключение шрифтов TrueType также имеется отдельный ответ, в разделе
про X Window.
Хорошим решением также будет использование фонт-сервера. Во-первых,
он может быть один на всю организацию, а во-вторых в современные
фонт-серверах можно использовать шрифты TrueType. Для Red Hat
фонт-сервер xfsft входит в пакет XFree86-xfs.
<http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/>
3.10. Как сделать так, чтобы в X Window русские буквы вводились везде
?
Существует два основных способа русификации клавиатуры X :
· XKB, применяющийся в современном X11R6
· xmodmap, применявшийся в X11R5
При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть
прописано:
Section "Keyboard"
...
XkbRules "xfree86"
XkbModel "pc101"
XkbLayout "ru"
XkbOptions "grp:shift_toggle"
EndSection
Для X 4.0.x
Section "InputDevice"
...
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp:shift_toggle"
EndSection
В зависимости от клавиатуры опция Model может быть "pc101", "pc104"
или "pc105", а комбинации переключения:
grp:toggle правый Alt (с "фиксацией")
grp:caps_toggle Caps_Lock
grp:shift_toggle два Shift
grp:ctrl_shift_toggle Control+Shift
grp:ctrl_alt_toggle Control+Alt
Для 4.0.x добавились новые :
grp:alt_shift_toggle Alt+Shift
grp:menu_toggle Menu (модель должна быть pc104, pc105)
Если есть проблемы с XKB, прочтите <http://www.tsu.ru/~pas-
cal/other/xkb/> Там же есть ссылки на "переключатели клавиатуры",
например xxkb, описание, как использовать несколько раскладок
одновременно, назначать клавиши переключения раскладок и много других
интересных вещей.
Наиболее развитая программа для переключения клавиатуры через способ
xmodmap : xruskb от Alexander V. Lukaynov <mailto:lav@yars.free.net>
<ftp://ftp.yars.free.net/pub/software/unix/X11/> (primary site)
<ftp://ftp.relcom.ru/pub/x11/cyrillic/>
Она может понадобиться для русификации X11R5 терминалов, например
железных, или эмуляторов под MS Windows. Для ее применения с XFree86
лучше отключить модуль XKB в /etc/X11/XF86Config директивой
XkbDisable. Правильная раскладка для xruskb: jcukeng-cyr.xmm
Проверить русификацию X можно программой xev: клавиатура должна
генерировать правильные XkeySym для кириллицы (0x6xx), а xev должна
показывать Cyrillic_IE и пр. при нажатии русских букв, а не
OCyrcumflex e.t.c.
3.11. Как cмонтировать диск, чтобы русские имена файлов были видны ?
Для vfat примерно так (cтрочка из /etc/fstab/):
/dev/hda5 /mnt/d vfat noexec,rw,umask=002,codepage=866,iocharset=koi8-r,gid=100 0 0
Потом mount /mnt/d. Еще в ядро (>=2.0.36) должны быть включены
соответствующие кодовые страницы (возможно, в виде модулей
/lib/modules/`uname -r`/fs/nls_*) - CP866 и KOI8-R, так что возможно
(хотя скорее всего нет) ядро придется перекомпилировать.
Для CD, содержащего файлы с русскими именами:
$ mount -t iso9660 -o iocharset=koi8-r /dev/cdrom /mnt/cdrom
Параметр codepage для isofs не нужен, в файловой системе JOLIET имена
файлов хранятся в UNICODE.
Смысл этих опций можно узнать в 'man mount' или в документации
исходников ядра /usr/src/linux/Documentation/filesystems/ или
/usr/doc/kernel/filesystems/
3.12. * Как увидеть русские буквы в именах файлов на диске Samba?
Для сервера добавить в /etc/smb.conf
[global]
character set = koi8-r
client code page = 866
preserve case = yes
short preserve case = yes
default case = lower
mangle case = no
Чтобы правильно монтировались smb разделы надо при компиляции ядра
указать (ядро должно быть >=2.2.20 )
CONFIG_NLS_DEFAULT="koi8-r"
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp866"
CONFIG_SMB_NLS=y
CONFIG_NLS=y
3.13. Как перекодировать из DOS/Win кодировки в KOI8-R ?
Перекодировщиков CP1251 и CP866 --> KOI8-R просто огромное количество.
Не надо писать новых ;-) Наиболее широко распространены iconv (входит
в поставку glibc) и GNU recode (
<ftp://prep.ai.mit.edu/pub/gnu/recode/>)
$ iconv -f866 -tKOI8-R -o<outfile> infile
$ recode CP1251..KOI8-R winfile.txt
Еще один URL для recode - <http://www.iro.umon-
treal.ca/~pinard/recode/>.
Перекодировщик русского текста с автоматическим определением исходной
кодировки: <ftp://oskin.macomnet.ru/pub/linux/misc/xcode.c>
В конце концов сгодится обычный lynx :
$ lynx -assume_local_charset cp866 file.txt
3.14. * Как с помощью Vim редактировать файлы в различных кодировках?
:e ++enc=cp1251 winfile.txt
Загрузить файл, считая, что он в указанной кодировке, и
перекодировать его в кодировку, в которой работает редактор.
3.15. * Как создавать и редактировать файлы в UTF-8 в редакторе VIM ?
VIM должен быть версии 6.x и собран с поддержкой Multibyte:
configure --with-features=huge --enable-multibyte
Предположим, консоль русифицирована в KOI8-R, тогда в VIM надо дать
команды :
:set encoding=utf-8
:set fileencoding=utf-8
:set termencoding=koi8-r
В RedHat VIM разнесен на несколько пакетов.
vim-common-6.1-2
vim-minimal-6.1-2
vim-enhanced-6.1-2
Редактор vi, входящий в vim-minimal собран без Multibyte, vim из vim-
enhanced -- с поддержкой. Надо пользоваться редактором vim.
3.16. Можно ли научить Vim понимать хоткеи, когда включена русская
раскладка клавиатуры?
В /.vimrc:
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo и т.д.
3.17. Как прикрутить к Golded/LNX почтовую базу в 866 кодировке ?
Во-первых, нужно взять GoldEd+ c <http://golded-
plus.sourceforge.net>.
Кроме того, нужно взять таблицы перекодировки (например из пакета
русификации, проходившего по файлэхе aftnged [22mи лежащего на
<http://collage.etel.ru/fileechos/ftn/> и прописать их в golded.cfg,
примерно так:
AREAPATH /mnt/c/fido/fecho/
AREAFILE FastEcho
XLATPATH /home/ak/.golded/chars
XLATLOCALSET KOI8
XLATIMPORT IBMPC
XLATEXPORT IBMPC
XLATCHARSET KOI8 IBMPC koi_866.chs
XLATCHARSET IBMPC KOI8 866_koi.chs
IGNORECHARSET
3.18. Можно ли в mc увидеть pусские буквы?
Можно. F9 - options - display bits - Full 8 bit
В последних версиях 'mc' появилась поддержка различных Charset-ов .
Эта опция должна быть включена при компиляции 'mc' .
$ ./configure --enable-charset ....
3.19. less
Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org пишет:
при настроенной локали указывать LESSCHARSET _HЕ HАДО_. Более того, в
~/.lesskey надо добавить
#env
LESSCHARSET=
чтобы он игнорировал установку LESSCHARSET= глупыми программами (к
примеру, man :) [после этого надо запустить lesskey для получения
бинарного файла ~/.less] В противном случае он не будет вызывать set-
locale(LC_CTYPE,"") и, как следствие, не будет icase search для
русских букв.
3.20. telnet
Если возникают проблемы с вводом русских символов, надо написать
файлик ~/.telnetrc со следующей строкой:
DEFAULT set outbinary
Вы можете встретить проблемы при работе в кодировке Win-1251 -- не
передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff
-- это первый символ управляющей последовательности. Дабы передать
собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой
проблемы нет.
3.21. Что делать, если "слетела" консоль ?
Скорее всего на консоль был скопирован какой-то двоичный файл, где
случайно встретилась переключающая ESC-последовательность. Тогда :
Сброс терминала :
$ echo -ne "\033c"
набрать вслепую, или с работающей консоли :
# echo -ne "\033c" >/dev/ttyX
Переключение на downloaded font
$ echo -ne "\033(K"
(возможно, еще придется перегрузить фонты, но это смотря как консоль
сорвало...)
Если вывалилась какая-то программа, которая использует curses, то
проще
$ stty sane
В Red Hat все это делают reset; setsysfont <ctrl-j>
reset - из ncurses
См. 'man console_codes' и 'man stty'
3.22. Как русифицировать TeX под koi8-r?
Все вопросы по TeX рекомендуется задавать в ru.tex. FAQ из этой
конференции и прочая информация по TeX в России находятся по адресу
<http://myke.webjump.com/tex/>.
TeX и LaTeX во всех современных дистрибутивах говорят по-русски с
раздачи. В этом случае имеется документ cyrguide.*, который и
содержит развернутый ответ на вопрос о русификации TeX.
Переносы не всегда работают "из коробки", иногда надо поправить
language.dat, и пересобрать форматы. Вот что пишет Alex Nikiforov:
Если уж о последних версиях, то в RH-6.0 с tetex 0.9 у меня получилось
так:
$ texconfig
выбрать
hyphenation -> latex
раскомментировать russian
Добавить в LaTeX файлах
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
и в файле можно переключаться между русским и английским командами
\Russian и \Engish
Что бы добавить форматы из cyrplain набора в texconfig выбрать FORMATS
и добавить
cyrtxinf tex language.dat cyrtxinf.ini
для русского texinfo. Аналогично для cyrblue и cyramstx.
Что бы добавить формат cyrtex ( русский TeX ) проще в каталоге web2c
выполнить:
initex '\input cyrtex.ini \dump'
и бросить символическую ссылку с именем cyrtex на tex ( например в
/usr/bin )
Что бы переключится на русский в этих plain форматах использовать
команду
\language N
где N - номер, под которым числится русский язык в получившейся
раскладке.
В принципе можно заменить в конфигурации ruhypen на ruenhyp и оставить
только совместные русско-английские правила переноса, но детально это
не проверял и подробно описать не могу.
3.23. * Где взять русские Type1 ps фонты в KOI8-R?
Клавиатуpа - любым досовым pусификатоpом. Кроме того, есть патчик в
<http://www.ice.ru/~vitus/misc/>, который позволяет обойтись без
русификатора клавиатуры. В X-ах - рекомендуется, так как позволяет
избежать двух клавиш переключения - одной в DOS другой - на остальном
десктопе. При работе с удаленным dosemu (по telnet/ssh/rsh) -
необходим.
Фонты - в консольном dosemu тем же pусификатоpом, в X-овом - поставить
фонт с 866-ой кодиpовкой. Взять можно по адpесам
<http://www.ice.ru/~vitus/works/x11.html>,
<ftp://ftp.dosemu.org/dosemu/Development/>vga_cyr8x16.pcf.gz или
<http://www.inp.nsk.su/~bolkhov/files/fonts/vga4dosemu/>.
3.27. А как русифицировать StarOffice (там же - а почему он у меня не
ставится и т.п.
Почитайте замечательную страничку Леона Кантера по адресу -
<http://www.blackcatlinux.com/StarOffice/>
Составаитель FAQ был бы рад узнать, в какой мере сведения на этой
странице применимы к Open Office и Star Office 6.
3.30. Как русифицировать Netscape {4|3}/научить его понимать
win-кодировку ?
· Возьмите Netscape 4.06 и выше, собранный под glibc2, его
русифицировать не надо. Брать его желательно у производителя вашего
дистрибутива. (при настроенной локали, xkb и шрифтах,
установленных согласно ответу на вопрос 0.13)
Еще, netscape имеет мерзкую привычку запоминать шрифты в
~/.netscape/preferences.js (и, кажется, еще где-то). И если он
вовремя не увидел какой-то шрифт, то он может его вообще никогда не
увидеть. Иногда помогает только полное изничтожение директории
~/.netscape
· для тех, кто не испытывает любви к падучему тормозному монстру:
netscape 3.xx особой русификации тоже не требуют - достаточно
просто шрифтов в кодировке koi8-r, но с win-кодировкой будут,
естественно, проблемы. Единственная пакость - управляющие элементы
форм (кнопки/селекторы и т.д.) выводятся в latin1. Лечится
echo 'Netscape*documentFonts.charset*koi8-r: iso-8859-1' | xrdb -merge
после чего koi8-шрифты появляются в списке шрифтов для "Western".
(отныне ваша кодировка по умолчанию именно она, а про koi забудьте.)
Netscape 3.x берется с <ftp://archive.netscape.com>
Login:archive
Password:oldies
dir там не работает, качайте /archive/index.html
· Принципиально не русифицируемые вещи:
у обоих нетскейпов (3 и 4) будут трудности со страницами в
кодировке, не соответствующей 'meta content-type' в заголовке
(традиционная проблема серверов с выбором кодировок и авторов,
пользующихся тулзами от MS). Hе лечится ничем, кроме хака
бинарников.
Что еще хуже - если в документе явно указан шрифт, и такой шрифт,
не дай бог, у вас имеется (естественно, не русифицированный), то им
все и будет нарисовано. Решений два: или не иметь в системе
не-русифицированных шрифтов вовсе, или отключить в нетскейпе
автоматическую загрузку изображений. (при этом "заодно", как ни
странно, отключится и показ шрифтов, указанных в документе. Hажав
Alt-I, вы получите возможность посмотреть картинки. Hадеюсь, текст
к этому моменту вы уже запомнили ;)
3.31. Как мне заставить приложение для иксов использовать шрифты с
koi8-r, а не iso8859-1 ?
a) Постарайтесь выяснить, откуда приложение берет имя фонта. Чаще
всего приложение хранит имена используемых фонтов в "базе ресурсов": в
персональной /.Xdefaults или системной /usr/X11R6/lib/X11/app-
defaults/ базе. Имена используемых фонтов хранится в форме XLFD, т.е.
там можно применять "*". Например:
Netscape*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-koi8-r
Посмотреть "ресурсы" приложения можно утилитой appres :
$ appres XTerm
В man практически на любую X программу имеется секция RESOURCES.
Если программа написана с применением какого-либо "Toolkit"-а : GTK,
Qt, Motif, e.t.c., чаще всего достаточно русифицировать Toolkit.
Русификация GNOME/Gtk и Qt таким способом описана чуть ниже.
b) С помощью ключа -fn font или -font font. Этот ключ обрабатывается
в XLIB и он скорее всего будет работать в любой X программе.
c) Метод грубого хака. Нужно взять русские шрифты с
<ftp://ftp.relcom.ru/pub/x11/cyrillic/fonts/>, там есть шрифты
adobe-*-koi8-1 (c fonts.alias, делающим из них -iso8859-1), но реально
содержащие кириллицу в koi8-r в старшей половине.
При этом шрифты с теми же именами и "настоящими" символами iso8859-1
становятся недоступны. Стандартных шрифтов из XFree86-cyrillic-fonts
недостаточно. Кроме того, пути к русским шрифтам в конфиге иксов или
фонт-сервера должны быть впереди всех прочих.
Однако лучше не использовать этот метод, а написать автору программы
(или прислать ему patch ;) для вынесения имени фонта в "ресурс".
3.32. Почему в Gnome или программах, использующих GTK+, кое-где
русский текст выводится латиницей? Где прописываются используемые ими
шрифты?
Если gtk не находит нужных шрифтов (в частности, нужного размера), он
режет 8-й бит. Шрифты задаются в /etc/gtk/gtkrc.$LANG. Поэтому нужно
создать файл gtkrc.ru или поправить существующий. Внутри должно быть
примерно следующее (названия шрифтов, размеры и прочие атрибуты можно
исправить по вкусу, но эти шрифты должны содержать кириллицу в
koi8-r):
style "gtk-default-ru" {
fontset = "-cronyx-helvetica-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-courier-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-fixed-medium-r-normal--*-*-*-*-*-*-koi8-r,\
-cronyx-times-medium-r-normal--*-*-*-*-*-*-koi8-r"
}
class "GtkWidget" style "gtk-default-ru"
И скопировать этот файл в 'gtkrc.ru_RU.KOI8-R' или сделать symlink:
$ cd /etc/gtk/
$ ln -s gtkrc.ru gtkrc.ru_RU.KOI8-R
Подробности см. <http://www.gtk.org/tutorial/gtk_tut-21.html>, а
также <http://www.linux.org.ru/gnome/>
3.35. Что сделать, чтобы было можно работать в юникодной локали
(ru_RU.UTF-8) в консоли и в иксах?
К сожалению, "железо" консоли IBM-PC (VGA/SVGA) может отображать
только 256 символов одновременно. Еще 32 символа отъедают рамки. Если
пожертвовать атрибутами, количество символов можно довести до 512. Для
UNICODE явно маловато. См. Console programming HOWTO
<http://devel.linvision.com/doc/fbh/current/index.html>
Если устраивают эти ограничения, то переход (пакет console-tools) в/из
однобайтового режима консоли в режим UTF-8 осуществляется командами
unicode_start(1) и unicode_stop(1) . Узнать текущий режим можно
командой vt-is-UTF8(1) . Документация - в console-tools/lct.txt
Эмулятор терминала XTerm в X Window не имеет аппаратных ограничений.
Запуск
: xterm -u8
с фонтами *-iso10646-1 .
Наиболее современные программы не используют "терминальный ввод-вывод"
вообще, а написаны с использованием ToolKit-ов, поддерживающих UNICODE
(Qt, GTK, Java .e.t.c.) или напрямую пользуются возможностями GUI X
Window.
Для правильной работы приложений в UTF-8 необходимо, чтобы системная
локаль также была UTF-8, например LANG="ru_RU.UTF-8" .
Дополнительная информация:
UTF-8 and UNICODE FAQ: <http://www.cl.cam.ac.uk/~mgk25/unicode.html>
The Unicode HOWTO: <http://www.tldp.org/HOWTO/Unicode-HOWTO.html>
How do Unix terminals work?:
<http://czyborra.com/unicode/terminals.html>
Unicode Howto for KDE developers:
<http://developer.kde.org/documentation/library/kdeqt/kde3arch/KDE-
Unicode-Howto.html>
Есть микро-HOWTO вот здесь: <http://lists.debian.org/debian-
russian/2001/debian-russian-200111/msg00203.html>
3.36. Кто занимается переводом документации и пользовательских
4.1. А какие бывают версии ядра Линукса ? А почему при
апгрейде/компиляции ядра у меня #$@#$#@%@#$%@#$? А что такое
девелопмент-ядра и вообще, почему говорят, что новая версия ядра -
2.2.x вышла вчера, когда я месяц назад скачал 2.3.какую-то ? Каким
ядром лучше пользоваться ?
(Alex Kanavin, адрес выше, Alexey Mahotkin <mailto:alexm@hsys.msk.ru>)
Начнем с официальной серии ядер, выпускаемых непосредственно Линусом
Торвальдсом. Прежде всего, надо разобраться, что такое стабильные и
нестабильные ядра (stable и development) и как они нумеруются. Пусть
имеется ядро версии a.b.c
· a - это основной номер версии. Меняется он раз в несколько лет, как
правило, когда нестабильная серия с очень существенными изменениями
становится стабильной.
· b - это patchlevel. Именно он определяет, является ли данное ядро
стабильным или нет. Если он четный - ядро стабильное, если нечетный
- нестабильное. Числа a и b в виде a.b называется серией ядер.
· с - это sublevel. Он определяет номер ядра в серии.
Официальные ядра в виде исходных текстов можно скачать с
<ftp://ftp.kernel.org> и его многочисленных мирроров (российский:
<ftp://ftp.ru.kernel.org>, но им лучше не пользоваться, так как он не
миррорит .bz2, если вам нужен именно российский миррор, то попробуйте
<ftp://ftp.rmt.ru/>, <ftp://ftp.chg.ru/Mirrors/ftp.kernel.org/> или
<http://ftp.chg.ru/Mirrors/ftp.kernel.org/>).
[пользуясь случаем, хочу передать сообщение для <ftp://ftp.chg.ru> ,
<ftp://ftp.ru.kernel.olg> и других официальных россйских мирроров:
если уж вы миррорите, например, redhat, то делайте это целиком и
каждый день, а не раз в месяц кусочками. А то апдейты у вас
появляются через месяц после того, как они были выложены на
ftp.redhat.com, да и то - только к последней версии. Ну и кому нужен
такой "официальный" mirror? Взялись быть зеркалом - делайте это как
следует, не можете - откажитесь.]
Кроме полных исходных текстов ядра там же можно найти патчи -
значительно меньшие по размеру файлы, позволяющие превратить исходники
версии a.b.c в исходники версии a.b.c+1 c помощью команды patch. Эти
же патчи ходят по файлэхе usyslnx[22m.
Стабильные ядра предназначены для широкого использования и проблемы
при их использовании или компиляции встречаются нечасто. Как правило в
стабильных сериях от версии к версии только исправляются ошибки и
добавляются драйвера, не требующие изменений в самом ядре и хорошо
себя зарекомендовавшие. Стабильные ядра можно безбоязненно обновлять,
не трогая прочий софт - если вы остаетесь в рамках одной серии,
проблем возникнуть не должно. (По крайней мере в теории, на практике,
возможно, придется вернуться к старому ядру и подождать выхода еще
одной версии.) Новые версии выходят нечасто - примерно раз в месяц, и
реже.
Нестабильные ядра, наоборот, не предназначены для использования
массами. Это полигон для тестирования множества разнообразных
возможностей, только появившихся и еще не готовых для использования
никем, кроме их собственных разработчиков и людей, чье хобби -
забавляться с нестабильными ядрами. Здесь от версии к версии может
меняться очень многое и правильную работу никто не обещает (впрочем,
то же относится и к стабильным ядрам, но в менее "жестком" смысле).
При их использовании нужно быть готовым ко всему. Прежде всего к
тому, что ядро просто не скомпилируется. Потом оно может не
загрузиться, зависать, портить файловую систему и вообще всячески
глючить. Кроме того, может начать глючить софт, взаимодействующий с
ядром напрямую. Нестабильные ядра выходят гораздо чаще стабильных -
иногда несколько новых ядер в неделю.
Как нестабильная серия становится стабильной и наоборот ? Очень
просто: в какой-то момент Linus Torvalds объявляет т.н. feature
freeze, после чего к включению в нестабильное ядро принимаются только
исправления ошибок (bugfix). Через некоторое время очередной версии
присваивается номер не a.b.c+1, а a.b+1.0 или a+1.0.0 - так появляется
новая стабильная серия, вокруг чего масс-медиа устраивают большую
шумиху :) Еще через некоторое время выпуск версий в предыдущей
стабильной серии прекращается и происходит т.н. fork или разветвление
- одновременно с очередным стабильным ядром появляется нестабильное,
отличающееся от первого только номером версии.
Заметьте, что термины "стабильный" и "нестабильный" в чем-то условны.
Понятно, что "нестабильное" ядро 2.3.128 за несколько минут до его
превращения в стабильное ядро 2.4.0 по определению стабильно, а
стабильное ядро 2.2.xxx, в котором обнаружена фатальная ошибка
распределения памяти -- опять же по определению нестабильно. В общем,
сами понимать должны, не маленькие.
В силу открытости процесса разработки ядра Linux существует несколько
побочных ветвей развития. Одной из основных таких ветвей являются
ядра серии -ac, которые выпускает Алан Кокс -- один из основных
разработчиков Линукса. Во-первых, серия -ac служит своеобразным
буфером, в котором тестируются некоторые новые драйвера, возможности,
etc. перед тем, как этот, уже оттестированный, драйвер будет отправлен
Линусу. Во-вторых, в ядрах -ac имеется определенный набор вещей,
которые не устраивают Линуса, но устраивают Алана и к тому же
достаточно популярны.
Существуют также еще несколько менее важных (хотя ваше мнение по этому
вопросу может отличаться) побочных веток: например, International
Kernel Patch с поддержкой сильной криптографии, devfs-patch с
поддержкой файловой системы /dev, раньше была отдельная поддержка
ISDN, ну и так далее и тому подобное). Кроме того, многие
производители дистрибутивов распространяют ядро с определенными
патчами, которые они считают необходимыми и которые лучше вписываются
в инфраструктуру дистрибутива).
Каким же ядром все-таки пользоваться? Простейший ответ: тем, которое
входит в используемый вами дистрибутив. Этот ответ приемлем для
большинства пользователей Линукса. Если же вы оказались в ситуации,
когда, например, нужное вам железо поддерживается только в каком-то
патче, который не вошел ни в одну из основных ветвей, значит, вам
придется брать исходники оригинального ядра, патчи, которые
использовали создатели дистрибутива, патчи, которые необходимы лично
вам, прикладывать все эти патчи друг к другу, компилировать и
устанавливать ядро вручную (ну, или создать свой собственный пакет на
основе дистрибутивного). Вам также придется отслеживать выход новых
версий патча, контактировать с его автором, сражаться с его глюками и
прилагать всяческие усилия к тому, чтобы оный патч, наконец, приобрел
официальный статус.
Возможны и другие варианты, при которых может потребоваться
пересборка, наиболее очевидный - вы столкнулись с ошибкой в ядре,
которая исправлена в более свежей версии. В этом случае стоит сперва
выяснить, не выложил ли производитель вашего дистрибутива исправленное
ядро на свой ftp сервер, в то же место, где лежат прочие обновления.
Такое ядро доступно в форме пакета (rpm или deb), пригодного к
непосредственной установке пакетным менеджером, либо в дистрибутиве
имеется система автоматического обновления пакетов.
Если же вам просто хочется поставить более свежую версию ядра или
пересобрать ядро без всякой причины ("убрать лишние драйвера",
"изучить процесс сборки" и т.п. причинами не считаются ;-),
рекомендуется серьезно подумать, прежде чем приступать к действиям. Не
стоит чинить то, что не сломано. Объем трафика ru.linux, посвященный
проблемам при пересборке ядра весьма велик и не надо еще больше его
увеличивать :-). Однако обновления ядра от производителя все-таки
устанавливать рекомендуется в любом случае :-)
Итак, вы решили самостоятельно скомпилировать/установить ядро. Если
оно development - очень рекомендуется подписаться на список рассылки
linux-kernel. В любом случае желательно просматривать глазами патчи
перед установкой (особенно на предмет добавления новых опций и
изменений в каталоге Documentation). Еще крайне рекомендуется
оставлять старое ядро и делать в lilo отдельный target типа oldlinux,
на него показывающий. При смене стабильной серии на более новую
стабильную надо прочесть Documentation/Changes - как минимум. А лучше
- все из этого каталога, что относится к вашему железу и софту.
4.2. Как произвести компиляцию ядра? Это заложено в установках
линукса или здесь есть какие хитрости?
cd /usr/src/linux
Опции, с которыми компилируется ядро (тип процессора, драйверы которые
нужно включить (возможно в виде модулей) и еще сотни других вещей),
задаются в файле /usr/src/linux/.config. Так вот, желательно не
создавать его самому с нуля (особенно, если вы собираете ядро
первый/второй/третий раз в жизни или наложили патч на исходники из
которых уже что-то компилировали), а взять за основу .config с которым
было собрано старое, работающее ядро. При этом вам прежде всего надо
выдать команду make oldconfig - она используется, когда есть .config
от _другой_ (обычно, более старой) версии ядра, и нужно просто
получить точно такой же для текущей (возможно, ответив на пару
вопросов о тех фичах, которых в старом не было), не отвечая заново на
все три сотни вопросов. Затем выдайте make menuconfig и исправьте те
опции, ради которых вы собственно и решили пересобрать ядро.
Если вы используете Red Hat и хотите воспользоваться теми .config, c
помощью которых были собраны ядра в этом дистрибутиве, то возьмите их
из kernel-sources-*.i386.rpm/usr/src/linux/configs/
Затем:
make dep
make clean
make zImage (make bzImage для ядер версий > 2.2)
make modules
Если у вас раньше стояла эта же версия ядра, то удалите старые модули
от этого ядра (/lib/modules/версия).
make modules_install
/usr/src/linux/arch/i386/boot/(b)zImage - и есть свежесобранное ядро.
Его теперь можно поинсталировать на место старого. Хотя лучше сначала
попробовать, работает ли оно. Нужно добавить в lilo.conf еще один
выбор - например, linux.test, - который берет ядро прямо из
/usr/src/linux/arch/i386/boot/zImage.
(Valentin Nechayev <mailto:nnlx@nn.kiev.ua>)
Я пpедлагаю дpугой метод - пpовеpен только для Red Hat'а.
cd /usr/src/linux-нужная_веpсия
vi Makefile и заменить extraversion на свой - напpимеp,
EXTRAVERSION = -vasya1
после этого все то же самое, но
1. make modules_install поставится в свой отдельный каталог
2. установка (пpавильная!) ядpа в /boot сделается сама чеpез make
install
3. это работает только с ядрами 2.2.x (у 2.0 просто нет параметра
EXTRAVERSION) и, по крайней мере теоретически, может "сломать"
чей-нибудь автоконфигуратор, рассчитывающий на n.n.nn по uname -r.
(Alexander Pevzner, 2:5020/59.9)
Тем, кто отважился на сборку ядра лично под себя, советуем обратить
внимание на следующие факты:
· В начале ядерного Makefile (/usr/src/linux/Makefile) есть
переменная EXTRAVERSION. Используя ее можно получать ядра одной и
той же версии, но с названиями, отличающимися суффиксом (напр,
2.2.12-20 и 2.2.12-vasya). Это хорошо, поскольку позволяет
сохранить экземпляр ядра, который заведомо умеет грузиться. Родное
ядро, с которым ставилась система, лучше сохранить на случай всяких
неприятностей. Hадо только не забыть добавить дополнительную запись
в /etc/lilo.conf (достаточно иметь всего 2 записи: на родное ядро и
на свежесобранное).
· В редхате в /usr/src/linux правильно работает make install и make
modules_install. Ядро и модули копируются в нужное место и
правильно настраиваются символические линки. Причем, что приятно,
это относится не только к ядрам, полученным в виде .src.rpm, но и
если просто взять ядро с ftp.kernel.org, все заработает. (эту
правильную установку осуществляет редхатовский скрипт
/sbin/installkernel, входящий в пакет с фирменным ядром редхата,
поэтому перед make install желательно убедиться в наличии этого
скрипта (Alex Kanavin).) EXTRAVERSION в этих ядрах по дефолту не
выставлено, поэтому ядро будет получаться под именем навроде 2.2.13
(конечно, EXTRAVERSION при желании можно выставить)
· Когда ядро собирается в дереве, в котором уже собиралось ядро,
очень рекомендуется после make *config сказать make clean. Во
всяком случае, если какие-то части ядра были переселены в модули
или обратно, надо делать это _обязательно_, иначе есть шанс собрать
неправильное (не работающее) ядро.
4.3. Как изменить максимальное количество открытых файлов?
В ядрах 2.2.10 и более новых:
echo 30000 > /proc/sys/fs/file-max
echo 30000 > /proc/sys/fs/inode-max
и сделать ulimit -n 2000 перед запуском нужного демона. Цифры
подбираются под задачу.
(Yuriy Kaminsky 2:5020/517.21)
И не забыть, что если программа использует select, то будет
большой-большой облом. Вплоть до затирания стека и падения (at least
glibc-2.0 - см. /usr/include/gnu/types.h - и иже с ним; исправления
#define __FD_SETSIZE 1024
на нужное число и пересборки всех приложений и библиотек , которые
могут заюзать select для дескрипторов выше 1024 будет достаточно
[т.е., скажем, если X'овому приложению нужно открывать более 1024
файлов, то необходимо пересобирать Xlib и Xt как минимум]; ах, да,
саму libc пересобирать, вроде, не нужно).
4.4. Подскажите, pls, www/ftp где можно получить доку по
Очень коротко, подробнее можно прочесть в вышеназванных источниках:
ядро монтирует корневую файловую систему, и запускает первый процесс
init, разыскав его исполняемый файл в нескольких стандартных местах.
Этот процесс читает свой конфигурационный файл /etc/inittab (man
inittab) и запускает все остальные процессы согласно инструкциям из
этого файла. Обычно в inittab прописывается запуск процессов *getty,
управляющих терминалами, виртуальными консолями и последовательными
линиями (то есть именно *getty ответственны за запуск login
(сравнивающий имя и пароль, указанные пользователем, с тем, что
прописано в /etc/passwd и в случае успеха запускающий соотв. shell),
pppd, ifcico и т.д., что именно запускается и в каком случае - зависит
от конкретного getty). Для виртуальных консолей обычно используется
mingetty, для модемов - mgetty.
Кроме того, здесь же прописываются скрипты, запускающиеся на различных
т.н. "уровнях выполнения", из которых в свою очередь запускаются все
остальные системные сервисы, осуществляется настройка сети, проверка
файловой системы и т.д. Существует два подхода к организации этих
уровней и скриптов: BSD и SysV. Оба они описаны в книжке Э. Немет (см.
выше), а про SysV можно еще прочесть на
<http://www.sensi.org/~alec/unix/redhat/sysv-init.html>.
4.7. После удаления /var/log/syslog и /var/log/messages и
пеpезагpузки эти файлы не пополняются и некотоpые сообщения идут на
консоль. Как пpавильно чистить log-и?
Логи могут быть от syslog'а и от отдельных демонов. syslog'овые логи
чистятся так:
mv $log ${log}.old (или rm если не нужен, но лучше сохpанить)
touch $log
kill -1 `cat /var/run/syslogd.pid`
Процесс автоматизируется с помощью logrotate.
Как чистить не-syslog'овые логи - только RTFM на конкpетную тулзу и
никак иначе.
4.9. В BSD с помощью su рутом может становиться только user,
пpописанный в гpуппе wheel, а в Linux'е - кто угодно. Hехоpошо это
как-то. Может быть, есть путь это испpавить?
Надо ставить su не из gnu sh_util, которая в принципе этого не умеет
(RTFmanpage на предмет, по чьей милости), а какую-нибудь другую. Но
ежели su пользует pam (в Red Hat, напpимеp и основанных на нем
дистрибутивах, а также в Debian 2.2), подобное поведение достигается
добавлением стpочки:
su auth required pam_wheel.so
в /etc/pam.conf, если pam дpевний, или:
auth required pam_wheel.so
в /etc/pam.d/su, если поновее.
Такой механизм получше будет, поскольку поведение можно ваpьиpовать на
ходу. Hапpимеp, манипулиpуя паpаметpами 'group' и 'deny', pазpешить
это делать всем, кpоме одной гpуппы:
pam_wheel.so group=guest deny
Пpавда, модуль этот стpанный, забывает смотpеть на gid, а смотpит
только на groups... А может так и надо...
В Debian 2.1 надо поставить пакетик secure-su и посмотреть на файл
suauth.
В Slackware от 3.3 (гаpантиpовано) это pешается путем pедактиpования
/etc/login.defs Hужно, что бы было
SU_WHEEL_ONLY yes
тогда su смогут использовать только входящие в гpуппу root. В
слаквари от 3.4 (до 4.0, где su опять из другой банки) лучше прочесть
сперва man 5 suauth - там возможна гораздо более гибкая настройка su,
чем тупая "группа ноль".
Если память не вpет, то это же спpаведливо в SuSe 6.x. В SuSE 5.3 su
из sh_util, со всеми вытекающими. К сожалению, su, понимающая
login.defs и suauth, страдает другими болезнями - в частности, не
имеет удобных ключиков -m и -s. Если секьюрити важнее удобства...
4.10. Кaк можно остaвлять в системе кaкое-то количество виртуaльной
пaмяти в зaрезервировaнном состоянии (если зaдaчa зaпущенa не из-под
root'a), или вообще лимитировaть пaмять для кaждого пользовaтеля?
man setrlimit
4.11. Как сделать так, чтобы программы XXXX и YYYY могли одновременно
использовать модем или еще что-то на терминальном порту?
Во-первых, они должны использовать одно и то же имя файла для доступа
к порту, скажем, /dev/modem. Если одна программа использует
/dev/ttyS0, а другая /dev/cua0 (а третья -- /dev/modem, который линк
на один из этих двух :), - то они точно передерутся.
Во-вторых, они должны использовать механизм lock-файлов. Hаверное, все
известные программы его используют, но все же.
В-третьих, они должны видеть локи друг друга. То есть, в их
конфигурации должен быть указан один и тот же каталог для создания
локов, они должны использовать один и тот же формат имен файлов
(обычно LCK..<имя файла порта>), один и тот же формат самих файлов
(обычно десять символов -- PID программы в ASCII), и иметь привилегии,
достаточные для создания и удаления своих лок-файлов.
4.12. В чем pазница между /dev/cua* и /dev/ttyS*?
Hе надо пользовать cua*. То есть вообще. Они в ядре - только для
обратной совместимости со схемой, принятой в BSD. В BSD /dev/cuXX --
это "Call Up" порты, т.е. для исходящих звонков -- на них всегда есть
CD. В Linux /dev/cuaXX не применяется и новые ядра даже выдают
предупреждение.
4.13. Как правильно настроить время на машине с Linux? Как
синхронизировать его с Интернетом? Как синхронизировать клиентов с
сервером?
Для установки времени в CMOS используется утилита hwclock из свежего
комплекта util-linux.
Если на вашей машине стоит только Linux, то очень удобно записать в
CMOS время по Гринвичу, а в одном из стартовых скриптов сказать
/sbin/hwclock --hctosys --utc
Если на машине стоит, кроме Linux, какая-то другая операционная
система, то в CMOS пишется местное время, а в стартовом скрипте
пишется просто
/sbin/hwclock --hctosys
Для того, чтобы программы правильно определяли местное время (с учетом
летнего времени и тому подобных обстоятельств), надо:
· убрать из стартовых скриптов всякие упоминания переменной окружения
TZ, если таковые имеются;
· сделать так, чтобы файл /etc/localtime был правильной символической
ссылкой на соответствующий файл из /usr/share/zoneinfo, например,
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В Red Hat-based системах параметр utc задается в файле /etc/syscon-
fig/clock. Непосредственно редактировать стартовые скрипты не нужно.
Кроме того, этот параметр и timezone можно задать с помощью утилиты
timeconfig.
Проверить правильность задания времени можно, запустив сначала
``date'' (должна показать правильное местное время), а затем ``date
--utc'' (должна показать правильное время по Гринвичу).
Для того, чтобы синхронизировать время с часовыми серверами в
Internet, сходите на <http://www.ntp.org>. Там раздается пакет xntpd
и приведен список публично доступных часовых серверов в Интернете. Из
всего комплекта xntpd вам потребуется лишь программа ntpdate.
Периодически, например, при каждом звонке провайдеру, выполняйте,
например, такую команду:
/usr/local/bin/ntpdate ntp1.gamma.ru
Если на вашей машине под Linux установлена Samba, то клиенты под MS
Windows могут синхронизировать время с этой машиной с помощью команды
C:\> NET TIME \\LINUXBOX /SET /YES
(Alexey Mahotkin <mailto:alexm@hsys.msk.ru>)
4.14. Hадо заставить uucico ходить на телнетовский порт, а в логах
наблюдается откровенный мусор: \177}\030\177} \177}#\177}
port type pipe
port command /bin/telnet -8E hostname
4.15. А как смонтировать дискету если я не root?
Попробуйте fdmount /dev/fd[0-9] mountpoint, ну и не забыть почитать
man fdmount, или root мог написать 'user' в /etc/fstab, и обычный
пользователь может говорить "mount <mountpoint>". man 8 mount. Еще
лучше вовсе не монтировать дискеты, а пользоваться mtools.
4.16. Отчего кое-кто (INN, SENDMAIL) так долго думает при старте?
Hадо заглянyть в директорию /var/log и посмотреть, нет ли в логах
сообщений от этой программы. Для sendmail - 99% воплей пpо долгое
думанье объясняется попыткой pезолвинга адpесов локальных интеpфейсов.
Hадо эти адpеса занести в /etc/hosts. Альтеpнативный ваpиант - O
DontProbeInterfaces=True в /etc/sendmail.cf.
4.17. А чего бы такого крутого предпринять по части безопасности
системы?
Для начала прочтите /usr/doc/HOWTO/Security-HOWTO.
Hа <http://www.openwall.com> можно найти патч Solar Designer-а,
который помогает от исполняемого стека и еще восьмидесяти восьми
болезней. Кроме того, рекомендуется придирчиво изучать
<http://rootshell.com> <http://packetstorm.securify.com>,
<http://www.linuxsecurity.com> , и подписаться на списки рассылки
bugtraq, linux-security, и список по безопасности того дистрибутива,
которым вы пользуетесь. Еще одна, хотя и несколько радикальная
ссылка: <http://www.infowar.co.uk/thc/files/thc/anonymous-unix.html>
4.18. Хочу скопировать один диск на другой. Как?
· Если имеется ввиду перенос содержимого одной файловой системы в
другую, то одним из корректных способов сделать это будет
( cd /old_fs && tar cf - . ) | ( cd /new_fs && tar xvpf - )
· dump 0f - /old_fs | ( cd /new_fs && restore xf - )
и набирать побыстрее, и понять легче, и кое-что, что у tar не
получится или получится с трудом, таким образом можно скопировать
(атрибуты, файлы с "дырками"). Для tar можно и попроще:
tar -C /old_fs -cf - . | tar -xpf - -C /new_fs
- GNU tar более интеллектуальная штука, чем dump.
· Подробное руководство есть в /usr/doc/HOWTO/mini/Hard-Disk-Upgrade
4.19. Зачем нужны странные права доступа на каталогах, например,
sticky или setgid bit?
Sticky bit (chmod +t) на каталоге означает, что файлы в этом каталоге
могут стирать только их владельцы или суперпользователь. Обычно на
/tmp и /var/tmp этот бит включен.
Setgid бит (chmod +g) на каталоге означает, что файлы, созданные в
этом каталоге, будут иметь ту же группу-владельца, что и сам этот
каталог. Также, если в setgid-каталоге создаются другие каталоги, то
они также будут иметь setgid-бит.
По словам ДиДжея Бернстайна, "есть три метода задания групп-владельцев
файлов: BSD-шный, бесполезный и SVR4-й. При BSD-шном методе файлы
всегда получают ту же группу-владельца, что и каталог, в котором они
были созданы. Это очень удобно с точки зрения администратора.(*) При
бесполезном методе новые файлы принадлежат основной группе, на правах
которой выполняется текущий процесс. Этот случай моментально приводит
к настоящему кошмару. SVR4-й метод почти совпадает с бесполезным, но
если на каталоге есть setgid-бит, то включается BSD-шный метод."
Заметьте, что с помощью флага монтирования bsdgroups можно включить
BSD-шный метод работы с группами-владельцами. Подробности --
mount(8).
(*) Объяснение, почему удобно, можно найти в руководстве Red Hat -
rhref/s1-sysadmin-usr-grps.htm, Users, Groups and User-Private Groups)
4.20. Сообщения на экране или в логах: modprobe: Can't locate module
<имя-модуля>
Такое сообщение может появляться по нескольким причинам:
· Такого модуля действительно нет. В этом случае нужно выяснить его
назначение и причину, по которой система пытается его загрузить.
Затем, в зависимости от результатов выяснения, либо прописать в
modules.conf (про формат которого есть man-страница) такую строку:
alias <имя-модуля> off
либо собрать этот модуль из его исходных текстов или исходных текстов
ядра Linux.
· Такой модуль существует, но программа modprobe, вызываемая ядром,
не может установить соответствие между именем модуля, которое
передает ядро и реальным именем файла, содержащего этот модуль. В
этом случае нужно либо обновить пакет modutils, либо прописать в
/etc/modules.conf:
alias <что-не-может-найти> <имя-файла-без-.o>
(я буду признателен тому, кто укажет способ установить это
соответствие, если оно не прописано внутри modprobe)
4.21. Sendmail ругается: sh: <что-то> not available for sendmail pro-
grams
Прочтите man smrsh или /usr/share/doc/sendmail/README.smrsh
5. Сетевое администрирование
5.1. Почему telnet не пускает пользователя root? Как зайти удаленно с
правами root?
telnet (а точнее, login) не пускает root потому, что root может
заходить в систему только со специальных защищенных терминалов,
перечисленных в /etc/securetty. Обычно там перечислены только
виртуальные консоли tty1-ttyN. Другие места считаются небезопасными,
потому что пароль, вводимый оттуда, может передаваться по сети
открытым текстом (что и происходит в случае использования telnet), а
значит его может узнать злоумышленник, "прослушивая" сеть и анализируя
"чужие" пакеты.
Ответов на второй вопрос несколько:
· быстрый и неправильный способ - удалить файл /etc/securetty или
прописать в нем псевдотерминалы /dev/ttyP*. Это опасно потому, что
дает злоумышленнику возможность не только узнать пароль, но и
воспользоваться им для удаленного захода на машину.
· менее быстрый, но все равно неправильный способ - заходить на
машину обычным пользователем, а затем использовать команду su или
sudo. И в этом случае оба пароля передаются открытым текстом, со
всеми возможными последствиями.
· самый правильный способ - полностью отключить сервисы telnet,
не-анонимный ftp, rsh, rlogin и заменить их на ssh, шифрующий все,
что передается через сеть и поддерживающий аутенификацию не только
через пароль, но и с использованием криптографии с открытым ключом.
Клиент и сервер ssh для Unix можно взять на
<http://www.openssh.com>, про клиенты для Windows написано в
разделе "Прочее".
5.2. Hадоело запускать ppp (slip) руками. Хочу чтобы сам звонил,
когда надо.
Медленно и печально идем на <http://diald.sourceforge.net>, сливаем
diald, разворачиваем, читаем README, совершаем _минимальные_
телодвижения на предмет конфигурации и инсталляции, и получаем
эмулятор выделенной линии. Как только требуется выйти во внешний мир,
diald дозванивается до провайдера, устанавливает роутинг и можно
работать. Внимание: учтите, что с ядрами 2.2.x нормально работает
diald-1.99 и выше. 0.16, лежащий везде, в том числе и в некоторых
дистрибутивах, предназначен только для 2.0. (почему-то эта информация
пропущена в Changes) Да, еще... Рекомендации лучших линуксоводов: в
файле /etc/resolv.conf надо размножить строчки nameserver
xxx.xxx.xxx.xxx раза по три, чтобы он по таймауту не отваливался
раньше, чем diald дозвонится. Полезно также удалить default route на
eth0.
А еще можно так: в diald.rc пишем
ip-up "cp /etc/resolv.conf.connected /etc/resolv.conf"
ip-down "cp /etc/resolv.conf.local /etc/resolv.conf",
где в resolv.conf.connected написано:
search yourdomain
nameserver xxx.xxx.xxx.xxx (я предпочитаю 127.0.0.1)
а в resolv.conf.local написано:
domain yourdomain
Хорошо настроить и использовать локальный DNS-cервер в режиме caching-
only. Его можно поднимать и опускать через ip-up и ip-down как сказано
чуть выше, или через /etc/ppp/ip-up.local и ip-down.local. Как его
настроить: раньше вариант был только один - почитать книжку и
настроить таки bind. Теперь есть более простой вариант: к редхату
прилагаются готовые настройки для cache-only bind'а (в пакете
caching-nameserver) или можно установить демон nscd, который умеет
только кешировать DNS-запросы (а также запросы к базе пользователей и
групп).
А еще можно сходить посмотреть на <http://alexm.here.ru>
5.3. Есть ли такая пpогpама для Linux, чтобы в сети Netware обойтись
5.4. Пpинтеpы расшаpены чеpез самбу, но после отпечатывания стpаницы
(или задания) пpобpасывается N листов впустую. HP пpокpучивает один
лист, а Epson два. Как лечить?
PRINTCAP / Begin
my_favourite_printer:\
lp=/dev/lp1:\
sd=/var/spool/lpd/my_favourite_printer:\
sh:lf=/dev/tty10:ff=:
PRINTCAP / End
5.5. Как подружить Самбу и 1С ?
(Zahar Kiselev, 2:5030/382)
Вот что достаточно сделать чтобы работало:
Взять с ftp.kernel.org ядро, которое умеет "на ходу" менять лимиты на
количество открытых файлов. Hасколько я знаю, начиная с 2.2.10 это
работает, как делается - сказано в том числе и в этом faq.
1С отличается совершенно неприличными аппетитами по части количества
открываемых файлов - надо ставить из расчета где-то 800 на каждого
виндового пользователя, потому что есть особо "продвинутые", которые
две-три копии 1С у себя на компе запускают.
Взять Самбу например 2.0.5a - это последняя, которая работала у меня.
Важно, чтобы она понимала параметр в smb.conf "ole locking
compatibility"(надеюсь теперь не наврал в написании), установить его в
"no". Внимание! До меня доходили сведения, что в какой-то даже более
новой чем 2.0.5а Самбе этого параметра нет.
Остальное настроить в соответствии с любой из многочисленных
рекомендаций по установке Самбы, главное - не запрещать ей работать с
блокировками(я знаю одного человека, который до этого додумался).
Запускать надо не через inetd, а как отдельный демон, вернее у Самбы
их два - smbd и nmbd.
Чтобы несколько пользователей могли лезть в одну базу - поместить их в
одну юниксовую группу и поставить права на файлы так, чтобы был доступ
на запись для группы.
Есть еще одна мелкая особенность - Самба при работе хочет создать
файлики browse.dat, wins.dat - так вот надо поставить права так,
чтобы она могла их читать в том числе и тогда, когда работает от
имени виндового пользователя - иначе могут быть большие таймауты при
выполнении команды net use в виндах, и может не работать столь любимое
многими чайниками "сетевое окружение".
Если после очередного падения 1С винды говорят что база заблокирована
- то можно подкрутить в конфиге Самбы параметр, отвечающий за
принудительное снятие "зависших" блокировок(см man). Поставить
например три минуты, меньше не стоит, тогда через три минуты в базу
можно будет войти. Рекомендуется также поставить keepalive-таймаут,
чтобы соединения не висели бесконечно. Желательно при помощи файрволла
закрыть для доступа "снаружи" те два порта, через которые Самба
работает. Причем не только на Линукс, а на всю сеть.
А теперь - совет тем, кто хочет избавиться от проблем, вызванных
наличием 1С у него в сети. Hадо запускать 1С на NT-сервере, причем
желательно sql-версию, она менее критична к сбоям (не повреждаются
данные), а доступ осуществлять с линуксовых машин через Citrix Meta
Frame. При этом ситуация меняется "до наоборот" - вместо одного
линукса и кучи виндов вокруг - получаются _одни_ винды(и те NT), а
вокруг куча Линукс-терминалов, причем можно их бездисковыми сделать,
загружая с линукс-сервера.
Если не хотите линуксы (а напрасно) - citrix-клиент есть и под винды.
Для сомневающихся - работа 1С в терминальном режиме проверена в боевой
обстановке. Результат положительный. Доступ я пробовал осуществлять и
с Линукса и с win95.
5.6. PPP сервер/клиент с поддержкой callback, соединение с NT/2000
5.7. Имеется сеть из PC + Linux, телефонная линия на Linux-e.
Хотелось бы: с любого рабочего места отправить факс. Какой софт под
Linux для этого существует в природе ?
hylafax - есть все, что в подобных случаях может понадобиться и
сказано, где взять "клиентов" под DOS, Windows, etc. HО! принимать по
одной линии (тел) и факсы и фидо не получится. :( Можно использовать
mgetty, но факс-сервер придется делать самому, как делать можно
подглядеть в hylafax. :)
Нужно найти (например, на freshmeat) программу stunnel. Она
прописывается в конфиге inetd примерно так:
spop3 stream tcp nowait root /usr/sbin/stunnel /usr/sbin/popa3d
ssmtp stream tcp nowait root /usr/sbin/stunnel /usr/sbin/sendmail
Victor Wagner предупреждает о подводном камне:
Желательно в качестве argv[0] запускаемому демону указать что-то
отличное от его имени файла. А то, если программа собрана с
поддержкой tcpwrappers и используется hosts.allow/hosts.deny для
разрешения доступа без ssl только из локалки, то при совпадении
argv[0] не-ssl-ного и ssl-ного демона, и с SSL будут не пускать откуда
нельзя.
5.10. Имеется сетка из машин под NT, Win95, и DOS, в ней же есть
Linux с диалапным PPP к провайдеру. Как сделать так, чтобы все
пользователи из локалки могли ходить по интернету?
Нужно настроить маскарадинг. Предположим, что внутренняя локалка имеет
адреса 192.168.0.0 (как и положено по RFC-1918). Тогда :
#!/bin/sh
/sbin/insmod ip_masq_autofw
/sbin/insmod ip_masq_user
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_mfw
/sbin/insmod ip_masq_portfw
/sbin/insmod ip_masq_quake
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_vdolive
/sbin/ipchains -F
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0
Если Linux имеет адрес 192.168.0.1, то этот ip должен быть определен
на хостах внутренней сети как default gateway.
Также полезно прочитать HOWTOs:
Firewall <http://linuxdoc.org/HOWTO/Firewall-HOWTO.html>
IPCHAINS <http://linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html>
IP-Masquerade <http://linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html>
Русская дока есть на <http://www.fima.net/masquerade.html>
В 2.0 ядрах вместо ipchains используется ipfwadm, в 2.4 - netfilter,
про который также есть HOWTO на <http://netfilter.kernlenotes.org>
Если ничего не работает - проверьте, что находится в
/proc/sys/net/ipv4/ip_forward :
$ echo "1" > /proc/sys/net/ipv4/ip_forward
(в Red Hat 6.2 и выше - не забудьте поправить /etc/sysctl.conf)
Утилиты для графического управления firewall-ом : fBuilder
<http://www.innertek.com/> Mason
<http://users.dhp.com/~whisper/mason/>
5.11. Как настроить socks5 ?
Cофт лежит на <http://www.socks.nec.com>
Предположим, что у вас есть машина с двумя интерфейсами (PPP/Ethernet
или Ethernet/Ethernet). На внутреннем Ethernet-e адрес : 192.168.0.1.
Самый простой вариант - аутентификация клиентов локалки только по
адресу.
/etc/socks5.conf
permit - - 192.168.0. - - -
set SOCKS5_BINDINTFC 192.168.0.1:1080
set SOCKS5_NOIDENT
ICQ 99/2000 работает. Подробнее 'man socks5', 'man socks5.conf',
<http://www.socks.nec.com>. [там есть FAQ]
5.12. Как вырезать баннеры из веб-страниц?
Простейший способ - занесение соответствующих хостов - поставщиков
рекламы в /etc/hosts с фиктивными ip адресами.
Более сложный, но и более гибкий - при помощи прокси-сервера Squid.
Чаще всего для фильтрации используют ACL (Access Control List) типа
"url_regex" (squid.conf, раздел ACCESS CONTROLS) типа:
acl Reclama_Banners url_regex ^http://www1\.reklama\.ru/cgi-bin/banner/*
http_access deny Reclama_Banners
Или из файла :
acl Banners url_regex "/etc/squid/banners"
http_access deny Banners
В /etc/squid/banners вписываешь своих врагов (в виде регулярных
выражений), например:
^http://banners\.rambler\.ru/advert/.*\.gif
^http://kulichki.rambler.ru/reklama/banners/.*\.gif
^http://www.*\.yandex\.ru/cgi-bin/banner/*
^http://www1\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/href/*
^http://www\.100mb\.net/images/ban/banner.*\.gif
^http://www\.bizlink\.ru/cgi-bin/irads\.cgi.*
^http://www\.linkexchange\.ru/cgi-bin/rle\.cgi
^http://www\.linkexchange\.ru/users/.*/goto\.map
^http://www\.netcq\.com/banners/banner\.gif
^http://1000\.stars\.ru/cgi-bin/1000\.cgi
Еще лучше с задачей фильтрации справляется специальная
программа-фильтр squidguard <http://www.squidguard.org>, ставится в
дополнение к squid.
Более полный список баннеродержателей можно получить на
<http://pail.pu.ru/>
Можно сделать Transparent Proxy <http://www.lexa.ru/lexa/transparent-
proxy.html>
Transparent Proxy MiniHOWTO:
<http://www.tldp.org/HOWTO/mini/TransparentProxy.html>
Можно поставить редиректор squirm <http://www.senet.com.au/squirm/>,
его задача - подменять одни URLs другими.
5.13. * Как сделать авторизацию пользователей Squid через учетные
Идеология иксов и многие базовые вещи без привязки к Window Manager-ам
и интегрированным средам хорошо описаны на
<http://ep2-ts2.inp.nsk.su/lecture/>
6.1. Как заставить pаботать в иксах <cупер-новую карточку> ?
Поискать название вашей карточки в <http://www.xfree86.org/FAQ/> или
/usr/X11R6/lib/X11/doc/
Взять последнюю версию иксов, собранную производителем вашего
дистрибутива, или, если производитель ее еще не собрал, то на
<ftp://ftp.xfree86.org>. Стоит сперва ограничиться _только_сервером_
под эту самую карточку, и, как правило, лучше на этом и остановиться
(вот если он работает, но ищет конфиги где-нибудь не там, где они у
вас лежат - можно подумать о замене всего остального.) Hамек: если вы
не видите сервера с именем вашей карты - проверьте, не поддерживает ли
ее сервер SVGA. Он не так прост, как можно подумать по названию. В
XFree 4 остался единственный сервер, а поддержка конкретных карточек
вынесена в подгружаемые модули. Поэтому (теоретически), если у вас
четвертые иксы, то нужно найти только модуль для вашей карточки.
6.2. Как рассчитать Modeline под требуемую частоту развертки?
По идее, если вы правильно указали максимальные возможности вашего
монитора в утилите настройки иксов (xf86config, XF86Setup,
Xconfigurator), то эта утилита должна сама прописать в файле
конфигурации ModeLine, выжимающий максимум из вашего монитора. Если вы
не хотите полагаться на ее интеллект, то можно посмотреть готовые
стандартные Modeline через strings `which xf86setup` и найти
подходящую. Если по каким-то причинам с этой ModeLine возникают
проблемы, то воспользуйтесь советом от Alexei Dets
<mailto:dets@china.formoza.ru>:
Для начала находите Modeline с требуемым вам разрешением, но не
устраивающей вас частотой, т.е. слишком низкой, например. Hайти такую
строчку можно, например, в XF86Config, сгенеренным инсталлятором
дистрибутива.
Проверяете работоспособность данного видеорежима на вашем мониторе.
Если видеорежим устанавливается, пусть даже с некоторым смещением
картинки от центра экрана, чуть-чуть другим размером и т.п. можно идти
дальше. Иначе рекомендуется выбрать другую Modeline или подогнать эту
при помощи xvidtune. Скажем, у нас имеется строчка:
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
Какая здесь сейчас установлена частота развертки?
Ответ: 25175000/800/525=59,9 Гц.
Т.е. необходимо первую цифру, умноженную на миллион, разделить на
пятую и на последнюю. Соответственно, как получить требуемые нам,
например, 120 Гц?
Ответ: 800x525x120/1000000=50,4
Соответственно, результирующая строчка:
Modeline "640x480" 50.4 640 664 760 800 480 491 493 525
Можете пробовать :-) Скорее всего, картинка будет неправильно
центрирована и будет иметь неверный размер, но это легко лечится при
помощи xvidtune. Полученная при помощи него строчка будет уже
окончательной. Владельцы современных мониторов могут просто подстроить
размеры и центровку из меню :-)
Примечание: все данное "шаманство" подробно объяснено в
/usr/X11R6/lib/X11/doc/VideoModes.doc или на русском в
<http://knot.pu.ru/faq/xfaq.html>.
Примечание 2 от Alex Kanavin: в XFree86 4.x произошли некоторые
изменения. Во-первых, в X cервере теперь определен набор стандартных
VESA режимов, из которых подбирается оптимальный, исходя из параметров
конфигурационного файла HorizSync и VertRefresh. То есть очень
возможно, что вы получите наилучший результат, вовсе не прописывая
ModeLine в конфиге, но только если интересующая вас частота развертки
- одна из 60, 70, 75, 85 Hz. Имена у этих режимов традиционные -
"640x480" и т.д., вплоть до "1920x1444" :-)
Во-вторых, в будущем X сервер сможет получать информацию о
возможностях монитора непосредственно от него самого через VESA DDC.
Для некоторых чипсетов она печатается при загрузке сервера, но пока не
используется. Неясно также, как можно будет выбирать из режимов с
одинаковым разрешением, не полагаясь на интеллект сервера.
6.3. Как переключать глубину цвета, не выходя из иксов?
При работающем X сервере уже не переключиться, но можно запустить
рядышком еще один - если это XFree, а не какой-нибудь коммерческий
сервер (через startx -- :1 -bpp 8 или добавив аналогичную строку в
/etc/X11/xdm/Xserver, если используется xdm). В XFree 4 глубину цвета
можно переключать на лету через DGA2, но подробности пока неизвестны.
6.4. Разница между иксовыми сервером и клиентом
(Alec Voropay <mailto:alec@sensi.org>, Alex Kanavin, Alexander
Pevzner)
В системе X Window понятия "клиент" и "сервер" кажутся перепутанными.
В действительности, никакого противоречия тут нет.
Весь вопрос лишь в том, что такое "cервер" ? Возмем например print-
server или file-server. Это какое-то устройство для коллективного
использования "ресурса". Например, единственный print-server на
организацию.
Так вот когда-то давно (лет 30 назад ;) комплект из цветного дисплея и
памяти на 256К был страшно дорогой игрушкой :-) и обслуживал кучу
программ. Это и был display-server или, в комплекте с мышью и
клавиатурой, X-server.
Таким образом, X-server - это программа для управления
Video-подсистемой, мышью и клавиатурой и выполняющая команды типа
"нарисовать красную точку" или "вывести букву А фонтом Arial".
Существует куча X-Server-ов : cвободные XFree86, коммерческие
AcceleratedX, под MS Windows : eXceed, X-Win, под VAX VMS и даже в
виде отдельных железок c дисплеем : NCD, Tatung (их еще называют X-
Terminal).
Таким образом, пользовательские программы, например Netscape - это
"X-клиенты", которые обращаются к "X-серверу" для отображения и ввода.
Связь между X-сервером и X-клиентом может быть по TCP/IP, по Unix-
Socket, по IPX или даже по COM-порту. Поддержка конкретных способов
связи зависит от реализации серверов и клиентских библиотек, например
XFree знает только про первые два способа и еще DECNet.
Всякая X-программа ("X-клиент") сначала должна уcтановить соединение с
X-сервером. Его местонахождение X-клиент узнает через переменную
окружения DISPLAY= или ключ в командной строке. Один X-сервер может
обслуживать множество программ, работающих на разных хостах. Как
наиболее простой случай, все они, и X-сервер и Х-программы работают на
одном и том же компьютере.
Обычные, "консольные" (алфавитно-цифровые) программы тоже можно
запустить под X, через эмулятор терминала (например xterm, rxvt, eterm
e.t.c.). Это специальная X-программа, которая с одной стороны
работает как эмулятор терминала:), отрисовывает символы и отрабатывает
ESC-последовательности, а с другой стороны представляется как обычный
терминальный порт (через псевдотерминалы ptyXX).
Cледует заметить, что с точки зрения системы нет разницы между
иксовыми и обычными программами. И те и другие используют один и тот
же набор системных вызовов. Разница же упрятана в библиотеку XLib, с
которой слинкованы иксовые программы, - именно она устанавливает связь
с X сервером, посылает ему команды, принимает ответы итд. Кроме того,
некоторые программы (emacs, например) могут работать как через X
сервер, так и без него (через обычный терминал).
6.5. Возможно ли одновpеменно pаботать в full screen и в X Window и
пеpеключаться между ними? Если да, то как?
Да, Ctrl-Alt-F# (из иксов в текстовый режим) или Alt-F# (обратно,
только нужно найти первую свободную от getty консоль, обычно седьмую).
6.6. Как установить глубину цвета по умолчанию?
man XF86Config на предмет DefaultColorDepth
6.7. Как сделать так, чтобы иксы автоматически стартовали при
загрузке компьютера? (и регистрация пользователей осуществлялась бы
уже в них?) Наоборот, как отключить такую загрузку и получить обычный
текстовый режим? Как входить таким же (графическим) образом в
удаленные системы?
Нужно запустить (запретить запуск) Display Manager, например xdm
(поставляется с cамими иксами), gdm (из GNOME), kdm (из KDE). Он может
запускаться из rc скриптов или как сервис SysV, но чаще всего его
прописывают в /etc/inittab:
x:5:respawn:/etc/X11/xdm -nodaemon
Поэтому там же нужно поменять runlevel по умолчанию:
id:3:initdefault:
В Red Hat display manager грузится на пятом runlevel, а обычный
"текстовый" runlevel - 3, в других дистрибутивах это может быть не
так. Изучите содержимое /etc/inittab, прочтите man inittab и
действуйте по обстоятельствам.
Display manager можно использовать не только для запуска и управления
локальными X серверами, но и для входа в систему и работы с удаленных
икс-серверов через сеть. Для общения с xdm X сервер должен
поддерживать протокол xdmcp. Серверы XFree в этом случае нужно
запускать с такими ключами:
· X -query host - простой запрос на host по xdmcp (иначе говоря, X
сервер выясняет, готов ли xdm на host-е вывести окошко с полями для
ввода логина и пароля и если готов, то просит его сделать именно
это).
· X -indirect host - "непрямой" запрос на host (то есть, X сервер
просит xdm на host-е сделать запрос на все известные ему хосты, где
установлен xdm. xdm в этом случае может либо просто опросить их (в
частности, себя) и больше ничего не делать, поскольку X сервер сам
сформирует список ответивших ему хостов и выдаст его пользователю,
либо запустить т.н. chooser, который сформирует этот список и
выдаст его на экран X сервера, подсоединившись к нему, как обычный
X клиент. В случае использования серверов XFree годится только
второй вариант и конфигурировать xdm надо именно так. Затем, так
или иначе, пользователь выбирает интересующий его хост и туда
делается простой запрос).
· X -broadcast - широковещательный xdmcp запрос в сеть, с первым
ответившим xdm устанавливается такая же сессия, как и в случае
простого запроса. В других реализациях (не XFree) X сервер может,
как и в предыдущем случае, выдать пользователю список ответивших
хостов.
Подробности в XDM-Xterm mini-HOWTO, man xdm, а также по следующим
URL: <http://ep2-ts2.inp.nsk.su/lecture/> и
<http://www.iae.lt/visaginas/home/kazanov/koi8/Articles/X-
Terminals.htm>.
Hаиболее оптимальным решением является установка патченого XFree86 со
встроенной поддержкой TrueType шрифтов либо установка XFree 4, где
такая поддержка имеется "из коробки". В последнее время большинство
дистрибутивов поставляется именно с таким вариантом XFree. Вы можете и
сами собрать для себе патченные X-сервер и фонт-сервер, для этого вам
необходим набор патчей xfsft (
<http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/>). Единственным
отличием TrueType шрифтов от остальных в данном случае является то,
что файл fonts.dir генерится при помощи программы ttmkfdir, а не
mkfontdir. Более подробная информация - на
<http://www.xfree86.org/4.0.1/fonts.html>
В случае, если у вас нет возможности или желания доставать новый
X-сервер или исходники XFree, то неплохим вариантом является
использование сервера шрифтов xfstt. Подробная документация по его
использованию есть в его исходниках или, на русском, по адресу
<http://visaginas.is.lt/~evgeny/koi8/Articles/xfstt_1.html>.
Hедостатком данного подхода является отсутствие поддержки fonts.alias.
Оба варианта отлично работают как с обычными, так и с юникодными
TrueType шрифтами.
6.11. А есть ли в иксах поддержка font antialiasing?
6.12. А почему в иксах так медленно проигрываются мпеги? Подскажите
не тормозящую проигрывалку mpeg/videoCD/etc, умеющую fullscreen, etc
Попробуйте запустить top во время проигрывания - увидите, что очень
много ресурсов отъедают сами иксы, то есть программно выполняется
гораздо больше операций чем в Windows. Дело в том, что до недавнего
времени в иксах отсутствовала поддержка совершенно необходимых для
качественного воспроизведения видео вещей - прямого доступа к
видеопамяти, аппаратного масштабирования, сглаживания и преобразования
цветового простарнства. В XFree 4 появились расширения, обеспечивающие
эти функции - DGA2 и Xv. Поэтому для качественного воспроизведения
мпегов необходимы следующие условия:
· XFree86 4.0 или более новая версия
· Видеокарточка, драйвер которой поддерживает Xv и DGA2.
· Проигрыватель и используемая им видеобиблиотека с поддержкой
Xv/DGA2. Последние версии SDL, smpeg, mplayer, xine, avifile эти
расширения поддерживают. Попробуйте эти продукты, выберите то, что
вас устраивает в набольшей степени.
(данный ответ не претендует на истину в последней инстанции,
пожалуйста уточните его, если Вы в большей степени в курсе дела)
7. Прочее
7.1. Как прочесть, создать и распечатать документы Microsoft Word?
Прочесть документы MS Word можно с помощью
<http://wvware.sourceforge.net/>
или
<http://www.ice.ru/~vitus/catdoc/>
word2x про не английские языки ничего не знает.
Библиотека wvware используется текстовым процессором AbiWord для
импорта файлов, экпортировать их он пока не умеет, но зато AbiWord
корректно импортирует и экспортирует русские файлы в формате rtf.
Печатать по-русски он тоже умеет. Подробная информация есть по адресу
<http://www.hippo.ru/~hvv/abiword/>
Другой вариант - создавать документы в формате LaTeX, а затем
конвертировать в rtf при помощи latex2rtf <ftp://tug.ctan.org/tex-
archive/support/latex2rtf/> c учетом уграничений, описанных в его
документации.
(nb: добавить про sgml)
7.2. Чем читать, писать и печатать русские файлы Microsoft Excel?
7.5. <Шибко-умная-программа> затерла мне lilo, cтоявший в mbr. Как
мне его восстановить?
Берете ближайшее ядро и загружаете его с параметром
root=устройство-где-у-вас-корневой-раздел. Входите в систему как root
и выдаете команду lilo.
7.6. Как выбрать планшетный сканер для работы под Linux/как его
настроить ?
(часть ответа написал Victor Wagner)
Драйвера для сканеров находятся на <http://www.mostang.com/sane>.
Прочтите список поддерживаемых моделей. Лучше всего поддерживаются
сканеры со scsi-интерфейсом, с usb пока ситуация не ясна. Следует
учесть, что контроллер, который идет в комплекте со сканером скорее
всего под Linux-ом не пойдет, поэтому придется купить нормальный SCSI
контроллер (лучше PCI). Дешевые scanner-only ncr-ы или aha 1502 стоят
в Москве порядка $10-$15. Эту цену придется добавить к стоимости
сканера.
Сканирование изображений: в комплекте sane идет программка xscanimage,
которая прикручивается к gimp-у как плагин.
7.7. Какой есть софт для OCR (оптического распознавания символов)?
OCR программ для Linux, понимающих кириллицу, не существует. Можно
запускать программы для Windows в виртуальной машине или эмуляторе
wine (в нем имеется поддержка работы с SCSI, ориентированная как раз
на сканеры. Инструкция находится в documentation/aspi). OCR для
латиницы, пригодных для работы, пока по-видимому тоже нет, с
положением вещей можно ознакомиться, набрав ocr на
<http://www.freshmeat.net>.
(Совместный ответ Alexander Pevzner и Alex Korchmar)
1. Раздобудьте спецификацию V42 и V34. Это всего $80, afair. ("синяя"
книжка) А теперь попробуйте по этой спецификации написать
что-нибудь работающее.
2. Что, не получилось? Тогда выбросьте свою железяку в ведро и ставьте
нормальный модем.
Если вам это удастся (вдруг ;) - имейте в виду, вы собираетесь
выкинуть в free source то, за что многие производители не-вынь модемов
платят мегабаксы. Я очень сильно подозреваю, что на свете существует
ровно одна хоть за дикие деньги продающаяся реализация v.42/42bis и
ровно четыре не продающихся ни за какие деньги реализации v.34.
(авторы драйверов под вынь, скорее всего, получают только .obj без
права лазить внутрь, так что не думайте, что они писали код с нуля или
хотя бы имели к нему доступ - это противоречит самой идее "дешевых"
модемов)
Обращайтесь на <http://www.linmodems.org> за более подробной
информацией.
В последнее время некоторые из производителей все-таки выпустили
драйвера для своих изделий, с состоянием дел на данный момент и
ссылками можно ознакомиться по адресу
<http://www.idir.net/%7Egromitkc/winmodem.html>.
7.11. * Как бороться с супер-новой карточкой или периферией, например
c Intel EtherExpress (PCI)?
Поставить ядро поновее. Помогает еще от тридцати болезней.
7.12. У меня проблемы с распознаванием IDE CD-ROMа
Сообщите вашему ядру (через командную строку или конфигурационный файл
LILO) следующие параметры (замените hdc на правильное устройство для
вашего CD-ROMа): hdc=cdrom hdc=noprobe
7.13. Мне нужна прога под Linux для вытягивания файлов,
поддерживающая докачку/прога типа Teleport Pro для вытягивания
Фидософту под юниксы посвящена отдельная эха
<news:fido7.ru.unix.ftnl>. Полный список этого фидософта c URL
появляется там, в ru.linux [22mи в ru.unix [22m(ищите по словам FidoSoft URL
Mini-FAQ), а также лежит на
<http://www.sensi.org/download/fidosoft.html>. Готовые пакеты лежат
на <http://donlug.dn.ua/~aks/>.
Есть несколько вариантов:
1. Можно настроить dosemu и читать фидо и/или запускать мейлер под
ним.
2. Если вам нужен именно линуксовый мейлер, то нужно использовать
ifcico из пакета ifmail, qico или binkleyforce, которые сами по
себе, для модемных соединений и binkd для BinkP-шных. ifmail
берется на <ftp://oskin.macomnet.ru> или
<http://www.average.org/ifmail/>, qico - на
<http://lev.serebryakov.spb.ru/download/>, bikleyforce -
<http://adb.newmail.ru>, binkd -
<http://www.corbina.net/~maloff/binkd/>.
3. В качестве тоссеров можно использовать hpt ( <http://www.tichy.de>)
или Crashmail ( <http://www.freshmeat.net>).
4. В качестве читалки можно использовать GoldEd для Linux. Его
русификация описана в разделе "Русификация".
5. Cамый идеологически правильный вариант - настроить гейтование эх в
ньюсы и обратно.
Вариант ifmail+inn+sendmail довольно неплохо описан в
<http://howto.id.ru> Этой же теме посвящен отдельный faq, который
появляется здесь, в ru.linux (ищите по словам fido unix faq) и
лежит на <http://www.cityline.ru/~jav/linux/> или
<http://lnx.net.ru>.
Вместо cтандартного гейтователя из ifmail можно использовать пакет
fidogate. ( <http://www.fido.de/fidogate/>) Про него также есть
русскоязычный faq, который ищется в <news:fido7.ru.unix.ftn> по
словам fidogate faq. Полезно заглянуть и на
<http://f1838.euro.ru/fidogate/>.
6. Hоды могут использовать passthrough тоссер SqWish. При этом для
passthrough почты не будет выполняться ненужного гейтования
туда-сюда, а сам нод может читать/писать почту с поинтового адреса.
Берется в фэхах AFTNMISC[22m, DFTNSQSH[22m. Вам нужен файл SQW-X2ES.ZIP[22m.
7.15. * Как мне настроить звук ?
Для Linux существует несколько систем поддержки звука.
1. OSS (Open Sound System) коммерческая система. Продается за деньги,
не включает в себя исходников, Кроме Linux-а работает на
коммерческих *NIX-ах. <http://www.opensound.com>
2. OSS/Free - упрощенная система поддержки звука Входит в официальное
ядро Linux <=2.4, распространяется бесплатно в исходниках.
<http://www.linux.org.uk/OSS/>
3. ALSA (Advanced Linux Sound Architecture) Альтернативный проект,
поддерживает больше новых карточек, многие драйвера поддерживают
Full-Duplex <http://www.alsa-project.org/>
В RedHat-based системах есть утилита 'sndconfig'. Если она не
помогла, или если такой утилиты в дистрибутиве нет, то читайте
Sound-HOWTO <http://tldp.org/HOWTO/Sound-HOWTO/index.html>
Драйвера для карточек на чипах Aureal есть на
<http://aureal.sourceforge.net>
7.18. Есть ли в Linux возможность создания сжатых pазделов по типy
doublespace для ДОС?
Есть модификация ext2fs в виде патча к ядpy.
<http://www.netspace.net.au/~reiter/e2compr/>. Кpоме собственно патча
pекомендyется yтянyть e2fsprogs и yтилитy избавления от сжатия. Пpи
компиляции ядpа включите достyп к development фичам. Каталог сжимается
посpедством 'chattr +c'
7.19. Какие есть возможности для хранения данных на физических
носителях в зашифрованном виде?
Помимо систем типа PGP, позволяющих шифровать содержимое отдельных
файлов, еще есть возможности для шифрования на уровне файловой
системы. Эти возможности, их достоинства и недостатки, ссылки на софт
и описание настройки есть здесь: <http://drt.ailis.de/crypto/linux-
disk.html>
или здесь: <http://encryptionhowto.sourceforge.net>
Два наиболее широко используемых варианта:
· loopback encryption - входит в состав international crypto patch (
<http://www.kerneli.org>. Требует как можно более свежие версии
losetup и mount. Позволяет использовать любую файловую систему и
даже держать закриптованный своп.
· пакет cfs, который можно взять здесь:
<ftp://ftp.zedz.com/pub/crypto/disk/>. Не требует изменений в ядре,
работает как nfs-сервер.
Переводчиков под Linux, знающих русский, пока нет вообще (если не
считать изделие от ПРОМТ, пока что находящееся в состоянии
бета-тестирования). Со словарями дело обстоит гораздо лучше. Oleg
Lomaka <mailto:Oleg_Lomaka@p7.f85.n468.z2.fidonet.org> предоставил
такую информацию:
На <http://www.chat.ru/~mueller_dic/> находится cловарь Mueller'а
(Mueller7accentGPL.tgz) и cкpипт "mova" (script_mova.tgz) для поиcка
нyжных cлов в этом cловате. Лицензия - GPL. Еще там есть ссылки на
другие словари под Linux.
И еще один cовет. Cоздайте файл .movarc в домашнем каталоге, чтобы не
задавать вcе вpемя пyть к cловаpю из командной cтpоки. Coдеpжимое
ентого файла пpимеpно cледyющее:
-*-*-bold-r-*-*-20-*-*-*-*-*-*-koi8-r
-*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r
-*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r
-*-*-bold-o-*-*-21-*-*-*-*-*-koi8-r
-*-silsophiaipa-*-r-*-20-*-*-*-p-*-*-*
#каталог cо cловаpем
/usr/local/Mova/
#каталог, кyда pаcпаковалcя cкpипт
/usr/local/bin/
#название cловаpя
Mueller7accentGPL.koi
/tmp /
После чего для проверки можно запустить "mova table".
Andy Shevchenko <mailto:Andy_Shevchenko@f192.n465.z2.fidonet.org>:
Есть также консольная и qt-шная просматривалка словарей по имени
slowo. <http://gambit.com.ru/~wolf/dic/> Для linux можно заполучить
src.rpm здесь: <ftp://ftp.smile.org.ua/pub/linux/prj/slowo/>
7.25. Чем посмотреть/сыграть ...?
<http://tldp.org/HOWTO/Sound-Playing-HOWTO.html>
<http://tldp.org/HOWTO/MP3-HOWTO.html>
· AU, WAV, MP3 и может еще чего (на SB Compatible) - sox, mpg123, под
X - xmms
· MIDI - playmidi, timidity
· AVI, MOV - xanim, avifile ( <http://avifile.sourceforge.net>) - не
настолько стабилен как xanim, но поддерживает больше форматов и
развивается. Рекомендуется пользователям имеющим windows, так как
использует от них некоторые dll (иначе не вполне понятно, как быть
с лицензионной чистотой), mplayer ( <http://www.mplayerhq.hu>) -
поддержка Xv, DGA2, SDL, X11, несколько вариантов вывода аудио,
поддержка виндовых кодеков (.dll), работает очень быстро (быстрее
чем виндовые плееры) но вроде бы не поддерживает 5.1 звук на DVD. А
вот xine ( <http://xine.sourceforge.net>) 5.1 звук делать умеет.
· MPEG, VideoCD - Кроме указанных чуть выше avifile, xine,mplayer еще
smpeg ( <http://www.lokigames.com/development/>, mpeglib (
<http://mpeglib.sourceforge.net>)
· JPEG, TIFF, GIF (еще желательно PCX/BMP) gqview, gtksee,
xloadimage, xv
· И не под иксами - zgv
Еще рекомендуется пойти на <http://www.freshmeat.net> -> application
index -> multimedia... Сразу с последними версиями и кнопкой
download.
7.27. Почему пpи запуске только что откомпилиpованного a.out и вообще
некотоpых пpогpамм пpямо из bash или csh выдается ...not found, а пpи
запуске из mc все ноpмально ?
В юниксоподобных операционках текущий каталог отнюдь не является путем
поиска по умолчанию. Можно или набирать что-нибудь вроде ./a.out, или
добавить '.' к $PATH, хотя для пользователя root наличие текущего
каталога в пути является опасным. (а для всех остальных -
нежелательным)
7.28. Почему при запуске графических программ получается сообщение
"Not running in graphics-capable console..." ?
Hадо выйти из mc перед тем как.
7.29. Как подключить VTxxx, PC, УК-НЦ по serial в качестве терминала
к Линуксу?
(Alexander Voropay)
Сначала необходимо настроить "железную" часть, поскольку многие
терминалы имеют нестандартные разъемы вместо DB-25. Возможно придется
самостоятельно спаять кабель - нуль-модем. Примерная распайка такова :
RX <-- TX
TX --> RX
RTS --> CTS
CTS <-- RTS
DTR --> DSR+CD
DSR+CD <-- DTR
GNG <--> GND
То есть нуль-модемный кабель с управлением hardware flowcontrol.
Проверить, что все работает, можно запустив minicom под Linux или
TERM90, TELEMATE e.t.c. под DOS и настроив совпадающие скорости и
форматы COM-порта (например 38400, 8-N-1). Ввод с клавиатуры PC должен
правильно отображаться на терминале и наоборот.
Для УК-НЦ рецепт описан на <http://www.chat.ru/~uk_nc/>
Если все работает, нужно запустить на данном порту getty. В файле
/etc/inittab нужно прописать
# Modem/Terminal on Serial COM2:
S1:2345:respawn:/sbin/uugetty ttyS1 F38400 vt220
Где F38400 - фиксированная скорость 38400 (описание в /etc/gettydefs),
а "vt220" - набор ESC-последовательностей терминала (то же, что и
переменная окружения TERM).
После этого на терминале вы увидете приглашение Login: После входа
первым делом надо проверить, что работает flow-control, то есть при
массивном выводе не теряются байты.
Подробности см. в Serial-HOWTO <http://www.linuxdoc.org/HOWTO/Serial-
HOWTO.html>
7.30. А существует ли софт для записи CD-R под Linux?
Да. В простейшем случае - сочетание mkisofs и cdwrite или cdrecord.
Если нужна графическая оболочка - xcdroast или BurnIT. Существует
также соответствующий HOWTO.
7.31. RPM и написание .spec
Начните с <http://www.rpm.org>
в качестве образца для .spec очень хорошо подходит авторский .spec от
nmap. если вы хотите сделать binary rpm не пересборкой из source, а
имея в руках дерево уже установленной программы - просто напишите
spec из одних %files - rpm достаточно сообразителен, чтобы не делать
install, если нет %install. наиболее простой способ сгенерить список
для %files -
find /usr/src/test-install -type d \! -path \*/usr \! -path \*/usr/local \
\! -path \*/usr/local/bin \! -path \*/usr/local/sbin | \
sed -e 's|^/usr/src/test-install/|%dir /|' >> file.spec
find /usr/src/test-install -type f | sed -e 's|^/usr/src/test-install/|/| >>
file.spec
естественно, если ты ставился в /usr/local/эта-программа а не
использовал BuildRoot, то извращения с sed не нужны, если запускал
make install от рута - то не нужна возня с %attr, и, наконец, %files
умеет -f. (извращения с -path - чтобы не включать не относящиеся к
твоему пакету каталоги /usr, /usr/local и т.д. Hа самом деле там
гораздо больше)
ну и rpm -bb этот.spec в зубы. (результат найдешь в
$RPMROOT/RPMS/${ARCH}/ )
7.32. Написание/произношение некоторых слов.
X Window System пишется именно так. Никакой s в слове Window нет и
пишется оно отдельно от X. Другие варианты написания - man X.
Услышать, как Linus Torvalds произносит свое имя и cлово Linux, можно,
сгрузив файл english.au или swedish.au с
<ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/SillySounds/> Этот же файл
проигрывается при настройке звуковой карты с помощью sndconfig.
7.33. Что такое "бНОПНЯ" ?
Это "Вопрос" в виндовой кодировке. Насколько мне (ak) известно, это
cлово первым употребил Владимир Бутенко.
Популярность: 25, Last-modified: Thu, 14 Nov 2002 22:04:30 GmT