http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&user=Yaleks&feedformat=atomLinuxformat - Вклад участника [ru]2024-03-29T14:53:13ZВклад участникаMediaWiki 1.19.20+dfsg-0+deb7u3http://wiki.linuxformat.ru/wiki/LXF80:Flash_%D0%B8_PDFLXF80:Flash и PDF2010-06-13T16:02:58Z<p>Yaleks: </p>
<hr />
<div>== Инструменты для работы c Flash и PDF ==<br />
''Говоря о Libre Graphics, нельзя не упомянуть неизменных компаньонов традиционных графических форматов — Flash и PDF. Считается, что для работы с ними необходимо приобретать дорогостоящие коммерческие пакеты, предназначенные только для Windows и Mac OS X. А вот и нет! Большинство «бытовых» задач обработки Flash-роликов и PDF-документов прекрасно решаются свободными инструментами. Рассказывает '''Сергей Яремчук'''.<br />
''<br />
<br />
=== ЧАСТЬ 1. SWFTOOLS — ПАКЕТ ДЛЯ РАБОТЫ С FLASH ===<br />
Технологии интерактивной web-анимации, основанные на Flash и первоначально разработанные компанией Macromedia, за короткое время завоевали популярность у дизайнеров: они решили немало проблем из области мультимедийного представления информации. При сравнительно небольшом размере Flash позволяет использовать звуковые и графические эффекты, придать сайтам динамичность; а самое главное — специальные программы и модули для работы с Flash на клиентской стороне доступны практически для всех операционных систем и современных web-браузеров. Наиболее популярный инструмент — ''Macromedia Flash MX''. Увы, при всевозможных достоинствах есть у него и существенный недостаток: цена, вынуждающая подумать об альтернативе. На сегодня для операционной системы GNU/Linux разработано большое количество инструментов, позволяющих создавать и работать с Flash.<br />
<br />
Познакомимся с одним из них.<br />
<br />
'''Пакет SWFTools'''<br />
<br />
Пакет ''SWFTools ''('''http://www.quiss.org/swftools''') содержит несколько утилит, при помощи которых можно создавать Flash-файлы и манипулировать уже готовыми. Пакет компилируется и работает под Solaris, Linux, ''FreeBSD, OpenBSD'', HP-UX, ''MacOS X ''и Windows 98/ME/2000/XP. Распространяется под лицензией GNU GPL.<br />
<br />
Установка обычно никаких проблем не вызывает; кроме того, ''SWFTools ''включен в большинство дистрибутивов Linux. Например, пользователи ALTLinux могут установить S''WFTools ''при помощи '''apt-get''':<br />
<br />
#apt-get install swftools<br />
<br />
В случае самостоятельной сборки, для получения всех возможностей предварительно потребуется добавить следующие библиотеки:<br />
* '''freetype''' — '''http://www.freetype.org'''<br />
* '''t1lib''' — '''ftp://sunsite.unc.edu/pub/linux/libs/graphics/'''<br />
* '''jpeglib''' — '''http://www.ijg.org/files/jpegsrc.v6b.tar.gz'''<br />
* и библиотеки '''avifile''' — '''http://avifile.sourceforge.net'''<br />
<br />
Если чего-то не хватит, сценарий ''configure ''выдаст соответствующее сообщение; но те, кого не интересует отсутствующий функционал (например, сценарий жалуется на отсутствие ''ungif'', а вы не планируете работать с GIF-файлами), сообщение могут смело проигнорировать.<br />
<br />
'''Конверторы'''<br />
<br />
Это наиболее многочисленная категория утилит, входящая в комплект ''SWFTools'': их целых семь. При помощи любой из них можно преобразовать различные файловые форматы в ''SWF ''(Small Web Format). Например, для конвертирования PDF в SWF нужно выполнить команду:<br />
$ pdf2swf manual.pdf manual.swf<br />
processing PDF page 4 (612x792:0:0) (move:0:0)<br />
<br />
В итоге будет получен SWF-файл, при просмотре которого в web-браузере будут показаны периодически сменяющие друг друга страницы документа. Если не указать имя выходного файла, результат попадет в '''stdout'''. При использовании некоторых утилит из состава S''WFTools ''для генерирования графики на web-сервере могут пригодиться опции '''-C''' или '''--cgi''', генерирующие дополнительный http-заголовок.<br />
<br />
Можно обработать лишь часть документа, указав номера избранных страниц с помощью опции '''--pages''':<br />
$ pdf2swf --pages 1,2,5-10 manual.pdf manual.swf<br />
<br />
Чтобы получить SWF из набора PNG-файлов, сохраненных в одном каталоге, используется следующая команда:<br />
$ png2swf *.png -o file.swf<br />
<br />
В результирующем ролике каждому PNG-файлу будет отведен отдельный кадр. Предусмотрены дополнительные параметры, например, сжатие ('''--zlib''') — выигрыш достигает 10 % объема результирующего файла (впрочем, PNG и так не самый тяжелый формат); размеры окна ('''-X''' и '''-Y'''); и, при помощи '''--rate''', количество кадров в секунду (число в диапазоне от 1 до 256). Числа должны подбираться с учетом формулы 1/значение, то есть чем меньше указанное число, тем больше будет выставлен интервал времени либо размер кадра.<br />
$ png2swf -r 1 -X 50 -Y 50 --zlib *.png -o file.swf<br />
<br />
Аналогичные опции имеет утилита ''gif2swf'', позволяющая проделать те же процедуры с изображениями в формате GIF:<br />
$ gif2swf -X 100 -Y 100 *.gif -o file.swf<br />
<br />
Утилита для работы с JPEG-файлами, ''jpeg2swf'', в работе напоминает предыдущую, но имеет еще две дополнительные опции:''' --mx''' — для использования сжатия Flash MX H.263 и '''--quality''' для установки качества изображения, в диапазоне от 1 (хуже) до 100 (лучше).<br />
$ jpeg2swf --quality 60 -X 200 -Y 100 *.jpg -o file.swf<br />
<br />
При помощи ''font2swf ''можно изготовить Flash-файл из файла шрифтов:<br />
$ font2swf arial.ttf -o font.swf<br />
<br />
Поддерживаются все распространенные форматы шрифтов: TTF, AFM, PFA, PFB и другие. К сожалению, невозможно указать кодировку, поэтому в результирующем файле локализованные шрифты выводятся неправильно (''рис.1'').<br />
<br />
Следующая утилита — ''wav2swf''. По названию ясно, что она позволяет получить SWF из звуковых файлов в формате WAV. При кодировании используются кодеки LAME. В общем случае вызов утилиты прост:<br />
$ wav2swf -v voice.wav<br />
<br />
В результате в текущем каталоге появится файл '''output.swf''', при запуске которого в браузере зазвучит аудио. С помощью дополнительных опций можно изменить битрейт ('''--bitrate'''), по умолчанию равный 32, частоту дискретизации ('''--samplerate'''), время повторения фрагмента ('''--loop''') и другие параметры. Например:<br />
$ wav2swf -v -loop 5 –definesound voice2.wav -voice.swf<br />
<br />
И, наконец, назначение последнего конвертора, a''vi2swf'', тоже понятно — он преобразует AVI в SWF. Для кодирования используется кодек H.263. Принцип работы с утилитой аналогичный:<br />
$ avi2swf file.avi -o output.swf<br />
<br />
Для уменьшения размера конечного файла можно поступиться качеством: изменить 80 (значение по умолчанию) на 60, а также выбрать масштаб как 50 % исходного. Вместо кодирования всего файла, ограничимся первыми 100 кадрами:<br />
$ avi2swf --num=100 --scale=50 --quality=60 file.avi -o output.swf<br />
<br />
'''Утилиты для извлечения информации из Flash-файла'''<br />
<br />
Самая простая в использовании утилита — ''swfstrings, и''звлекающая текст из swf-файла.:<br />
$ swfstrings filename.swf<br />
<br />
В результате на экран выведется текст, содержавшийся в файле. Учитывая количество сопутствующего мусора, вывод лучше будет перенаправить в другой файл:<br />
$ swfstrings filename.swf > text.txt<br />
<br />
Утилита ''swfexstract ''способна на большее. Она может извлекать все объекты, содержащиеся в swf-файле: отдельные кадры, шрифты и звук. Если вызвать ее без параметров, вы получите список объектов, которые содержит файл:<br />
$ swfextract file.swf<br />
<br />
Objects in file file:<br />
<br />
[-i] 190 Shapes: ID(s) 1, 3, 5, 18, 20, 24, 27, 31, 35, 37, 39, 41, 43, 45-47, 51, 52, 54, 56, 58, ...<br />
[-i] 46 MovieClips: ID(s) 2, 4, 21, 57, 61, 72, 81, 89, 102, 107, 110, 114, 117, 119, 133, 136, ...<br />
[-j] 74 JPEGs: ID(s) 55, 59, 69, 74, 82, 91, 99, 105, 112, 120, 122, 124, 126, 128, 134, 141, ...<br />
[-p] 14 PNGs: ID(s) 17, 23, 34, 36, 38, 40, 42, 96, 243, 437, 451, 455, 457, 463<br />
[-F] 10 Fonts: ID(s) 6, 12, 15, 25, 28, 32, 94, 183, 312, 380<br />
[-f] 1 Frame: ID(s) 0<br />
[-m] 1 MP3 Soundstream<br />
<br />
Обратите внимание на буквы в квадратных скобках, которые идут в начале каждой строки. Они специфицируют объект извлечения. Например, нужно добыть звук:<br />
$ swfextract -m file.swf<br />
NOTICE Writing mp3 data to output.mp3<br />
<br />
Как видите, все просто. Вывод в WAV-файл возможен, но его необходимо обязательно указывать вместе с опцией '''-о'''.<br />
<br />
Попробуем теперь извлечь PNG-изображения, исключая пустые фреймы ('''--hollow''').<br />
$ swfextract --pngs 17,23,34,36,38,40 file.swf --hollow<br />
<br />
В результате в текущем каталоге появятся файлы вида '''pic17.png''', '''pic23.png''' и т. д. А отдельный фрейм извлекается командой<br />
$ swfextract -P -i 2 file.swf -o frame2.swf<br />
<br />
либо<br />
$ swfextract --frame 2 file.swf -o frame2.sw<br />
<br />
Утилита ''swfdump ''выводит информацию о swf-файле.<br />
<br />
Для вывода всей служебной информации наберите:<br />
$ swfdump --full file.swf<br />
[HEADER] File version: 6<br />
[HEADER] File size: 3091206<br />
[HEADER] Frame rate: 18.000000<br />
[HEADER] Frame count: 7165<br />
[HEADER] Movie width: 550.00<br />
[HEADER] Movie height: 400.00<br />
[009] 3 SETBACKGROUNDCOLOR (00/00/00)<br />
[002] 32 DEFINESHAPE defines id 0001<br />
| fillstyles(01) linestyles(00)<br />
| 1 ) SOLID 000000ff<br />
|<br />
| fill: 00/01 line:00 - moveTo 88.50 15.50<br />
| fill: 00/01 line:00 - lineTo -88.50 15.50<br />
| fill: 00/01 line:00 - lineTo -88.50 -15.50<br />
| fill: 00/01 line:00 - lineTo 88.50 -15.50<br />
| fill: 00/01 line:00 - lineTo 88.50 15.50<br />
<br />
При помощи ''swfdump ''можно также генерировать HTMLкод, пригодный для непосредственного включения ролика в web-страницу:<br />
<br />
$ swfdump --html file.swf<br />
<source lang="html4strict"> <br />
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="550" HEIGHT="400"<br />
CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=6,0,23,0"><br />
<PARAM NAME="MOVIE" VALUE="file.swf"><br />
<PARAM NAME="PLAY" VALUE="true"><br />
<PARAM NAME="LOOP" VALUE="true"><br />
<PARAM NAME="QUALITY" VALUE="high"><br />
<EMBED SRC=" file.swf" WIDTH="550" HEIGHT="400" PLAY="true" ALIGN="" LOOP="true" QUALITY="high" <br />
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"><br />
</EMBED><br />
</OBJECT><br />
</source><br />
Кроме того, при помощи параметра '''--text''' можно извлечь текстовые поля Flash-файла (подобно ''swfstrings''):<br />
<br />
$ swfdump --text file.swf<br />
<br />
'''Манипулирование данными'''<br />
<br />
Этот раздел представлен всего одной утилитой — ''swfbbox, п''ри помощи которой можно пересчитать параметры SWFфайла, а заодно уменьшить его размер. Данные о файле можно получить, запустив утилиту без параметров.<br />
<br />
$ swfbbox file.swf<br />
Original Movie Size: 550.00 x 400.00 :0.00 :0.00<br />
<br />
Возможна оптимизация, при помощи опции '''-О'''.<br />
<br />
$ swfbbox -O file.swf -o optimiz.swf<br />
<br />
Признаться, мне редко удавалось оптимизировать SWFфайл больше, чем на 1 %.<br />
<br />
Результат оптимизации можно просмотреть, использовав параметр '''-S'''.<br />
<br />
$ swfbbox -S file.swf<br />
{<br />
{frame 0}<br />
}<br />
<br />
{<br />
{frame 1}<br />
{ID5 {0.00 50.00 550.00 50.00 0.00 348.40 550.00 348.40}}<br />
{ID7 {76.50 121.60 115.60 121.60 76.50 132.65 115.60 132.65}}<br />
<br />
и т. д.<br />
<br />
'''Объединение Flash-файлов'''<br />
<br />
Все описанные утилиты перекодировали файлы в SWF из разных форматов, оптимизировали, извлекали служебную информацию. Теперь осталось только объединить результаты их работы. Для этой цели предназначена утилита ''swfcombine'', позволяющая «склеить» два или более SWF-файла в один. Один из файлов обязательно должен быть определен как главный — master, остальные подключаются по мере необходимости как подчиненные — slaves. Кроме того, при помощи ''swfcombine ''можно сжимать либо распаковывать SWF-файлы. В этом случае при использовании одного файла необходима опция '''--d''' ('''--dummy'''), не требующая указания файла slave. Для сжатия наберите команду:<br />
<br />
$ swfcombine -dz file.swf -o file_new.swf<br />
<br />
Распаковка происходит аналогично:<br />
<br />
$ swfcombine -d file.swf -o file_new.swf<br />
<br />
Теперь соединим два файла вместе. В духе Энди Ченнела, попробуем наложить звук на изображение:<br />
<br />
$ swfcombine -o combined.swf picture.swf slave=sound.swf<br />
<br />
Если количество slave-файлов велико, их можно предварительно объединить, чтобы оценить результат и упростить подбор параметров.<br />
<br />
$ swfcombine --cat name1=slavefile1.swf name2=slavefile2.swf -o slave_res.swf<br />
<br />
Можно добавить масштабирование ('''--scale''') результирующего файла и количество кадров в секунду ('''--rate''').<br />
<br />
И, наконец, последняя утилита — ''swfc''. С ее помощью можно скомпилировать сценарий sc в готовый Flash-ролик. Делается это очень просто (пример скрипта можно найти в подкаталоге doc пакета ''swftools''):<br />
<br />
$ swfc fileformat.sc -o file.swf<br />
<br />
Инструменты, входящие в состав пакета ''SWFTools, п''озволяют выполнить большую часть операций по работе с файлами в формате Flash. Многие опции унифицированы, а значит, пара-тройка экспериментов — и вы уже полностью освоили работу с пакетом.<br />
<br />
=== ЧАСТЬ 2. РАБОТАЕМ С PDF В LINUX ===<br />
'''Работаем с PDF в Linux'''<br />
<br />
Работу с большим количеством документов трудно представить без формата PDF, который стал особенно популярен с развитием Интернета и распространением электронной документации. Для создания этих документов пользователи Windows зачастую применяют отнюдь не самые дешевые инструменты. Однако сторонники GNU/Linux могут выполнять практически те же задачи абсолютно бесплатно.<br />
<br />
Такие популярные приложения, как настольная издательская система ''Scribus'', ''GSView'', ''OpenOffice.org ''и другие, позволяют экспортировать в PDF вновь созданный или открытый документ любого поддерживаемого этими приложениями формата. Кроме того, существуют утилиты, позволяющие выводить документ на псевдопринтер, который также создает PDF-файл. К сожалению, получившийся документ не всегда отвечает всем требованиям, да и подход этот, несмотря на кажущуюся простоту, имеет смысл при работе с небольшим количеством документов. При одновременной обработке нескольких файлов или желании автоматизировать процесс создания документов удобнее использовать специальные утилиты.<br />
<br />
'''Pdftk-инструмент для выполнения ежедневных задач'''<br />
<br />
Порывшись на специализированных сайтах, можно найти десятки утилит для работы с PDF, но первое место по функциональности принадлежит ''pdftk ''('''http://www.accesspdf.com/pdftk/''') Сида Стюарда [Sid Steward]. С его помощью можно легко объединить несколько документов в один; провести обратную операцию, разделив документ по страницам; расшифровать/зашифровать PDF-файл; заполнить данные форм, добавить или удалить вложения; восстановить поврежденные документы; и так далее. Утилита распространяется по лицензии GNU GPL, работает под Windows, Linux, Mac OS X, FreeBSD и Solaris. Для компиляции в различных дистрибутивах Linux или операционных системах в архиве имеются подготовленные Makefile. Например, для сборки под Red Hat/Fedora нужно ввести следующую команду:<br />
<br />
$ make -f Makefile.RedHat<br />
<br />
Справку об утилите можно получить при помощи ''pdftk ''--help. В общем случае, команда запуска выглядит так<br />
<br />
pdftk исходный_файл(ы) опции выходной файл пароль<br />
<br />
Например, следующей командой можно объединить два файла в третий — '''outfile.pdf'''.<br />
<br />
$ pdftk in1.pdf in2.pdf cat output outfile.pdf<br />
<br />
Можно также использовать следующую конструкцию:<br />
<br />
$ pdftk A=in1.pdf B=in2.pdf cat A B output outfile.pdf<br />
<br />
Такая запись удобна, если один из входных файлов требует отдельных параметров — например, пароля на раскрытие:<br />
<br />
$ pdftk A=secured.pdf B=in2.pdf input_pw A=foopass cat A B output outfile.pdf<br />
<br />
При большом количестве файлов удобно пользоваться маской:<br />
<br />
$ pdftk *.pdf cat output outfile.pdf<br />
<br />
Возможна и обратная операция. «Разложим» '''example.pdf''' на файлы с именем '''Page_<номер страницы>.pdf''':<br />
<br />
$ pdftk example.pdf burst output Page%03d.pdf<br />
<br />
Исходные файлы должны быть в формате PDF, хотя для некоторых операций понадобятся файлы и в других форматах. Например, в файл формата PDF можно добавить вложение, аналогичное вложению в почтовое сообщение:<br />
<br />
$ pdftk form.pdf attach_files attachfile.tex output new_file_with_attach.pdf<br />
<br />
Количество файлов вложений и их формат не ограничены. По умолчанию, все вложения будут помещены на верхнем уровне документа, но, используя инструкцию '''to_page''', можно указать конкретную страницу:<br />
<br />
$ pdftk in.pdf attach_files table1.html to_page 6 output out.pdf<br />
<br />
Чтобы, наоборот, извлечь присоединенные файлы — допустим, в подкаталог '''source''', выполните:<br />
<br />
$ pdftk attachment.pdf unpack_files output ~/source<br />
<br />
Также можно добавить в исходный файл любой фон, который может использоваться в качестве водяного знака. Новый фон должен быть обязательно помещен в файл формата PDF (как это сделать, читайте дальше). Например, добавим к исходному файлу example.pdf фон, содержащийся в файле '''background.pdf''':<br />
<br />
$ pdftk example.pdf background background.pdf output result.pdf<br />
<br />
При помощи ''pdftk ''можно попробовать восстановить испорченный документ (если повреждения не катастрофичны) — здесь каких-либо специальных опций не предусмотрено:<br />
<br />
$ pdftk broken.pdf output fixed.pdf<br />
<br />
— или сохранить метаданные в файл '''info.txt''':<br />
<br />
$ pdftk example.pdf dump_data output info.txt<br />
<br />
Последняя возможность, о которой хотелось бы рассказать — заполнение заранее подготовленного файлашаблона данными из специального файла FPF файла или стандартного потока ввода (STDIN):<br />
<br />
$ pdftk form.pdf fill_form eg.fdf output edit.pdf<br />
<br />
'''Утилита Indexed PDF Creator'''<br />
<br />
Утилита ''pdftk ''предназначена для работы с уже готовыми PDF-файлами, а вот ''IPDF (Indexed PDF Creator) ''Стива Слейвена [Steve Slaven] позволяет создавать индексированные PDF-документы из текстовых файлов. Домашняя страница проекта расположена по адресу '''http://hoopajoo.net/ '''Для установки потребуется библиотека PDFLib ('''http://www.pdflib.com/'''), свободная для личного употребления.<br />
<br />
Пользователи дистрибутива ALTLinux могут найти ее в репозитарии ''Sisyphus''. Основное назначение ''IPDF ''- помощь в создании безбумажного производства с использованием простых текстовых файлов, которые можно в любую минуту превратить в документ, поддерживающий индексацию и поиск. При запуске без аргументов утилита ожидает данных из STDIN и направляет результат в стандартный поток вывода (STDOUT).<br />
<br />
При создании нового документа доступен ряд параметров — рассмотрим, например, параметры настройки. Создадим файл '''report.pdf''' из исходного '''report.txt''':<br />
<br />
$ ipdf report.txt -o report.pdf<br />
<br />
Просто, правда? Теперь установим размер документа А2, портретную ориентацию и шрифт Times-Roman с кеглем 12:<br />
<br />
$ ipdf report.txt -o report.pdf -m A2-p -F Times-Roman -f 12<br />
<br />
Установим размер верхнего ('''-T''') и левого ('''-L''') полей документов и максимальное количество строк ('''-l''').<br />
<br />
$ ipdf report.txt -o report.pdf -T 25 –L 25 –l 50<br />
<br />
Если надо, добавьте информацию об авторе и заголовок документа:<br />
<br />
$ ipdf report.txt -o report.pdf -a Jaremchuk -t "Report Document"<br />
<br />
Документ можно украсить фоновым изображением, например, логотипом фирмы (в качестве фона пока поддерживаются только файлы в формате TIFF):<br />
<br />
$ ipdf report.txt -o report.pdf -b background.tiff<br />
<br />
При постоянном использовании какого-либо параметра можно записать его в конфигурационный файл '''/etc/ipdf.conf''' или '''~/.ipdf.conf'''. Любой из параметров допускает текущее переопределение через командную строку.<br />
<br />
Например:<br />
<br />
page_mode А3-p<br />
font_size 12<br />
font_face Courier<br />
top_margin 40<br />
left_margin 40<br />
chars_per_line 135<br />
lines_per_page 66<br />
author Jaremchuk<br />
<br />
А теперь — самое интересное. В настоящее время ''Indexed PDF Creator ''поддерживает три типа индексирования то есть создания закладок в PDF документе: абсолютное ('''-I'''), относительное ('''-i''') и использующее регулярные выражения ('''-x'''). Одновременно разрешается использовать не более одного типа индексирования.<br />
<br />
Абсолютная индексация применяется, когда заранее известно количество страниц. Параметр выглядит так:<br />
<br />
-I СТРАНИЦА:СТРОКА[:СТАРТ:СТОП:МУЛЬТИИНДЕКС: ПОЗИЦИЯ]<br />
<br />
Например, чтобы сделать индекс в 1-й, 2-й и 3-й странице, по 2-й строке, даем такую команду:<br />
<br />
$ ipdf -o report.pdf -I 1:2 -I 2:2 -I 3:2 report.txt<br />
<br />
Относительная индексация применяется, когда известно имя полей, но количество страниц различно. Формат ее следующий:<br />
<br />
-i СТРОКА[:СТАРТ:СТРОП:МУЛЬТИИНДЕКС:ПОЗИЦИЯ]<br />
<br />
Например, создадим индекс для 1-й и 3-й строки, в первой использовав символы от 11 до 20 (рис.2):<br />
<br />
$ ipdf -o report.pdf -i 1:11:20 -i 3 report.txt<br />
<br />
И, наконец, при помощи регулярных выражений можно автоматически создать индексы, по любым правилам.<br />
<br />
$ ipdf -mletter-p -f12 -l65 -x '^Page??' -o result.pdf<br />
<br />
'''Пакет GhostScript'''<br />
<br />
В пакет ''GhostScript ''('''http://www.cs.wisc.edu/~ghost/''') входит большое количество утилит, при помощи которых можно выполнить практически все необходимые операции по работе с форматами PostScript и PDF. ''GhostScript ''можно вызвать, набрав gs в окне терминала. Возможна интерактивная работа с утилитой, когда все команды вводятся по мере необходимости, а также командная. Например, просто набрав '''gs file.ps''', вы можете просмотреть указанный файл, а добавив опцию '''-sDEVICE=<devname> '''- преобразовать его в другой формат или подготовить для выдачи на принтер определенной марки. С помощью опции '''-sOutputFile=''' можно указать имя выходного файла. Вот так файл PostScript конвертируется в рисунок с расширением bmp:<br />
<br />
'''gs -sDEVICE=bmp16m -sOutputFile=test.bmp test.ps.'''<br />
<br />
А теперь создадим файл '''filename.pdf''' из исходного PostScript-файла '''filename.ps''':<br />
<br />
$ gs -q -dNOPAUSE -sDEVICE=pdfwrite -<br />
sOutputFile="filename.pdf" "filename.ps"<br />
<br />
Для преобразования PS в PDF в состав пакета входит специальный скрипт '''ps2pdf'''. Используется он незатейливо:<br />
<br />
$ ps2pdf input.ps output.pdf<br />
<br />
Скрипт '''ps2pdf''' поддерживает все параметры '''gs'''.<br />
<br />
Например, ''dCompatibility ''позволяет создать PDF-файл, совместимый с требуемой версией PDF. Для создания документа, совместимого с версией 1.4, используем следующую команду:<br />
<br />
$ ps2pdf -dCompatibilityLevel=1.4 input.ps output.pdf<br />
<br />
Для удобства можно воспользоваться отдельными скриптами, генерирующими PDF-файл заданной версии. Вот, например, конвертирование PS в PDF 1.4:<br />
<br />
$ ps2pdf14 input.ps output.pdf<br />
<br />
''GhostScript ''поддерживает около 75 опций, и рассмотреть их все в пределах одной статьи не представляется возможным. Например, при помощи '''-dOptimize''' можно создать оптимизированный документ, при запросе отдельных страниц которого сервер будет выдавать пользователю именно требуемую страницу, а не весь файл целиком.<br />
<br />
$ ps2pdf -dOptimize=true report.ps report.pdf<br />
<br />
Можно применить компрессию, а заодно позволить использовать более качественные шрифты:<br />
<br />
$ ps2pdf -dUseFlateCompression=true EmbedAllFonts=true report.ps report.pdf<br />
<br />
'''Текст в PS/PDF при помощи enscript'''<br />
<br />
Небольшая утилита ''GNU enscript ''('''http://people.ssh.fi/mtr/genscript/''') позволит с легкостью получить из обычного текстового файла PostScript или PDF. Делается это так:<br />
<br />
$ enscript filename.txt –output=filename.ps<br />
<br />
Утилита позволяет задать шрифт (по умолчанию используется Courier 10 pt), установить перенос слов и другие параметры. Например, установим перенос слов, шрифт в выходном документе изменим на Times-Roman кеглем 12 и организуем вывод информации на страницу в две колонки:<br />
<br />
$ enscript -2 --fontTimes-Roman12 --word-wrap -output=filename.ps filename.txt<br />
<br />
'''Утилита a2ps'''<br />
<br />
Это более мощная утилита, с помощью которой можно подготовить документ к выводу на печать в формате PostScript или в файл. ''a2ps ''расшифровывается как Any to PostScript («Что угодно — в PostScript»), домашняя страница проекта '''http://www.inf.enst.fr/~demaille/a2ps/'''. Утилита небольшая, а опций у нее много, о некоторых из них мы поговорим подробнее. Представьте ситуацию: вы, как прогрессивный человек, написали себе «шпору» на экзамен на компьютере, но, естественно, в формате А4 нести ее с собой не совсем удобно. Значит, надо уменьшить шрифт и разбить документ на маленькие части. Именно это и делает следующая команда:<br />
<br />
a2ps --columns=4 --font-size=10 -j -encoding=koi8 shpora.<br />
txt -o shpora.ps<br />
<br />
Мы установили количество колонок текста равным четырем, кегль шрифта — 10, параметр '''-j''' означает рамку вокруг текста. Еще указаны необходимая кодировка, исходный файл и, с помощью флага -о, выходной. На вход можно подать практически все что угодно, хотя при использовании опции '''-Z''' или '''-delegate''' файлы делегируются другому приложению для предварительной обработки. Выходной формат — только PostScript, но как превратить его в PDF, вы уже знаете. При помощи ''a2ps м''ожно также распечатать результат на принтере результат. Например, выведем содержимое и оглавление каталога, на принтер '''prnt1''':<br />
<br />
$ a2ps -P prnt1 --toc work/*<br />
<br />
При выводе результата работы команды обратите внимание на строки вида.<br />
<br />
[manual.pdf (pdf, делегирован pdf2ps): страниц: 35, листов: 18<br />
[pdftoipe-20051114.tar.gz (gzip, делегирован gzip-a2ps): завершился с ошибкой.<br />
[16_04.tar.bz2 (bzip2, делегирован bzip2-a2ps): завершился с ошибкой. Проигнорировано]<br />
[lone.txt (простой): страниц: 3, листов: 2<br />
<br />
В них показано, какие из приложений должны использоваться для делегирования файла. Если на момент запуска такое приложение в системе отсутствует, то вывод будет завершен с ошибкой. Обычные текстовые файлы, как видите, не требуют внешнего приложения. Попробуем преобразовать файл test.pdf в книжный формат и сохранить результат в '''book.ps''':<br />
<br />
# a2ps --book --delegate=on test.pdf -o book.ps<br />
[test.pdf (pdf, делегирован pdf2ps): страниц: 11, листов: 11<br />
[Всего: страниц: 11, листов: 11] сохранен в файл 'book.ps<br />
<br />
При помощи ''a2ps ''можно вывести содержимое файлов просто на экран.<br />
<br />
$ a2ps -P display sample.ps sample.html<br />
<br />
А можно обработать почтовый ящик и сохранить результат в файле mail.ps, по 4 страницы на листе:<br />
<br />
$ a2ps -=mail -4 mailbox -o mail.ps<br />
<br />
Параметров много; все указывать не обязательно. Просмотреть настройки по умолчанию можно при помощи команды:<br />
<br />
$ a2ps --list=defaults<br />
<br />
'''Конвертер pstoedit'''<br />
<br />
Теперь решим обратную проблему. С помощью утилиты p''stoedit ''('''http://www.pstoedit.net/''') можно конвертировать файлы из форматов PostScript или PDF в любой из более чем 30 других векторных форматов: Flash, CAD, LaTeX, Sketch, Mathematica, Kontour, ImageMagick (а значит, еще и во все форматы поддерживаемые этим пакетом), формат любого устройства GhostScript, LightWave 3D, апплетов Java 1/2, Adobe Illustrator, WMF и Enhanced Windows Meta Files (EMF) и многих других. Список поддерживаемых форматов можно получить, набрав ''pstoedit '''''-help'''. Кроме того, на сайте доступны дополнительные shareware-модули, позволяющие работать с некоторыми другими форматами.<br />
<br />
Несмотря на большое разнообразие опций, освоиться с работой довольно просто. Например, конвертируем файл PostScript в PDF:<br />
<br />
$ pstoedit -f pdf inputfile.ps outfile.pdf<br />
<br />
Используемый в этом случае драйвер обеспечивает только самые простые операции, связанные с конвертированием текста; рисунки не передаются. Поэтому для серьезных документов рекомендуется использовать опцию -'''f gs:pdfwrite'''.<br />
<br />
$ pstoedit -f gs:pdfwrite inputfile.ps outfile.pdf<br />
<br />
А вот конвертирование в формат MetaPost:<br />
<br />
$ pstoedit -f mpost test.ps test.mp<br />
<br />
Аналогично производится конвертирование в любой другой формат. Некоторые драйвера поддерживают дополнительные опции, которые необходимо задавать в виде '''-f «format:-option1 -option2»'''. Кроме того, доступны и все опции, необходимые при конвертировании. Например, установим в новом документе шрифт Times (по умолчанию используется Courier) и конвертируем только первую страницу документа:<br />
<br />
$ pstoedit -page 1 -df Times -f gs:pdfwrite inputfile.ps outfile.pdf<br />
<br />
При помощи опции split можно разложить многостраничный документ на страницы. В имени выходного файла обязательно должно стоять '''%d''', которое будет заменено соответствующим номером:<br />
<br />
$ pstoedit -split -df Times -f gs:pdfwrite inputfile.ps out%d.pdf<br />
<br />
Следующая команда установит размер страницы исходного документа равным А3.<br />
<br />
$ pstoedit -pagesize а3 -f gs:pdfwrite inputfile.ps outfile.pdf<br />
<br />
'''Изображения в PDF'''<br />
<br />
Хотя описанные выше утилиты умеют конвертировать файлы изображений в формат PDF, легче будет воспользоваться специальными утилитами. В первую очередь это не развивавшийся с 2004 года ''PDFKreator ''('''http://www.kraus.tk/projects/pdfkreator/''') (рис. 3), позволяющий создать PDF-документ из графических файлов в форматах JPEG, PNG, BMP, TIFF и GIF.<br />
<br />
Существует также небольшая написанная на С утилита i''mg2pdf ''('''http://pobox.com/~newt/greg_software.html'''), с помощью которой можно получить PDF-файл из рисунков в форматах PNG, TIFF и JPEG. Пользоваться ''img2pdf ''очень просто:<br />
<br />
$ img2pdf *.tiff<br />
<br />
В результате из всех файлов с расширением TIFF, находящихся в текущем каталоге, будет создан PDF-файл '''output.pdf'''. Возможности указать другое имя не предусмотрено. Поэтому при повторном использовании необходимо убедиться, что ранее созданный файл не пропадет. Кроме того, по умолчанию генерируются страницы размера Letter. Чтобы на выходе получить формат A4 (других не предусмотрено), необходимо перекомпилировать ''img2pdf, п''редварительно заменив в 108-й строке:<br />
<br />
currPage = panda_newpage(outputdoc, panda_pagesize_ usletter);<br />
<br />
аргумент '''panda_pagesize_usletter''' на '''panda_ pagesize_a4'''. При необходимости использования обеих версий удобно сохранить их под разными именами, например, '''img2pdf_letter''' и '''img2pdfa4'''.<br />
<br />
Столь же удобен в применении скрипт '''makepdf.sh''', создающий PDF-файлы из файлов изображений, который можно найти на сайте '''http://download.novell.com/'''. По умолчанию поддерживаeтся PNG; чтобы использовать другой формат, достаточно изменить переменную imagetype. К примеру, JPG устанавливается так.<br />
<br />
imagetype="jpg"<br />
<br />
Для преобразования используется ''ImageMagic ''и ''pdftk, т''ак что они должны быть установлены в системе.<br />
<br />
Как видите, с PDF-документами в Linux можно делать практически все. И не надо платить большие деньги — все это и многое другое доступно совершенно бесплатно.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF105:DjangoLXF105:Django2010-04-24T08:13:15Z<p>Yaleks: </p>
<hr />
<div>: '''Новая серия!''' Разрабатываем динамические web-приложения современным способом[[Категория:Учебники]]<br />
<br />
==''Django'': Новостной портал==<br />
<br />
{{Цикл/Django}}<br />
<br />
: '''ЧАСТЬ 1''' Нужен ли миру еще один новостной портал? Вряд ли больше, чем очередной интернет-магазин, но кого это останавливало! '''Никита Шультайс''' (http://shultais.ru) расскажет эту старую историю на новый лад.<br />
<br />
Сегодня каждый более-менее продвинутый пользователь желает иметь свой сайт. Одни устанавливают готовые системы управления web-содержимым (CMS), вторые пишут все с нуля, а третьи – используют web-каркасы (framework), позволяющие создавать отличные динамические web-сайты без особых усилий.<br />
''Django'' как раз и является таким каркасом, написанным на ''Python''. К<br />
числу задач, с которыми он помогает справиться, относятся:<br />
<br />
* Создание и обработка форм;<br />
* Разделение логики и представления с помощью мощной системы шаблонов;<br />
* Добавление, поиск, извлечение и удаление записей из базы данных, в объектно-ориентированном стиле (ORM);<br />
* Обработка URL с помощью регулярных выражений;<br />
* Автогенерация интерфейса администратора (в просторечии, «админки»);<br />
* Аутентификация и авторизация пользователей;<br />
* Кэширование как отдельных элементов, так и целых страниц;<br />
* Интернационализация сайта;<br />
* Создание и отправка сообщений по e-mail;<br />
* Тестирование;<br />
* Работа с сессиям, HTTP-запросами и cookie.<br />
<br />
Все эти возможности сочетаются с относительно высокой скоростью работы и простотой написания кода. Ну что, заинтересовались?<br />
Тогда приступим.<br />
<br />
===На исходную!===<br />
<br />
Дистрибутив ''Django'' можно скачать с официального сайта (http://www.djangoproject.com) или взять с '''LXFDVD'''. Желательно использовать<br />
версию из репозитория (0.97), но можно ограничиться и последним стабильным релизом – 0.96. Кроме того, для связи с сервером ''MySQL'' нам<br />
понадобится ''MySQLdb'' версии 1.2.1p2 или выше. После получения ''Django'',<br />
распакуйте архив, перейдите в появившийся каталог и выполните<br />
<br />
sudo python setup.py install<br />
[ваш пароль]<br />
<br />
При желании, можете заменить ''sudo'' на ''su'' и ввести пароль суперпользователя.<br />
<br />
Для начала работы нам нужно создать «проект», в котором будут<br />
храниться все наши файлы. Для этого перейдите в директорию, в<br />
которой вы собираетесь хранить проект (например, '''/var/www'''), и<br />
дайте команду<br />
<br />
python /путь/к/django/bin/django-admin.py startproject myproject<br />
<br />
после выполнения которой в текущем каталоге появится поддиректория с именем '''myproject'''.<br />
<br />
Рассмотрим ее внутреннюю структуру:<br />
myproject/<br />
__init__.py<br />
manage.py<br />
settings.py<br />
urls.py<br />
<br />
'''__init__.py''' – это специальный (как видно по двум подчеркиваниям в<br />
имени) файл, который указывает на то, что данный каталог является<br />
модулем (пакетом) языка ''Python''; '''manage.py''' – утилита, позволяющая<br />
управлять вашим проектом. '''Settings.py''' содержит его настройки, а '''urls.py''' – это так называемый «файл URL-карт». В нем указывается, какому адресу какой код соответствует.<br />
<br />
Для запуска проекта выполните из его директории команду<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_86_1.jpg|Рис. 1|300px]]Рис. 1. Оно работает, следовательно, существует!|Ширина=300px}}<br />
<br />
python manage.py runserver<br />
<br />
Она запустит встроенный в ''Django'' web-сервер, предназначенный<br />
специально для разработки сайтов. Сервер стартует на локальном<br />
хосте на порту 8000 и, если все пройдет успешно, вы увидите в консоли следующее сообщение:<br />
<br />
Validating models...<br />
0 errors found.<br />
Django version 1.0, using settings 'myproject.settings'<br />
Development server is running at http://127.0.0.1:8000/<br />
Quit the server with CONTROL-C.<br />
<br />
Направив свой любимый web-браузер по адресу<br />
http://127.0.0.1:8000/:, вы получите нечто похожее на рис. 1.<br />
<br />
===Настроим ''Django''===<br />
<br />
Как уже говорилось выше, основные настройки вашего проекта хранятся в файле '''settings.py'''. Откроем его и найдем строку '''DATABASE_ENGINE = ''''': она отвечает за СУБД, которую мы будем использовать в нашем проекте. Поскольку мы выбрали ''MySQL'', изменим эту строку<br />
на '''DATABASE_ENGINE = 'mysql''''. Далее, в '''DATABASE_USER''' укажем<br />
имя пользователя вашей базы данных (заметьте, что у него должны<br />
быть права на создание таблиц в БД), а в '''DATABASE_PASSWORD''' –<br />
его пароль. Если сервер баз данных запущен на локальном хосте и на<br />
порту по умолчанию, параметры '''DATABASE_HOST''' и '''DATABASE_PORT'''<br />
можно оставить пустыми. В поле '''DATABASE_NAME''' введите имя базы<br />
данных (не путайте его с именем СУБД!), которую будет использовать<br />
проект. Да, и не забудьте создать ее перед использованием. В частности, для ''MySQL'' это делается так:<br />
<br />
mysql --user=username --password=password<br />
mysql > CREATE DATABASE `myproject_base` DEFAULT CHARACTER<br />
SET utf8 COLLATE utf8_general_ci;<br />
<br />
Здесь '''username''' – имя пользователя, который имеет доступ к<br />
СУБД, '''password''' – его пароль, '''myproject_base''' – название БД, в которой будут храниться данные нашего проекта.<br />
<br />
Перейдем к секции '''INSTALLED_APPS''', которая отвечает за установленные в нашем проекте приложения. По умолчанию, команда<br />
startproject создает проект с четырьмя предустановленными приложениями общего назначения:<br />
<br />
INSTALLED_APPS = (<br />
'django.contrib.auth',<br />
'django.contrib.contenttypes',<br />
'django.contrib.sessions',<br />
'django.contrib.sites',<br />
)<br />
<br />
Каждое из них отвечает за свою специфическую область:<br />
<br />
* '''django.contrib.auth''' – система аутентификации;<br />
* '''django.contrib.contenttypes''' – каркас типов содержимого;<br />
* '''django.contrib.sessions''' – работа с сессиями;<br />
* '''django.contrib.sites''' – каркас, позволяющий управлять несколькими сайтами из одной установки ''Django''.<br />
<br />
Хотя эти приложения и перечислены в '''INSTALLED_APPS''', они еще не установлены окончательно, так как для них не созданы таблицы в<br />
базе данных. Для завершения инсталляции, выполните следующий<br />
код:<br />
<br />
python manage.py syncdb<br />
<br />
Данная команда создаст необходимые таблицы в базе данных,<br />
после чего вам будет предложено определить суперпользователя –<br />
администратора сайта:<br />
<br />
You just installed Django's auth system, which means you don't have any<br />
superusers defined.<br />
Would you like to create one now? (yes/no):<br />
<br />
Ответьте «'''yes'''», а затем следуйте инструкциям, заполняя поля<br />
имени, '''e-mail''' и пароля для суперпользователя. Вот теперь система<br />
полностью установлена.<br />
<br />
===Создание приложения===<br />
<br />
Перечисленные выше приложения ''Django'' – это, по сути, программы<br />
''Python'', предназначенные для решения конкретной задачи. Например,<br />
мы можем написать приложение-блог, которое будет создавать записи в личном интернет-дневнике, а также предоставлять другим пользователям возможность просматривать их. Для генерации нового приложения нужно просто скомандовать:<br />
<br />
python manage.py startapp news<br />
<br />
где '''news''' – имя нашего приложения; его-то мы и будем разрабатывать<br />
на протяжении всех четырех уроков. Задача '''news''' достаточно стандартна: это публикация, просмотр и обсуждение новостей. По традиции, давайте начнем с изучения структуры нашего приложения:<br />
<br />
news/<br />
__init__.py<br />
models.py<br />
views.py<br />
<br />
Как видно, оно состоит из трех файлов: '''__init__.py''', с которым<br />
мы уже встречались выше, '''models.py''' – места для описания моделей<br />
(схем таблиц в БД с некоторыми дополнительными данными) и '''views.py''', определяющего представления (код, который отвечает за логику<br />
вашего приложения).<br />
<br />
Работа с приложением обычно начинается с создания моделей,<br />
поэтому откройте файл '''models.py''' в вашем любимом текстовом<br />
редакторе и наберите следующий код:<br />
<br />
from django.db import models<br />
class News(models.Model):<br />
title = models.CharField(max_length=70)<br />
description = models.CharField(max_length=255)<br />
pub_date = models.DateTimeField()<br />
text = models.TextField()<br />
class Comment(models.Model):<br />
news = models.ForeignKey(News)<br />
username = models.CharField(max_length=70)<br />
text = models.TextField()<br />
pub_date = models.DateTimeField(auto_now_add=True)<br />
<br />
Мы создали две модели: первая ('''News''') отвечает за саму новость,<br />
а вторая ('''Comment''') – за комментарии к ней.<br />
<br />
Каждая модель (таблица, в терминах БД) представлена классом,<br />
который наследуется от '''django.db.models.Model'''. Все поля представляются объектом класса '''models.*Field'''. Имя поля используется как<br />
для создания столбцов в таблице БД, так и для доступа к данным<br />
через ''Django ORM'', поэтому для упрощения чтения и написания кода<br />
старайтесь давать полям осмысленные названия.<br />
<br />
Начнем с поля '''title''' класса '''News'''. Запись '''models.CharField''' указывает на то, что это поле является символьным, а '''max_length=70''' говорит, что мы можем записать в него максимум 70 символов. Соответственно,<br />
'''DateTimeField''' означает, что поле будет содержать дату в формате<br />
'''DateTime''' (атрибут '''auto_now_add''' в '''pub_date''' в классе '''Comments''' указывает на то, что поле при создании записи будет автоматически заполняться текущим временем), '''TextField''' – это обычный текст.<br />
<br />
Особое значение имеет '''ForeignKey''', который говорит, что поле<br />
является внешним ключом (в связке «один-ко-многим») по отношению к модели (таблице) '''News'''. То есть, у каждого комментария<br />
есть поле news, хранящее номер новости, к которой относится комментарий.<br />
<br />
Теперь, когда модели созданы, приложение можно установить.<br />
Этот процесс проходит в два этапа:<br />
<br />
# Инициализация приложения в '''settings.py''' в разделе '''INSTALLED_APPS''';<br />
# Создание таблиц в базе данных.<br />
<br />
Откройте '''settngs.py''' и добавьте к '''INSTALLED_APPS''' строку ''''myproject.news''''. Заметьте, что '''INSTALLED_APPS''' – это кортеж ''Python'',<br />
поэтому будьте внимательны с синтаксисом. Теперь перейдите в корень нашего проекта и наберите команду:<br />
<br />
python manage.py syncdb<br />
<br />
Она, как мы уже знаем, создаст необходимые таблицы в БД.<br />
<br />
===Автогенерация «админки»===<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_1.jpg|Рис. 2|250px]]Рис. 2. Врата в административный раздел ''Django''. |Ширина=250px}}<br />
<br />
Одной из замечательных возможностей ''Django'' является автогенерация раздела администрирования сайта. Конечно, в серьезных работающих проектах его использование не вполне удобно, однако на стадии разработки и в небольших проектах он очень полезен.<br />
<br />
Для того, чтобы подключить систему администрирования, нужно выполнить несколько шагов (в той очередности, в которой они представлены ниже):<br />
# Добавить '''django.contrib.admin''' в '''INSTALLED_APPS''' вашего проекта.<br />
# Выполнить ''python manage.py syncdb'' из корневого каталога проекта.<br />
# Открыть myproject/urls.py и раскомментировать строку<br />
# (r'^admin/', include('django.contrib.admin.urls')),<br />
<br />
После этого запустите web-сервер (''python manage.py runserver'') и перейдите по адресу http://127.0.0.1:8000/admin/. Вы увидите форму авторизации для входа в систему администрирования:<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_2.jpg|Рис. 3|300px]]Рис. 3. Административный интерфейс ''Django''.|Ширина=300px}}<br />
<br />
Введите имя и пароль суперпользователя, и – добро пожаловать<br />
в «админку» ''Django''! На ее главной странице (рис.3) можно видеть<br />
несколько областей:<br />
* Вверху – панель приветствия, просмотра документации, изменения пароля и выхода из системы.<br />
* Посередине слева – установленные приложения (название и модели) и действия, которые можно совершать с ними (добавление и изменение записей).<br />
* Посередине справа – последние действия, которые были произведены в «админке».<br />
<br />
Вы заметили, что нашего приложения '''news''' в нет списке (в журнале<br />
этого не видно, но уж поверьте мне на слово)? Все правильно: просто<br />
так приложения в нем не появляются – для этого нужно выполнить<br />
несколько несложных действий. Откройте файл моделей ('''models.py''')<br />
приложения news и добавьте в каждую модель подкласс.<br />
<br />
class Admin:<br />
pass<br />
<br />
Сохраните файл моделей и перезагрузите страницу. Теперь наше<br />
приложение должно быть доступно в «админке». Если бы мы использовали какой-то другой HTTP-сервер (например, ''Apache''), нам бы<br />
пришлось бы перегружать его после каждого изменения в исходных<br />
кодах. А это очень неудобно, особенно когда процесс разработки в<br />
самом разгаре.<br />
<br />
Ну что, добавим первую новость? Найдите на странице строку<br />
'''Newss''' (это не опечатка – ''Django'' автоматически добавляет окончание<br />
'''-s''' к именам моделей) и перейдите по ссылке '''Add'''. Откроется форма для<br />
добавления новости:<br />
<br />
Заполните все поля и нажмите кнопку '''Save''' [Сохранить]. Вы будете перенаправлены на страницу списка доступных новостей. Пока что он состоит из одной новости, которую мы только что добавили, но<br />
как только их станет больше, возникнет одно неудобство: все новости<br />
будут отображаться как '''News object''' [Объект класса News], и мы быстро<br />
запутаемся, где какая. Чтобы видеть заголовок новости, изменим<br />
'''models.py''' приложения '''news''', добавив в модель '''News''' следующий код:<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_3.jpg|Рис. 4|300px]]Рис. 4. Форма для добавления новостей.|Ширина=300px}}<br />
<br />
def __unicode__(self):<br />
return self.title<br />
<br />
Обновите страницу – у новостей появятся осмысленные названия.<br />
Давайте добавим еще одну новость, но на этот раз оставим поле '''Title'''<br />
пустым, в поле '''Date''' напишем слово «дата», а в поле '''Time''' – «время»<br />
и попробуем сохранить ее в базе. Что, ''Django'' ругается? И правильно делает – нечего оставлять поля пустыми. Обратите внимание, что<br />
прочие поля (которые были введены верно) остались нетронутыми, и<br />
вам осталось только исправить ошибки, а не заполнять форму заново, как это часто бывает на сайтах «средней руки».<br />
<br />
===Публикация в сети===<br />
<br />
Хорошо, создавать записи («объекты» в терминах ''Django ORM'') мы научились, а дальше-то что? Дальше нам надо разместить их на сайте – ведь<br />
от новостей, которые никто не видит, нет пользы. Чтобы сделать это,<br />
нужно опять пройти через несколько несложных этапов:<br />
<br />
* Создать представление (функцию, отвечающую за логику), которое будет выбирать нужные нам объекты из базы данных и обрабатывать их в соответствии с нашими потребностями;<br />
* Создать шаблон, который будет отвечать за стиль отображения данных;<br />
* Передать выбранные объекты в шаблон;<br />
* Связать URL с нашим представлением.<br />
<br />
Порядок тут особой роли не играет. К тому же, за разные действия<br />
могут отвечать разные люди: за представления – программист, за<br />
шаблоны – дизайнер.<br />
<br />
Начнем с представлений. Они, как мы знаем, хранятся в файле<br />
'''views.py''' в корне каждого приложения. Перейдите в директорию '''news'''<br />
и откройте файл '''views.py'''. Затем добавьте следующий код (разумеется,<br />
номера строк приведены исключительно для удобства):<br />
<br />
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS"><br />
from datetime import datetime<br />
from django.template.loader import get_template<br />
from django.http import HttpResponse<br />
from django.template import RequestContext<br />
<br />
from news.models import News<br />
<br />
def last_news(request):<br />
news = News.objects.filter(<br />
pub_date__lte=datetime.now()).order_by("-pub_date")[:10]<br />
template = get_template("news/last_news.html")<br />
context = RequestContext(request, {<br />
"last_news":news,<br />
})<br />
return HttpResponse(template.render(context))<br />
</source><br />
<br />
Первые четыре строчки загружают необходимые функции и классы:<br />
* '''datetime''' – тип для работы с датой и временем;<br />
* '''get_template''' – функция, которая ищет и возвращает шаблон;<br />
* '''HttpResponse''' – основной HTTP ответ;<br />
* '''RequestContext''' – специальный класс, с помощью которого можно определять переменные, используемые в шаблонах.<br />
<br />
Далее (строка 6) происходит импорт класса модели наших новостей. С<br />
его помощью мы получаем доступ к ''Django ORM'', и, следовательно, к объектам в нашей базе данных.<br />
<br />
Функция '''last_news''' – это и есть представление. Заметьте, что она принимает обязательный аргумент '''request''', через который передаются параметры HTTP-запроса.<br />
<br />
Что же происходит при вызове '''last_news'''? Сначала мы извлекаем<br />
объекты из базы данных (строки 9–10). Конструкция '''filter''' ограничивает<br />
выборку по какому-то условию, в нашем случае '''pub_date__lte=datetime.now()''' означает, что дата публикации новостей должна быть меньше или<br />
равна ('''lte''' – «less than or equal to») текущей дате ('''datetime.now()'''). Это<br />
позволит нам создавать новости «на будущее», и они не будут отображаться на сайте до тех пор, пока дата их публикации не станет раньше или<br />
равной текущей. '''order_by''' – сортирует записи по определенному столбцу,<br />
в нашем случае – '''pub_date''', а знак минус означает, что сортировка будет<br />
произведена в обратном порядке. И наконец '''[:10]''' – срез, который указывает, что извлекать нужно только 10 последних записей.<br />
<br />
В строке 11 мы получаем объект шаблона, передавая в функцию<br />
'''get_template''' путь до него. Строки 12–14 отвечают за наполнение наших<br />
шаблонов какими-то данными, причем мы передаем в шаблон весь HTTP-<br />
запрос (request) и извлеченные новости (на самом деле, они еще даже<br />
не извлечены: просто создан объект, с помощью которого новости будут<br />
получены при первом обращении к ним). Обратите внимание, что данные<br />
передаются в шаблон с помощью словаря, где ключ – это имя переменной,<br />
которая будет доступна в шаблоне, а значение – ее значение.<br />
<br />
Ну и, наконец, в последней строке мы возвращаем стандартный HTTP-<br />
ответ, в который передаем готовый заполненный шаблон. Вот только... где<br />
взять шаблон?<br />
<br />
===Шаблоны===<br />
<br />
Для начала подготовим базовый шаблон – '''index.html'''. Создадим в корне<br />
нашего проекта каталог media для хранения статичных файлов (изображений, шаблонов, стилей и т.д.), а уже в '''media''' – подкаталог '''templates''', в<br />
который и поместим файл '''index.html''' со следующим содержимым:<br />
<source lang="html4strict"><br />
<html><br />
<head><title>My site</title></head><br />
<body><br />
<a href="/news/">News</a><br/><br />
{% block application %}<br />
Welcome to site.<br />
{% endblock %}<br />
</body><br />
</html><br />
</source><br />
Шаблон – это обычный текстовый файл, содержащий специальные<br />
конструкции языка шаблонов ''Django''. В '''index.html''' содержится только одна<br />
конструкция, которая определяет блок '''application''' (строки 6-8). Она называется «тэгом», причем тэг начинается с '''{%''', а заканчивается '''%}'''. Внутри<br />
этого блока находится приветствие, как это часто бывает на сайтах. ''Django''<br />
еще не знает, где искать шаблон, поэтому откроем '''settings.py''', найдем кортеж '''TEMPLATE_DIRS''' и добавим в него строку '''/path/to/project/myproject/media/templates/''', где '''/path/to/project''' – путь до вашего проекта; у меня<br />
это '''/var/www'''.<br />
<br />
{{Врезка|Заголовок=Скорая помощь|Содержание=Если вы не увидели ни одной новости (при условии, что они были добавлены), то скорее всего, вы не попали в нужный часовой пояс. Когда мы вызываем функцию '''datetime.now()''', она возвращает время относительно часового пояса, заданного в переменной<br />
'''TIME_ZONE''' в файле '''settings.py'''. По умолчанию в нем содержится '''America/Chicago'''. Все, что вам нужно – это изменить значение на название вашего часового пояса на английском, например, на '''Asia/Krasnoyarsk'''. Cписок часовых поясов можно найти в директории '''/usr/share/zoneinfo/'''<br />
в файле '''zone.tab'''. |Ширина=200px}}<br />
<br />
Теперь, когда базовый шаблон готов, перейдем к шаблону новостей.<br />
Опять же, создадим в директории нашего приложения ('''news''') каталог<br />
'''templates''', внутри '''templates''' создадим каталог '''news''', а в '''templates/news'''<br />
добавим файл '''last_news.html'''. Заметьте, что имя файла шаблона совпадает с именем представления, к которому оно относится. Так делать не<br />
обязательно – это просто правило хорошего стиля.<br />
<br />
Сам файл '''last_news.html''' может иметь следующий вид:<br />
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS"><br />
{% extends "index.html" %}<br />
<br />
{% block application %}<br />
{% for news in last_news %}<br />
[{{ news.pub_date|date:"d.m.Y"}}]<br />
<strong>{{ news.title }}</strong><br />
<p>{{ news.description }}</p><br />
{% endfor %}<br />
<br />
{% endblock %}<br />
</source><br />
Первая строка означает, что шаблон новости расширяет шаблон '''index.html'''. В строке 3 мы открываем блок '''application''' (он, как вы помните,<br />
идет из '''index.html''') и переопределяем его. В строках 5–8 мы создаем цикл<br />
по объектам '''last_news''' (которые были переданы в шаблон из нашего представления). В строках 6–8 мы вставляем данные, относящиеся к каждой<br />
новости, из '''last_news'''. Помимо тэгов, в шаблоны можно помещать переменные, имена которых будут заменены их значениями. Для этого используется конструкция '''<nowiki>{{ имя_переменной }}</nowiki>'''. В строке 7 мы обращаемся<br />
к переменной '''news''', но каждая новость имеет несколько полей (в соответствии с тем, что мы определили в '''models.py'''), поэтому мы указываем<br />
конкретное поле – '''title''', что в конечном счете выведет заголовок новости.<br />
Особое внимание нужно обратить на запись в строке 6, где мы не просто<br />
обращаемся к дате публикации новости '''news.pub_date''', но и применяем<br />
фильтр форматирования '''|date:«d.m.Y»''', который позволяет вывести дату<br />
в более традиционном для России виде.<br />
<br />
Последнее, что нам осталось – это связать URL с представлением.<br />
Откроем '''urls.py''' и после строки<br />
<br />
(r'^admin/', include('django.contrib.admin.urls')),<br />
<br />
добавим<br />
<br />
(r'^news/', 'news.views.last_news').<br />
<br />
Данный код означает, что при переходе к http://www.mydomain.ru/news/ будет выполняться представление '''news.views.last_news'''.<br />
<br />
Затем допишите в самый конец файла<br />
<br />
urlpatterns += patterns('django.views.generic.simple',<br />
(r'^$','direct_to_template', {'template': 'index.html'}),)<br />
<br />
Эта запись говорит, что при обращении к корню сервера должен<br />
использоваться шаблон '''index.html'''.<br />
<br />
Ну все, наш сайт готов. Запустите сервер разработчика и перейдите в<br />
вашем браузере по адресу http://127.0.0.1:8000/. Кликните по ссылке '''News'''<br />
и получите самые свежие новости! '''LXF'''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF108:OSS_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8LXF108:OSS в России2010-03-08T10:53:20Z<p>Yaleks: </p>
<hr />
<div>==OSS в России: взгляд правоведа==<br />
<br />
: В последние несколько лет вопрос о юридической стороне использования свободного ПО в России получил первостепенное значение. '''Владимир Житомирский''' развеет популярные мифы и даст ряд практических рекомендаций. <br />
<br />
::::::Исключительное право на результат интеллектуальной деятельности, созданный творческим трудом, первоначально возникает у его автора.<br />
::::::Правообладатель может по своему усмотрению разрешать или запрещать другим лицам использование результата интеллектуальной деятельности.<br />
::::::Правообладатель может распорядиться принадлежащим ему исключительным правом на результат интеллектуальной деятельности любым не противоречащим закону и существу такого исключительного права способом, в том числе путем его отчуждения по договору другому лицу (договор об отчуждении исключительного права) или предоставления другому лицу права использования соответствующих результатов интеллектуальной деятельности в установленных договором пределах (лицензионный договор).<br />
::::::::::::«Винегрет» из ст.ст. 1228, 1229 и 1233 пресловутой<br />
::::::::::::части четвертой Гражданского кодекса РФ<br />
<br />
В каком-то журнале в 70-е годы прошлого века была рубрика «Произведения, состоящие из одних названий». В ней, в иронической, правда, манере публиковались названия, после которых уже не надо было читать остальной текст. Вспомнил я об этом потому, что цитата из кодекса, взятая эпиграфом к данной статье, в идеале делает ненужным дальнейшие рассуждения о законности использования свободного программного продукта под лицензией GNU в России. Но мы живем не в идеальном мире, и право применяют люди. Я постараюсь избежать обильных ссылок на законы, и буду давать их только тогда, когда отсылка к ним может сыграть роль в сложной ситуации. Также примем за аксиому, что любые правовые конструкции работают при соблюдении определенных, а в нашем случае – очень простых условий.<br />
<br />
Начнем с того, что закон (здесь и далее – российский, если не оговорено другое) устанавливает, что исключительное право на результат интеллектуальной деятельности, в том числе и при создании программ для ЭВМ, принадлежит изначально автору; автор программы в основном приравнен в правах к автору любого произведения. Гражданство правообладателя значения не имеет. И автор, как правообладатель, может по своему усмотрению разрешать или <br />
запрещать другим лицам использование результата интеллектуальной деятельности, в том числе и путем предоставления другому лицу <br />
права использования соответствующих результатов интеллектуальной деятельности в установленных договором пределах (лицензионный договор).<br />
<br />
Встает закономерный вопрос – а где же сам договор? И это предусмотрено законом. Вот выдержка из статьи 1286 части четвертой Гражданского кодекса: «''Заключение лицензионных договоров о предоставлении права использования программы для ЭВМ ... допускается путем заключения каждым пользователем с соответствующим правообладателем договора присоединения, условия которого изложены на приобретаемом экземпляре ... программы ... либо на упаковке этого экземпляра. Начало использования ... программы ... пользователем, как оно определяется этими условиями, означает его согласие на заключение договора''». Поскольку правообладатель не лишает себя права выдачи лицензий другим лицам, это будет простая (неисключительная) лицензия. Надо ли напоминать пользователям, что в составе практически любого свободного продукта есть текст лицензии (то есть договора присоединения) или, по крайней мере, ссылка на лицензию GNU или иную из того же ряда? А уж коробочные версии без той или иной лицензии, причем отсылающей к GNU GPL, мне вообще не встречались.<br />
<br />
Следует подчеркнуть, что для удостоверения правомочности обладания программой закон не требует никаких наклеек, голограмм и прочего.<br />
<br />
===GPL в России===<br />
<br />
Перед тем, как коснуться GNU GPL, хочется высказать несколько соображений. Первое: мало кто из тех, кто ссылается на GPL, читал эту лицензию; большинство знает и применяет лишь поверхностно усвоенные и устраивающие их положения. Второе: я категорический противник нарушения авторских прав. Я глубоко убежден, что свободное программное обеспечение двигает человечество вперед, но я также убежден, что нигилистическое отношение к чужим правам<br />
и само наше движение погубит, и приведет к регрессу в сфере разработки ПО. Свобода и халява – суть разные вещи. Так, например, запрет копировать и распространять журнал '''Linux Format''' не есть посягательство на чьи-то мифические права, а законные действия правообладателя. Полностью соответствующие, кстати, всему букету свободных лицензий.<br />
<br />
А теперь обратимся к лицензии GNU GPL и посмотрим, как она (любая версия) соотносится с российским законом. И убедимся, что установленные ею правила распоряжения правами отвечают отечественным. На что следует обратить внимание – в соответствии с GNU GPL, она действует, если приобретателю (в числе прочих условий) вместе с экземпляром программы передается копия именно самой лицензии GNU. Что, заметим, опять же соответствует требованиям российских законов. Попросту говоря, сам текст лицензии GNU, тем или иным образом связанный с программой (или, на худой конец, хотя бы ссылка на него), делает продукт легитимным. А основные прочие условия – на каждом экземпляре помещен знак охраны авторского права и уведомление об отсутствии гарантий; оставлены без изменений все уведомления, относящиеся к самой лицензии и отсутствию гарантий.<br />
<br />
Как-то в одной дискуссии я услышал такой аргумент: продукты Windows в России зарегистрированы, а свободные программы нет. Ответ простой: закон дает правообладателю право (простите за невольную тавтологию) по собственному желанию зарегистрировать программу для ЭВМ (ст. 1262 ГК). Такая регистрация, кстати, осложняет переход всяких прав, их в этом случае также нужно регистрировать. Так что не думаю, что Microsoft регистрирует свои продукты.<br />
<br />
Итак, вывод – лицензия GNU GPL российским законам не противоречит и, следовательно, ее действие в России законно.<br />
<br />
===От слов – к делу===<br />
<br />
Это была теория, а она, как известно, без практики суха. Перейдем к жизни. Сначала поговорим о проблеме, кажущейся многим<br />
серьезной – о проблеме, которой на самом деле не существует.<br />
Периодически слышу сетования, что, мол, лицензии GNU в России<br />
официально не признаны. Господа, расскажите мне, пожалуйста,<br />
что такое официальное признание лицензии (по своей сути, договора), в чем оно выражается, лицензии каких правообладателей<br />
официально признаны и, опять же, в чем это выразилось? Боюсь,<br />
что ответа не дождусь.<br />
<br />
Любой документ в любой стране признается (слово «официально»<br />
в данном контексте совсем ни при чем), если он надлежащим образом оформлен и предъявлен (да, педанты могут сделать тут некоторые замечания – не относящиеся, однако, к исследуемой ситуации). В<br />
России официальным языком общения является русский, и понятно,<br />
что все пускаемые в оборот документы должны быть на русском языке. И где здесь проблема? Любой юридически значимый документ<br />
переводится у нотариуса переводчиком, чьи знания проверил этот<br />
нотариус, после чего он, нотариус, ставит на перевод свою красивую<br />
печать. И все. Сомневается нотариус – сделайте снимок экрана сайта с текстом нужной вам лицензии. Наши клиенты, да и я сам, имели дело с пятью нотариусами, ни разу проблем не возникло. Важно отметить, что эта квази-проблема в принципе отсутствует, если вы<br />
приобретаете дистрибутив на диске: следите только, чтобы при наличии в дистрибутиве проприетарных программ об этом было сказано<br />
внятно, т.е. были приведены условия использования. И, конечно,<br />
соблюдайте эти условия. Вот передо мной лежит коробочная версия<br />
Mandriva Powerpack 2008, выпущенная в оборот компанией «ГНУ/Линуксцентр». На стильной коробке размещена обильная информация о продукте, отдельно упомянуты проприетарные Cedega и Fluendo. В коробке два DVD (32- и 64-битный), купон с регистрационным<br />
номером, на котором среди прочей информации есть указание, что<br />
код Cedega будет выслан после регистрации, и лицензия с печатью<br />
ЗАО «Мезон.ру» на один компьютер; далее, правда, указано, что это<br />
ограничение распространяется только на определенную поддержку.<br />
(В скобках замечу, что меня эта лицензия во многом не устраивает,<br />
но причины этого не относятся к рассматриваемой проблеме.) После<br />
инсталляции дистрибутива в нем доступен файл с полной лицензией<br />
на русском языке. И что еще нужно?<br />
<br />
Естественно, ситуации возникают самые разные: вы скачали продукт для себя либо для продажи, без переработки или с переработкой; вы купили продукт с одной из этих целей; вы, наконец, создаете сборный продукт из разным образом полученных компонентов... И ко всем этим случаям применимо сказанное выше. Для наглядности приведу примеры.<br />
<br />
'''1''' Организация приобретает через Интернет проприетарный продукт, скажем, почтовый клиент всех времен и народов ''The Bat!'' (прекрасно<br />
работает в ''Wine'', хотя, на мой взгляд, ''Claws Mail'' – вполне достойная<br />
замена). Покупатель скачивает программу, оценивает ее и оплачивает<br />
продукт. И получает электронное письмо с кодом, который и регистрирует в соответствующем окне программы. Организация в итоге имеет:<br />
счет, платежное поручение с отметкой банка, бухгалтерские проводки,<br />
электронное письмо с кодом и, кроме того, если открыть диалог «О<br />
программе», в нем будет указано, что владелец экземпляра – именно<br />
эта организация.<br />
<br />
'''2''' Организация покупает скомпонованный, например, неким ООО диск с набором свободных программ. Возможны три варианта приобретения: через интернет-магазин, у поставщика напрямую и за наличный расчет в розничной сети. Во всех случаях покупатель имеет фирменную упаковку продукта, лицензию продавца со ссылкой на лицензию GNU, бухгалтерские проводки и оригинальный носитель. В<br />
первом и втором вариантах он имеет еще счет, платежное поручение с отметкой банка и накладную или иной документ о доставке. В<br />
третьем случае он имеет скрепленный с кассовым чеком товарный<br />
чек; это неплохо подкрепить приказом о покупке продукта и актом<br />
приема-передачи от приобретшего продукт работника.<br />
<br />
'''3''' Организация приняла решение скачать продукт из сети. Тут придется немного «помарать бумагу». Первый документ – докладная<br />
руководителю о потребности в продукте, с указанием, что он находится в свободном доступе и выпущен под соответствующей лицензией. Уже на этой стадии к докладной можно приложить нотариально удостоверенную копию лицензии (в дальнейшем можно просто ссылаться на нее: «...по той же лицензии, что установленная ранее программа ...»). Второй документ – подробный приказ уполномоченному<br />
лицу скачать и установить продукт. Затем последует акт о введении<br />
программы в эксплуатацию с указанием, на каком носителе и у кого<br />
будет храниться резервная копия. И последнее – продукт должен<br />
быть учтен в бухгалтерии. Ко всему этому прибавим содержание окна<br />
«О программе» и, скорее всего, наличие текста свободной лицензии<br />
в документации.<br />
<br />
Заверяю, что с такими наборами организации ничего не грозит.<br />
<br />
===К вам пришли...===<br />
<br />
А теперь поговорим о самой неприятной ситуации: на пороге стоит ОБЭП.<br />
<br />
Сначала немного статистики. По информации начальника 1-го отдела ОРЧ № 8 УБЭП ГУВД Санкт-Петербурга и Ленинградской области, в 2007 году на обслуживаемой территории возбуждено по ст. 146 УК 199 дел, в суд передано 117 дел. Наиболее суровое наказание<br />
получил руководитель торговой сети «505», который провел время до суда в тюрьме. Суд приговорил его к трем годам лишения свободы условно.<br />
<br />
ОБЭП может выявлять контрафакт как в процессе обычных проверок финансово-хозяйственной деятельности предприятия, так и во<br />
время целевого выхода. Во втором случае это, как правило, обусловлено получением соответствующей информации – от недовольных<br />
работников, конкурентов и т.п. В скобках отметим, что для проведения обычных проверок тоже нужна какая-то предварительная информация, но здесь это могут быть и налоговые органы, и контрагенты, и защитники экологии, и прочие. При неразвеянном подозрении на<br />
наличие в компьютере пиратских программ он может быть изъят для проведения экспертизы. Надо отметить, что в первую очередь проверяющих интересуют ''«1С», «Гарант», «Кодекс»'', то есть те компании, которые активно сотрудничают с милицией, даже берут на себя <br />
обязательства не заключать с нарушителями соглашений и доводить <br />
дело до суда. Теперь в этот список попал и Microsoft.<br />
<br />
Сотрудничая с правообладателями, работники милиции знают, <br />
во-первых, какие именно продукты они ищут, а во-вторых, признаки, <br />
отличающие данный легальный продукт от пиратского – пресловутые голограммы, наклейки, оформление коробок и так далее. То есть,<br />
наличие или отсутствие такой, например, наклейки явится определяющим признаком только для того продукта, который защищается от нелегального использования с помощью наклейки, и ни для какого иного. Если проще, то на вопрос, а почему у вас нет наклейки <br />
Windows, следует ответ: «У меня нет и Windows».<br />
<br />
Чтобы определить поведение проверяемого, нужно понять права и возможности работников ОБЭП. И, подчеркиваю, мы говорим о случаях, когда в компьютерах ничего незаконного нет.<br />
<br />
Наш интерес вызывает статья 11 Закона «О милиции», повествующая как раз о правах этих стражей правопорядка. И в ней есть два <br />
пункта, требующие особого внимания. Это пункт 4, позволяющий <br />
«получать от граждан и должностных лиц необходимые объяснения, <br />
сведения, справки, документы и копии с них», и пункт 25, описывающий порядок действий «при наличии данных о влекущем уголовную <br />
или административную ответственность нарушении законодательства, регулирующего финансовую, хозяйственную, предпринимательскую и торговую деятельность, в целях установления оснований для возбуждения уголовного дела или дела об административном <br />
правонарушении». В числе прочего, он позволяет проводить осмотр <br />
служебных помещений, изучать документы, отражающие финансовую, хозяйственную, предпринимательскую и торговую деятельность,<br />
образцы сырья, продукции и товаров, необходимые для проведения <br />
исследований или экспертиз. Важна отметить, что правила этого пункта дают серьезные гарантии проверяемому: так, во-первых, описанные в нем действия проводятся лишь по мотивированному постановлению начальника органа милиции или его заместителя, во-вторых, <br />
обязательно присутствие не менее двух понятых и представителя проверяемой организации, в-третьих, все действия протоколируются.<br />
<br />
Есть в статье 11 и пункт 35, дающий милиции право «при наличии достаточных данных, указывающих на признаки преступления, <br />
связанного с нарушением законодательства Российской Федерации <br />
о налогах и сборах, проводить проверки организаций ...», а как уже <br />
говорилось, такая проверка может охватить и интересующие нас проблемы. Но, если не вдаваться в юридическую казуистику, права и возможности как проверяющих, так и проверяемых, практически одинаковы при действиях ОБЭП и по пункту 25, и по пункту 35. Поэтому я и сказал о двух позициях, требующих особого внимания – пунктах 4 и 25.<br />
<br />
А требуют они внимания потому, что дают лазейку, позволяющую проверяющим превысить свои полномочия. Вот смотрите: приходит к <br />
вам работник ОБЭП и говорит, вот, мол, вам письмо, по которому вы, <br />
в соответствии с пунктом 4 статьи 11 Закона «О милиции» обязаны <br />
сообщить, какое программное обеспечение используете, дать соответствующие объяснения и выдать необходимые справки. И получает <br />
огромный массив информации. То есть, он под видом получения сведений проводит незаконную проверку. Повторю, что проведение проверки – значительное вторжение в жизнь предприятия, поэтому это действие формализовано и в законе, и в ведомственных инструкциях <br />
в целях соблюдения определенного баланса интересов и возможностей. И оно требует надлежащего процессуального оформления. Закон, <br />
кстати, дает работнику милиции право входить беспрепятственно на <br />
территорию и в помещения, занимаемые организациями, и осматривать их лишь при преследовании лиц, подозреваемых в совершении <br />
преступлений, либо при наличии достаточных оснований полагать, что <br />
там совершено или совершается преступление, и в других случаях, не <br />
имеющих отношение к рассматриваемым ситуациям – пункт 18 той же <br />
статьи 11. Вот работники милиции, допускаю, что из лучших побуждений, будучи не в состоянии законно получить информацию либо реализовать имеющуюся, и подменяют проверку «получением справок».<br />
<br />
Ниже я предлагаю определенные алгоритмы поведения. Прошу, однако, помнить, что это именно алгоритмы, а не панацея от всего на свете. Поскольку разговор наш идет все-таки о компаниях, буду исходить из того, что человек с предпринимательским мышлением на уровне своих знаний обладает умением оценивать обстановку и принимать решения, опираясь на знания специалистов. Но именно опираясь, а не отдавая специалистам руководство.<br />
<br />
===Итак, как стоит действовать===<br />
<br />
Допустим, компания получает письмо, в котором от нее требуют представить какую-либо информацию. Руководство организации оценивает (в конце концов, и по количественному параметру), запрос ли это конкретной информации или же он «тянет» на полноценную проверку. Во втором случае следует написать вежливое письмо, в котором прямо указать, что по объему и разносторонности запрошенных сведений требование, по мнению организации, выходит за пределы пункта 4 статьи 11. И копию ответа направить в вышестоящий орган милиции, известив об этом и автора запроса. Помните, что на каждого проверяющего есть свой проверяющий. Помните, что за исключением особых случаев (смотрите выше о пунктах 18, 25 и 35 Закона «О милиции»), работник милиции, как и любой другой человек, проходит на предприятие по разрешению его руководителя. На практике от вас или отстают, или вступают в занудную переписку, выливающуюся в приемлемый компромисс. Опыт показывает, кстати, что работникам всякого рода органов предпочтительнее не уступать:<br />
если чувствуешь свою правоту, они очень хорошо ощущают твердость и начинают вести себя адекватно, в то время как уступки наводят на мысли о поговорке об отданном пальце.<br />
<br />
Другая ситуация. Проверка пришла. Сохраняя хладнокровие, организация знакомится с постановлением; в нем, помимо прочего, персонально перечислены проверяющие. У всех пришедших следует истребовать документы. Если у кого-то документов нет, а про него говорят, что это, мол, специалист по программам, следует это занести в протокол. Понятых следует представить из персонала организации, и не двух, а в количестве, достаточном, чтобы никто из проверяющих не оставался без контроля. К протоколу не надо относиться формально, он должен отражать все действия. Если, например, майор Икс смотрел что-то в комнате А в присутствии понятого Иванова, а капитан Игрек – в комнате Б в присутствии понятого Петрова, это должно быть отражено в протоколе. Ход проверки можно фиксировать на магнитофон или видеозаписью, но делать это открыто, что тоже должно быть занесено в протокол. В протокол должны быть<br />
занесены все вопросы, замечания и объяснения. При желании проверяющих изъять компьютер, в протоколе должно быть указано, что организация уверена в отсутствии контрафактных программ, что, по ее мнению, специалист способен разобраться в этом на месте, и, наконец, организация оставляет за собой право взыскать с органа внутренних дел убытки. На практике был случай, когда в аналогичной ситуации в ответ на твердую позицию работники ОБЭП привели какого-то специалиста, он задал два-три вопроса, глянул на компьютер и заявил, что все в порядке.<br />
<br />
----<br />
<br />
В заключение хочется еще раз сказать, что не надо слепо уповать на юристов, экономистов и других специалистов (из них юристы наиболее активны в предложении своих услуг). Все, о чем мы говорим – это бизнес-ситуации, а не юридические, экономические и прочие. И оценивать их, планировать и принимать решения по ним должен человек, обладающий предпринимательским мышлением, имеющий опыт «распутывания» именно бизнес-ситуаций. Это не значит, что не надо прибегать к услугам специалистов, надо просто ставить перед ними вопросы и задачи в пределах их компетенции. И еще немаловажный момент. Наш мир Open Source очень невелик (надеюсь, пока), и легко найти авторитетного специалиста, например, преподавателя вуза по соответствующей специальности, который в трудную минуту сможет дать мотивированное заключение. '''LXF'''<br />
<br />
Если у вас есть что спросить про использование свободного ПО в России, можно получить консультацию непосредственноу Владимира Житомирского на форуме '''LinuxForum''': http://unixforum.org/index.php?showtopic=91402&st=0, но прежде чем задавать вопрос пожалуйста ознакомьтесь с уже имеющейся информацией.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF112LXF1122010-03-08T10:50:35Z<p>Yaleks: откат вандализма</p>
<hr />
<div>==Linux Format 112 (12), Декабрь 2008==<br />
<center>[[Изображение:LXF112.jpg|Linux Format 112 (12), Декабрь 2008]]</center><br />
<br />
===Обзоры===<br />
* [[LXF112:Review1|LBook eReader V3]]<br />
*: Возьмите в дорогу томик или целую библиотеку – с электронной книгой под управлением Linux это совсем несложно.<br />
* [[LXF112:Review2|Ubuntu Desktop Training]]<br />
*: Нужен ли специальный учебный курс для самого дружественного пользователю дистрибутива в мире? Canonical полагает, что да.<br />
* [[LXF112:Review3|Excito Bubba 2]]<br />
*: Тенденции мировой моды свидетельствуют, что черный – это новый бежевый. В этом смысле, новое сетевое хранилище от Excito определенно la mode.<br />
* [[LXF112:Review4|Intel Classmate]]<br />
*: Предложение от Intel в сегменте бюджетных ноутбуков вряд ли соберет много друзей в лагере OLPC, но он маленький, прочный и работает под Linux – так почему бы не попробовать?<br />
* [[LXF112:Review5|Focusrite Saffire LE]]<br />
*: Ура, внешняя звуковая карта! Даже больше – она поддерживается Linux и производитель активно сотрудничает с разработчиками открытого драйвера.<br />
* [[LXF112:Review6|''Kerio MailServer'']]<br />
*: Бесплатных почтовых серверов полным-полно в каждом дистрибутиве Linux – так что такого может предложить этот продукт администратору, заплатившему деньги?<br />
* [[LXF112:Review7|''VirtualBox 2.0'']]<br />
*: Свободная и бесплатная виртуальная машина становится лучше с каждым релизом.<br />
<br />
=== Постоянные рубрики ===<br />
* [[LXF112:Сравнение|'''Сравнение''': Web-браузеры]]<br />
*: Выбор браузера не менее ответственен, чем выбор ОС. '''Энди Ченнел''' выясняет, существует ли ПО, сопоставимое с нашими амбициями.<br />
* [[LXF112:Спецрепортаж|'''Спецрепортаж''' Стать творцом]]<br />
*: Направьте потоки своего креатива в русло свободного ПО!<br />
** Пишите музыку<br />
** Создавайте web-сайты<br />
** Редактируйте видео<br />
* [[LXF112:Настроим KDE 4|'''Спецрепортаж''' Настроим KDE 4]]<br />
*:Новый рабочий стол ведет себя не так, как вам хочется? Исправьте это прямо сейчас!<br />
* [[LXF112:Смена дистрибутива |'''Спецрепортаж''' Умный переезд]]<br />
*: Устанавливая себе новый дистрибутив, не потеряйте ценные данные: держите их в безопасности.<br />
* [[LXF112:Какой Linux изучать?|Какой Linux изучать?]]<br />
*: '''Алексей Федорчук''' убедительно доказывает, что будущих гуру надо воспитывать в духе дзен.<br />
* [[LXF112:Что за штука... ГИС?|'''Что за штука...''' ГИС?]]<br />
*: ГИС: в современном мире, переполненном Web 2.0 и GPS, информацию не только можно, но и нужно привязывать к географическим точкам.0<br />
* [[LXF112:Интервью|'''LXF Интервью''' Хокон Ли]]<br />
*: Web – наше все!<br />
* [[LXF112:Интервью2|'''LXF Интервью''' Макс Спевак]]<br />
*: Бывший руководитель проекта Fedora '''Макс Спевак''' даже не прикасался к Fedora, пока не начал там работать – а ныне он защищает пламя свободы…<br />
* [[LXF112:История успеха |'''История успеха''' От ''1С'' до СПО не так уж и далеко]]<br />
*: Ещё два-три года назад ''1С'' считалась основным препятствием для использования Linux в бизнесе. Сейчас уже понятно, что одно другому не мешает, а скоро и помогать начнет: '''Игорь Вершинин''' – живой тому пример.<br />
* '''По рецептам д-ра Брауна'''<br />
*: Добротное администрирование систем из причудливых заворотов кишок серверной.<br />
** [[LXF112:DrBrown1|Игры для больших]]<br />
**: А не слабо вам переформатировать жесткий диск своего сервера через iPhone? Вот как это сделать...<br />
** [[LXF112:DrBrown2|Радости RWX]]<br />
**: Доктор рассматривает права доступа к файлу и отвечает на вопросы, которые никто бы и не задал.<br />
** [[LXF112:DrBrown3|Наследить для аудита]]<br />
**: ''Sudo'' и ''auditctl'' Вооружившись Fedora 9 и насушив сухарей, рассмотрим пару способов записать действия системного администратора.<br />
<br />
=== Учебники ===<br />
* [[LXF112:Совет месяца|'''Совет месяца''' Запасной пользователь]]<br />
<br />
* [[LXF112:Начинающим|'''Начинающим'''. Глянцевый Gnome и открытый космос]]<br />
*: Коричневый Ubuntu наводит скуку? '''Энди Ченнел''' даст советы по облагораживанию рабочего стола, а заодно рассмотрит ''Stellarium'' – восхитительный свободный планетарий.<br />
<br />
* [[LXF112:Игры|'''Игры'''. Программируем гонки]]<br />
*: По просьбам трудящихся, серия по программированию игр с ''PyGame'' продолжается. Подключайтесь к '''Майку Сондерсу''' в кодировании ралли старой школы.<br />
<br />
* [[LXF112:LVM|'''Hardcore Linux''' Логические тома]]<br />
*: Традиционные схемы разбиения ужасно ограничены – '''Роб Добози''' проведет мастер-класс по ''LVM'', гораздо более гибкой и продвинутой системе.<br />
<br />
* [[LXF112:GIMP|'''''GIMP''''' Восстановим фото]]<br />
*: Размытость, шум и оптические искажения: вот три главных причины, по которым сделанные вами снимки не выглядят безупречно. К счастью, '''Александр Толстой''' знает, как это исправить.<br />
<br />
* [[LXF112:KDE4|Погружаясь в ''Solid'']]<br />
*: '''Андрей Боровский''' рассмотрит кросс-платформенную систему взаимодействия с оборудованием, предлагаемую KDE 4, и напишет для нее парочку несложных приложений.<br />
<br />
* [[LXF112:R|'''''R''''' Data-mining]]<br />
*: Термин «data mining» нынче в моде, но что за ним скрывается? '''Алексей Шипунов''' и '''Евгений Балдин''' рассматривают эту технологию через призму ''R''.<br />
<br />
* [[LXF112:Grid|'''''gLite''''' Гриды, часть 2]]<br />
*: Большие задачи подразумевают большие объемы данных. '''Андрей Е. Шевель''' покажет, как они перемещаются в масштабах грида, и рассмотрит информационные сервисы.<br />
<br />
* [[LXF112:Getopt|'''Getopt''' Анализ командной строки]]<br />
*: Обработка аргументов вашей программы по всем правилам – задача не из простых, но '''Артем Коротченко''' знает легкий путь к успеху: '''getopt()'''.<br />
<br />
* [[LXF112:Геотеги|'''Геотеги''' Пришпилим снимки]]<br />
*: Картинка стоит тысячи слов, а с учебником '''Марко Фиоретти''' – двух тысяч. Научитесь добавлять информацию о местоположении к вашим снимкам, используя ''Minimap'' и ''Image-ExifTool''.<br />
<br />
* [[LXF112:Мультимедиа|'''Мультимедиа''' Калейдоскоп обоев]]<br />
*: В этом месяце '''Марко Фиоретти''' обрабатывает RAW-изображения, устанавливает случайные обои на рабочем столе и развлекается в Facebook.<br />
<br />
===[[LXF112:Ответы|Ответы]]===<br />
: Решение проблем Linux: экранные читалки, беспроводные сети, USB-брелки и запись ТВ прямо на DVD.<br />
<br />
=== Школа LXF ===<br />
* [[LXF112:Atutor|''ATutor 1.6.2'']]<br />
*: Открытому ПО есть что предложить в области образовательных систем: '''Галина Пожарина''' рассматривает, что представляет собой ''ATutor''.<br />
* [[LXF112:Ponosov|Как я провел лето]]<br />
*: '''Александр Поносов''' давно не появлялся на страницах '''LXF''', поэтому мы попросили его рассказать, где он, собственно, пропадал все это время.<br />
* [[LXF112:School3|НКО внедряет Linux]]<br />
*: Linux не появится в школах, пока его туда кто-нибудь не поставит. Этим важным и нужным делом занимается не так уж много людей, но '''Алексей Дубинин''' – в их числе.<br />
* [[LXF112:School4|GNU/Linux рвётся в поля]]<br />
*: В рамках индустриального, и тем более постиндустриального общества, отсутствие автоматизации в сельском хозяйстве – это в лучшем случае зависимость. Иными словами, для Linux здесь есть работа: ее и выполняет '''Василий Знайдюк'''.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF97:OpenMokoLXF97:OpenMoko2010-03-08T10:49:57Z<p>Yaleks: Отмена правки № 9822 участника Che (обсуждение)</p>
<hr />
<div>== Что за штука… OpenMoko ==<br />
''Cчитаете ли вы изобретателем телефона Шарля Борселя, Филипа Рейса, Антонио Меуччи или Александра Грэма Белла, '''Ник Вейч''' найдет, что вам возразить.''<br />
<br />
; Я так вижу, что речь опять пойдет о заморочках с открытым ПО. О чем сегодня? Очередная система управления контентом?<br />
Да, вы правы, это открытый проект, но не совсем тот,<br />
что можно запустить на вашем web-сервере. Ну разве<br />
что на очень, очень маленьком…<br />
;Смеетесь? А я-то думал, что вы тут все объясняете — так что давайте, делитесь…<br />
OpenMoko — это название проекта, разрабатывающего<br />
новую мобильную платформу. Цель проекта — свободная и открытая платформа для разработки приложений к мобильным телефонам, что может привлечь<br />
больше производителей мобильных устройств к установке на них Linux.<br />
; Минуточку, но ведь телефонов на Linux и без того полно?<br />
Да не так уж и полно. Motorola выпускает несколько<br />
устройств на базе Linux, но они предназначены в основном для японского рынка. Конечно, есть Greenphone от<br />
Trolltech, который вышел в августе прошлого года, но<br />
что-то не заметно толпы компаний-производителей, жаждущих принять участие. Впрочем, «кривых» устройств хватает.<br />
; В чем же отличие OpenMoko?<br />
Дело не в отличиях, это вообще другая платформа. Но в некотором смысле разработка более<br />
открыта: кроме проприетарных драйверов для GPS и<br />
GSM, все остальные исходные коды вышли под открытыми лицензиями и могут быть вполне законно модифицированы любым желающим.<br />
<br />
Ядро OpenMoko базируется на обычном ядре 2.6.21<br />
и оснащено некоторыми открытыми усовершенствованиями пользовательского интерфейса и доступа к<br />
оборудованию, но основная часть не особо завязана на<br />
Linux. Например, для подключений по Bluetooth и GSM<br />
используются стандартные открытые библиотеки.<br />
; А это хорошо?<br />
Судите сами, ведь когда обе платформы — и<br />
мобильного устройства, и настольного компьютера — пользуются одинаковыми библиотеками, насколько<br />
же упрощается портирование приложений, не говоря<br />
уже о разработке и тестировании. По-моему, вскоре следует ожидать обычного наплыва портов Doom<br />
и игрушек-головоломок. В области взаимодействия<br />
с пользователем в настоящее время предлагаются<br />
GTK и als.<br />
; GTK? Это чтобы проще было Gnome позвонить?<br />
Эй, шучу здесь я…<br />
; Ну, раз уж вся разработка открыта, теперь пользователи оседлают сотовых операторов и вообще перестанут платить за переговоры, а?<br />
Да нет, вряд ли. В конце концов, соединение происходит через провайдеров, а уж они-то пристально следят, что можно делать в их сетях, а что — нельзя.<br />
; Какой же тогда во всем этом толк?<br />
А толк состоит в том, что разрабатывается<br />
универсальная, функционально богатая платформа,<br />
позволяющая извлечь максимальную пользу из «продвинутой» аппаратуры, и она упростит разработку<br />
приложений для мобильных устройств, да и пользователи не будут забыты. Представьте себе будущее,<br />
когда, обновляя свой мобильник, вы сохраните свои<br />
данные и настройки и просто перенесете их на новую<br />
трубку: ведь все приложения будут там работать. Да и<br />
просто сможете запускать свои любимые программы<br />
на мобильном телефоне.<br />
; Здорово. Какие же телефоны поддерживаются, и где можно их купить?<br />
Для конечного пользователя OpenMoko пока не имеет<br />
стабильной версии. Хотя целью является платформа, пригодная для установки на любой телефон, в<br />
настоящее время разработка сконцентрирована на<br />
единственном устройстве, FIC1973. В свое время этот<br />
телефон прочили на замену iPhone, хотя, разумеется,<br />
iPhone уже с нами. Тем не менее, FIC1973 смотрится<br />
неплохо и обладает похожим интерфейсом через сенсорный экран. В наличии GPS и прочие функции, хотя<br />
HDSPA, развивающийся стандарт мобильной широкополосной связи, не поддерживается тоже.<br />
; Я и не слыхивал о такой фирме. Неужели лидеры проекта не могли найти более известного брэнда?<br />
Ну, брэнд FIC широко известен в Китае. А поскольку<br />
основная часть разработчиков работает в FIC и вся<br />
поддержка исходит от него же, неудивительно, что за основу команда взяла один из собственных телефонов. Да вы не думайте, что FIC — убогое устройство.<br />
Текущая версия оснащена 128 МБ ОЗУ, 64 МБ флэш-носителем и слотом для microSD. Здесь есть и GPS, и<br />
GPRS/GSM, и прекрасный VGA-экран. Хотя они и пытаются разработать платформу и добиться ее стабильности на отдельно взятом устройстве, в дальнейшем<br />
возможен перенос системы и на другие телефоны.<br />
; В самом деле? Что-то этого не заметно…<br />
Возможно, но ведь в OpenMoko участвует не<br />
одна команда, в проекте заинтересованы многие разработчики и организации. Один из энтузиастов ухитрился установить систему на свой Palm Treo.<br />
; Ну хоть про это я что-то слышал. Так для каких еще телефонов годится новая платформа?<br />
Официально поддерживается пока лишь FIC1973, но<br />
видятся перспективы переноса платформы на подобные устройства, оснащенные чипами ARM. На рынке<br />
мобильных телефонов процессоры ARM вездесущи,<br />
поэтому о возможностях речь не идет, остается лишь<br />
руки приложить. Понятно, что в основном усилия OpenMoko будут направлены на телефоны с сенсорными экранами, а это разом вычеркивает многие потенциальные приложения с другими интерфейсами.<br />
; Черт возьми, я посмотрел спецификацию телефона и обнаружил, что в нем нет даже WiFi. Не проще ли взять две пустые консервные банки, и при помощи натянутой струны…<br />
Покамест FIC1973 — тоже опытный образец. Телефон<br />
будет обновлен — вероятно, в этом году — и снабжен<br />
новой спецификацией. Есть сведения, что он будет<br />
оснащен более быстрым процессором и WiFi на основе Atheros.<br />
; Хм, а пока что — покупать недоделанную трубку?<br />
Для первого поколения устройств на сайте OpenMoko<br />
доступен комплект разработчика. Разумеется, вы будете предупреждены о том, что кроме базовых функций<br />
приема и отправки телефонных вызовов, с телефоном<br />
мало что можно сделать, если вы сами не возьметесь<br />
за разработку ПО. Даже обновленная модель вряд ли<br />
будет предназначена для обычных пользователей (ну,<br />
разве что для тех, кому хочется казаться крутым).<br />
; И за эти «привилегии» предлагается еще и платить?<br />
Телефон первого поколения стоит $300, а $540 — цена<br />
с полным комплектом разработчика, в который входят инструменты для перепрошивки телефона и работы с<br />
загрузочным образом.<br />
; Ну, а если у меня нет лишних $400, чтобы выложить за телефон, который к тому же и не на 100 % работает — могу ли я участвовать в OpenMoko?<br />
Конечно. Комплект разработчика, как уже было сказано, создан под FIC1973. Но ведь это всего лишь модифицированная версия Linux для процессора ARM — ее<br />
нетрудно эмулировать с помощью Qemu, настроить и<br />
т.д. Разумеется, эмулировать некоторые аппаратные<br />
функции настоящего телефона невозможно (например, функции GSM/GPS), зато можно разрабатывать<br />
и тестировать приложения пространства пользователя<br />
или загружать программы, разработанные для устройства другими людьми. Фактически, большинство программ будут основаны на GTK, а это значит, что их<br />
можно смело портировать на настольный ПК.<br />
; Вы считаете, это тот самый телефон, что принесет славу Linux?<br />
Есть и другие претенденты. Что-то может получиться из инициативы Trolltech (телефон Greenphone мы рассматривали в [[LXF91:Greenphone|LXF91]], а руководство разработчика к нему от Грэма Моррисона из [[LXF92:Закодируй Greenфон|LXF92]] записано<br />
на сопроводительный DVD нынешнего номера Linux<br />
Format). Motorola вносит значительный вклад в развитие Linux, а есть и новички, например, ROAD Handy PC<br />
(http://www.road-gmbh.de/englisch/index.html). Но OpenMoko<br />
имеет среди них нисколько не худшие шансы.<br />
; А вы ничего не забыли?<br />
Что, мамулин день рождения? А, понял, вы имеете в виду Интернет-адреса сайтов, где можно узнать<br />
больше. Хорошо. Страниц на SourceForge по этому<br />
вопросу нет, поэтому единственное место, где можно<br />
получить информацию — это Wiki на сайте OpenMoko.<br />
Там собрано немало сведений не только об отдельном проекте, а обо всех аспектах разработки ПО для<br />
мобильников. Возьмите стилус и настучите в браузере<br />
вашего Linux-смартфона: http://wiki.openmoko.org/wiki/Main_Page.<br />
<br />
{{Врезка<br />
|Заголовок=ПОКА ВЕРСТАЛСЯ НОМЕР<br />
|Содержание=Компания Trolltech объявила о выпуске продукта Qtopia<br />
Phone Edition для Neo1973 и платформы OpenMoko.<br />
Таким образом, сторонние разработчики получили<br />
возможность выбора инструментария – GTK+ (Hildon)<br />
или Qt. Примечательно, что для этой платформы<br />
Qtopia Phone Edition был впервые представлен по<br />
лицензии GPL (версия 2).<br />
|Ширина=}}</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF86:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8BLXF86:Ответы2010-03-01T14:43:41Z<p>Yaleks: /* Linux для Video */</p>
<hr />
<div>[[Категория:Ответы]]<br />
<br />
=Ответы=<br />
<br />
: Есть вопрос по Open Source? Пишите нам по адресу: [[mailto:answers@linuxformat.ru|answers@linuxformat.ru]]<br />
<br />
<br />
==Морока с меню Mepis==<br />
<br />
'''В:''' Недавно попробовал Mepis с DVD номера '''LXF84''', но там не сказано, что меню загрузки переключаются клавишами '''F1, F2''' и '''F3'''. '''F3''' – выпадающее меню для выбора разрешения экрана – в моем случае это 1600х1200. Можно (но я не знаю, как) изменить его после установки, командной строкой, но ведь это сложно для начинающих.. <br />
<br />
'''Джим [Jim], с форума LXF'''<br />
<br />
'''О:''' Наш DVD содержит SimplyMEPIS и Knoppix, на выбор, поэтому специфичное для Mepis меню пришлось опустить. Стандартный CD<br />
Mepis имеет графическое меню загрузки, но какой видеорежим там выбран, неважно – система всегда будет загружаться в 1024х768, потому что это разрешение зашито в настройках загрузки Mepis 6.0. К счастью, Mepis использует ''Grub'', и можно менять<br />
опции загрузки на лету.<br />
<br />
Обычный способ изменить настройки загрузки – выделить нужный пункт меню и дважды нажать '''e''',<br />
для редактирования первой строки. Измените число<br />
после ‘'''vga='''’ на соответствующее нужному видеорежиму. Нажмите '''Enter''' для сохранения изменений и '''b''' для<br />
загрузки с новыми настройками. Пользователи оригинального диска Mepis могут также поменять видеорежим, выделив пункт меню и клавишами-стрелками добравшись до значения '''VGA''' в поле ввода снизу. Измените<br />
номер аналогичным образом и нажмите '''Enter'''. В таблице приведены числовые значения для наиболее<br />
часто используемых видеорежимов. Например, если Вы<br />
хотите установить разрешение 1600х1200 при глубине цвета в 16 бит, Вам нужно указать '''vga=802'''. '''НБ'''<br />
<br />
{| class="wikitable" align="center" border="1" cellspacing="0" cellpadding="3"<br />
|-<br />
! <br />
! 640x480 <br />
! 800x600 <br />
! 1024x768 <br />
! 1280x1024<br />
! 1152x864<br />
! 1600x1200<br />
|-<br />
| 8-бит<br />
| 69 <br />
| 771<br />
| 773<br />
| 775<br />
| 353<br />
| 800 <br />
|-<br />
| 15-бит<br />
| 784<br />
| 787<br />
| 790<br />
| 793<br />
| 354<br />
| 801<br />
|-<br />
| 16-бит<br />
| 785<br />
| 788<br />
| 791<br />
| 794<br />
| 355<br />
| 802<br />
|-<br />
| 24-бит<br />
| 786<br />
| 789<br />
| 792<br />
| 795<br />
| –<br />
| 803<br />
|}<br />
<br />
==Kded’овщина==<br />
<br />
'''В:''' Недавно установил Mandriva 2006 Free с диска к '''LXF75'''. При каждой загрузке машины, через несколько минут все начинает так тормозить, что невозможно работать. Мой ''GKrellM'' показывает, что процессор полностью загружен. Проверка с помощью ''top'' указывает на ''kded''. Когда я его убиваю, проблема исчезает. Что делает этот демон и можно ли его<br />
отключить вообще?<br />
<br />
'''mikedj, с форума LXF'''<br />
<br />
'''О:''' У Вас установлена утилита поиска ''Kat''? Тогда, вероятно, это и есть главный злодей. ''Kat'' вызывает ''kded'' в процессе своей работы, и хотя в ''top'' просматривается ''kded'', проблема кроется в<br />
''Kat'', способной снизить производительность мощных<br />
машин до уровня '''ZX81'''. Впрочем, новейшие версии<br />
менее требовательны. ''Kded'' – сервисный демон среды<br />
KDE. Он обрабатывает обновления ''Sysoca'', базы данных с информацией о приложениях. Возможно, он<br />
съедает часть циклов Вашего процессора.<br />
<br />
Кардинальное решение – удалить ''Kat''; но можно<br />
просто убить его процессы:<br />
<br />
killall kat<br />
killall katdaemon<br />
killall kded<br />
<br />
Первые две строки относятся к ''Kat''; третья убивает<br />
''kded'', который все еще пытается обработать запросы<br />
''Kat''. Заглянув в список процессов, Вы обнаружите, что<br />
KDE перезапустил ''kded'', но он больше не тормозит<br />
работу Вашей системы.<br />
<br />
Чтобы предотвратить запуск ''Kat'' после перезагрузки, выполните команду:<br />
<br />
touch ~/.mdv-no_kat<br />
<br />
Если Вам понадобится вновь активировать ''Kat'',<br />
просто удалите файл '''~/.mdv-no_kat'''. '''НБ'''<br />
<br />
==Apt-get не обновляет==<br />
<br />
'''В:''' Пытаюсь обновить web-браузер ''epiphany'' на Debian 3.1 Sarge, используя [[su && apt-get install epiphany-browser''<br />
И вот что получается:<br />
<br />
Reading Package Lists... Done<br />
Building Dependency Tree... Done<br />
epiphany-browser is already the newest version.<br />
0 upgraded, 0 newly installed, 0 to remove and 2 not<br />
upgraded.<br />
2 not fully installed or removed.<br />
Need to get 0B of archives.<br />
After unpacking 0B of additional disk space will be used.<br />
Setting up kernel-image-2.4.27-3-686 (2.4.27-10sarge3)<br />
...<br />
cp: writing `/tmp/mkinitrd.MMwVww/initrd//lib/<br />
libc.so.6’: No space left on device<br />
cp: writing `/tmp/mkinitrd.MMwVww/initrd//lib/<br />
libe2p.so.2’: No space left on device<br />
run-parts: /usr/share/initrd-tools/scripts/e2fsprogs<br />
exited with return code 1<br />
Failed to create initrd image.<br />
<br />
Хм, ''epiphany-browser'' уже обновлен до новейшей версии? Я видел, что ''Epiphany 1.7.6'' уже доступен для<br />
загрузки. Может, все дело в медленном обновлении<br />
Debian и 1.4.8 – действительно последняя версия в<br />
репозиториях Debian...<br />
<br />
И что это за «нет места на диске»? На всем жестком диске занято около 14%.<br />
<br />
'''А.М.С. Брэдли [AMS Bradley]'''<br />
<br />
'''О:''' Последний релиз ''Epiphany'' – 2.14.3, из ветви 1.х – 1.8.5. В стабильной ветви Debian 1.4.8 действительно последняя версия, однако в '''Testing''' доступны 1.8.5 и 2.14.3. Пакеты, доступные в каждой ветви Debian, можно посмотреть тут: http://packages.debian.org. Вам нужно добавить репозитарий '''testing''' в Ваш '''/etc/apt/sources.list''' вручную или при<br />
помощи ''Synaptic''. Проще всего это сделать, скопировав строку со '''stable''' и заменив '''stable''' на '''unstable'''.<br />
<br />
Что касается сообщения о нехватке места – это<br />
относится к директории '''/tmp'''. Она расположена на<br />
отдельном разделе? Это хорошая идея и наиболее<br />
частый способ предотвратить переполнение диска,<br />
если какой-нибудь процесс заполнит все своим временным файлом. Я подозреваю, что так и было, в<br />
результате раздел с '''/tmp''' переполнился. Попробуйте<br />
ввести<br />
<br />
df -h<br />
<br />
Если раздел '''/tmp''' полностью забит, то причина в<br />
этом. Можете удалить из этой директории любой файл,<br />
который был создан до последней перезагрузки. '''МС'''<br />
<br />
==Биты chmod==<br />
<br />
'''В:''' Я новичок в Linux и немного запутался, как работают биты прав доступа в ''chmod''. Можете ли вы мне помочь?<br />
<br />
'''Азим Мохаммед [Asim Mohammed]'''<br />
<br />
'''О:''' Права доступа в ''chmod'' выражаются тремя восьмеричными цифрами либо группами символов. Это трио представляет права для владельца файла, группы владельца и всех остальных.<br />
Возьмем ''chmod 755''. Каждая цифра – это сумма, сложенная из различных привилегий. Вот их значения:<br />
<br />
0 – нет прав (---)<br />
1 – только выполнение (--x)<br />
2 – только запись (-w-)<br />
3 – запись и выполнение (-wx)<br />
4 – только чтение (r--)<br />
<br />
Для установки прав на чтение и выполнение нужна<br />
цифра 5: 1 для выполнения и 4 для чтения. Для полного доступа нужно 4 для чтения, 2 для записи и 1 для<br />
исполнения: 4 + 2 + 1 = 7.<br />
<br />
Если Вы устанавливаете на файл права '''755''', это значит, что владелец имеет полный доступ (7), группа имеет право читать и выполнять файл (5). Точно такие же права имеют все остальные. Есть еще несколько битов<br />
для специфичных функций, но эти – основные. '''ДК'''<br />
<br />
==Семейный SUSE==<br />
<br />
'''В:''' У меня есть компьютер с SUSE 10.0, им пользуются все в моем доме для web, почты, просмотра ТВ и фильмов и прослушивания музыки. Никто в моей семье не имеет пользовательского опыта в Linux,<br />
и когда меня нету рядом, начинаются ссоры. Компьютер подключен к высокоскоростному каналу по Wi-Fi, который нормально работает большую часть времени. Сложности бывают, когда у моего провайдера случаются технические проблемы и меня выбивает из сети (обычно в субботу утром), после чего нужно перезапустить беспроводной маршрутизатор и сеть на компьютере. Для меня-то это не проблема, но я не могу объяснить своей семье, зачем вообще нужен терминал и<br />
зачем все эти шаманства с '''root'''. Им подавай иконку,<br />
вызывающую перезапуск сети. Можете помочь?<br />
<br />
'''Дейв Вайз [Dave Wise]'''<br />
<br />
'''О:''' Если Ваши домочадцы не понимают, зачем нужен пароль root, ни в коем случае им его не давайте! Именно в таких ситуациях нужен ''sudo'', описанный в «[[LXF85:Ответы|Кратком руководстве]]» в прошлом номере. Вам нужно создать скрипт, содержащий последовательность команд для перезапуска сети и<br />
назвать его, скажем, '''/usr/local/bin/restartnetwork'''.<br />
Убедитесь, что владельцем файла будет root, и что<br />
только он будет иметь права на запись в файл:<br />
<br />
chown root: /usr/local/bin/restartnetwork<br />
chmod 755 /usr/local/bin/restartnetwork<br />
<br />
Добавьте следущую строку в '''/etc/sudoers''', чтобы позволить всем членам группы users выполнять<br />
скрипт без пароля:<br />
<br />
%users ALL = NOPASSWD: /usr/local/bin/restartnetwork<br />
<br />
Это позволит им выполнять перезапуск сети без знания пароля root. Если Вы поменяете '''NOPASSWD''' на<br />
'''PASSWD''', пользователь должен будет ввести собственный пароль. Вместо целой группы Вы можете указать<br />
отдельных пользователей, через запятую:<br />
<br />
ma,pa,johnboy ALL = NOPASSWD: /usr/local/bin/restartnetwork<br />
<br />
Теперь авторизованные пользователи могут выполнять скрипт так:<br />
<br />
sudo restartnetwork<br />
<br />
Полный путь к скрипту не нужен, если '''/usr/local/bin''' находится в переменной окружения '''$PATH''', однако его нужно обязательно указывать в '''/etc/sudoers'''.<br />
Создав скрипт, привяжите его к иконке на рабочем<br />
столе или кнопке на панели, и любой из Ваших пользователей сможет перезапустить сеть одним щелчком<br />
мыши. Поскольку ''sudo'' запускает скрипт с правами<br />
root, то и все команды скрипта будут выполняться с<br />
привилегиями суперпользователя, хотя Ваша семья не<br />
имеет к ним доступа.<br />
<br />
Таким методом я добавил кнопку запуска беспроводной сети на панель на своем ноутбуке. Не потому,<br />
что я не знаю пароля root, а потому, что я ленив, и лучше уж один клик, чем ввод пароля. '''НБ'''<br />
<br />
==Разделяй и властвуй==<br />
<br />
'''В:''' Мой корневой раздел почти заполнен. Мне нужно больше места, и у меня есть свободный раздел, куда я могу положить, скажем, '''/usr/lib'''. Но как это сделать?<br />
<br />
'''jensjk, с форума LXF'''<br />
<br />
'''О:''' Linux позволяет монтировать отдельные разделы где угодно под '''/''', упрощая использование отдельных разделов для каждой части Вашей системы. Самая хитрая часть процесса – перенос данных из оригинальной файловой системы на новую.<br />
Если Вы не используете отдельный раздел под '''/home''', я очень рекомендую сделать это, поскольку отделение '''/home''' от остальной файловой системы имеет несколько<br />
преимуществ. Что бы Вы ни делали, сделайте резервные копии. Если Вы удалите что-то нужное, то будете<br />
рады, что послушались меня. Копирование данных,<br />
особенно системных файлов, на живой системе – рискованное занятие, поэтому загрузитесь с LiveCD, например, с KNOPPIX. Я подразумеваю, что Ваш текущий системный раздел – '''/dev/hda1''', а '''/home''' Вы будете перемещать на '''/dev/hda2'''. Внесите соответствующие изменения, в соответствии с Вашей системой.<br />
<br />
Первый шаг – запуск ''QtParted'', разметка и форматирование раздела. Теперь откройте терминал и<br />
выполните следующие команды:<br />
<br />
su<br />
mount /dev/hda1 /mnt/hda1<br />
mount /dev/hda2 /mnt/hda2<br />
rsync -avx /mnt/hda1/home/ /mnt/hda2/<br />
<br />
Первая строка дает привилегии суперпользователя,<br />
следующие две монтируют старый и новый разделы,<br />
последняя – копирует все из старой директории '''home'''<br />
в новый раздел. Можно было бы использовать ''cp'' или ''tar'' для копирования файлов, но по-моему, самый<br />
надежный метод создания копии – ''rsync'', если нужно<br />
сохранить временные отметки и права доступа.<br />
<br />
Теперь добавьте строку, относящуюся к новому<br />
разделу, в '''/etc/fstab'''. Knoppix поставляется с редактором ''Nano'':<br />
<br />
nano /mnt/hda1/etc/fstab<br />
<br />
Добавьте что-то вроде<br />
<br />
/dev/hda2 /home ext3 defaults 0 0<br />
<br />
Это если Вы отформатировали раздел в файловой системе '''ext3''', как это делает по умолчанию<br />
''QtParted''. Если Вы используете '''ReiserFS''', замените '''ext3'''<br />
на '''reiserfs'''.<br />
<br />
Если Вы загрузитесь в систему и выполните<br />
<br />
df -h<br />
<br />
в терминале, то увидите, что '''/home''' (или любая<br />
другая директория, которую Вы переносили на другой раздел), теперь находится на отдельном разделе.<br />
«Но», вскрикнете Вы в монитор, «мой корневой раздел все еще заполнен!»<br />
<br />
Это потому, что Вы скопировали данные на другой<br />
раздел, и они теперь в находятся в обоих местах. Так<br />
и задумано в случае неверных действий Вы сможете<br />
все откатить. Данные все еще здесь, но они невидимы, поскольку новый раздел смонтирован в '''/home''', и<br />
старые данные скрыты. Можете загрузиться в Knoppix<br />
и удалить данные оттуда, как только убедитесь, что<br />
все в порядке, но вот небольшой трюк для избежания<br />
перезагрузки:<br />
<br />
mkdir /mnt/tmp<br />
mount --bind / /mnt/tmp<br />
rm -fr /mnt/tmp/home/*<br />
<br />
Он позволит Вам увидеть и удалить файлы в старой домашней директории. Убедитесь, что Вы удалили<br />
только содержимое, а не саму директорию. Она нужна,<br />
чтобы смонтировать новый раздел. Можете сделать то<br />
же самое с '''/usr/lib''', если захотите, однако '''/home''' – лучший вариант, если он еще не на отдельном разделе (в<br />
противном случае обдумайте перемещение '''/usr/local''').<br />
Все зависит от того, сколько места Вы хотите освободить; поможет информация о том, сколько места<br />
занимает каждая директория, от утилиты ''FileLight'',<br />
доступной на http://www.methylblue.com/filelight и включенной в репозитории многих дистрибутивов.<br />
<br />
Можете также использовать ''LVM'' для комбинирования дисков, как описано в [[LXF83:HDD|LXF83]]. '''НБ'''<br />
<br />
==Перевод денег==<br />
<br />
'''В:''' Я использую Linux уже около трех лет; два года у меня был Mandrake и год – Ubuntu. Я пытаюсь сагитировать и мою половину – она уже использует ''OpenOffice.org'' на своей машине с XP. Я загрузил для нее Ubuntu Dapper Drake, но есть две сложности. Первая сложность – я не могу экспортировать файлы ''MS Money'' в ''KMyMoney'': данные экспортируются в '''QIF''',<br />
но ''KMyMoney'' его не распознает; возможно, это Microsoft-версия формата '''QIF'''.<br />
<br />
Другая проблема – она пользуется ''MS AutoRoute'', а в Linux я эквивалента не нашел. Я думал об использовании ''Wine'' как альтернативы, но я ничего не знаю о нем, и не знаю, как установить в нем программу от<br />
Microsoft. Буду благодарен за любую помощь.<br />
<br />
'''Джон Мортон [John Morton]'''<br />
<br />
'''О:''' Ответ на Ваш первый вопрос – используйте другую программу конвертации файлов. ''GnuCash'' импортирует Microsoft '''QIF''', который Вы можете сохранить в собственный формат ''GnuCash''.<br />
''GnuCash'' имеет опции для обработки нескольких вариаций формата '''QIF''' (я успешно импортировал файлы из<br />
''MS Money''). ''KMyMoney'' имеет опцию импорта файлов ''GnuCash'' – я ею пользуюсь потому, что храню свои<br />
данные в ''GnuCash'', но мне нравятся опции отчетов в<br />
''KMyMoney''. Формат ''GnuCash'' хорош тем, что он неизменен, а '''QIF'''-файлы могут немного различаться. Вы<br />
можете также обновить версию ''KMyMoney'' – уже заявлено об улучшении поддержки '''QIF'''.<br />
<br />
Пакет планирования маршрута для Linux – ''Navigator'' (http://www.directions.ltd.uk). Это коммерческий продукт,<br />
работающий на x86 в Windows и Linux. Демо-версия отсутствует, так что проверьте список совместимости оборудования. Установка ''Wine'' в Ubuntu очень проста, пакет есть в репозитарии '''Universe'''. Выберите<br />
'''Настройки > Репозитории''' в ''Synaptic'' и поставьте<br />
галочку напротив `Ubuntu 6.06 LTS (binary) Community maintained (Universe)’, закройте окно репозитариев и<br />
нажмите '''Обновить''' (Reload). По завершении процесса,<br />
используйте функцию поиска ('''Search''') для нахождения ''Wine''. Когда ''Synaptic'' установит пакет, скомандуйте<br />
''winecfg'' для настройки, однако в большинстве случаев<br />
подойдут настройки по умолчанию.<br />
<br />
Теперь можно запустить Windows-программу так:<br />
<br />
wine /path/to/someprogram.exe<br />
<br />
'''Энди Ченнел''' написал расширенное руководство<br />
по [[LXF86:Wine|''Wine'']] для начинающих. Попробуйте<br />
посмотреть базу данных ''Wine'' http://appdb.Winehq.org<br />
для получения информации о поддержке различных<br />
приложений. Можете рассмотреть также ''CrossOver Linux'', коммерческую производную от ''Wine'' (http;//www.codeweavers.com). '''НБ'''<br />
<br />
==WebDAW-демон==<br />
<br />
'''В:''' У меня WebDAV-доступ к учетной записи на Hotmail. А можно ли получить почту на мой POP3-сервер?<br />
<br />
'''Хэриш Тэндон [Harish Tandon]'''<br />
<br />
'''О:''' Есть несколько инструментов для выполнения этой работы. Я предпочитаю ''Hotwayd''. Он запускается как обычный сервис ''inetd'' и может работать в связке с ''Fetchmail''. Скачайте исходные тексты с http://hotwayd.sourceforge.net и установите его с Вашими настройками. Когда закончите, нужно<br />
будет активировать его. Чтобы сделать это с помощью<br />
''xinetd'', создайте в директории '''/etc/xinetd.d''' файл<br />
'''hotwayd''' с таким содержимым:<br />
<br />
service hotwayd<br />
{<br />
only_from = 127.0.0.1<br />
disable = no<br />
type = unlisted<br />
socket_type = stream<br />
protocol = tcp<br />
wait = no<br />
user = nobody<br />
groups = yes<br />
server = /usr/sbin/hotwayd<br />
port = 1100<br />
}<br />
<br />
Теперь просто перезапустите ''xinetd'', и можете<br />
использовать ''Fetchmail''. Просто создайте в своей<br />
домашней директории файл '''.fetchmailrc''' и запишите<br />
в него<br />
<br />
poll localhost protocol pop3 port 1100 username<br />
“пользователь@сервер.com” password<br />
“ваш_пароль”<br />
<br />
Теперь запустите ''Fetchmail''. Он скачает почту с<br />
Hotmail на Ваш локальный сервер. '''ДК'''<br />
<br />
==Зачем же ты так, админ?==<br />
<br />
'''В:''' Я сдуру удалил административные привилегии у всех трех пользователей на своей Ubuntu. Это укоротило меню «Администрирование» в Gnome до нескольких пунктов. В данный момент у меня нет ни одного пользователя в группе '''admin'''', под которым можно администрировать систему. Я могу использовать '''Терминал''' и ''sudo'', но не могу перевести ни одного<br />
пользователя обратно в администраторскую группу.<br />
Пробовал команду ''gpasswd -g'', но не могу заставить ее<br />
верно работать. Как мне добавить моего пользователя<br />
'''master''' снова в администраторскую группу?<br />
<br />
'''ellip, с форума LXF'''<br />
<br />
'''О:''' Во-первых, не беспокойтесь о том, что совершили ошибку, мы все их делаем. На них-то мы и учимся, главное – никому про них не рассказывать. Команда для добавления Вашего пользователя в группу '''admin''' выглядит так:<br />
<br />
gpasswd -a master admin<br />
<br />
Однако только root имеет право манипулировать<br />
базами данных паролей и групп, так что Вы оказались<br />
в ловушке: чтобы выполнить ''gpasswd'' для добавления<br />
себя в администраторскую группу, нужно уже быть в<br />
этой группе.<br />
<br />
Не отчаивайтесь, есть простое решение.<br />
Инсталляционный диск является также LiveCD, позволяющим запускать команды от root с помощью ''sudo''.<br />
Загрузитесь с диска, откройте терминал и запустите<br />
<br />
sudo bash<br />
mount /dev/hdaN /mnt<br />
nano /mnt/etc/group<br />
<br />
Замените '''hdaN''' на раздел, где установлена Ubuntu.<br />
''Nano'' – это простой в использовании консольный текстовый редактор. Листайте ниже до строки, начинающейся с '''admin:x:112''': и добавьте в ее конец '''master''',<br />
чтобы она приняла такой вид:<br />
<br />
admin:x:112:master<br />
<br />
Вы можете добавить несколько пользователей, через запятую:<br />
<br />
admin:x:112:master,slave<br />
<br />
Не волнуйтесь, если номер не 112: оставьте его как есть. Нажмите '''Ctrl-X''' для сохранения и выхода, а затем<br />
загрузитесь с жесткого диска. Теперь у Вас опять<br />
должны быть администраторские привилегии. '''НБ'''<br />
<br />
==Linux для Video==<br />
<br />
'''В:''' Можно ли приспособить Linux для создания ТВ-станции на web, транслирующей в Интернет смесь живого видео с web- и видеокамер? Если да, то можно ли это сделать полностью на Open Source?<br />
<br />
'''Джон Престон [John Preston]'''<br />
<br />
''О:''' Да, все это можно. Вы не сообщили нам подробностей о намеченном Вами проекте, так что дать конкретные рекомендации затруднительно, но (LS)3 Open Media Streaming Project выглядит<br />
подходящей отправной точкой. Он включает мультимедийный потоковый сервер ''Fenice'' и множество полезной<br />
документации, в том числе о вещании с живых видео-потоков. ''Fenice'' поддерживает Video4Linux-устройства,<br />
так что подойдет любая работающая с Linux web-камера. Cайт проекта (http://streaming.polito.it) содержит<br />
форум, где можно детально обсудить информацию с пользователями и разработчиками.<br />
<br />
Другой заслуживающий внимания сервер –<br />
''Flumotion'' (http://www.fluendo.com). Это коммерческий продукт, однако базовая часть доступна бесплатно, под<br />
GPL. Для смешивания изображения и наложения<br />
эффектов в реальном времени можно воспользоваться ''FreeJ'' (http://freej.dyne.org)<br />
<br />
Наконец, поинтересуйтесь Dynebolic, дистрибутивом для создания и вещания мультимедийного контента. Он может работать как LiveCD, позволяя попробовать свой функционал перед установкой. Последнюю<br />
версию можно получить на http://www.dynebolic.org.<br />
<br />
Удачи Вам с Вашим проектом, и дайте нам знать,<br />
когда он станет общедоступным! '''НВ'''<br />
<br />
==Просто NIC==<br />
<br />
'''В:''' Мой компьютер имеет очень низкую производительность сети. Кто-то мне говорил, что проблема, возможно, в полудуплексном режиме (что бы это ни было). Как мне это узнать и заодно посмотреть скорость соединения?<br />
<br />
'''Джин-Гай Леконт [Jean-Guy Leconte]'''<br />
<br />
'''О:''' Сначала объясню про полудуплекс. Вкратце, это означает, что Ваша сетевая карта договорилась с Вашим сетевым оборудованием и посылает и отправляет пакеты не одновременно; в<br />
сущности это вроде одностороннего разговора. Если<br />
Вы используете современное оборудование, полнодуплексный режим должен включаться без проблем.<br />
Когда '''NIC''' соединяется с сетевым оборудованием, он<br />
ведет переговоры о скорости и настройках дуплекса<br />
на физическом уровне. На большинстве дешевых<br />
коммутаторов это делается автоматически: '''switch'''<br />
объявляет, какие режимы он поддерживает, '''NIC''' выбирает один из них и сообщает об этом. Это поведение<br />
по умолчанию для большинства '''NIC'''.<br />
<br />
На оборудовании подороже эти настройки можно<br />
зафиксировать для получения оптимальной производительности. Бывает, что на стороне коммутатора<br />
все зафиксировано, но Ваша машина установлена на<br />
автоматический режим, и это вызывает несовпадение<br />
режимов дуплекса, снижающее производительность.<br />
Чтобы узнать, в каком режиме работает Ваш '''NIC''',<br />
используйте команду ''ethtool'':<br />
<br />
[root@dan ~]# ethtool eth0<br />
<br />
Выведется детальная информация. Обратите внимание на параметры Duplex и Speed; Вы также увидите, какие режимы поддерживает коммутатор. Если все дело в дуплексе, и он жестко установлен в Вашем коммутаторе, можете изменить настройки '''eth0''', выполнив<br />
<br />
ethtool -s eth0 speed 100 duplex full autoneg off<br />
<br />
Учтите, что при перезагрузке системы настройки<br />
вернутся к первоначальным. Для фиксации настроек укажите опции загрузки модуля для Вашего '''NIC'''<br />
в '''modules.conf'''. Если это не решит проблему, есть<br />
множество дополнительных вариантов. Ваше сетевое соединение может быть в порядке, а вот нужный<br />
Вам сервис может тормозить по множеству причин.<br />
Запустите ''ifconfig'', и если Вы увидите какие-нибудь<br />
Tx/Rx-ошибки – только ли на Вашей машине? Может<br />
быть это наблюдается на нескольких компьютерах и<br />
дело в коммутаторе? В общем, для решения проблемы<br />
нужно сначала отследить и точно определить ее. '''ДК'''<br />
<br />
==Удаление Linux==<br />
<br />
'''В:''' Купил Fedora Core 5 на DVD и проинсталлировал его на свой ноутбук Acer, думая, что буду<br />
иметь доступ к установленным программам Windows. И был неправ. Как вы уже поняли, я новичок<br />
в Linux. Знаю, что существует ''Wine'', позволяющий соединять Windows и Linux. К сожалению, когда я<br />
размечал жесткий диск, пропало мое беспроводное соединение с Интернет, и я не могу переподключиться. Также, у меня есть важное ПО на моей Windows XP, к которому больше нет доступа.<br />
<br />
Мой вопрос таков: как вернуть таблицу разделов,<br />
удалив Fedora Core 5 до тех пор, пока я не буду готов<br />
поставить ее? Пытался загрузить ''Partition Magic 8.0'',<br />
но оно не хочет работать, поскольку имеет формат<br />
exe-файла. Вдобавок мой ноутбук поставлялся с предустановленной Windows, и у меня нет дистрибутивного диска. Я посетил множество сайтов, но все решения требуют наличия диска с XP.<br />
<br />
'''Ари [Ari]'''<br />
<br />
'''О:''' Здесь есть два возможных варианта. Первый – Вы удалили Windows-раздел при установке Fedora Core, выбрав опцию удаления всех разделов. Тогда Вы потеряли Windows, и Вам нужно ее переустанавливать. Вы можете получить<br />
инсталляционный CD у производителя или поставщика Вашего ноутбука.<br />
<br />
Второй вариант – Windows все еще установлена,<br />
но потеряна возможность ее загрузки. Большинство<br />
установщиков различных дистрибутивов имеют опцию<br />
двойной загрузки с Linux, где Вы можете выбрать,<br />
какую ОС запускать, при каждом старте системы.<br />
Когда Вы увидите сообщение booting Fedora Core... in n seconds, нажмите на какую-нибудь клавишу; появится меню. Если Windows в нем есть, выберите ее, и Вы снова в Windows. Для удаления загрузчика Fedora<br />
Core, чтобы система сразу грузилась в Windows, Вам<br />
понадобится спасательный диск Windows. Вам не<br />
нужен дистрибутивный компакт-диск, Вы можете все<br />
исправить с помощью загрузочных дисков, доступных<br />
на http://www.bootdisk.com. Проще всего скачать образ через<br />
какой-нибудь компьютер с Windows и оттуда записать<br />
его на дискету.<br />
<br />
Загрузитесь с нее и запустите ''fixmbr'' для восстановления загрузчика Windows и удаления меню ''Grub''.<br />
Fedora Core останется на диске, но теперь Вы сможете запустить ''Partition Magic'' и удалить раздел с ней. ''НБ''<br />
<br />
==Перемещение через NFS==<br />
<br />
'''В:''' Я использую ''NFS'' между двумя компьютерами, но слышал, что это не самый быстрый способ транспортировки файлов. Что еще вы можете порекомендовать?<br />
<br />
'''Е. Мэйс [E Mays]'''<br />
<br />
'''О:''' В самом деле, есть отличный проект ''Network Block Device'' (http://nbd.sourceforge.net), компилируемый в ядро; по сути, он представляет удаленную файловую систему как локальное устройство. Недостаток в том, что Вы можете смонтировать<br />
его только на одной машине. Надеясь, что это для Вас<br />
не проблема, я помогу Вам запустить ''Network Block Device'' – он намного быстрее, чем ''NFS'' и гораздо легче<br />
в настройке.<br />
<br />
Во-первых, NBD использует как устройство файл, а не директорию, и Вам нужно создать файл нужного<br />
размера. Для создания гигабайтного NBD, выполните<br />
на сервере:<br />
<br />
dd if=/dev/zero of=/mnt/nbd-drive bs=1gb count=1<br />
<br />
Создастся файл '''/mnt/remote''' размером в 1 ГБ.<br />
Далее, сообщите NBD-серверу, чтобы он запустился на<br />
нужном порту и использовал наш файл. Для примера<br />
используем порт '''1077''':<br />
<br />
nbd-server 1077 /mnt/ndb-drive<br />
<br />
Когда он отработает, убедитесь, что модуль NBD<br />
загружен на клиентской машине, и запустите клиент:<br />
<br />
modprobe nbd.o<br />
nbd=client 192.168.1.2 1077 /dev/nd0<br />
<br />
Разумеется, этот '''IP''' нужно заменить адресом<br />
Вашего сервера. С Вашим NBD можно использовать<br />
любую файловую систему. Мы же отформатируем<br />
его в '''ext2''':<br />
<br />
mke2fs /dev/nd0<br />
<br />
Наконец, смонтируем его:<br />
<br />
mount -text2 /dev/nd0 /mnt/nbd-drive<br />
<br />
Если на Вашем сервере несколько сетевых карт,<br />
Вы можете запустить NBD на множестве портов:<br />
<br />
nbd-server 1077 1078 1079 1080 /mnt/ndb-drive<br />
<br />
Клиент тоже принимает множество IP-адресов и<br />
портов:<br />
<br />
nbd-client 192.168.1.2 1077 1078 192.168.2.2 1079 1080 /dev/nda<br />
<br />
'''ДК'''<br />
<br />
==Неизвестная web-камера==<br />
<br />
'''В:''' Нашел на полке web-камеру с подключением по USB, из маркировки на следует, что это «qb-300». Поиск по Vendor/ProdID (0c45/602a) указывает, что эта камера также известна как Microdia Meade ETX-105EC Camera. Можно ли заставить ее работать в<br />
Linux и какие пакеты для этого нужны (я использую Mandriva Linux 2007)? Камера работает под Windows, но только со своими драйверами, которые были утеряны.<br />
<br />
'''svartalf'''<br />
<br />
'''О:''' Не имея под рукой упомянутой камеры, сложно дать абсолютно точный ответ на Ваш вопрос, но мы все же попробуем. USB-<br />
устройство с указанными Вами параметрами поддерживается драйвером ''sn9c102'', который входит в последние версии ядра Linux или может быть загружен отдельно по адресу: http://www.linux-projects.org/modules/mydownloads/viewcat.php?cid=2. Для нормальной работы драйвера требуется включить в ядро<br />
поддержку подсистемы '''Video4Linux''' и '''USB'''. Точный<br />
список опций ядра, которые необходимо активировать, перечислен в файле '''sn9c102.txt''', который можно<br />
найти в архиве с исходными текстами ядра в подкаталоге '''Documentation/video4linux/''' (или же в архиве с<br />
самим драйвером, если Вы скачали его отдельно).<br />
Прежде чем пересобирать ядро, убедитесь, что в<br />
Вашей системе нет готового драйвера (скорее всего,<br />
это так): войдите как root и наберите ''modprobe sn9c102''. Если Вы получили сообщение об ошибке –<br />
значит, модуль отсутствует и должен быть собран. Для<br />
этого установите с дисков Mandriva пакет с исходными<br />
текстами ядра и инструментарий разработчика – как<br />
минимум, ''gcc'' и ''make''.<br />
<br />
После того, как драйвер будет установлен и загружен, потребуется установить приложение, которое<br />
работает с web-камерой. В принципе, Video4Linux –<br />
стандартный интерфейс для видеозахвата и поддерживается многими клиентскими приложениями<br />
(см. http://www.exploits.org/v4l/) – хотя бы, тем же ''MPlayer''. Если функциональности стандартных приложений для работы с web-камерой типа ''GnomeMeeting''<br />
или ''CamStream'' (эти программы включены в Mandriva)<br />
для Вас недостаточно, можете загрузить приложение,<br />
специально оптимизированное для работы с Вашей<br />
камерой, по адресу: http://www.stolk.org/sonic-snap/. Для<br />
Mandriva эту программу можно попытаться собрать из<br />
исходных текстов (понадобятся devel-пакеты ''FLTK'' и<br />
''FLAC'') или поискать в сторонних репозиториях.<br />
<br />
Следует отметить, что, несмотря на наличие в Linux<br />
специализированного драйвера, камера все же может<br />
не заработать. Дело в том, что ''sn9c102'' поддерживает<br />
фиксированный набор видеосенсоров, хотя с течением времени этот список расширяется. Если сенсор<br />
вашей камеры не поддерживается ''sn9c102'', среди<br />
сообщений ядра появится строка вроде: <br />
<br />
usb 4-1: No supported image sensor detected. <br />
<br />
Единственное, что можно порекомендовать в данном случае (при условии, что Вы используете последнюю версию драйвера) – это связаться с разработчиками и запастись терпением. '''ВС LXF'''<br />
<br />
== * Ключ на старт==<br />
<br />
'''В: ''' Как быстро и оптимально можно клонировать ASP Linux, установленный на 50 компьютеров?<br />
<br />
'''Дмитрий Алексеев'''<br />
<br />
'''О:''' Эту задачу можно решить несколькими способами. Если компьютеры полностью идентичны (или хотя бы<br />
имеют идентичные жесткие диски)<br />
и необходимо именно клонировать систему, можно просто<br />
посекторно скопировать жесткий<br />
диск командой ''dd'' или поискать<br />
для этого специальные средства.<br />
Кроме этого, дистрибутивы<br />
семейства Red Hat (в частности,<br />
ASP Linux) обладают функцией<br />
''Kickstart'' – специальной системой<br />
быстрого развертывания однотипной конфигурации на многих компьютерах. Я бы рекомендовал Вам<br />
организовать установку по сети и<br />
воспользоваться ''Kickstart''.<br />
Примерный «рецепт» может выглядеть так:<br />
<br />
* установите дистрибутив на «эталонный» ПК;<br />
* возьмите с эталонного ПК файл '''/root/anaconda-ks.cfg''' – сценарий ''Kickstart'', созданный на основе параметров текущей<br />
инсталляции;<br />
* установите сервер сетевой инсталляции;<br />
* модифицируйте '''anaconda-ks.cfg''' так, чтобы установка происходила не с CD, а, например, с локального FTP;<br />
* Раздайте '''anaconda-ks.cfg''', например, через DHCP. При этом оставшиеся 49 машин удобно загружать через '''PXE'''.<br />
<br />
Подробное руководство по ''Kickstart'' на русском языке можно найти по адресу: http://rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/pt-install-info.html<br />
'''АМ'''<br />
<br />
==Краткая справка. Серые листы==<br />
<br />
: Вооружитесь перед схваткой со спамом подобной утилитой.<br />
<br />
Спам, спам, спам. Это пожиратель времени, трафика и<br />
ресурсов системы. Мы пытаемся сократить эти потери,<br />
фильтруя почту и помечая спам-письма. Чем лучше это<br />
делается, тем сложнее спамерам обходить фильтры.<br />
Байесовские фильтры вроде ''SpamAssassin'' проверяют<br />
содержимое каждого письма; это эффективно, но<br />
сильно растрачивает системные ресурсы.<br />
<br />
Серые списки предлагают другой подход к фильтрации, еще до анализа контента. Когда новое письмо<br />
принимается от незнакомого адресата или отправляется человеку, которому вы еще не писали, фильтр<br />
отсеивает его со стандартным кодом ошибки ''SMTP 451'', означающим «сервер временно недоступен, пожалуйста, попробуйте позже». Любое стандартное почтовое ПО повторит попытку через несколько минут. Когда<br />
то же письмо приходит снова, ПО фильтрации по<br />
серым спискам принимает его и вносит в базу данных,<br />
чтобы следующие письма принимались сразу. Почему<br />
это работает? Потому что ПО для рассылки спама<br />
использует метод «отошли и забудь», чтобы отправить<br />
как можно больше сообщений, и не обращает внимание на ошибки и недоставленные письма. Ошибка<br />
будет проигнорирована, и сервер не повторит попытку,<br />
а через день или около того отправитель будет включен<br />
в черный список и все его будущие письма будут удаляться. Это решение снижает нагрузку на почтовый<br />
сервер, ценой небольшой задержки доставки первого<br />
письма.<br />
<br />
Функция фильтрации по серым спискам доступна<br />
для большинства популярных почтовых серверов.<br />
Например, для ''Postfix'' есть ''Postgrey'', по адресу http://isg.ee.ethz.ch/tools/postgrey.<br />
<br />
Подробности на http://www.greylisting.org.<br />
<br />
==Часто задаваемые вопросы…Магические клавиши==<br />
<br />
: Контролируйте ядро для безопасной перезагрузки.<br />
<br />
* '''Зачем на ПК есть кнопка перезагрузки?'''<br />
<br />
Потому что они поставляются с ОС от Microsoft.<br />
<br />
* '''Старая шутка, еще времен динозавров. По-вашему, Linux-программы никогда не падают?'''<br />
<br />
Ну, ядро Linux очень стабильно, это<br />
правда, и падение приложения обычно<br />
не влияет на систему в целом. Но какой-нибудь процесс может захватить слишком много процессорного времени и<br />
оперативной памяти, и потребуется<br />
перезагрузка. Или ядро запаникует и<br />
прервет загрузку системы.<br />
<br />
* '''Значит, кнопка перезагрузки всетаки нужна?'''<br />
<br />
Нет, не нужна. У Linux есть немного магии в ядре: нажмите '''Alt, SysRq''' и клавишу команды, и ядро обязательно отзовется, если оно, конечно, полностью не заблокировано. Поскольку это функция ядра, она становится доступна сразу<br />
после его загрузки, и ее можно использовать при инициализации системы.<br />
<br />
* '''У меня нет кнопки ''SysRq''. Что мне делать?'''<br />
<br />
'''SysRq''' используется так же, как '''PrintScreen''' – она может быть помечена<br />
одним из этих названий или обоими.<br />
<br />
* '''Что такое командные клавиши?'''<br />
<br />
Есть несколько командных клавиш для<br />
выполнения различных операций, но<br />
самые полезные – '''S, U''' и '''B''', в порядке<br />
перечисления. '''S''' синхронизирует все<br />
смонтированные файловые системы;<br />
это значит, что содержимое дискового<br />
кэша будет немедленно сброшено на<br />
диски. '''U''' размонтирует все смонтированые файловые системы и переподключит их в режиме только для чтения. Эти<br />
две операции дают уверенность в том,<br />
что содержимое дисков не пострадает.<br />
<br />
После этого можно безопасно выполнить третью команду '''B''' для перезагрузки<br />
(перезагрузка происходит немедленно).<br />
Поскольку диски синхронизированы,<br />
после перезагрузки не будет никаких<br />
предупреждений, и нет нужды запускать<br />
''fsck''.<br />
<br />
* '''Это хорошо при доступе к клавиатуре компьютера, а если я подключен удаленно?'''<br />
<br />
Вы можете выполнить эти магические команды так:<br />
<br />
echo s >/proc/sysrq-trigger<br />
<br />
При удаленном доступе к машине, можно выполнить синхронизацию и завершение работы.<br />
<br />
* '''Как запретить другим использование этих клавиш?'''<br />
<br />
Строки<br />
<br />
echo 0 >/proc/sys/kernel/sysrq<br />
echo 1 >/proc/sys/kernel/sysrq<br />
<br />
включают и выключают эту функцию соответственно; это разрешается только root. Можно также запретить отдельные<br />
команды, это описано в документации.<br />
<br />
* '''Какие другие клавиши и команды я могу использовать?'''<br />
<br />
Их слишком много, чтобы все их здесь<br />
описать; детали можно почерпнуть из<br />
документации к ядру. Если установлены<br />
исходные коды ядра, то она в файле '''/usr/src/linux/Documentation/sysrq.txt'''. В<br />
противном случае можете посмотреть их<br />
в сети по адресу http://www.gelato.unsw.edu.au/lxr/source/Documentation/sysrq.txt.<br />
Удачи!</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF89:%D0%9D%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5LXF89:Нестандартное программирование2010-03-01T14:40:47Z<p>Yaleks: /* Мысли напоследок */</p>
<hr />
<div>== Ruby без Rails ==<br />
''Вы слыхали о Ruby on Rails — а сейчас '''Майк Сондерс''' расскажет вам о его основе, Ruby, ярком примере современного языка высокого уровня…''<br />
<br />
'''Вот и еще одна статья из цикла об «экзотических» языках программирования. Язык Tcl, с которым мы познакомились месяц назад, очень подходит для разработки оконных приложений с графическим интерфейсом, а сейчас мы займемся Ruby, предназначенным для создания серверных и сетевых приложений. Заскучали? Напрасно. Сейчас объясним, почему.'''<br />
<br />
Мы постараемся не погрязнуть в техноязе: на то есть подробнейшая документация. Вместо этого мы начнем с основ языка, затем напишем простенькое приложение, а в завершение — полноценный web-проект. Вы уже знакомы с азами программирования? Отлично! Читайте дальше, и вы поймете, что Ruby достоин вашего внимания. Многие из нас слышали о Ruby в контексте Ruby on Rails, современного программного каркаса [framework]. На его основе сейчас разрабатываются крупные сайты (например, Basecamp, Jobster или 43 Things), и он поставляется с новой версией OS X, Leopard. На ринг Ruby вышел совсем недавно, и тем удивительнее тот факт, что его разработка ведется с 1993 года!<br />
<br />
Детище Юкихиро Мацумото [Yukihiro Matsumoto] увидело свет в 1995 году. Ключевой особенностью языка стал принцип освобождения программиста от черной работы. Зачем продираться через заковыристый синтаксис, если требуется сделать что-то простое?<br />
<br />
Проработав более двух лет на C++ и найдя, что он все еще сталкивается с неприятными сюрпризами, Мацумото решил создать язык, максимально оправдывающий ожидания — чтобы в нем программы делали именно то, что интуитивно предполагалось, и отсутствовали тупиковые случаи. «Прежде всего надо думать о людях», провозгласил Юкихиро, «о том, как они мыслят о программе и как представляют себе действия машин. Люди — хозяева. А машины — работники».<br />
<br />
С историей — все, теперь о кодировании: Ruby называют «мультипарадигменным» [multiparadigm] языком. Это жутковатое слово означает, что язык включает и объектно ориентированный подход, и процедуры с функциями. Ruby — интерпретирующий язык, и его синтаксис близок к Python и Perl, поэтому он осваивается без труда.<br />
<br />
=== Освоимся ===<br />
Для начала нам понадобятся интерпретатор языка Ruby и интерактивный интерпретатор ''irb'', поставляемые с большинством дистрибутивов. Последнюю версию этих программ вы найдете в разделе '''Разработка''' нашего DVD.<br />
<br />
Вызовем интерпретатор, набрав '''irb''' в командной строке. На экране появится строка приглашения — можно с ходу вводить операторы языка. По традиции полагалось бы вывести «Hello world» — «Здравствуй, мир», но это старо как мир… Будем оригинальны:<br />
<br />
<source lang="ruby"><br />
puts "Goodbye moon!"<br />
</source><br />
<br />
Вроде все ясно: команда '''puts''' просто выводит на экран текстовую строку. Но в Ruby абсолютно все, даже строковые константы, — это объекты. Может, оно и странно, зато позволяет делать штуки вроде<br />
<br />
<source lang="ruby"><br />
"BlaBlaBlaa".length<br />
</source><br />
<br />
С виду чушь, а на выходе печатается '''10''' — вполне настоящая длина строки. Или, например,<br />
<br />
<source lang="ruby"><br />
"Mmm, donuts".index("d")<br />
</source><br />
<br />
возвращает '''5''', позицию символа '''d''' в заданной строке. (Учтите, нумерация в Ruby начинается с нуля, а не с единицы.)<br />
<br />
Итак, Ruby — страна объектов, где программировать значительно проще. Вдобавок, это еще и язык с динамической типизацией: переменные не нужно объявлять до их использования. Вот пример:<br />
<br />
<source lang="ruby"><br />
puts "Do you love Ruby yet?"<br />
answer = gets<br />
puts "You answered " + answer<br />
</source><br />
<br />
На экран выводится вопрос, потом объявляется переменная '''answer''', и в нее тут же записывается результат команды '''gets''' (ввод строки с клавиатуры). Наш ответ затем выводится на экран.<br />
<br />
Заодно продемонстрирована операция над переменными: строки можно складывать ('''+''') и даже умножать:<br />
<br />
<source lang="ruby"><br />
mystring = "Some" + "text"<br />
puts mystring<br />
anotherstring = "Wowzers" * 10<br />
puts anotherstring<br />
</source><br />
<br />
Сначала две строки объединяются, и результат выводится на экран. Затем строка '''anotherstring''' заполняется десятью копиями строки '''Wowzers''', и результат также выводится на экран. Именно эффективные функции обработки текста обеспечили Ruby место под солнцем в мире разработчиков сайтов. Неплохо знать и метод '''chomp''' (вы могли встретить его в Perl): он убирает из строки последний символ, перевод строки ('''\n'''), который автоматически добавляется командой '''gets''' при вводе. Метод понадобится в тех случаях, когда нужно преобразовать введенную строку в число, то есть в «голые цифры»:<br />
<br />
<source lang="ruby"><br />
x = gets.chomp.to_i<br />
</source><br />
<br />
Мы создали переменную '''x''', ввели строку командой '''gets''', откинули у нее символ перевода строки с помощью '''chomp''' и методом '''to_i''' преобразовали ее в числовое значение, которое затем присвоили '''x'''. Тип переменной '''x''' можно проверить:<br />
<br />
<source lang="ruby"><br />
x = gets.chomp.to_i<br />
x.is_a?(Integer)<br />
x.is_a?(String)<br />
</source><br />
<br />
Это показывает, что '''x''' — число, а не строка. Но мы можем немедля использовать '''x''' и как строку, если надо — благодаря динамической типизации. [Вопросительный знак является допустимым символом и часто используется в Ruby в именах методов, которые «отвечают на вопрос», — прим. ред.]<br />
<br />
=== Условия, циклы и функции ===<br />
Разобравшись с переменными и вводом/выводом строк, перейдем к управляющим конструкциям языка. Каждый из приведенных ниже примеров нужно предварительно сохранить в текстовом файле и запускать командой '''ruby <имя_файла>'''. Сохраните следующий пример в файле '''test.rb''' и запустите командой '''ruby test.rb''' — он иллюстрирует использование условного оператора '''if''' и кодовых блоков:<br />
<br />
<source lang="ruby"><br />
puts "How many kittens do you have?"<br />
x = gets.chomp.to_i<br />
if x > 0 # More than zero kittens<br />
puts "You have " + x.to_s + " kittens"<br />
else<br />
puts "Aww, you have no kittens!"<br />
end<br />
</source><br />
<br />
Мы запрашиваем у пользователя строку, затем уже известным нам методом '''to_i''' преобразуем ее в число. Далее оператор условия '''if''' сравнивает введенное число с нулем. Если условие в операторе '''if''' истинно, число преобразуется в строку с помощью метода '''to_s''', чтоб вписать его в сообщение, и сообщение выводится его на экран.<br />
<br />
Если же пользователь ввел '''0''', выполняются команды, расположенные после '''else''', то есть выводится другое сообщение. Блок кода завершается командой '''end'''. Между прочим, для лучшей читаемости текста мы применили отступы — можно их вводить клавишей табуляции, а можно и просто пробелами. Все как в других языках!<br />
<br />
Справа от оператора '''if''' помещен комментарий (в языке Ruby они предваряются символом '''#''').<br />
<br />
С циклами тоже проблем нет:<br />
<br />
<source lang="ruby"><br />
10.times do<br />
puts "Ruby rocks"<br />
end<br />
</source><br />
<br />
Все ясно — десять раз выводится строка! Оператор '''while''' ничуть не сложнее:<br />
<br />
<source lang="ruby"><br />
x = 0<br />
while x != 15<br />
puts "Please enter 15"<br />
x = gets.chomp.to_i<br />
end<br />
</source><br />
<br />
Этот код требует у пользователя ввода строки до тех пор, пока не получит число '''15'''. Тогда он покидает блок '''while/end''' и продолжает выполнение кода (правда, в данном случае выполнять уже нечего).<br />
<br />
Программирование на языке высокого уровня обязательно подразумевает модульность, так что займемся процедурами. Как мы уже говорили, Ruby — объектно-ориентированный (ОО) язык, аналогично C++, C# или Python. Но даже если вы знакомы только с обычным C, можете не бояться ОО-сложностей, по крайней мере, на начальном этапе. Рассмотрим использование функций:<br />
<br />
<source lang="ruby"><br />
def doubler(value)<br />
value = value * 2<br />
return value<br />
end<br />
puts "Enter a number"<br />
x = gets.chomp.to_i<br />
y = doubler(x)<br />
puts y.to_s<br />
</source><br />
<br />
Первая половина скрипта — описание функции, она не будет исполняться при запуске. Функция '''doubler''' умножает число '''value''' (аргумент функции) на два и возвращает результат. Из кода видно, как используется функция. (Обратите внимание, что функции должны быть объявлены до их использования, иначе Ruby выдаст ошибку.)<br />
<br />
{{Врезка|<br />
Заголовок=Ссылки|<br />
Содержание=<br />
* http://www.ruby-lang.org Домашняя страница Ruby.<br />
* http://rubyforge.org Библиотеки и программы.<br />
* http://www.rubycentral.com/book Отличный учебный курс по Ruby.<br />
* http://tryruby.hobix.com Онлайн-курс.|<br />
Ширина=50%}}<br />
Выполнение программы начинается с команды '''puts''': у пользователя запрашивают число, и оно передается в качестве параметра функции '''doubler'''. Результат, возвращаемый функцией, записывается в переменную '''y'''. Наконец, значение переменной '''y''' выводится на экран. Создание объектов в Ruby выходит за рамки данной статьи; хотите узнать больше — обратитесь на сайты, указанные во врезке «Ссылки» на этой странице.<br />
<br />
=== Работать чисто ===<br />
Обработка исключительных ситуаций в Ruby блаженно проста, например:<br />
<br />
<source lang="ruby"><br />
puts "Divide 5 by what?"<br />
x = gets.chomp.to_i<br />
begin<br />
y = 10 / x<br />
rescue ZeroDivisionError<br />
puts "Eeep, divide by zero!"<br />
end<br />
puts y.to_s<br />
</source><br />
<br />
Мы берем у пользователя число, потом входим в блок '''begin/end''' с разделом '''rescue''' внутри. Если пользователь, допустим, введет '''5''', в переменную '''y''' записывается частное от деления '''10''' на '''5''' и результат выводится на экран.<br />
<br />
А вдруг он введет ноль? Возникнет ошибка. В таких случаях происходит возврат в командную строку и вывод сообщения, над которым вы и будете ломать голову. Но мы не зря ввели обработчик исключения. Возникшая исключительная ситуация (деление на ноль) будет зафиксирована, и выполнится оператор '''puts''' внутри обработчика исключения, который выведет на экран сообщение об ошибке.<br />
<br />
Обработка исключений исключительно удобна: она спасает вас от ползания по коду в поисках проблемы и вставки проверок куда ни попадя. Ваш опрятный и компактный код отловит множество видов ошибок при исполнении, открытии файла и т. д.<br />
<br />
=== Создаем web-сервер ===<br />
Применим полученные знания и напишем собственный… web-сервер! Экстрим? Да нет, в Ruby это совсем несложно, благодаря библиотеке socket. Конечно, для ''Apache'' наш сервер конкурентом пока не станет, но зато продемонстрирует возможности Ruby. И вообще, зачем устанавливать и настраивать мощный сервер, если вам всего-то нужно хранить пару web-страничек для доступа к ним по локальной сети? Вы напишете собственный сервер на Ruby быстрее, чем произнесете «/etc/apache/httpd.conf»!<br />
<br />
Сохраните следующий код в файле '''webserver.rb''' в вашем домашнем каталоге. (Если вам лень набирать, возьмите его из раздела '''Magazine/Ruby''' нашего DVD.) Затем создайте в этом же каталоге две HTML-странички: '''index.html''' и '''test.html''', с произвольным содержимым, лишь бы выводилось в браузере.<br />
<br />
<source lang="ruby"><br />
require 'socket'<br />
webserver = TCPServer.new('127.0.0.1', 7125)<br />
while (session = webserver.accept)<br />
session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"<br />
request = session.gets<br />
trimmedrequest = request.gsub(/GET\ \//, '').gsub(/\ HTTP.*/, '')<br />
filename = trimmedrequest.chomp<br />
if filename == ""<br />
filename = "index.html"<br />
end<br />
begin<br />
displayfile = File.open(filename, 'r')<br />
content = displayfile.read()<br />
session.print content<br />
rescue Errno::ENOENT<br />
session.print "File not found"<br />
end<br />
session.close<br />
end<br />
</source><br />
<br />
Запустите программу командой '''ruby webserver.rb''' и проверьте, как она работает. Для этого в адресной строке браузера введите '''<nowiki>http://127.0.0.1:7125</nowiki>'''. Если все нормально, вы должны увидеть содержимое странички '''index.html'''! Соответственно, набрав '''<nowiki>http://127.0.0.1:7125/test.html</nowiki>''', вы увидите содержимое странички '''test.html'''. Код говорит сам за себя, но мы все равно разберем его подробно.<br />
<br />
{{Врезка|<br />
Заголовок=Модные модули|<br />
Содержание=<br />
Ruby поставляется с набором модулей, расширяющих возможности языка, подобно библиотекам C модулям Python. В зависимости от используемого дистрибутива и версии Ruby их расположение может различаться, например, в Ubuntu 6.06, они расположены в каталоге '''/usr/lib/ruby/1.8/i486-linux/'''. В стандартную поставку входят модули для разработки сетевых приложений, сжатия данных с использованием ''zlib'', консольных приложений на базе ''Ncurses'' и многие другие. Их функциональность добавляется в программу строкой '''require''', как в нашем примере с сервером.<br />
<br />
Дополнительные модули можно загрузить через систему RubyGems, аналогичную CPAN для Perl. Разработаны модули для взаимодействия с базой данных MySQL, разработки приложений для Gnome и KDE и т.д. Похоже, недолго ждать времени, когда на Ruby можно будет сделать почти любое приложение рабочего стола. За дополнительной информацией обращайтесь на сайт [http://rubyforge.org RubyForge] (см. врезку «Ссылки»).|<br />
Ширина=40%}}<br />
Начинается код с команды '''require''', подключающей внешние библиотеки. В данном случае мы используем библиотеку '''socket''' — это набор процедур, сильно упрощающий сетевое программирование (см. врезку «Модные модули» справа). Следующая строка создает объект сервера на локальном IP-адресе '''127.0.0.1''' и порте '''7125'''. Номер порта может быть любым, но для использования портов до тысячного (например, '''80''') потребуются права администратора системы.<br />
<br />
У нас получился сервер локальной сети; а мы хотим, чтоб с ним могли работать web-браузеры. Цикл '''while''' обрабатывает запросы к серверу, пока в окне терминала не нажать клавиши '''Ctrl+C'''. Внутри этого цикла сервер принимает запрос клиента и посылает браузеру стандартный ответ из двух строк: сообщение, что запрос принят, и HTML-заголовок. Символы '''\r''' и '''\n''' означают «возврат каретки» и «перевод строки» соответственно.<br />
<br />
Затем обрабатывается запрос, полученный от браузера. Обычно он выглядит примерно так: '''GET /filename.html HTTP/1.1'''. Нам нужно определить в нем имя запрошенного файла. Сохраним строку запроса в переменной '''request''' и извлечем оттуда имя файла методом '''gsub''': он отделит от строки части GET и HTTP/1.1 при помощи регулярных выражений. '''Gsub''' напоминает командную утилиту '''sed''' — быстрый способ заместить или отделить части строковой переменной.<br />
<br />
От полученного имени файла с помощью метода '''chomp''' отделяется последний символ перевода строки, после чего результат сохраняется в переменной '''filename'''.<br />
<br />
Большинство web-серверов, если имя файла не указано, по умолчанию загружают '''index.html'''. Блок '''if''' так и делает: если строка с именем файла пуста, переменной '''filename''' присваивается '''index.html'''. Можно, конечно, использовать и другой файл.<br />
<br />
После этого (внутри блока '''begin/end''') мы открываем полученный файл на чтение и записываем в переменную '''content''' его содержимое, прочитанное с помощью функции '''read()'''. Содержимое файла отсылается браузеру, методом '''session.print'''. А вдруг такого файла не найдется? Тогда '''rescue''' отправит браузеру сообщение об ошибке.<br />
<br />
=== Мысли напоследок ===<br />
Вот сервер и готов. Удивительно просто, правда? Конечно, пока он обрабатывает только HTML-файлы — но были бы кости, мясо нарастет. Главное, что это пример применения Ruby в реальной задаче, и по нему видно, что код получается чудесно-простой и легко читаемый.<br />
<br />
В Ruby еще много чего можно исследовать, и так как Ruby on Rails продолжает набирать популярность, вы об этом языке, несомненно, еще услышите. Ясный и разумный синтаксис Ruby лучше всех прочих поможет разобраться с объектно-ориентированным программированием тем, кто привык к С или Basic. Внизу слева находится врезка «Ссылки», там вы найдете и учебники, и прочую информацию. А напишете нечто крутое — сообщите нам на форум http://unixforum.org/. Как знать, может, вашей будущей программы не хватает на нашем DVD…</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF110:PythonLXF110:Python2010-03-01T14:40:11Z<p>Yaleks: /* Вот и все */</p>
<hr />
<div>: '''Программирование''' Стрелялка в стиле «убей-их-всех» на ''PyGame'' для ретро-аркадных приколов [[Категория:Учебники]]р<br />
<br />
{{Цикл/Python}}<br />
<br />
==Создаем свою игру==<br />
<br />
: Руки чешутся пострелять? А также попрограммировать? Присоединяйтесь к '''Майку Сондерсу''': возродим классическую аркаду 1978 года всего 100 строками кода.<br />
<br />
Программирование – великая вещь. Можно создавать нечто абсолютно новое, стимулировать свой мозг и получать удовольствие в процессе – особенно если вы пишете игру. В последние месяцы вы просили нас опубликовать более проектно-ориентированный учебник, и сегодня мы попытаемся написать наше видение игры ''Space Invaders'' [Космические захватчики] под названием<br />
''PyInvaders''. Кто устал от сухой теории программирования, не паникуйте: мы займемся созданием Клевых Штук™ и сделаем игру рабочей, а не станем трещать об алгоритмах, структурах данных и объектно-ориентированном инкапсулированном полиморфизме. Или о чем-то типа этого.<br />
<br />
Однако следование данному руководству возможно, только если у вас есть опыт программирования. Мы не собираемся все разжевывать;<br />
если вы баловались написанием кода и раньше и знаете ваши массивы как свои пять пальцев, проблем у вас не будет. Для полных нулей<br />
в программировании некоторые термины будут загадочными, но вы не<br />
обязаны понимать их все. Почерпните из статьи то, что сможете, возьмите исходный код с '''LXFDVD''' и начните эксперименты, внося собственные изменения. Так начинали все программисты!<br />
<br />
Наш выбор языка программирования – ''Python'', потому что его простой синтаксис и чистота кода очень удобны для чтения. ''PyGame'', расширение языка, являющееся оберткой мультимедийной библиотеки ''SDL'' вокруг ''Python'', обеспечит графический водопровод для нашей программы, спасая нас от тяжкой ручной работы манипулирования<br />
изображениями. Большинство дистрибутивов имеют ''Python'' предустановленным, а ''PyGame'' доступен в ближайшем репозитории, поэтому собирайте инструменты, открывайте текстовый редактор, и начнем кодирование…<br />
<br />
===Часть 1 Пример на ''Python''===<br />
<br />
Прежде чем приступать к любому программному проекту, важно разобраться в языке, который вы собираетесь использовать, хотя бы в его<br />
основах. Учитывая, что 99% программ комбинируют манипулирование переменными (типизированные хранилища данных), вызов подпрограмм (отдельных кусков кода), и действий с результатом (если a = b делаем с), можно показать работу ''Python'' на очень кратком примере. (Если вы заядлый ''Python''’щик, просто пропустите его)<br />
<br />
<source lang=python><br />
def Multiply(x, y):<br />
z=x*y<br />
return z<br />
a=5<br />
b = 10<br />
print “a is”, a, “and b is”, b<br />
answer = Multiply(a, b)<br />
if answer > 10:<br />
print “Result is bigger than 10”<br />
else:<br />
print “Less or equal to 10”<br />
</source><br />
<br />
Программа короткая, но она демонстрирует массу возможностей<br />
''Python'' в действии. Сохраните этот код в файле под именем '''test.py''' в вашей домашней директории, затем откройте терминал и введите ''python test.py'' для его запуска. Вы должны увидеть несколько строк вывода на экране – это не интерактивная программа, поэтому она возвратит вас назад в командную строку.<br />
<br />
Первые три строки определяют ('''define''') функцию с именем '''Multiply''' –<br />
это кусок кода, который не запускается при старте приложения, а является разновидностью подпрограммы, вызываемой позже. '''x''' и '''y''' в строке описания функции – две переменные, которые нам надо послать в подпрограмму при ее вызове. Далее вы можете увидеть новую переменную '''z''', созданную внутри функции – ей присваивается произведение '''x''' и '''y'''.<br />
Потом мы возвращаем значение этой переменной обратно в вызывающую программу.<br />
<br />
После функции '''Multiply''' начинается выполнение основного кода.<br />
Мы знаем это, потому что здесь нет отступов – то есть знаков табуляции или пробелов в начале строки. В ''Python'' все завязано на использовании отступов, показывающих, где идет код, где он – часть функции или цикла и т.п. В нашем случае отступов нет, потому что это не часть предшествующей функции ''Multiply'', и запуск программы начинается<br />
отсюда.<br />
<br />
Мы создаем две переменные с именами '''a''' и '''b''', присваивая им<br />
значения '''5''' и '''10''' соответственно. (Переменная является контейнером для данных – она может содержать разную информацию в течение всего времени работы программы.) Мы выводим содержимое переменных и затем посылаем его в функцию '''Multiply''', которую создали ранее. Помните '''return''' в теле функции? Так вот, он вернет результат умножения, и мы сохраним его в новой переменной answer. Наконец, проверим, не больше ли переменная answer десяти; если да, печатаем<br />
сообщение. Если она меньше (или равна 10), печатаем другое сообщение. Попробуйте менять значения в этой программе и поэкспериментировать с кодом, чтобы освоиться с Python – не бойтесь, вы не сотрете все ваши файлы и не уничтожите вашу систему, допустив ошибку!<br />
<br />
====Нужна помощь?====<br />
<br />
{{Врезка|Заголовок=Скорая помощь|Содержание=В вашу ''Python''-программу можно добавить комментарии, набрав символ решетки ('''#''') перед их текстом. Вы можете поместить комментарий на своей строке, либо приписать в существующей, после кода – это полезно для отметки внесенных изменений или потенциальных ошибок.|Ширина=200px}}<br />
<br />
Чтобы разобраться в этом уроке, не обязательно быть гуру ''Python''. Если вы полностью поняли предыдущий фрагмент кода и пояснения к нему, вы готовы идти дальше. Но если вы хотите получше разобраться в ''Python'', в интернете для этого есть много великолепных ресурсов. См. превосходное руководство пользователя от Гвидо ван Россума, создателя ''Python'', на http://docs.python.org/tut.<br />
<br />
===Часть 2 Вторжение инопланетян===<br />
<br />
Перед написанием кода нужно разжиться графикой. Текстовый режим<br />
''Space Invaders'' увеличил бы ваш рейтинг среди технарей, но лучше не<br />
давать ржаветь нашим видеокартам. Для ''PyInvaders'' понадобится пять<br />
небольших изображений; их можно создать вручную с помощью ''GIMP''<br />
или позаимствовать из '''LXFDVD''' (в разделе '''Журнал/PyInvaders'''). Вот<br />
что вам нужно, если вы захотите создать их сами:<br />
<br />
* '''backdrop.bmp''' Изображение размером 640 x 480 пикселей, оно будет фоном игры. Лучше не делать его слишком ярким или сложным, это будет только отвлекать вас от спрайтов.<br />
* '''hero.bmp''' Изображение корабля игрока размером 32 x 32 пикселя; те части, которые должны быть прозрачными, надо залить черным цветом.<br />
* '''baddie.bmp''' Тоже корабль, но со злобными пришельцами.<br />
* '''heromissile.bmp''' и '''baddiemissile.bmp''' Снова 32 x 32 пикселя с черным цветом для прозрачных мест, с ракетой игрока, направленной вверх, и противника, направленной вниз. <br />
<br />
Создайте директорию '''PyInvaders''' в вашей домашней папке, а затем сделайте поддиректорию с именем<br />
'''data''', содержащую указанные выше файлы.<br />
<br />
Давайте также обсудим, что мы будем делать в игре типа ''Space Invaders''. Если вы никогда не видели ее раньше, то знайте: в ней есть несколько шеренг пришельцев, снующих вправо и влево в верхней<br />
части экрана, стреляющих ракетами и постепенно сдвигающихся вниз,<br />
в направлении игрока. Вы тоже можете палить во врагов ракетами:<br />
ваша цель – уничтожить их, прежде чем они уничтожат вас.<br />
<br />
====Код в целом====<br />
<br />
Чтобы сделать себе жизнь проще (а код компактнее), ограничимся<br />
одним рядом пришельцев и не будем делать счетчик очков или бонусы. Эти вещи можно добавить потом, когда вы разберетесь в происходящем! Здесь мы пройдемся по участкам кода, поясняя их, а полную<br />
версию программы можно найти в отдельном файле ('''PyInvaders.py''')<br />
раздела Журнал/PyInvaders на LXFDVD. Теперь читайте текст дальше,<br />
чтобы понять, как все это работает.<br />
<br />
<source lang=python><br />
from pygame import *<br />
import random<br />
</source><br />
<br />
Эти первые две строчки очень просты: они сообщают ''Python'', что<br />
мы хотим использовать модуль ''PyGame'', чтобы загружать изображения и легко управлять ими на экране, и дают нам потом генерировать случайные числа.<br />
<br />
<source lang=python><br />
class Sprite:<br />
def __init__(self, xpos, ypos, filename):<br />
self.x = xpos<br />
self.y = ypos<br />
self.bitmap = image.load(filename)<br />
self.bitmap.set_colorkey((0,0,0))<br />
def set_position(self, xpos, ypos):<br />
self.x = xpos<br />
self.y = ypos<br />
def render(self):<br />
screen.blit(self.bitmap, (self.x, self.y))<br />
</source><br />
<br />
Далее идет класс '''Sprite'''. Кто близко знаком с объектно-ориентированным программированием, уже знает, как он работает, а<br />
кто не знает, представьте его как тип хранилища для данных и команд.<br />
Этот код не запускается при старте программы – он просто говорит:<br />
«Вот хранилище данных и команд, называемое '''Sprite''', его мы используем позднее». Класс устанавливает переменные для спрайтов – главные здесь '''х''' и '''у''', они будут хранить координаты позиции спрайта на<br />
экране. Подпрограмма '''__init__''' запускается, когда мы хотим создать<br />
новый экземпляр класса (новое хранилище на основе этого описания),<br />
и загружает изображение спрайта по имени '''filename'''.<br />
<br />
Строка '''set_colorkey''' говорит ''PyGame'', что мы хотим сделать черные<br />
(0,0,0 в формате RGB) пиксели прозрачными.<br />
<br />
Новичков в объектно-ориентированном программировании все это<br />
может малость запутать. Но опять же, просто считайте это видом хранилища, содержащего переменные и подпрограммы (они помечены<br />
словом '''def'''), причем можно создавать много образчиков (экземпляров)<br />
этого хранилища с различным содержанием. Итак, создадим 10 экземпляров класса '''Sprite''' для врагов, один для игрока и так далее.<br />
<br />
<source lang=python><br />
def Intersect(s1_x, s1_y, s2_x, s2_y):<br />
if (s1_x > s2_x - 32) and (s1_x < s2_x + 32) and (s1_y > s2_y - 32) and (s1_y < s2_y + 32):<br />
return 1<br />
else:<br />
return 0<br />
</source><br />
<br />
Хоть этот кусок кода и выглядит сложным, не дайте ему вас смутить. Это ведь функция (обозначается '''def'''), и она не выполняется при запуске программы, но может быть вызвана позже. Здесь проверяется перекрытие двух спрайтов – он берет координаты пикселей '''х''' и '''у''' одного спрайта (переменные '''s1_x''' и '''s2_x''') и сравнивает их с позиций другого<br />
('''s2_x''' и '''s2_y'''), возвращая '''1''', если они перекрываются. Вуаля: простое<br />
обнаружение столкновений! Заметим, что в код жестко «зашиты»<br />
спрайты размером 32 x 32 пикселя, но вы можете изменить числа, если<br />
позже будете использовать спрайты побольше.<br />
<br />
<source lang=python><br />
init()<br />
screen = display.set_mode((640,480))<br />
key.set_repeat(1, 1)<br />
display.set_caption(‘PyInvaders’)<br />
backdrop = image.load(‘data/backdrop.bmp’)<br />
</source><br />
<br />
Далее мы инициализируем ''PyGame'', настраиваем режим экрана,<br />
конфигурируем повтор клавиш на более быстрое значение (для управления кораблем игрока), устанавливаем текст заголовка и загружаем<br />
фоновую картинку.<br />
<br />
<source lang=python><br />
enemies = []<br />
x=0<br />
for count in range(10):<br />
enemies.append(Sprite(50 * x + 50, 50, ‘data/baddie.bmp’))<br />
x += 1<br />
hero = Sprite(20, 400, ‘data/hero.bmp’)<br />
ourmissile = Sprite(0, 480, ‘data/heromissile.bmp’)<br />
enemymissile = Sprite(0, 480, ‘data/baddiemissile.bmp’)<br />
</source><br />
<br />
Здесь мы создаем новый список объектов – “'''enemies'''”, врагов (список в ''Python'' похож на массив на других языках, хотя гораздо более гибок). Список сперва пуст, поэтому мы в цикле добавляем ('''append''') 10<br />
новых объектов класса '''Sprite'''. Здесь вы можете увидеть, каким образом мы создаем экземпляры предварительно созданного класса (или копии хранилища), предоставляя первоначальные значения координат<br />
''x''', '''y''' и имя файла. Часть '''50 * х + 50''' выглядит немного странно, но это<br />
означает, что по горизонтали новые вражеские спрайты выстраиваются<br />
ступенчато. То есть х-координата первого спрайта равна 50, следующего – 100, и так далее, пока мы движемся по циклу.<br />
<br />
====К оружию! Залп!====<br />
<br />
Последние три строки в прошлом куске элементарны для понимания –<br />
они загружают спрайт для игрока (героя), ракету игрока и ракету противника. Вы помните, что мы выбрали режим экрана 640 x 480? Ну, а здесь мы установили y-координату ракеты (по вертикали) в 480, вблизи<br />
нижней части экрана, поскольку мы не хотим показывать их до тех пор,<br />
пока они не выстрелят.<br />
<br />
<source lang=python><br />
quit = 0<br />
enemyspeed = 3<br />
while quit == 0:<br />
screen.blit(backdrop, (0, 0))<br />
for count in range(len(enemies)):<br />
enemies[count].x += enemyspeed<br />
enemies[count].render()<br />
if enemies[len(enemies)-1].x > 590:<br />
enemyspeed = -3<br />
for count in range(len(enemies)):<br />
enemies[count].y += 5<br />
if enemies[0].x < 10:<br />
enemyspeed = 3<br />
for count in range(len(enemies)):<br />
enemies[count].y += 5<br />
</source><br />
<br />
Теперь беремся за основную часть игры. '''quit''' представляет собой<br />
переменную типа «да/нет» (1/0), она используется для определения<br />
конца игры (т.е. либо игрок уничтожил всех «плохишей», либо сам<br />
сбит их ракетой). Затем, '''enemyspeed''' определяет скорость перемещения врагов – вы можете поиграть с этим параметром позднее, чтобы усложнить игру.<br />
<br />
После этого игра переходит в основной цикл, начинающийся в<br />
строке '''while'''. Во-первых, мы рисуем фон со значениями координат '''х''' и<br />
'''у''' равными '''0''' и '''0''' соответственно (считая от верхнего левого угла экрана). Потом запускаем с помощью цикла подсчет врагов из ранее созданного списка объектов. '''len(enemies)''' сообщает, сколько вражеских<br />
объектов находятся в списке – это число будет уменьшаться от 10<br />
при каждом убийстве игроком «плохиша». В цикле мы увеличиваем<br />
'''x'''-координату для каждого объекта спрайта неприятеля, затем вызываем для него функцию '''render()''' в описании '''Sprite''' из начала файла.<br />
<br />
Следующие два цикла определяют направление и вертикальную позицию ряда врагов. Если крайний правый враг,<br />
'''enemies[len(enemies)-1]''', достигает правой стороны экрана (590 пикселей), то посылается сигнал движения в другом направлении путем инвертирования значения скорости. Кроме того, враги передвигаются вниз путем добавления 5 к их '''у'''-координате (по вертикали).<br />
<br />
Следующий цикл делает то же самое, но для левой части экрана.<br />
<br />
<source lang=python><br />
if ourmissile.y < 479 and ourmissile.y > 0:<br />
ourmissile.render()<br />
ourmissile.y -= 5<br />
if enemymissile.y >= 480 and len(enemies) > 0:<br />
enemymissile.x = enemies[random.randint(0,<br />
len(enemies) - 1)].x<br />
enemymissile.y = enemies[0].y<br />
</source><br />
<br />
Пора заняться ракетами. Первое условие '''if''' создает изображение<br />
ракеты игрока, если она на экране (то есть в игре), уменьшая на 5 пикселей ее '''y'''-координату на каждой итерации цикла, чтобы она перемещалась вверх по экрану. Вторая часть кода проверяет, есть ли в игре вражеские ракеты – если это не так, она создает одну новую от случайно выбранного противника. Она делает это путем установки '''x'''-координаты<br />
ракеты одного из врагов: '''random.randint(0, len(enemies) - 1)''' выбирает врага в списке объектов в диапазоне от '''0''' (первый противник) до последнего врага, согласно размеру списка.<br />
<br />
<source lang=python><br />
if Intersect(hero.x, hero.y, enemymissile.x, enemymissile.y):<br />
quit = 1<br />
for count in range(0, len(enemies)):<br />
if Intersect(ourmissile.x, ourmissile.y, enemies[count].x,<br />
enemies[count].y):<br />
del enemies[count]<br />
break<br />
if len(enemies) == 0:<br />
quit = 1<br />
</source><br />
<br />
====За рамки столкновений====<br />
<br />
Теперь об обнаружении столкновений. Если спрайт игрока (героя) вступил в контакт со спрайтом противника, то надо выйти из игры. В следующем участке кода мы перебираем список врагов в цикле ‘'''for'''’ c целью обнаружения, не пересекается ли кто-нибудь из них с нашей ракетой. Если да, мы удаляем объект противника, которого коснулся снаряд, из списка и прерываем цикл (чтобы не продолжать работу с уже несуществующим объектом). По удалении вражеского объекта список становится короче. Наконец, мы проверяем, не равна ли длина списка врагов нулю – это произойдет, когда игрок уничтожит всех противников. Если<br />
да, выходим с победой!<br />
<br />
<source lang=python><br />
for ourevent in event.get():<br />
if ourevent.type == QUIT:<br />
quit = 1<br />
if ourevent.type == KEYDOWN:<br />
if ourevent.key == K_RIGHT and hero.x < 590:<br />
hero.x += 5<br />
if ourevent.key == K_LEFT and hero.x > 10:<br />
hero.x -= 5<br />
if ourevent.key == K_SPACE:<br />
ourmissile.x = hero.x<br />
ourmissile.y = hero.y<br />
</source><br />
<br />
А вот блок поддержки клавиатуры. Мы получаем список событий<br />
''SDL'' (клавиатура, мышь, оконный менеджер и т.д.) и работаем с ним.<br />
Если мы видим событие '''QUIT''', это означает, что пользователь пытался<br />
закрыть окно, поэтому устанавливаем переменную '''quit''', которая вызовет прерывание нашей программы в основном цикле ‘'''while'''’. В свою очередь, если произойдет событие '''KEYDOWN''', то мы должны его обработать. Тут все кристально ясно: если нажата клавиша курсора вправо и мы не вылетели за экран, добавьте 5 к горизонтальной позиции игрока.<br />
Похожее действие необходимо выполнить для клавиши курсора влево,<br />
но наоборот. Мы также проверяем клавишу '''Пробел''': если она нажата,<br />
порождаем новую ракету, поместив ее в положение, где находится<br />
спрайт игрока.<br />
<br />
<source lang=python><br />
enemymissile.render()<br />
enemymissile.y += 5<br />
hero.render()<br />
display.update()<br />
time.delay(5)<br />
</source><br />
<br />
И вот последний кусок кода. Мы выводим вражескую ракету и перемещаем ее вниз по экрану, а затем выводим спрайт игрока. Отметим,<br />
что '''display.update()''' – существенная часть программирования ''PyGame''.<br />
Что бы вы ни делали на экране, оно не будет реально отображаться,<br />
пока вы не вызовете эту подпрограмму; именно поэтому ее вызов расположен в конце основного цикла игры '''while'''. Наконец, мы добавляем задержку, чтобы игра не протекала слишком быстро – попробуйте с ней поэкспериментировать.<br />
<br />
====Вот и все====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF110_77_1.jpg|300px]]Наша игра закончена! Взгляните на пришельцев. Правда, страшные?|Ширина=300px}}<br />
<br />
Код завершен! Он достаточно большой, если вы новичок в ''Python'' и<br />
''PyGame'', но если тщательно ему следовать, то можно понять его смысл.<br />
Возьмите полный файл (''PyInvaders.py'') из раздела '''Журнал/PyInvaders'''<br />
LXFDVD, затем скопируйте его в созданную ранее директорию<br />
'''PyInvaders''', в которой также содержится директория с изображениями.<br />
Затем откройте терминал и введите:<br />
<br />
cd PyInvaders<br />
python pyinvaders.py<br />
<br />
для запуска игры. Если у вас возникли проблемы с его работой, или<br />
вы совершенно запутались в какой-то из концепций программирования, зайдите на наш форум http://unixforum.org/ и оставьте сообщение в разделе '''Программирование'''. Кто-нибудь обязательно подаст вам руку помощи. '''LXF'''<br />
<br />
====Переходим на новый уровень====<br />
<br />
Если вы разобрались в коде, почему бы не<br />
украсить ''PyInvaders'' новыми функциями?<br />
Ниже приведены советы о возможных изменениях…<br />
* '''Легко''' Добавить счетчик очков. Все, что для этого нужно – добавить '''score = 0''' где-то в начале кода, создав новую переменную, а затем увеличивать его ('''score += 1''') при каждом попадании в противника. Потом при выходе из программы вы можете вставить '''print “You scored:” score''' для отображения баллов игрока.<br />
* '''Средне''' Проверка столкновения «ракета-ракета». Сейчас игра определяет, когда ракета попала в космический корабль, но не когда одна ракета столкнулась с другой. Можно добавить проверку посреди кода, рядом с нынешней подпрограммой обнаружения столкновений, а потом сбрасывать позиции ракет игрока и противника, если они соприкасаются.<br />
* '''Сложно''' Добавить еще один ряд инопланетян. Вам придется продублировать часть кода. Во-первых, если вы захотите создать второй список спрайтов врагов, позиция y должна быть больше, чем в существующем ряде (например, 100). Тогда вам придется еще раз добавить проверку столкновений и создать еще одну вражескую ракету. Она безусловно усложнит игру!<br />
<br />
Есть немало и других идей, которые можно реализовать: например, изменять спрайты при попадании ракеты или добавить джойстик. См.<br />
http://www.pygame.org/docs – в частности, раздел '''Tutorials''' и руководство игры '''Chimp''' для получения справки по использованию звуковых эффектов.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF109:EeeLXF109:Eee2010-03-01T14:39:35Z<p>Yaleks: </p>
<hr />
<div>: Asus Eee PC Замена вашего дистрибутива альтернативой новее и лучше [[Категория:Учебники]]<br />
<br />
==Eee PC: Смена дистрибутива==<br />
<br />
{{Цикл/Asus Eee}}<br />
<br />
: '''Часть 3''': Недовольны ограничениями встроенного дистрибутива Xandros? '''Майк Сондерс''' научит, как сменить систему на вашем микроноутбуке.<br />
<br />
Мы подошли к последней части нашего учебника о том, как добиться большего от Asus Eee PC, но самую потеху приберегли на конец. Месяц назад мы рассматривали установку добавочного дистрибутива на SD-карту, создав возможность выбирать между загрузкой Xandros и облегченным Breeezy. Сегодня мы доведем дело до конца и поставим полный дистрибутив на главный накопитель Eee.<br />
<br />
Спросите, зачем вам это надо? Конечно, стандартный Xandros<br />
великолепен для повседневных задач: быстро загружается, содержит<br />
все важные приложения, позволяет добавлять новые. Но у него есть и<br />
недостатки, которые можно устранить сменой дистрибутива:<br />
* '''Безопасность''' Asus всегда тянет резину с выпуском обновлений безопасности для Eee, что сильно раздражает некоторых пользователей. Лишь пользуясь современным, регулярно обновляемым дистрибутивом, можно быть уверенным, что вам ничего не угрожает.<br />
* '''Универсальность''' Репозитории Xandros полны приложениями, но их не столько, сколько имеется у Ubuntu, и есть риск перезаписи пакетов, специфичных для Eee (например, ядра) типовыми пакетами Xandros’а. Имея же полный универсальный дистрибутив, вы сможете брать больше программ и не опасаться, что один пакет испортит другой.<br />
* '''Привычка''' Может быть, вам просто удобнее работать с другим дистрибутивом, где вы разобрались с файловой иерархией и утилитами настройки. Поменяв систему, вы сможете воссоздать ваш настольный компьютер на Eee.<br />
<br />
На данном уроке мы рассмотрим два дистрибутива: Mandriva и<br />
Ubuntu. Первый, в своем воплощении 2008 Spring, идеально подходит для Eee, тогда как добиться гладкой работы Ubuntu немного<br />
сложнее. Чтобы выполнить наши инструкции, Eee потребуется 4 ГБ на внутренней флэш-памяти (модели с 2 ГБ могут работать с меньшими дистрибутивами, но не с Mandriva или Ubuntu: тем понадобится серьезная настройка).<br />
<br />
===Часть 1 Установка Mandriva===<br />
<br />
Для инсталляции нового дистрибутива на Eee вам понадобится внешний CD/DVD-привод. Установка системы с USB-брелка тоже возможна, но зачастую это очень тонкая и сложная работа, требующая большой возни с утилитой ''fdisk'', создающей разделы диска. А чтобы<br />
начать инсталляцию с внешнего оптического накопителя, достаточно<br />
просто вставить CD. Если у вас нет такого привода и негде его занять,<br />
придется купить.<br />
<br />
Переживать за свой бюджет тут особо нечего: в онлайн-магазинах они стоят меньше 2000 рублей, а если вам повезет найти чистый CD-<br />
ROM (без DVD) – то еще дешевле. Какое бы из стандартных внешних<br />
USB-устройств без лишних наворотов вы ни взяли, оно отлично заработает с Eee. Кто не уверен в выборе, расспросите сторонников Eee на дружелюбном форуме http://forum.eeeuser.com или http://unixforum.org/.<br />
<br />
Учтите, что двигатель привода CD/DVD способен скорехонько посадить батарею; будет разумным, присоединив привод к Eee и готовясь<br />
начать установку дистрибутива, подключить мини-ноутбук к сети питания. Куда как неприятно проделать 70% работы, увидеть зловещее<br />
мигание лампочки, забегать в поисках адаптера питания и вернуться к<br />
погасшему ноутбуку. При подключенном и работающем внешнем приводе батарея Eee протянет в лучшем случае час или около того, вместо<br />
привычных трех.<br />
<br />
====Это просто работает!====<br />
<br />
Последний выпуск Mandriva, Spring 2008, полностью поддерживает<br />
оборудование Eee PC. На Eee отлично работают беспроводная сеть,<br />
управление питанием и экранные функции, а после основной установки<br />
не придется тратить время на поиски файлов конфигурации и дополни-<br />
тельных пакетов. На диске '''LXFDVD''' в разделе '''Дистрибутивы/Mandriva'''<br />
вы найдете ISO-образ Live-дистрибутива '''mandriva-one-2008-spring.iso''',<br />
не требующего установки. Запишите его на CD-R диск программой ''K3b'',<br />
воспользовавшись меню '''Инструменты > Записать ISO-образ''' [Tools > Write ISO Image]. Для загрузки и установки Mandriva на ваш Eee следуйте инструкциям:<br />
<br />
====Шаг за шагом: Установка Mandriva на Eee====<br />
<br />
[[Изображение:LXF109_65_1.jpg|Шаг 1]]<br />
<br />
'''1 Запуск'''<br />
<br />
Подключите ваш внешний USB-привод к Еее, вставьте Mandriva CD-R<br />
и нажмите Esc на экране загрузки. Теперь можно стартовать с внешнего привода CD/DVD, а не внутреннего флэш-накопителя.<br />
<br />
[[Изображение:LXF109_65_2.jpg|Шаг 2]]<br />
<br />
'''2 Загрузка'''<br />
<br />
Mandriva загрузится. Вам зададут вопросы про язык и настройки клавиатуры, и нужны ли вам 3D-эффекты рабочего стола – отключите<br />
их, если гонитесь за производительностью.<br />
<br />
[[Изображение:LXF109_65_3.jpg|Шаг 3]]<br />
<br />
'''3 Установка'''<br />
<br />
Для постоянной установки Mandriva дважды щелкните по значку «'''Live install'''» на рабочем столе. Учтите, что на внутреннем флэш-накопителе Eee все будет удалено, так что предварительно сделайте резервные копии!<br />
<br />
[[Изображение:LXF109_65_4.jpg|Шаг 4]]<br />
<br />
'''4 Создание разделов'''<br />
<br />
Самый простой способ – предоставить Mandriva управляться самой,<br />
так что выберите «'''Erase And Use Entire Disk'''», задав в качестве устройства '''sda''' (внутренний накопитель).<br />
<br />
[[Изображение:LXF109_65_5.jpg|Шаг 5]]<br />
<br />
'''5 Ожидание'''<br />
<br />
Mandriva пойдет копировать свои файлы на Eee. На нашей машине<br />
с внешним CD/DVD скорости 24x процесс занял примерно 10 минут.<br />
Если ваш привод медленнее, времени потребуется больше.<br />
<br />
[[Изображение:LXF109_65_6.jpg|Шаг 6]]<br />
<br />
'''6 Завершение'''<br />
<br />
Вас попросят подтвердить несколько установок для загрузчика (просто примите параметры по умолчанию). Нажмите '''Далее''' [Next], затем '''Готово''' [Finish], затем щелкните по кнопке Меню (слева внизу), завершите сессию и выключите компьютер.<br />
<br />
Теперь дистрибутив ваш; нажмите кнопку питания и включите Eee.<br />
При первой загрузке вам будет задано с десяток вопросов по настройке, первый из которых касается сети. Вы можете настроить и проводное (Ethernet), и беспроводное соединение. В последнем случае<br />
система предложит список Wi-Fi-сетей, к которым есть возможность<br />
подключиться.<br />
<br />
Затем вам нужно будет задать пароль для пользователя '''root''' (администратора), а также создать учетную запись для обычного пользователя. Не забывайте информацию, которую вы здесь введете! После<br />
этого система предложит вам присоединиться к сообществу Mandriva,<br />
но если вас это не интересует, жмите '''Отклонить''' [Decline]. Наконец, вы<br />
увидите экран входа в систему: введите заданные вами выше имя пользователя и пароль – и вот вы на рабочем столе KDE.<br />
<br />
====Использование Mandriva====<br />
<br />
Mandriva – сама простота: для просмотра установленных программ<br />
нажмите кнопку Меню в левом нижнем углу; для настройки системы<br />
или установки нового оборудования щелкните по значку '''Настроить компьютер''' [Configure Your Computer] на нижней панели (сразу слева от иконки ''Firefox''). Обратите внимание, что превосходно работают все<br />
операции, контролируемые клавишей '''Fn''' (например, яркость экрана<br />
или громкость), и в целом установка на Eee поразительно гладкая. С<br />
вопросами или проблемами, или просто при желании пообщаться с<br />
пользователями, установившими Mandriva на свои Eee, обрашайтесь<br />
на сайт http://forum.eeeuser.com, где есть отдельная ветка, посвященная этому дистрибутиву.<br />
<br />
{{Врезка| Заголовок=Скорая помощь | Содержание= Обратите внимание, что полная смена дистрибутива удаляет с Eee скрытый раздел<br />
восстановления. Если вы хотите вернуть Xandros и у вас нет резервной копии, загрузите ваш Eee с поставляемого с ним DVD. | Ширина=200px}}<br />
<br />
===Часть 2 Установка Ubuntu===<br />
<br />
Ubuntu 8.04 работает на Eee хорошо, хотя его поддержка оборудования<br />
не столь полная , как у Mandriva, и после установки придется немного<br />
поработать. К счастью, действия по установке дополнительных драйверов и настройке интерфейса для экрана с низким разрешением можно автоматизировать готовыми скриптами. Если у вас есть экземпляр '''LXF107''', можете установить Ubuntu с LXFDVD, если же нет, или ваш внешний привод только CD, придется скачать ISO-образ Ubuntu 8.04 с http://www.ubuntu.com и записать его на CD-R.<br />
<br />
Вставьте диск в ваш внешний привод, подсоедините его к Eee и включите ноутбук. Попав на загрузочный экран Asus’а, жмите на<br />
'''Esc''', пока не попадете в загрузочное меню. Здесь вы можете выбрать<br />
загрузку с внешнего привода (а не с внутреннего флэш-накопителя) с<br />
помощью клавиш курсора. После этого вы увидите загрузочное меню<br />
Ubuntu; оно позволит вам запустить дистрибутив в режиме '''Live''' (работы<br />
непосредственно с CD/DVD) или перейти прямо к установке. Мы воспользуемся последней опцией.<br />
<br />
====Разомните пальчики====<br />
<br />
Загрузка у Ubuntu не самая быстрая – один установщик займет пару<br />
минут, так что не паникуйте, если вам покажется, что все зависло.<br />
Попав на экран инсталлятора, следуйте указаниям, как при обычной<br />
установке Ubuntu. На этапе создания разделов выберите '''Использовать весь диск''' [Use entire disk] для привода '''sda'''. Естественно, это удалит все данные на Eee.<br />
<br />
После установки, загрузив Ubuntu с внутреннего накопителя, вы<br />
заметите, что разрешение экрана выставлено правильно, звук работает, но кое-чего не хватает – главное, отсутствуют поддержка беспроводного соединения и экранные сообщения для комбинаций клавиш с<br />
'''Fn''' (изменение громкости и пр.).<br />
<br />
Чтобы поправить дело, подключите ваш Eee к проводной сети (Ethernet). После этого откройте окно с командной строкой ('''Applications > Accessories > Terminal''') и введите следующее:<br />
<br />
wget http://eee.ricey.co.uk/files/eee/RiceeeyTweak.sh<br />
sh RiceeeyTweak.sh<br />
<br />
Скачается и выполнится скрипт, настраивающий установку Ubuntu по многим пунктам. Вы получите: более мелкие шрифты; лучшее<br />
управление питанием; экранные подсказки при изменении громкости<br />
и яркости; и поддержку Wi-Fi. Также появится утилита рабочего стола под названием «''Overclock''», которая разгоняет CPU до 900 MГц (по умолчанию он работает на 630 MГц). Это даст выигрыш в производительности, но ценой большего разогрева и меньшего срока работы батареи.<br />
<br />
====Все готово!====<br />
<br />
Итак, у вас теперь полный дистрибутив, какой уж вы там выбрали –<br />
Mandriva или Ubuntu. Ваш Eee стал мощнее и способнее, и вы можете<br />
получать регулярные обновления. Если вы выполняли урок прошлого<br />
месяца, то сделали резервную копию установки Xandros, и в случае<br />
необходимости сможете вернуться обратно за считанные минуты.<br />
<br />
Насладитесь новым дистрибутивом и черкните пару строк о ваших<br />
достижениях на форумы сайта '''LXF''', http://unixforum.org/. Пишите, если<br />
вы нашли трюк, делающий эти дистрибутивы еще лучше, или даже<br />
если вы попробовали на вашем Eee совсем другой дистрибутив!<br />
<br />
===Часть 3 Прочие дистрибутивы===<br />
<br />
Из крупных дистрибутивов на Eee сейчас лучше всего поддерживаются Mandriva и Ubuntu, но если у вас иные предпочтения, вам есть что<br />
попробовать. В разработке находятся многие побочные проекты, где<br />
хакеры – владельцы Eee берут свои любимые разновидности Linux и<br />
настраивают их для эффективной работы с оборудованием Eee и на<br />
крохотном экране. Взглянем на наиболее заметные альтернативы для<br />
Ubuntu и Mandriva на Eee…<br />
<br />
====EeeDora====<br />
<br />
: Основан на Fedora<br />
: Сайт http://www.complexvalues.com<br />
<br />
Ежу понятно, что EeeDora – дистрибутив, поддерживаемый сообществом Red Hat. Он доступен в двух ипостасях: загрузочного ISO-<br />
образа, который можно записать на CD-R, и Zip-файла, распаковываемого на USB-брелок. Как упоминалось в начале этого учебника,<br />
подготовка дистрибутива к запуску с USB-брелка часто выливается<br />
в сложную процедуру, но, к счастью, в Fedora есть утилита, которую<br />
можно использовать для преобразования ISO-образа в дистрибутив,<br />
загружаемый с USB. Правда, нужно знать узел устройства для раздела USB-брелка – обратитесь к документации на сайте EeeDora за<br />
полным списком инструкций по установке.<br />
<br />
====EeePCLinuxOS====<br />
<br />
: Основан на PCLinuxOS<br />
: Сайт http://www.eeepclinuxos.com<br />
<br />
Как вы, наверное, уже слышали, PCLinuxOS – стремительно восходящая звезда в мире дистрибутивов, и каждый день он завоевывает<br />
новых поклонников. Сочетание приятной темы рабочего стола, дружелюбных инструментов настройки и происхождение от Mandriva делает его хорошим выбором. Эта специальная версия для Eee находится<br />
только на стадии бета 3-1, но уже выглядит впечатляюще, вмещая<br />
яркие эффекты рабочего стола, сделавшие PCLinuxOS столь узнаваемым.<br />
<br />
Можете попробовать две версии EeePCLinuxOS: полный ISO-образ (700 MБ) включающий (в сжатом виде) более 2 ГБ приложений, или<br />
меньшую версию Base, вообще без программ. Последняя предназначена для опытных пользователей, которые точно знают, что они хотят<br />
добавить после установки, и не растеряются, увидев голый рабочий стол.<br />
<br />
Один разработчик EeePCLinuxOS работает над специальным интерфейсом для дистрибутива, имитирующем '''Easy Mode''' от Xandros. Он<br />
заменит обычное меню '''Start''' и панель задач большими толстыми кнопками, что идеально для новичков и детей, которым надо запускать только несколько приложений – изначальный целевой рынок Еее.<br />
<br />
====Ubuntu Eee====<br />
<br />
: Основан на Ubuntu<br />
: Сайт http://www.ubuntu-eee.com<br />
<br />
Проекты для объединения Ubuntu с оборудованием Eee разрабатываются вовсю, но наиболее обещающий сейчас тот, что изобретательно<br />
назван Ubuntu Eee. Он основан на Ubuntu 8.04 и подгружает необходимые драйверы и настройки, чтобы дистрибутив запускался гладко,<br />
не хуже скрипта ''RiceeeyTweak.sh'' с предыдущей страницы. Ubuntu Eee вышел как раз когда мы заканчивали этот учебник, и у нас не было времени его протестировать. Кто рискнет попробовать – дайте нам знать, что у вас получилось.<br />
<br />
====Zeee====<br />
<br />
: Основан на Zenwalk<br />
: Сайт http://tinyurl.com/6ldtu9<br />
<br />
Zenwalk – один из самых резвых дистрибутивов, а значит, отличный<br />
кандидат для установки на Eee. Его разработка шла неплохо примерно<br />
до начала лета, а затем наступил спад. Но это очень обещающий и легкий дистрибутив, и если вы набили руку на командной строке и хотите вдохнуть новые силы в проект, просмотрите форум по ссылке выше<br />
(обратите особое внимание на посты основателя проекта Alisou). '''LXF'''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF76:%D0%A2%D1%80%D1%8E%D0%BA%D0%B8_%D1%81_%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D0%BE%D0%BCLXF76:Трюки с железом2010-03-01T14:38:48Z<p>Yaleks: /* Заключительное слово */</p>
<hr />
<div>: Настройка оборудования<br />
<br />
=Железная работа вашего "железа"=<br />
<br />
: В наши дни к компьютерам подключается огромное количество устройств – камеры, принтеры, различные плееры типа iPod – и важно правильно настроить вашу систему на работу со всем этим многообразием. '''Грэм Mоррисон''' (Graham Morrison) поможет вам заставить работать любимую «железку» в Linux.<br />
<br />
Когда вы выбираете Linux в качестве своей операционной системы, вы получаете для себя<br />
массу преимуществ по сравнению с рядовыми пользователями компьютера. Этим<br />
выбором вы защищаете себя от вирусов, приобретаете операционную систему с<br />
изумительной стабильностью и, вероятно, экономите огромную кучу денег. Да, есть и оборотная сторона у этой медали, и основной проблемой можно считать поддержку в Linux различного<br />
оборудования – почти каждый, кто<br />
использует Linux, рано или поздно<br />
наткнется на устройство, которое откажется с ним сотрудничать. Но так быть не<br />
должно…<br />
<br />
Пользователи Linux почти полностью зависят от работы добровольцев, проектирующих и реализующих драйверы, необходимые для функционирования оборудования. Без соответствующей документации<br />
эти разработчики часто вынуждены долго блуждать вокруг да около, разбираясь с<br />
тем, как то или иное устройство на самом деле работает, прежде чем приступать к<br />
разработке кода. также есть проприетарные драйверы – закрытые решения, предоставляемые такими фирмами, как NVidia и ATI. На жестоком рынке 3D-графики совершенно понятно, что производители очень осторожно относятся к своей интеллектуальной собственности. Но это вынуждает людей<br />
задумываться об альтернативных свободных решениях и заставляет воздерживаться от включения фирменных драйверов во<br />
многие открытые дистрибутивы.<br />
<br />
Установка оборудования в Linux становится все проще, особенно с учетом улучшений, сделанных за последнюю пару лет<br />
и затронувших устройства USB, но всегда можно сделать еще лучше. Мы намерены<br />
пройтись по всей проблемной периферии и добьемся, что ваш Linux-компьютер и подключенное к нему оборудование будут работать на все 100. Мы затронем графические карты, сетевые устройства, принтеры, сканеры и даже ваш iPod.<br />
<br />
==Mастера ввода==<br />
<br />
: Клавиатуры, мыши и джойстики – это, вероятно, простейшие устройства, которые вам когда-либо придется использовать; они, несомненно, наиболее важны. И здесь мы поговорим о том, как выжать из них все.<br />
<br />
===Клавиатуры===<br />
<br />
Многие современные клавиатуры обладают дополнительными клавишами для таких задач, как управление медиаплеером. За их работу в Linux отвечает ''X Window System'' ['''конечно, речь идет о графическом рабочем окружении, – прим. ред.'''], как ни странно это звучит, и вам требуется знать модель клавиатуры, что-бы выполнить назначение функций новым клавишам. Некоторые дистрибутивы позволяют вам делать это с помощью своих<br />
графических конфигураторов. Например, в SUSE и Mandriva есть панели конфигурации клавиатуры, доступные в ''YaST'' и<br />
''Control Center'' соответственно. Эти инструменты просто добавляют поле '''XkbModel''' в<br />
конфигурационный файл ''X Window'' ('''/etc/xorg.conf''') в секцию '''Input Device'''. Когда<br />
вы что-нибудь меняете в этом файле, вам нужно перезапустить X-сервер (завершить<br />
сеанс и зайти снова), чтобы изменения вступили в силу.<br />
<br />
B результате этого дополнительные клавиши (иногда называемые мультимедийными) будут посылать распознанные<br />
сигналы вашим приложениям. Чтобы увидеть их в действии, откройте редактор клавиш для вашего любимого приложения и<br />
нажмите одну из специальных клавиш. Должно появиться соответствующее обозначение, например «'''XF86Back'''» для клавиши «'''Back'''», или «'''XF86AudioNext'''» для клавиши «'''Play'''». Это означает, что вы можете<br />
теперь назначать действия этим дополнительным клавишам.<br />
<br />
Eсли вам нужен дополнительный контроль за тем, что делают эти клавиши, вам пригодится утилита ''Lineak'' (сокращение от «Linux support for Easy Access and internet Keyboards”). Она состоит из демона, захватывающего сигналы клавиатуры, и графических конфигураторов для Gnome и KDE (соответственно ''Lineakconfig'' и ''KLineak'').<br />
''Lineak'' не только поддерживает больше клавиатур, чем ''X Window'', но и способен исполнять скрипты.<br />
<br />
====ПРОФЕССИОНАЛУ: неопределенные клавиши====<br />
<br />
Иногда не все ваши клавиши распознаются, но они по-прежнему отправляют сигналы. Вы<br />
можете разобраться с этим, назначив сигналы клавишам вручную, используя команду<br />
''xmodmap'', но вам нужно сначала получить код клавиши.<br />
<br />
Чтобы узнать код клавиши, запустите ''xev'' из командной строки. Эта небольшая утилита<br />
выводит информацию обо всех нажатиях, когда окно активно. вы обнаружите, что когда<br />
вы нажимаете клавишу, то получаете огромную кучу информации, и среди нее –<br />
параметр ''keycode'', который вы ищете. Далее, создайте или отредактируйте файл '''~/.Xmodmap''' в вашем домашнем каталоге, и сопоставьте каждый код клавиши с желаемой клавишей. Например:<br />
<br />
keycode 161=F13.<br />
<br />
Чтобы это переназначение заработало, просто запустите ''xmodmap ~/.Xmodmap'', и<br />
вы обнаружите, что клавиши теперь работают как ожидается. в случае примера, приведенного<br />
выше, нажатие на новую клавишу будет сообщать системе, что нажата '''F13'''.<br />
<br />
===Мыши===<br />
<br />
Где клавиатура, там, как правило, и мышь. Но системы Linux известны своей неразвитой поддержкой мышей, имеющих дополнительные органы управления, помимо стандартных колесика и трех клавиш.<br />
<br />
В данном случае система X-Window просто теряется, поскольку она поддерживает только пять клавиш (колесико воспринимается как две кнопки, так как оно вращается взад и вперед).<br />
<br />
Мышь настраивается в том же файле, что и клавиатура, и большинство дистрибутивов не утруждают себя слишком сильными отклонениями от стандартного поведения. Однако, безусловно, вы можете изменить поведение вашей мыши – для этого вам потребуется открыть '''/etc/X11/xorg.conf'''в своем любимом текстовом редакторе.<br />
<br />
Настройки мыши можно найти в секции '''Input Device''', сразу после конфигурации клавиатуры. Сначала, если вам это нужно, измените параметр '''Buttons''', чтобы отразить число кнопок, которые есть у<br />
вашего «грызуна», считая каждое колесико за две кнопки. Далее, опция '''Z Axis Mapping''' сообщает системе X-Window, какие две кнопки используются как колесико, но вы можете добавить и еще две для второго колесика.<br />
<br />
B приведенном ниже примере мы просто добавляем '''6''' и '''7''' в строку '''Z Axis Mapping''' для поддержки второго колесика:<br />
<br />
Option “ZAxisMapping” “4 5 6 7”<br />
<br />
===Джойстики===<br />
<br />
Eсть множество игровых устройств, совместимых с Linux, включая джойстики и<br />
рули. Драйвер для джойстика включен в ядро и автоматически загрузится, когда вы<br />
подключите устройство. Eсли вы все еще используете устаревший гейм-порт, вам<br />
потребуется загрузить соответствующий модуль самостоятельно.<br />
<br />
Джойстик в вашей системе можно найти как устройство '''/dev/input/js0'''. Проверьте,<br />
что устройство работает: выведите его содержимое на экран с помощью команды<br />
''cat /dev/input/js0'' и покрутите джойстиком – при этом ваш экран должен заполниться случайным набором символов. Более удобный способ проверить работу вашего оборудования – это небольшая утилита,<br />
называемая ''jstest'', которая входит в пакет ''input-utilities''. Команда<br />
''jstest --normal /dev/input/js0'' должна продемонстрировать, что ваше устройство работает по всем осям<br />
(обычно просто вверх и вниз, но некоторые джойстики также могут вращаться). Игры,<br />
которые смогут использовать джойстик и отыскать ваше устройство '''js0''', настроятся<br />
на работу с ним автоматически.<br />
<br />
Eсли вы ищете джойстика с «отдачей» (force feedback), вам не повезло. Некоторые проекты приступали к разработке драйверов, но в данный момент все они пылятся на SourceForge.<br />
<br />
==Настраиваем ПK для работы с фотографиями==<br />
<br />
: В Linux вы можете делать с изображениями абсолютно все – обрабатывать в ''Gimp'', просматривать, размещать в Интернете, но для начала нужно передавать их на компьютер и с него. Здесь мы расскажем, как это делается…<br />
<br />
===Камеры===<br />
<br />
Не так давно заставить работать в Linux вашу цифровую камеру было сложной<br />
задачей. Каждый производитель, казалось, использовал свои методы работы с<br />
USB, предоставляя вам минимум информации. в некотором смысле, все наладилось, и сейчас большинство цифровых<br />
камер использует один из двух протоколов, чтобы пересылать изображения на<br />
компьютер.<br />
<br />
Наиболее общий из них – USB Mass Storage. Когда вы подключаете вашу камеру к компьютеру, и она воспринимается<br />
как съемное устройство хранения. Tеперь вы вольны копировать, перемещать и удалять ваши рисунки, как будто они расположены на отдельном жестком диске.<br />
<br />
Bторая возможность – это PTP, Picture Transfer Protocol (протокол передачи изображений), используемый многими современными камерами Sony, Kodak, Nikon и Canon.<br />
<br />
Итак, сперва подключите камеру к вашей машине. если она использует протокол USB-накопителя, большинство современных дистрибутивов автоматически присоединит ее к файловой системе, и<br />
либо откроется окно с фотографиями, либо на рабочем столе появится иконка.<br />
если этого не произошло, вы можете проверить состояние вашей камеры, набрав<br />
команду ''dmesg | grep usb-storage''. B данном случае будет выполнен поиск в<br />
системных журналах фразы «usb-storage», и на выходе должно появится что-то<br />
подобное:<br />
<br />
usb-storage: device found at 8<br />
usb-storage: waiting for device to settle<br />
before scanning<br />
usbcore: registered new driver usb-storage<br />
usb-storage: device scan complete<br />
<br />
Следующие две команды позволяют смонтировать устройство вручную, после<br />
чего вы сможете считать ваши фотографии из '''/mnt/camera'''.<br />
<br />
mkdir /mnt/camera<br />
mount -t vfat /dev/sda1 /mnt/camera<br />
<br />
Когда вы завершите работу с устройством, выполните соответствующую команду для размонтирования:<br />
''umount /mnt/camera''.<br />
<br />
Eсли ''dmesg'' ничего не возвращает, то похоже, что ваша камера использует для<br />
PTP-связи с компьютером. если это так, то вам нужно использовать приложение из<br />
небольшого числа тех, которые совместимы с PTP. Наиболее популярное из них<br />
для среды KDE – ''DigiKam'', хотя ''F-Spot'' для Gnome во многом подобно ему.<br />
<br />
Чтобы добавить PTP-камеру в ''DigiKam'', просто выберите '''Add Camera''' в меню<br />
'''Camera'''. Eсли вашей в представленном списке нет, попробуйте использовать обобщенное устройство USB PTP Class Camera. B ''F-Spot'' вы можете добавить свою камеру таким же образом, но здесь связь с камерой не столь стабильна, как в ''DigiKam''.<br />
<br />
===Сканеры===<br />
<br />
Сканеры по-прежнему остаются важной частью компьютерного ввода информации,<br />
и в Linux для связи с ними имеется специальный протокол ''Sane''. в отличие от<br />
Windows, где используется один и тот же драйвер для каждой физической подсистемы, Linux трактует комбайны (которые предлагают как сканирование, так и печать) как отдельные устройства. вам нужно<br />
использовать ''Sane'' для работы со сканером, и ''CUPS'' – для печати. ''Sane'' – очень<br />
мощный протокол, предлагающий функции, которые недоступны где-либо еще, например, сканирование по сети.<br />
<br />
Он состоит из внутреннего и внешнего уровней – внутренний (back-end) отвечает за связь с оборудованием, а внешний<br />
(front-end) – с пользователем. Многие пакеты, включая ''Gimp'' и ''Kooka'', предлагают поддержку сканирования, но более быстрый способ проверить работоспособность сканера – использовать утилиту ''xsane'',<br />
которая позволяет отслеживать результаты выполнения тех или иных настроек.<br />
<br />
Основная проблема с USB-сканерами (присущая и другим устройствам, таким как сетевые карты или web-камеры) – то,<br />
что им зачастую требуются проприетарный файл прошивки (firmware), обычно «выдираемый» из Windows-инсталляции.<br />
<br />
Прошивку требуется загрузить в устройство, прежде чем вы сможете приступить к работе с ним. Сначала вам нужно<br />
идентифицировать сканер на USB-шине, запустив ''lsusb'' от имени пользователя root:<br />
<br />
# lsusb<br />
Bus 001 Device 004:ID 04a5:2060 Acer Prisa 620U<br />
<br />
Проверьте в архивах ''Sane'', какая прошивка вам нужна (см. http://www.sane-project.org). Например, там можно обнаружить, что указанному сканеру (Acer Prisa 620U) требуется файл '''u96v121.bin''', который доступен в пакете драйвера для Windows. Ссылка также указывает, что сканер использует файл '''/etc/sane.d/smapscan.conf''', и что вам нужно изменить вторую строку в этом файле, чтобы указать файл с прошивкой. После того как вы сделаете это, вам останется просто включить ваш сканер.<br />
<br />
Любое приложение, которое использует ''Sane'', сможет найти сканер, но вы также можете сначала протестировать его с помощью ''xsane''. ''Gimp'' добавляет ''Sane''-соединение в свое меню '''File > Acquire''', и это, вероятно, лучший инструмент для сканирования изображений.<br />
<br />
===Принтеры===<br />
<br />
Eсть большая разница в уровнях поддержки, предоставляемых производителями, когда<br />
дело касается создания бумажной копии. Особые проблемы доставляет новое поколение многофункциональных устройств, которые добавляют возможности сканера (иногда еще и факса) к нормальному печатающему устройству.<br />
<br />
Объединенный Windows-драйвер, предоставляемый производителем, одновременно обеспечивает обе функции. Но, как<br />
вы видели в разделе «'''Сканеры'''», в Linux требуется разделять функции принтера и сканера, а это уже не так просто. в итоге, часто повторяемый совет насчет оборудования в Linux – «вам следует точно знать, насколько совместимо ваше устройство, прежде чем вы купите его» – применим к принтерам в гораздо большей степени, чем<br />
к остальному оборудованию.<br />
<br />
====Руководство по драйверам====<br />
<br />
Словарь Linux наполнен удивительными сокращениями, и наилучшее из них – '''CUPS'''.<br />
Оно означает «Common Unix Printing System» (общая система печати в Unix), и<br />
вашему принтеру нужен ''CUPS''-совместимый драйвер, чтобы он мог работать. Два производителя, HP и Epson, предоставляют достаточно хорошую поддержку своих принтеров.<br />
<br />
Драйверы для большинства старых принтеров, скорее всего, будут включены в ваш дистрибутив, но вам нужно быть осторожным при покупке последних моделей – драйвер может появиться спустя месяцы.<br />
<br />
Как правило, принтер адекватно работает с драйвером от предыдущей модели в линейке, но вы не сможете использовать специфические для новой модели функции.<br />
<br />
Eсли вы хотите использовать более новую модель, сначала вам нужно раздобыть для него ''CUPS''-драйвер. HP предоставляет замечательную поддержку в проекте HP Linux Printing Project (''HPLIP''), который размещается на SourceForge, и также включен в почти все нынешние дистрибутивы. ''HPLIP'' предлагает интегрированный драйвер<br />
для многих устройств производства HP, включая некоторые многофункциональные устройства. Для других принтеров вам потребуется так называемый файл '''PPD''' (Postscript Printer Description – Postscript-описание принтера). Этот файл содержит описание возможностей вашего принтера, включая все специфические функции, которые он предлагает, или язык, который он использует для печати.<br />
<br />
Многие дистрибутивы предлагают собственные утилиты настройки принтеров, но ''CUPS'' имеет свой web-интерфейс для добавления, удаления и проверки работоспособности принтеров. ''CUPS'' почти всегда установлен по умолчанию, но если к вашему компьютеру не был подключен принтер, когда вы инсталлировали ваш дистрибутив, вам может потребоваться установить ''CUPS'' самостоятельно.<br />
<br />
====ПРОФЕССИОНАЛУ: добавляем CMYK в ''GIMP''====<br />
<br />
CMYK (Cyan, magenta, yellow, black – голубой, пурпурный, желтый, черный) – это основа, если<br />
вам нужен вывод профессионального качества, но в ''Gimp'' нет «родной» поддержки этого<br />
цветового формата. К счастью, есть дополнение (plugin). Оно почти всегда включается в<br />
стандартную поставку ''Gimp'', но вам потребуется последняя версия с сайта http://www.blackfiveservices.co.uk/separate.shtml. Когда оно будет установлено, вы сможете конвертировать RGB (в ''Gimp'' это цветовая схема по умолчанию) в CMYK. Функции CMYK расположены в меню '''Image''', которое появится при щелчке правой кнопкой мыши на загруженном рисунке. Подменю называется '''Separate''', и выбор '''Separate (Normal)''' откроет<br />
окно, где вы сможете задать исходный и конечный цветовые профили (обычно устанавливаются в '''/opt/gnome/share/color/icc'''). Bы можете бесплатно скачать различные цветовые схемы с сайта Adobe (http://www.adobe.com). результирующее изображение будет иметь четыре слоя, по одному для голубого, пурпурного, желтого и черного цветов.<br />
<br />
====Oбщие проблемы====<br />
<br />
* '''Симптом''': отправленное на принтер изображение преобразуется в текст.<br />
<br />
'''Лечение''': взять обновленный '''PPD'''-файл или другой драйвер – ''CUPS'' использует неправильный язык принтера. Начните с http://www.cups.org/ppd.php.<br />
<br />
* '''Симптом''': Драйвер Epson не может добавить URI устройства.<br />
<br />
'''Лечение''': Откройте файл '''/etc/cups/cupsd.conf''' и добавьте «'''FileDevice Yes'''»<br />
<br />
* '''Симптом''': При попытке редактирования или удаления устройства с помощью ''CUPS'' запрашивается пароль и имя пользователя.<br />
<br />
'''Лечение''': войдите в командную оболочку и наберите ''lppasswd -g sys -a root'', введите пароль и повторно соединитесь как root.<br />
<br />
====Добавление принтера с помощью ''CUPS''====<br />
<br />
[[Изображение:LXF76_device1.jpg|Шаг 1]]<br />
<br />
Eсли CUPS установлен, откройте браузер и наберите в строке адреса http://localhost:631. вам потребуется войти в систему, введя пароль пользователя root, после чего вы получите стартовую страницу ''CUPS''.<br />
<br />
[[Изображение:LXF76_device2.jpg|Шаг 2]]<br />
<br />
Bыберите опцию '''Manage Printers''' на главной странице ''CUPS''. Bы получите список установленных у вас принтеров, но если ни одного установленного принтера в данный момент нет, список будет, как и следует ожидать, пуст. Щелкните на '''Add Printer''', чтобы приступить к настройке нового устройства.<br />
<br />
''CUPS'' запросит у вас имя, местоположение и описание нового принтера. Это просто описательные данные (например, «Цветной принтер» вместо наименования модели HPXJFZ-12345X), так что вводите нужную вам информацию.<br />
<br />
[[Изображение:LXF76_device3.jpg|Шаг 3]]<br />
<br />
На следующей странице вы указываете, как ваш принтер подключен к системе. Здесь есть огромный список опций в выпадающем списке, но в девяти случаях из десяти ваш принтер будет подключен и представлен в списке как «USB Printer #1». Другие строки включают более старые принтеры, подключаемые либо к параллельному порту, либо на SCSI-порт. Как только принтер будет выбран, вам потребуется указать производителя и модель вашего принтера.<br />
Eсли вы добавили принтер правильно, на странице принтеров появится иконка для нового устройства. теперь вы можете<br />
управлять отсюда заданиями для этого принтера.<br />
<br />
==Сеть есть!==<br />
<br />
: Современный офис не работает без сети, да и у некоторых из нас дома есть несколько компьютеров. К счастью, подключиться к Интернету или другому ПК в Linux становится все проще и проще...<br />
<br />
===Ethernet===<br />
<br />
Самый простой способ соединить два компьютера – это использовать Ethernet-порт, который есть почти на каждой машине около гнезд для подключения клавиатуры и мыши. Обычно сеть Ethernet – это группа машин, соединенных через коммутатор или концентратор, который размещается в центре. вам нужно помнить об одном моменте – если вы просто подключаете один компьютер к другому, вам нужен «перекрестный» (crossover) кабель, а не стандартный<br />
«прямой»: это делает возможным подключение при отсутствии коммутатора или концентратора.<br />
<br />
Простейшая конфигурация заключается в создании сервера, который остальные машины будут использовать в качестве<br />
шлюза для доступа к другим сервисам, будь то доступ к общим файлам или подключение к Интернету. Этот сервер обычно отвечает за автоматическое предоставление адресов другим машинам. Tакже можно использовать и фиксированные адреса для каждой машины в сети, но этот способ не столь универсален – он не приспособ-<br />
лен для простых изменений сети.<br />
<br />
При наличии в сети Ethernet отдельной машины, выполняющей функции DHCP-сервера, другие машины смогут настраивать себя при минимальном вмешательстве извне. вам не нужно слишком беспокоиться о безопасности. Поскольку ваш<br />
шлюз во внешнюю сеть безопасен – благодаря использованию брандмауэра или будучи вынесенным в DMZ – любому злоумышленнику нужно будет получить физический доступ к Ethernet-порту, чтобы пробиться в вашу сеть. К сожалению, этого нельзя сказать о беспроводных сетях.<br />
<br />
===БЕСПРОВОДНыЕ СЕТИ===<br />
<br />
Pаздобыть беспроводное оборудование для работы с Linux всегда было некоторой проблемой. так происходит потому, что производители, которые разрабатывают устройства, редко предлагают драйвер для него.<br />
Каждому, кто думает о покупке беспроводного оборудования, нужно проконсультироваться на сайте http://www.linux-wlan.org насчет наличия совместимого драйвера.<br />
<br />
Eсли для вашего оборудования нет специального драйвера, существует два пути.<br />
Первый – если ваше устройство использует чипсет Atheros. Сюда попадают многие продукты таких компаний как D-Link,<br />
Linksys и Netgear.<br />
<br />
По своей природе беспроводные сети не требуют физического доступа, чтобы просмотреть предоставляемые в общий<br />
доступ файлы. Это и хорошо, и плохо одновременно: вы можете перемещаться по офису со своим ноутбуком, не теряя<br />
соединения, но то же самое могут сделать и из здания напротив.<br />
<br />
====Действующий ''Madwifi''====<br />
<br />
''Madwifi'' – это название драйвера для устройств, построенных на чипсете Atheros. ''Madwifi'' значительно улучшился за последний год, благодаря постоянным усилиям команды ''Madwifi'' и участию группы разработчиков Atheros. в него было добавлено множество дополнительных функций, таких<br />
как поддержка Super AG, проприетарное расширение беспроводного формата 802.11g, с его расширенной линейкой оборудования и повышенной скоростью.<br />
<br />
Сперва вам нужно убедиться, что ваша карта использует чипсет Atheros. Получить информацию об этом можно в панели<br />
управления вашего дистрибутива или введя команду ''lspci'' (нужны права root). Bам нужно найти что-то, похожее на это: <br />
Atheros Communications, Inc. AR5212 802.11abg NIC<br />
<br />
Чтобы установить драйвер последнего поколения, скачайте «снимок» (snapshot) или RPM-пакет с сайта http://www.madwifi.org.<br />
Чтобы скомпилировать драйвер, у вас должны быть установлены исходные тексты<br />
вашего ядра, и это проще, чем вы думаете. Просто откройте менеджер пакетов вашего<br />
дистрибутива, выберите пакеты с исходными кодами ядра и нажмите '''Install'''. B '''Mенеджере пакетов''' Mandriva и в программе ''YaST'' дистрибутивов SUSE нужный пакет будет называться '''kernel-source''' или похожим<br />
образом. вам также потребуется убедиться, что у вас есть инструментарий для сборки приложений, включающий ''GCC'' и ''make''.<br />
<br />
Чтобы установить ''madwifi-ng'' из исходных текстов, распакуйте архив, перейдите в полученный каталог и запустите ''./configure'', а затем ''make'' и ''make install''<br />
от имени пользователя root. Bам нужно перезагрузить компьютер или удалить, а затем добавить вручную модули ''wlan'', ''ath_hal'' и ''ath_pci''. Новые ''Madwifi''-драйверы добавят устройство '''wifi0''', и вам нужно<br />
будет создать виртуальный беспроводной интерфейс, чтобы соединиться со своей точкой доступа. Чтобы сделать это,<br />
введите:<br />
<br />
wlanconfig ath0 create wlandev wifi0<br />
wlanmode sta<br />
<br />
Последний параметр, '''sta''', создает устройство, работающее в режиме станции,<br />
что добавляет виртуальное беспроводное устройство поверх устройства '''wifi0'''. С<br />
новыми драйверами для Atheros вы можете создавать другие виртуальные устройства, использующие доступ к этой же карте. Это означает, что вы можете создать виртуальную точку доступа и клиент на<br />
одной и той же карте, с помощью следующих команд:<br />
<br />
wlanconfig ath1 create wlandev wifi0<br />
wlanmode ap<br />
iwconfig ath0 essid ‘Access Point Name’<br />
<br />
====Открытый ''ndiswrapper''==== <br />
<br />
Eсли для вашего беспроводного оборудования нет «родного» Linux-драйвера, то есть еще одно решение: ''Ndiswrapper''. Это умная программа, которая реализует API ядра Windows и его сетевого интерфейса,<br />
так что вы можете воспользоваться драйверами, разработанными для Windows.<br />
Хотя он был разработан для беспроводных устройств, ''Ndiswrapper'' столь же эффективен и для других устройств, таких как последовательные порты USB.<br />
<br />
Проблемой ''Ndiswrapper'' является то, что, поскольку он реализует некоторые вызовы Windows API, он не слишком<br />
«чист» с точки зрения политики некоторых дистрибутивов в отношении открытости программного обеспечения. вы можете<br />
скачать его с http://ndiswrapper.sourceforge.net, но он настолько популярен, что, скорее всего, вы сможете найти и RPM-пакет для своей системы.<br />
<br />
Когда ''Ndiswrapper'' будет установлен, скачайте Windows-драйвер для вашего беспроводного устройства. Узнать, какой драйвер нужно скачать, не всегда легко, поскольку вы, как правило, не можете опросить чипсет устройства или уточнить в документации, какой именно чипсет используется. Чтобы узнать это наверняка,<br />
нам нужен идентификатор (ID) устройства. Это шестнадцатеричное число, уникальное для каждого продукта, и им можно воспользоваться для поиска правильного драйвера на сайте ''Ndiswrapper''.<br />
<br />
Bыполняется это в два этапа из консоли. Сперва наберите ''lspci''. Эта команда<br />
выведет список всех устройств, подключенных к вашей системной шине. Отыщите вашу беспроводную карту и запомните<br />
номер в первом столбце – он будет выглядеть примерно так: '''00:0d.0.'''<br />
<br />
Далее, наберите ''lspci -n''. Tеперь вы получите список тех же устройств, но как группу идентификаторов вместо текста. Ниже показаны строки, выдаваемые этими командами для одного и того же устройства:<br />
<br />
00:0d.0 Ethernet controller: Atheros Communications, Inc.<br />
00:0d.0 Class 0200: 168c:0013 (rev. 01)<br />
<br />
Нам нужен идентификатор в четвертом столбце ('''168c:0013''' в нашем примере).<br />
Используйте это значение для поиска по списку ''Ndiswrapper''-устройств, содержащемуся на странице SourceForge, и скачайте драйвер Windows, на который получите ссылку.<br />
<br />
Tеперь нам нужно выделить отдельные файлы из Windows-драйвера; вам может понадобиться утилита ''cabextract''. Имя нужного нам файла будет заканчиваться на '''.inf''', а его установка выполняется командой ''ndiswrapper -i nydriver.inf''.<br />
<br />
Список установленных с помощью ''Ndiswrapper'' драйверов выведет команда<br />
''ndiswrapper -l'' (заодно проверим, что все прошло успешно). Наконец, загрузите<br />
модуль – ''modprobe ndiswrapper'', что должно привести к загрузке Windows-драйвера<br />
и созданию беспроводного устройства.<br />
<br />
====ПРОФЕССИОНАЛУ: расширяем зону действия беспроводной сети====<br />
<br />
Eсли вы хотите расширить зону действия вашей беспроводной сети, вам, скорее всего, нужно<br />
будет добавить в нее повторитель. в общем случае это точка доступа, которая дублирует<br />
сигнал всех соседних беспроводных устройств. <br />
<br />
Другой способ расширения зоны действия – использовать два беспроводных устройства, не<br />
забывая при этом, что одно из них должно быть способно работать как точка доступа (как это<br />
происходит с картами Atheros, использующими новые драйверы). Используйте одну карту как<br />
клиент, подключающийся к удаленной точке доступа. Затем используйте утилиту настройки<br />
сети, включенную в ваш дистрибутив, чтобы сделать это соединение общим для других<br />
подключенных устройств (часто этот инструмент называется internet connection sharing).<br />
<br />
Bсе это должно функционировать как беспроводной повторитель. Устройства могут<br />
подключаться к локальной точке доступа и использовать ее подключение к удаленной<br />
точке доступа.<br />
<br />
====Общие проблемы====<br />
<br />
* '''Симптом''': ''Madwifi'' выдает сообщение об ошибке ioctl, когда добавляется устройство.<br />
<br />
'''Лечение''': вам нужно убедиться, что на '''ath0''' нет абсолютно никаких ссылок в '''/etc/iftab'''.<br />
<br />
* '''Симптом''': Качество сигнала в сети «плавает»<br />
<br />
'''Лечение''': Проверьте уровень сигнала, используя утилиту ''iwconfig''. Eсли качество связи падает ниже 20/94, то соединение может вести себя непредсказуемо. Aнтенны, как правило, создают сигнал куполообразной формы вокруг вертикальной оси. Чтобы получить лучший охват, антенна вашего маршрутизатора должна быть горизонтальной (это особенно важно для сильно загруженных маршрутизаторов).<br />
<br />
* '''Симптом''': Bы перевели свое устройство в режим Super G, однако соединение не стало быстрее.<br />
<br />
'''Лечение''': Проблема с Super G заключается в его закрытости. Это означает, что вам нужна совместимая точка доступа или маршрутизатор, как правило, того же производителя.<br />
<br />
====Настройка беспроводного устройства====<br />
<br />
Чтобы управлять беспроводным оборудованием, вам нужно установить пакет ''wireless-tools''. Он включает все команды, которые вам потребуются для настройки беспроводных устройств и для установления соединения. Чтобы увидеть свои устройства, наберите ''iwconfig''; вы можете<br />
выполнить сканирование близлежащих точек доступа, используя команду ''iwlist''.<br />
Устройство Atheros, которое вы создали, называется '''ath0''', в то время как созданное<br />
''Ndiswrapper'' – '''wlan0'''. Чтобы выполнить сканирование точек доступа, просто укажите<br />
устройство в команде ''iwlist'':<br />
# iwlist ath0 scan<br />
ath0 Scan completed:<br />
Cell 01 – Address: 00:00:00:00:00:00<br />
ESSID: ‘Sputnik1’<br />
<br />
Чтобы установить соединение с точкой доступа «'''Sputnik1'''», показанной выше,<br />
переведите беспроводное устройство в режим управления, установите WEP-ключ и<br />
сообщите ему, с какой точкой доступа соединяться. WEP – это простой ['''и чрезвычайно нестойкий, – прим.ред.'''] метод шифрования соединения. Для его работы клиент и точка доступа должны использовать<br />
один и тот же ключ. Ниже приведены все эти команды в нужной последовательности. После их выполнения беспроводное<br />
сетевое соединение должно заработать:<br />
<br />
iwconfig ath0 mode Managed<br />
iwconfig ath0 key restricted s:ПарОль<br />
iwconfig ath0 essid ‘Sputnik1’<br />
ifconfig ath0 up<br />
<br />
==Затачиваем видеокарту==<br />
<br />
: Множество технических новшеств, сделанных в Linux, на удивление сильно зависят от правильной работы графической карты! Будь то OpenGL, эффект прозрачности или новомодный трехмерный рабочий стол, графическая подсистема имеет первостепенное значение.<br />
<br />
===Графические карты===<br />
<br />
Графическая карта – это одна из наиболее важных и проблемных подсистем большинства дистрибутивов Linux. Правильно настроенная карта может предоставлять высокое разрешение экрана, аппаратное ускорение<br />
графики и трехмерное изображение, также как и более динамичный рабочий стол. Неверная настройка дает обратный<br />
эффект – экранное разрешение слишком мало, и ваш рабочий стол кажется медленным, даже если у вас установлена ошеломляющая графическая плата.<br />
<br />
Существует огромная разница между драйвером, способным обеспечить работу всех «крутых» функций, которыми напичкана ваша карта, и драйвером, совместимым с видеокартой, созданной десять лет назад.<br />
<br />
По сути, есть только два поставщика, если вам нужна карта, способная работать в Linux – Nvidia и ATI. Вам может повезти, если вы – обладатель S3 Savage, но может выйти и совсем наоборот. Все эти карты работают на Linux так же хорошо, как и на Windows, но следует заметить, что драйвера ''Nvidia'' все же имеют преимущество перед остальными.<br />
<br />
===Установка NVIDIA или ATI===<br />
<br />
==== 1 ====<br />
<br />
Прежде всего, вам нужно проверить, как работает ваша графическая система. Способов сделать это<br />
столько же, сколько дистрибутивов. Но вы можете просто поиграть в ''Crack Attack'' –<br />
медленное обновление экрана скажет, что что-то здесь не так. Но традиционный способ тестирования работы 3D-карты – это использование утилиты ''glxgears''. Это старая утилита, но она очень быстро сообщит<br />
вам о проблемах. Для достижения лучшего результата запускайте эту программу из<br />
командной оболочки. вы должны увидеть три вращающихся шестерни (часто используется в качестве хранителя экрана).<br />
Каждые пять секунд на консоль будет выводиться число кадров (FPS).<br />
<br />
Eсли для вашего оборудования не поддерживается ускорение, вы получите значение около 250 FPS (frames per second –<br />
кадров в секунду) или даже меньше. Это зависит от скорости вашего компьютера, но если все работает, вы должны получить намного большие значения: что-то между 1000 и 20000 FPS, в зависимости от модели вашей видеокарты и прочего оборудования. Eсли вы получили результат в этом диапазоне, то наши дальнейшие рекомендации понадобятся вам только в том случае, если вы одержимый маньяк или собираетесь обновлять свой драйвер до последней версии.<br />
<br />
==== 2 ====<br />
<br />
Драйверы как Nvidia, так и ATI нуждаются в исходных текстах<br />
вашего ядра, поскольку по ходу установки инсталлятор должен будет собрать модули<br />
для него.<br />
<br />
Далее, вам нужно получить сами драйверы. К счастью, их можно скачать непосредственно с интернет-сайтов Nvidia<br />
(http://www.nvidia.com) и ATI (http://www.ati.com). Одна небольшая подсказка: SUSE делает<br />
все несколько неуклюже, когда речь идет о видео-драйверах, поскольку использует собственный инструмент настройки (называемый ''Sax2''), который может перезаписывать ваши настройки всякий раз, как только подвернется случай. По этой причине пользователям SUSE придется выполнить еще один дополнительный шаг, указывающий ''Sax2'', что вы хотите сделать именно эти изменения, а не те, которые предполагает сам ''Sax2''.<br />
<br />
Eсли для вашей видеокарты есть RPM или другой пакет, устанавливаемый автоматически, стоит использовать его, вместо того чтобы пытаться продвинуться вперед самостоятельно.<br />
<br />
==== 3a Nvidia ====<br />
<br />
Карты Nvidia имеют наилучшую поддержку производителя для Linux. Даже с учетом споров о том, должна ли Nvidia<br />
открыть исходный код своих драйверов для сообщества, ее драйверы могут придать вашей системе огромное увеличение<br />
производительности.<br />
<br />
Кроме того, их проще устанавливать, чем драйверы ATI, благодаря инсталляционному сценарию, который может сообщить, доступны ли двоичные файлы, и даже собрать собственные, если готовые не будут найдены. вы можете найти драйверы на странице http://www.nvidia.com/object/unix.html.<br />
<br />
После того как вы скачаете драйверы, завершите текущую сессию X Window, выполнив от имени root команду ''init 3'', прежде чем запустите установщик от Nvidia следующей командой:<br />
<br />
sh ./NVIDIA-Linux-x86.run<br />
<br />
При этом запустится основанное на ''curses'' приложение, которое либо проведет вас по процессу установки драйвера на ваш дистрибутив, либо самостоятельно скомпилирует его. Когда процесс завершится, вам нужно будет изменить драйвер, используемый X Window, со свободного ''nv'' на новый ''nvidia''. Пользователи SUSE могут<br />
просто выполнить команду:<br />
<br />
sax2 -m 0=nvidia<br />
<br />
Остальным нужно будет отредактировать конфигурационный файл X-Window, открыв '''/etc/X11/xorg.conf'''. Найдите секцию '''Device''', которая должна содержать группу опций для вашей карты. Bам нужно изменить поле '''Driver''' с '''nv''' на '''nvidia'''.<br />
<br />
После этого перезапустите X-сервер (выполнив команду ''init 5''), и вы должны получить такое ускорение OpenGL в ''Unreal Tournament'', с каким только сможете справиться.<br />
<br />
==== 3b ATI ====<br />
<br />
Проприетарные драйверы ATI поддерживают только современные видеокарты. если ваша старше чем Radeon 8500,<br />
вам придется использовать открытый драйвер, включенный в ваш дистрибутив. Здесь все не так уж и плохо, и благодаря проекту ''Utah-GLX'' вы даже получите для вашей карты некоторую поддержку аппаратного ускорения.<br />
<br />
Но вернемся к более современным картам. Сначала вам нужно будет скачать<br />
универсальный драйвер с сайта ATI, а не специальный для вашего дистрибутива<br />
(который нам так и не удалось заставить работать). Это больший из двух доступных, размером около 60 Мб.<br />
<br />
Когда он будет скачан, переключитесь в режим суперпользователя и наберите в консоли следующую команду (мы сократили имя файла до ''ati-driver'', но вам следует указывать полное имя, например, ''ati-driver-installer-8.19.10-386.run''):<br />
<br />
sh ./ati-driver-installer.run --get-supported<br />
<br />
Эта команда выведет на экран список дистрибутивов, поддерживаемых драйвером, который должен включать что-то типа<br />
«Ubunty/breezy» и «SuSE/SUSE100-IA32». Из значительных упущений – только Mandriva, но вы можете воспользоваться<br />
пакетом для Fedora (который будет представлен как «Red Hat/RHEL4»).<br />
<br />
Следующий шаг – собрать пакет для вашего дистрибутива. Для этого укажите ваш дистрибутив как параметр сборки.<br />
Например, следующая строка создаст пакет для SUSE:<br />
<br />
sh ./ati-driver-installer.run --buildpkg SuSE/SUSE100-IA32<br />
<br />
Для Fedora:<br />
<br />
sh ./ati-driver-installer.run --buildpkg RedHat/RHEL4<br />
<br />
B результате вы получите RPM-пакет для вашей системы. Когда процесс завершится, вам нужно будет закрыть сессию<br />
X-Window (в большинстве систем для этого можно использовать ''init 3'') и установить полученный RPM (''rpm -Uvh fglrx.i386.rpm''). Eсли все пройдет успешно, ваша система теперь будет содержать драйвер ATI; вам останется просто скорректировать конфигурационный файл, чтобы использовать новый драйвер.<br />
Пользователи SUSE могут выполнить команду:<br />
<br />
sax2 -r -m 0=fglrx -b /usr/share/doc/packages/fglrx/sax2-profile.<br />
<br />
Остальные могут воспользоваться соответствующей конфигурационной утилитой ''fglrxconfig'', которая должна выполнить нужные исправления в вашей настройке X-Window.<br />
<br />
====ПРОФЕССИОНАЛУ: два экрана====<br />
<br />
Один из самых дешевых способов расширить ваш рабочий стол – это добавить второй монитор. Чтобы сделать это, вам нужна видеокарта с двумя или больше выходами, а также драйвер, способный работать с ними. такие карты есть как у Nvidia, так и у ATI, и нужно настроить ''X Window'' на запуск двух серверов на одной карте. Два экрана работают<br />
полностью независимо, так что вы можете запустить игру на одном из них, в то время как на другом – работать с email-клиентом. Заметьте, что это отличается от настройки ''TwinView'' от Nvidia, когда вы получаете один<br />
большой рабочий стол.<br />
<br />
Чтобы добиться работы с двумя экранами, придется снова погрузиться в конфигурационный файл X Window. Откройте '''/etc/X11/xorg.conf''' в своем любимом текстовом редакторе, и найдите секцию '''Device''' для вашей видеокарты. Каждый экран нужно оформить как отдельное устройство. Мы добавим второе устройство, продублировав<br />
секцию '''Device''' и немного изменив ее.<br />
<br />
Добавьте в секцию первого устройства строку '''Screen 0''', и измените идентификатор на '''nvidia0'''. во второй секции '''Device''' измените идентификатор на '''nvidia1''' и добавьте '''Screen 1'''. Далее, нам нужно добавить имя шины, к которой подключена видеокарта.<br />
<br />
Чтобы найти его, выполните ''lspci | grep nVidia'' из командной строки с правами root.<br />
Первый столбец в выводе – это идентификатор шины. его нужно добавить в обе секции '''Device''', чтобы записи для обоих устройств выглядели примерно так:<br />
<br />
Section “Device”<br />
Identifier “nvidia0”<br />
Driver “nvidia”<br />
BusID “PCI:2:0:0”<br />
Screen 0<br />
EndSection<br />
<br />
Bам также нужно будет продублировать секции '''Screen''' и '''Monitor''' в файле '''xorg.conf'''.<br />
Измените идентификаторы в секции экрана на '''Screen0''' и '''Screen1''', и укажите в первой<br />
устройство '''nvidia0''', а во второй – '''nvidia1'''.<br />
Aналогично, установите различные идентификаторы в секциях '''Monitor''' ('''Monitor0''' и '''Monitor1'''). Наконец, обновите секцию '''Server Layout''', добавив следующие две строки, и затем<br />
перезагрузите X-сервер:<br />
<br />
Screen 0 “Screen0”<br />
Screen 1 “Screen1” leftOf “Screen0”<br />
<br />
====Общие проблемы====<br />
<br />
* '''Симптом''': Сервер X Window не запускается <br />
<br />
'''Лечение''': Похоже на то, что не загружается правильный модуль ядра. Проверьте лог файл ('''/var/log/Xorg.0.log'''). введите от имени root команду ''lsmod'', и найдите строки либо '''nvidia''' для карт Nvidia, либо '''fglrx''' для ATI. Eсли они отсутствуют, загрузите их с помощью команды ''modprobe'', или<br />
переустановите драйверы.<br />
<br />
* '''Симптом''': ранее работавшая система не загружает ''X Window''.<br />
<br />
'''Лечение''': Дистрибутивы, такие как SUSE, часто используют инструменты автоматического обновления, которые могут установить новую версию ядра без вашего участия. Это может «сломать» драйвер видеокарты, который нужно будет пересобрать/переустановить для новой версии ядра.<br />
<br />
* '''Симптом''': Драйвер загружен, ''X Window'' запускается, но не работает ускорение OpenGL <br />
<br />
'''Лечение''': Это происходит потому, что модуль '''glx''' не загружается при старте ''X Window''. Откройте '''/etc/X11/xorg.conf''' и добавьте строку '''Load “glx”''' в секции '''Module'''. Перезагрузите X-сервер.<br />
<br />
==Oзвученный рай==<br />
<br />
: Ogg, MP3, WAV – даже имена форматов звучат круто. Сейчас речь пойдет о том, как превратить ваш компьютер в продвинутый музыкальный центр.<br />
<br />
===ALSA===<br />
<br />
Средний дистрибутив Linux может обеспечить более высокий уровень обработки звука, что многие студии звукозаписи<br />
десятилетней давности – и притом, в случае с Linux, это совершенно бесплатно. Программа, управляющая этим огромным множеством функций – Advanced Linux Sound Architecture или просто ALSA.<br />
<br />
Цена, которую приходится платить за всю эту мощь – огромная сложность. Bопрос поддержки звука в Linux очень<br />
многогранен, но когда вы вообще не слышите ни звука, первое, что нужно сделать – изменить настройки микшера.<br />
лучшая утилита для этого – ''Alsamixergui'' (что ж, хоть название понятно...), и для обычной звуковой карты будет предоставлена дюжина каналов воспроизведения.<br />
<br />
Наиболее важные каналы – '''Master, PCM''' и '''Mix'''. Eсли вы используете цифровой выход вместо аналогового, вам нужно попробовать различные уровни каналов, помеченных как IEC958. Этот набор цифр<br />
и букв – зашифрованная ссылка на цифровой формат, но реально это вряд ли поможет.<br />
<br />
Bместо того, чтобы работать как регулятор громкости, каналы IEC958 часто выполняют переключение между различными цифровыми режимами. Для чипсетов, произведенных Creative и Nvidia, вам нужно будет установить эти каналы в<br />
позицию 25%.<br />
<br />
Секрет настройки вашей звуковой карты раскрывается в файле '''~/.asoundrc'''. Это скрытый файл, расположенный в<br />
вашем домашнем каталоге, и здесь вы можете переименовать и перестроить все входы и выходы вашей карты, также как и работу микшера и воспроизведение сэмплов. Нет простого способа сделать это; ''ALSA'' очень нуждается в нормальном конфигураторе.<br />
<br />
====ПРОФЕССИОНЛУУ: УПОРЯДОЧЕНИЕ НЕСКОЛЬКИХ УСТРОйСТВ====<br />
<br />
Eсли у вас два аудио-устройства, например, встроенная звуковая карта и внешняя TV-карта или наушники, они зачастую инициализируются при загрузке в неправильном порядке. TV-карта должна инициализироваться в первую очередь, например, но когда она удаляется, первым устройством станет внутренняя звуковая карта.<br />
Это часто приводит к останову приложений, выводящих звук, поскольку они ожидают встретить в указанном месте определенное устройство.<br />
<br />
Pешение – принудительно указать определенный слот, когда драйвер будет загружаться. Необходимые настройки нужно<br />
сделать в '''/etc/modprobe.conf'''.<br />
<br />
Ниже приводится пример такого «форсирования» для звуковой карты на чипсете VIA, интегрированной в материнскую<br />
плату ('''snd-via82xx''' в приведенном ниже коде), в котором для нее будет назначен первый слот ('''dsp0'''), и дополнительного устройства ('''snd_go7007''') – на втором ('''dsp1'''):<br />
<br />
alias sound-card-0 snd-via82xx<br />
alias sound-card-1 snd-go7007<br />
<br />
===IPOD На Linux===<br />
<br />
Даже те из нас, кто испытывает стойкую неприязнь к проприетарным форматам, будут поражены iPod от Apple. Компания потратила миллионы на дизайн, и это видно: в отличие от других медиа-плееров, это – образец красоты, и<br />
самое лучшее то, что вы просто покупаете его и используете, и вам не нужно, чтобы кто-то показал, как он работает. Eдинственное, что плохо в iPod – он разработан для закрытых систем, но вы можете попытаться запустить его и на Linux.<br />
<br />
Поскольку iPod использует файловые системы Mac или Windows, мы всегда сможем скопировать и удалить файлы – только<br />
это не обновит внутреннюю базу данных устройства. есть несколько способов решить данную проблему. Простейшее и наиболее исчерпывающее решение – использовать ''CrossOver Office''. Несмотря на то, что это решение стоит денег (''CrossOver Office'' не бесплатен), оно позволит вам запускать настоящий ''iTunes'' и даже покупать музыку<br />
для синхронизации с вашим iPod.<br />
<br />
Кроме того, можно установить ''iTunes'' с помощью ''Wine'', но немногие люди умеют<br />
синхронизировать такую связку с устройством.<br />
<br />
Eсли вы хотите «чистое» решение, есть несколько приложений, которые могут копировать файлы с вашего iPod и обновлять интегрированную базу данных. Оригинальное приложение для Linux – ''gtkpod'', и это прекрасная программа для создания play-листов и управления вашей музыкой. если вы используете KDE, то ''Amarok'' сможет управлять вашей коллекцией музыки для iPod непосредственно, путем перетаскивания файлов из вашей коллекции. вы можете также поставить треки в очередь, чтобы загрузить их позже.<br />
<br />
==Заключительное слово==<br />
<br />
Производители оборудования еще много могли бы сделать, чтобы улучшить совместимость с Linux. Но многие компании не предоставляют абсолютно никакой информации разработчикам, которые готовы потратить собственное время, а зачастую и деньги, на разработку драйвера, который, прежде всего, повысит продажи устройства и принесет производителю больше денег.<br />
<br />
Tем не менее, поддержка оборудования в Linux никогда не выглядела столь хорошо, как сейчас. Многие устройства будут работать с Linux, что называется, из коробки, и каждая ревизия ядра поддерживает все больше и больше оборудования. Хитрость заключается в знании того, какие устройства выбирать. Небольшое исследование на тему, что будет работать, а что – нет, поможет в будущем сэкономить много часов, потраченных на борьбу с «железом».<br />
<br />
Tакже стоит поддержать производителей, которые демонстрируют склонность к предоставлению информации по драйверам на свое оборудование разработчикам Linux. Eсли в дальнейшем вам понадобится помощь с тем или иным устройством, стоит попробовать обратиться за советом читателей и команды '''LXF''' на наш форум: http://unixforum.org/. '''LXF'''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:%D0%98%D1%81%D0%BF%D1%8B%D1%82%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%B0LXF96:Испытание для новичка2010-03-01T10:50:59Z<p>Yaleks: /* Итоги */</p>
<hr />
<div>== Испытание для новичков в Linux ==<br />
<br />
''«Этот год, безусловно, станет годом Linux на рабочем столе». Мы слышим это снова и снова. Но готовли Linux для массового использования? Это и выясняет '''Майк Сондерс.''' ''<br />
<br />
Когда-то мы все были новичками. Мы помним свои первые вторжения в мир Linux – кропотливое изучение рабочего стола, исследование файловой системы и первые шаги в командной строке. Несколько лет назад казалось, что Linux находится на заре новой эры и готов бросить вызов рабочим столам Microsoft и Apple с их простой установкой и удобным рабочим окружением. Но достигли ли мы этой цели на самом деле? <br />
<br />
Анекдотические свидетельства повествуют о бабушках, чувствующих себя в Gnome как рыба в воде, детях, осваивающих Synaptic и пожизненных пользователях Windows, которые внезапно понимают, как работает Linux. <br />
<br />
В то же время мы видим и сбитых с толку новичков Linux, которые считают, что эта операционная система слишком сложна для повседневного использования. Нам нужно понять все их «как», «почему» и «что» – как они используют Linux, почему считают его сложным и что можно сделать, чтобы им помочь. Итак, здесь в наших Башнях LXF мы решили поставить опыт. Мы выбрали трех пользователей с различными навыками, которые никогда не использовали Linux всерьез, и решили посмотреть, как они возьмутся за эту ОС в 2007 году. <br />
<br />
Мы посадили каждого из них перед компьютером со свежим дистрибутивом Ubuntu и присоединили к их голове электроды (шутка). Мы просили их выполнить различные повседневные задачи и смотрели, как они это делают и с какими трудностями сталкиваются, будучи пользователями других ОС. Наши задания были распределены на 3 группы: <br />
<br />
* Базовое использование. Обычные действия, которые пользователям Linux приходится выполнять каждый день. Сюда входит запуск браузера и текстового процессора, копирование и удаление файла и запись CD-ROM. <br />
* Администрирование. Действия, которые требуют немного больших усилий и затрагивают настройки системы: установка новой программы, изменение времени и настроек клавиатуры и выполнение обновления системы для получения последних пакетов и исправлений по <br />
безопасности. <br />
* Установка. Это крупная задача, ужасающая новичков, которые не могут обратиться за помощью к опытному пользователю Linux. Подразумевается инсталляция Ubuntu 7.04 в обычной конфигурации без двойной загрузки, чтобы избежать лишних трудностей. <br />
<br />
Кого же мы выбрали для прохождения этих тестов? Термин «новичок» здесь очень широк и охватывает как полных новичков, так и опытных пользователей Mac и любителей поковыряться в настройках Windows, которые знают реестр как свои пять пальцев. <br />
<br />
Тем не менее, все они новички в Linux. Итак, мы выбрали по одному человеку в каждой из этих категорий и подвергли их нашим испытаниям, отмечая их успехи и обращая внимание на возникающие камни преткновения. <br />
<br />
Подобное исследование позволило проникнуть в суть образа мышления новичков Linux и выявило конкретные изменения в вопросах удобства использования, которые необходимо произвести. Готов ли Linux для Джо Дилетанта? Означает ли «монтирование» что-нибудь, если речь идет не о кондиционерах и пластиковых окнах? И может ли наш художественный редактор полчаса не ругаться? Смачные подробности чуть ниже... <br />
<br />
=== Новичок ===<br />
==== Ее вотчина – Outlook и Word. ====<br />
{{Врезка<br />
| Содержание = [[Изображение:Img_96_43_1.jpg|200px|]]<br /><br />
Хелле Петерсен работает<br /> <br />
помощником издателя и, по ее<br /><br />
собственным словам, она — <br /><br />
полный новичок в компьютерах.<br /><br />
На работе ей каждый день<br /><br />
приходится пользоваться<br /><br />
электронной почтой иофисными<br /><br />
программами, но вне ее она<br /><br />
лучше сразится с акулой-<br /><br />
убийцей, чем проведет три<br /><br />
секунды в командной строке.<br />
}}<br />
Для Хелле компьютер – всего лишь средство, которое помогает сделать работу быстрее, а не инструмент для хакерских штучек. Она представляет миллионы пользователей, которые всегда выполняют одни и те же задачи. Для них компьютер – помощник, который не требует глубокого изучения. Хелле редко использует что-то кроме обычных приложений: web-браузера, клиента электронной почты и текстового процессора. <br />
<br />
Но у тех, кто работал только с Windows, есть определенные ожидания. Когда мы попросили Хелле запустить web-браузер, она сразу кликнула на иконку Firefox на верхней панели. Но запустить текстовый процессор оказалось сложнее. «Где Word?», – спрашивала она и долго бродила по меню, перед тем как запустить Evolution. Выбор Microsoft такого общего названия для своего продукта заставляет многих думать, что текстовые редакторы на любой платформе называются именно так. Однако после некоторых поисков она запустила OOo Writer. <br />
<br />
Работа с файлами породила большие проблемы. Когда мы попросили Хелле скопировать существующий файл на рабочий стол, она открыла контекстное меню и, просмотрев все пункты, выбрала Копировать (Copy). Здесь у нас есть команда, который ничего не делает: надеясь отдать компьютеру приказ, она выбрала Копировать, и что произошло? Совершенно ничего. «Я просто нажала Копировать, но ничего не произошло», – жаловалась она. <br />
<br />
Как мы знаем, команда Копировать означает «скопировать файл в буфер обмена для последующей вставки», однако для Хелле она означала незамедлительное копирование файла. Этот недочет заставил Хелле залезть в меню Отправить (Send To) и Приложения еще до того, как я объяснил ей механизм копирования и вставки. Для новичков пункт контекстного меню, не порождающий никакого ответа системы, крайне непонятен. Не легче нам далось и удаление файла. Не найдя пункт Удалить в контекстном меню («Удаление всегда по правой кнопке!»), она открыла файл в текстовом редакторе gEdit и попыталась найти этот пункт в меню Файл (File). Однако, когда я объяснил ей, как работает Корзина, она очень быстро сориентировалась и спокойно удалила файл. Так что эти проблемы можно отнести к плохо спроектированному контекстному меню. <br />
<br />
==== Головоломка с клавиатурой ====<br />
Нашей следующей задачей было изменение раскладки клавиатуры. Сначала Хелле зашла в меню Приложения, а минуту спустя – в меню Система и стала изучать его содержимое. Она была озадачена огромным количеством пунктов меню размером почти в высоту экрана в 1024x768, но в конце концов нашла настройки клавиатуры («Я даже их не видела!»). Хелле никогда не записывала диски раньше, поэтому мы решили пропустить этот шаг и перейти к установке Ubuntu. Первые несколько окон Хелле прошла неплохо. Во время выбора места жительства датчанка Хелле попыталась найти свою родину в списке и, сделав это, получила длинный перечень городов, из которых нужно было выбрать свой. Она не знала, что можно указать город, щелкнув на карте мира и увеличив ее масштаб. Это неудивительно, так как установщик Ubuntu совершенно ничего об этом не говорит! Простые всплывающие подсказки были бы полезным дополнением и понравились бы всем независимо от уровня владения языком. <br />
<br />
Следующей преградой было разбиение диска на разделы. Хотя концепция разбиения диска не была для нее совершенно чуждой, она все же спросила: «Зачем нам это делать?» и уперлась в меню Разбиение (Partitioning), как в стену. Установщик Ubuntu не предоставляет ни капли информации – он сразу предлагает выбрать способ разбиения диска (автоматически или вручную), и об остальном приходится догадываться. Хелле выбрала автоматическое разбиение, хотя легко могла и остановиться, увидев сложное окно разбиения вручную и ужаснувшись его содержимому. Несомненно, установщику Ubuntu нужен хотя бы абзац текста, поясняющего, что такое разделы и какой вариант выбрать начинающим пользователям. <br />
<br />
Во всем остальном установка продолжалась безо всяких проблем. Сначала Хелле была несколько ошеломлена перспективой работы в чуждой операционной системе, но несколько подсказок помогли ей понять основы. Хотя Хелле с ее опытом предстоит еще несколько важных уроков (особое внимание нужно уделить контекстным меню Nautilus и разбиению диска на разделы), она дала нам надежду, так как ни разу за все время не растерялась. Хорошее начало... <br />
<br />
=== Человек Mac ===<br />
{{Врезка<br />
| Содержание = [[Изображение:Img_96_44_1.jpg|200px|]]<br /><br />
Эфрейн Эрнандес-Мендоса–<br /><br />
художественный редактор Linux<br /><br />
Format и фанат Astro Boy.<br /><br />
Когда Эффи не ругает футбольную<br /><br />
сборную Мексики, он макетирует<br /><br />
страницы LXF в Mac OS X. Он на<br /><br />
короткой ноге с OS X и ее <br /><br />
приложениями. Он никогда не<br /> <br />
углубляется в сложные компьютерные<br /><br />
темы, но каждый день использует<br /><br />
Mac и имеет базовые навыки <br /><br />
работы в Windows.<br />
}}<br />
==== Может ли он начать думать по-другому, чтобы использовать Linux? ====<br />
Мы говорим «Mac OS X» и подразумеваем «дружественный пользовательский интерфейс». Многие разработчики Gnome восхищаются оформлением этой ОС, несмотря на то, что Apple иногда не соблюдает собственных рекомендаций по проектированию интерфейса! Эффи, художественный редактор LXF, работает в Mac постоянно, и хотя мы не можем отнести его к опытным пользователям (командная строка для него – terra incognita), он уверенно работает с окнами и файлами. Его знания о Linux ограничиваются обработкой сотен снимков экрана, которыми мы заваливаем его каждый месяц. Вот так. <br />
<br />
Начало было многообещающим: Эффи сразу нашел Firefox и OOo – программы, которыми он раньше пользовался в OS X. Когда мы попросили его скопировать файл, его несколько смутил пустой рабочий стол Ubuntu. Эффи не мог понять, куда сбросить копию. Он поискал диск или каталог, но когда это не помогло, решил сменить тактику и покопаться в контекстном меню. Копирование и Вставка сделали свое дело. <br />
<br />
Похожие трудности возникли при удалении файлов. Эффи потратил почти минуту на поиски некоего устройства удаления файлов, затем я спросил его, искал ли он корзину. «Да, но здесь ее нет!» – последовал ответ. Апплет корзины в Gnome просто слишком маленький, чтобы его заметить, и к тому же спрятан в самом углу экрана – полная противоположность большой серебряной иконке в OS X. В продолжение этого шага я попросил Эффи изменить размер панели, содержащей апплет корзины. Он сразу кликнул правой кнопкой мыши на панели, выбрал Свойства и увеличил ее высоту до более приемлемой. Таким образом, хотя настройки панели по умолчанию были далеко не идеальными, изменить их не составило труда. <br />
<br />
==== Проблема установки ====<br />
Следующим шагом была установка программы. Эффи нужно было установить Thunderbird, который он нашел с помощью пункта Установка/Удаление программ (Add/Remove) меню Приложения (Applications). Войдя во вкус, он заметил, что нужно поставить галочку рядом с названием программы, а не просто выделить его, как потом сделает наш опытный пользователь Windows. Однако идея пакетов и репозиториев прошла мимо него; Эффи воспринял диалог Установка/Удаление программ как ссылки на загрузку программы с сайта. «Это ссылка на сайт Thunderbird?» – спрашивал он. Идея репозитория, специфичного для дистрибутива, не имела для него никакого смысла. Это смущение мигрантов с планеты Mac, где каждое приложение представляет собой самодостаточный пакет, вполне можно понять. Когда мы дошли до администрирования системы, для изменения раскладки клавиатуры Эффи сразу зашел в меню Система и вскоре запутался в утилите настройки клавиатуры. <br />
Это уму непостижимо, но в программе оказались вкладки Раскладка (Layout) и Настройки раскладки (Layout Options). Эффи выбрал последнюю и начал ломать голову. «Здесь нельзя изменить раскладку!» – недоумевал он, поэтому я направил его на другую вкладку, где он и нашел список – очень маленький (в экранном смысле) список раскладок, отнюдь не кричащий: «Меня можно сделать больше!». Мы сообщили об этих недостатках команде разработчиков Gnome. Когда мы записывали CD, Эффи поставило в тупик то, что нужно было открыть меню Places. «Ничего не понятно», – огорчался он. Однако, как только он нашел его, дело пошло намного быстрее. Установка Ubuntu тоже прошла безупречно, замедлившись только однажды: так как Эффи ни разу в жизни не видел двойной загрузки, он не увидел потребности вручную переразбивать «том» (термин из Mac OS). Как только установка была закончена, Эффи наградил тест добрыми словами, вспомнив, как долго ему приходилось рыться на рабочем столе, чтобы что-нибудь найти. Впрочем, он отметил, что со временем к этому можно привыкнуть. «Графически, Linux может быть очень простой ОС», – добавил он – лучший комплимент от пользователя Mac, – хотя тут же уточнил, что «для новичка временами он все же недостаточно нагляден». Все закончилось парой неуместных ругательств. <br />
<br />
=== Опытный пользователь ===<br />
{{Врезка<br />
| Содержание = [[Изображение:Img_96_45_1.jpg|200px|]]<br /><br />
Скотт Юэрт – постоянный<br /><br />
пользователь Windows, который<br /><br />
работает в журнале PC Answers.<br /><br />
Он – свой парень в Виндоусвилле<br /><br />
и может объяснить, как заменить<br /><br />
текст кнопки «Пуск» на<br /><br />
альтернативный. Художник, <br /><br />
web-мастер и иногда любитель<br /><br />
попрограммировать, Скотт<br /><br />
представляет типичного опытного<br /><br />
пользователя Windows, который<br /><br />
знает о растущей популярности Linux.<br />
}}<br />
==== Он запускает Regedit с закрытыми глазами... ====<br />
Нашим последним подопытным кроликом был Скотт Юэрт, вежливый редактор диска журнала PC Answers, побратима LXF. Как и многие постоянные пользователи Windows, Скотт все чаще слышит о Linux, но еще не пробовал его в действии, если не считать просмотра экранных снимков и периодических игр с уже установленной копией на чужом <br />
компьютере. Он из тех пользователей Windows, которых многие линуксоиды стремятся склонить на свою сторону: хорошо знаком с техническими деталями, хочет осваивать новое, но часто повторяемые утверждения о том, что Linux еще не готов для использования на рабочем столе, мешают ему начать. <br />
<br />
Первым, что мы заметили, была склонность Скотта к использованию горячих клавиш; в то время как остальные два участника исследовали рабочий стол Linux только с помощью мыши, Скотт решал наши задачи с помощью совершенного, интуитивного владения клавиатурными комбинациями. Когда мы попросили его скопировать файл, он выделил его и быстро нажал Ctrl+C и Ctrl+V. Чтобы удалить файл, он выбрал его и нажал Shift+Delete, известное сочетание клавиш Windows, которое полностью удаляет файл (вместо перемещения его в корзину). «Shift-delete – необратимое удаление файла», - уверенно сказал нам Скотт. Однако этот образ мышления пользователя Windows проявил себя и когда дело дошло до установки приложения: Скотт не знал о существовании в Linux менеджера пакетов и полез на сайт Thunderbird, когда мы попросили его установить эту программу. <br />
<br />
==== Трудности с пакетами ====<br />
Все вполне логично – вы можете загрузить сборки Thunderbird для Linux с сайта проекта. Но чтобы объяснить, что такое менеджер пакетов, мы должны были направить Скотта в верном направлении. «Это немного непривычно – в Windows вы обычно находите файл, из которого и устанавливаете приложение», – сказал он, ссылаясь на традиционный подход с файлом setup.exe. Это заняло некоторое время, как пояснил Скотт после внимательного изучения меню Приложения (Applications): «В Windows, Установка и удаление программ чаще используется для удаления программ, чем для их установки». <br />
<br />
Здесь нас ждала другая проблема: после того, как Скотт нашел приложение, выделил Thunderbird в результатах поиска и нажал кнопку Применить, его ждала полная тишина. Средство установки и удаления программ в Ubuntu требует, чтобы вы отметили галочкой каждый пакет, который хотите установить. Это показалось Скотту непривычным, учитывая то, что он щелкнул и выделил необходимую программу. Несомненно, это недочет интерфейса, который нужно исправить. «Ничего не произошло!» – отчаянно воскликнул Скотт. Для записи диска Скотт предполагал использовать отдельную программу и был несколько смущен тем, что ссылка CD/DVD Creator была спрятана в меню Places. Впрочем, когда он нашел ее, то без труда записал диск, переместив необходимые файлы мышью прямо в окно браузера. Администрирование системы тоже не вызвало особых трудностей. <br />
Скотт изменил раскладку клавиатуры и системное время, причем он знал, что щелчок правой кнопкой на последнем вызывает диалог настройки. Это другой пример того, как приемы работы в Windows оказываются полезными в Linux. <br />
<br />
Последним шагом стала установка Ubuntu. Скотт знал, что такое разбиение диска на разделы, так что это не стало ему помехой. Однако он столкнулся с той же проблемой, что и два предыдущих участника: при выборе места жительства он не понял, что можно щелкнуть на карте и затем увеличить ее масштаб. Вместо этого он несколько минут листал список, проклиная низкую скорость прокрутки. <br />
<br />
Программе установки Ubuntu в самом деле нужно как-то выделить возможность изменять масштаб карты! Дальнейшая установка не вызвала у Скотта совершенно никаких трудностей. <br />
<br />
=== Итоги ===<br />
Все прошло хорошо. Мы были приятно удивлены тем, что ни у одного из участников не было заметных проблем с установкой и им потребовалось всего несколько попыток, чтобы получить навыки работы в Gnome. Несомненно, есть недостатки, которые нужно исправить – контекстные меню рабочего стола и недостающий текст в программе установки соответственно – однако во всем остальном Linux не создал им заметных препятствий. <br />
<br />
Сегодня пользователи Mac OS и Windows вполне могут пробовать Linux. Конечно, начав использовать его на постоянной основе, они встретятся с трудностями. Установке программ мешают ограничения менеджеров пакетов: вы можете установить необходимую версию программы из репозиториев своего дистрибутива, но если вы захотите обновить ее, то придется либо воспользоваться пакетами с сайта проекта (если они существуют), либо ждать обновления целого дистрибутива. Это не относится к Gentoo и другим подобным системам, но их сложно освоить новичкам. <br />
<br />
В то же время опытные пользователи Windows, такие как Скотт, все еще должны бороться с проблемами совместимости последнего крутого гаджета. Эти проблемы нужно решать, но после этих тестов мы знаем, что Linux вполне достаточно для решения большинства задач новичков – управления файлами, серфинга и работы с документами. Сегмент рынка начина- <br />
ющих пользователей вполне готов к Linux, следующим шагом станет удовлетворение потребностей наиболее активных пользователей Windows. <br />
<br />
Расскажите нам о своем опыте новичка или пользователя, который уже выбрал Linux: напишите несколько слов по почте letters@linuxformat.ru или поучаствуйте в дискуссии на форумах http://www.unixforum.org.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF80:%D0%A3%D1%81%D0%BA%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8BLXF80:Ускорение загрузки системы2010-03-01T10:50:05Z<p>Yaleks: /* ЗАМЕНА СТАРТОВЫХ СКРИПТОВ */</p>
<hr />
<div>УЧЕБНИК Ускорение загрузки<br />
<br />
НАСТРОЙКА СИСТЕМЫ<br />
<br />
== Ускорение загрузки системы ==<br />
''Поковырявшись в настройках, вы сможете вдвое уменьшить время загрузки вашей машины, утверждает '''Майк Сондерс'''''.<br />
<br />
Одна из популярнейших жалоб пользователей Linux – жалоба на мучительно долгую загрузку. На современной машине обычно приходится ждать 45–60 секунд, а если вы используете не самое новое оборудование, это время может возрасти до двух и более минут. Правда, препятствие невелико – благодаря абсолютной надежности Linux сбои возникают редко и нет нужды перезагружаться так часто, как под другими ОС. Но медленность загрузки досаждает пользователям машин в стиле «включил и работаю», вроде ноутбуков; и если вы хотели поберечь энергию и не держать машину все время включенной, то за время ожидания вы сильно усомнитесь в своей экологической добродетели.<br />
<br />
Скорость загрузки не является специфичной проблемой индивидуальных компьютеров – для web-сервера, если вы хотите уменьшить время недоступности после обновления ядра, это тоже чрезвычайно важный фактор. Недоступность, например, сайта по продаже товаров в течение 30 секунд запросто разгонит покупателей и превратит потенциальные дензнаки в нахмуренные брови. К счастью, причину медленной загрузки обычно легко определить: дело в том, что многие дистрибутивы пытаются выполнять всё. Коробочная версия дистрибутива вроде Fedora охватывает пользователей всех мыслимых типов, но если вы знаете, чего хотите, то лишние службы нетрудно отсечь.<br />
<br />
На этом уроке мы займемся специальными настройками и улучшениями, которые вы сможете приложить к своей системе Linux для сокращения времени загрузки, чтобы приступать к работе с наивозможной быстротой. Приведенные советы работают независимо; вам не обязательно следовать всем, и если какой-то покажется сложным, можете его пропустить. Каждый совет также помечен степенью сложности.<br />
<br />
Даже если вы замахнетесь на мероприятия для особо продвинутых, при наличии резервной копии стартовых скриптов вам ничего не грозит (как сделать такую копию, показано ниже во врезке ''«Резервируем»''!). Приступим...<br />
<br />
=== УБИРАЕМ ЗАДЕРЖКУ ЗАГРУЗЧИКА ===<br />
'''Сложность совета: простой'''<br />
<br />
Если у вас мультизагрузочная система, и вы не покинули компьютер, едва нажав кнопку пуска, вы, скорее всего, коршуном бросаетесь на клавишу Enter, как только появится меню выбора ОС. Но если, включив компьютер, вы идёте попить чайку (обычный способ употребить ожидание с пользой), ваша машина будет простаивать, пока загрузчик не выберет ОС автоматически. Многие дистрибутивы по умолчанию устанавливают задержку в 20–30 секунд перед загрузкой ОС, и если загрузка происходит в ваше отсутствие, лучше убрать эту задержку.<br />
<br />
Первое, что нужно сделать – это определить используемый загрузчик. Поищите файлы с именами '''/etc/grub.conf''', '''/boot/grub/grub.conf''' или '''/boot/grub/menu.lst''' – если вы нашли один из них, то вы используете ''Grub ''и можете изменить конфигурационные файлы, от лица суперпользователя (root). Откройте найденный файл в текстовом редакторе и поищите строку timeout, что-то вроде<br />
<br />
<nowiki>## timeout sec</nowiki><br />
<nowiki># Set a timeout, in SEC seconds, before automatically booting the default entry</nowiki><br />
<nowiki># (normally the first entry defined).</nowiki><br />
timeout 30<br />
<br />
Здесь установлена задержка 30 секунд перед стартом операционный системы по умолчанию (указана в строке default, которая расположена прямо под рассматриваемой). Измените это значение на, скажем, 5 секунд – вполне достаточно, чтобы, сидя за компьютером, увидеть меню и выбрать ОС, и не слишком задерживает неконтролируемую загрузку.<br />
<br />
Между тем, некоторые дистрибутивы используют загрузчик Lilo, чьи настройки обычно находятся в '''/etc/lilo.conf'''. Найдите строку timeout (в которой указано timeout = 20 или вроде того) и установите число 5 или меньше. Завершив изменения, запустите '''/sbin/lilo''' (от имени суперпользователя) и обновите загрузчик. В следующий раз, когда вы предоставите машину самой себе, меню загрузки исчезнет значительно быстрее.<br />
<br />
=== ОТКЛЮЧАЕМ НЕНУЖНЫЕ СЛУЖБЫ ===<br />
Сложность совета: простой<br />
<br />
Этот совет является наиболее эффективным способом уменьшения времени загрузки – к тому же у него низкий рейтинг сложности! При старте, ваша система запускает некоторое количество неинтерактивных программ (называемых службами – services), помогающих настроить дистрибутив или выполняющихся в фоновом режиме, пока вы работаете с машиной. Например, службы ''udev ''и ''hotplug ''запускаются при загрузке, но вступают в дело, только когда вы подсоединяете к своей машине устройство. Или, если на вашей машине работает сервер, например ''Apache, в''аш стартовый скрипт запускает его во время загрузки.<br />
<br />
Некоторые большие дистрибутивы запускают 15 и более служб, и каждая добавляет ко времени загрузки несколько секунд (а то и больше). Некоторые из них важны для корректной работы вашей системы, но большинство можно отключить без вредных последствий. Например, ваш дистрибутив при загрузке может запускать службу PCMCIA/ Cardbus – очень нужную в ноутбуках, но напрасно съедающую время на настольных компьютерах, потому что скрипт опрашивает несуществующие устройства. Аккуратно отключив ненужные службы, вы можете уменьшить время загрузки примерно на 20 секунд.<br />
<br />
Труднее всего определить, что именно подлежит пресечению. По традициям UNIX, инициализационные скрипты Linux имеют краткое имя, мало что говорящее обычному пользователю. К счастью, те же традиции UNIX означают, что это просто текстовый файл, содержащий текстовые комментарии, так что вы можете самостоятельно изучить каждый скрипт и решить, нужен он вам или нет. Все скрипты обычно хранятся в каталоге '''/etc/init.d''' – заглянув в него, вы увидите наборы исполняемых скриптов B''ash''. Ниже перечислены службы, без которых многие могут обойтись:<br />
<br />
'''• ''mountnfs, nfs и portmap''' ''Они используются для сетевой файловой системы (NFS) вместе с утилитой поддержки ''Portmap''. Если вы не монтируете каталоги с других Linux/Unix машин, расположенных в сети, или используете ''Samba ''для доступа к Windows-машинам, можете их отключить.<br />
<br />
'''• ''pcmcia''' ''Эта служба тратит время на поиск несуществующих устройств. Если вы работаете не на ноутбуке, то она вам не нужна.<br />
<br />
'''• ''apmd''' ''Система управления питанием, используемая в старых ноутбуках (то есть до 2002 года выпуска). Я бы оставил ее включенной, если вы не уверены, что ваша машина поддерживает новый стандарт ACPI.<br />
<br />
'''• ''lvm''' ''Система управления логическими томами (Logical Volume Manager), для организации разделов диска. Большинство пользователей настольных компьютеров запускают ее разве что в процессе установки дистрибутива, на этапе создания разделов.<br />
<br />
'''• ''joystick/gpm''' ''Службы джойстика и мыши в текстовом режиме.<br />
<br />
'''• ''mdadm/mdadm-raid''' ''Скрипты администрирования составных устройств. Если вы не используете RAID-массив (для настольных машин это редкость), отключите его.<br />
<br />
'''• ''sshd''' ''Для удаленных подключений. При отсутствии удаленного доступа к вашей машине службу можно выключить.<br />
<br />
'''• ''mysql''' ''Сервер баз данных. Некоторые дистрибутивы по умолчанию включают его, но коли вы не администратор базы данных и не разработчик – зачем он вам?<br />
<br />
'''• ''apache'', ''sendmail''' ''или '''''postfix''' ''Интернет-службы для web и почты. Если они вам не нужны, то их отключение может быть очень эффективным.<br />
<br />
Следует также просмотреть и другие скрипты (откройте их при помощи ''less ''или текстового редактора) и почитать комментарии в самом их начале, чтобы понять, что они делают. Если становится ясно, что вы не используете ни одну из возможностей скрипта, то его можно отключить. Отметим, что файлы '''rc''' и '''rcS''' <nowiki>[или аналогичные – </nowiki>'''rc.single''', '''rc.sysinit''' и т.п. – прим.ред.] критичны для правильного включения и выключения машины, и их трогать не нужно!<br />
<br />
Приняв решение, что вам нужно, а что нет, можно приступить к отключению сервисов. Выполнение этой операции зависит от дистрибутива. В SUSE откройте утилиту конфигурирования ''Yast'', перейдите в System > System Services и отключите выбранное в списке служб (services). В Mandriva запустите Центр Управления Mandriva, перейдите в Службы (Services) и снимите выделение с тех служб, которые вам не нужны. Fedora Core и ее производные содержат утилиту Службы (Services) в меню Рабочий стол > Системные утилиты > Настройки сервера (Desktop > System Tools > Server Settings).<br />
<br />
Если вы работаете в Debian или одной из его производных (Ubuntu, Knoppix и иже с ними), запустите терминал, войдите как суперпользователь (root) и наберите:<br />
<br />
<nowiki>update-rc.d -f <имя службы> remove</nowiki><br />
<br />
Если ни один из перечисленных способов у вас не работает, остается метод грубой силы: просто-напросто убрать стартовые скрипты вручную, позаботившись о возможности их восстановления на случай ошибки. Войдите как суперпользователь и в терминале наберите<br />
<br />
<nowiki>mv /etc/init.d/<имя скрипта> ~ </nowiki><br />
<br />
где '''<nowiki><</nowiki>имя скрипта>''' – имя службы, которую вы хотите отключить (например, ''pcmcia'').<br />
<br />
Команда перенесет скрипт в ваш домашний каталог, и он не будет запускаться при загрузке; метод несложный, но может сопровождаться ошибкой ‘доступ запрещен’ (‘permission denied’) во время загрузки, означающей только то, что дистрибутив не может найти скрипты – не опасно, но нудно. Так что уж лучше пользоваться инструментами вашего дистрибутива.<br />
<br />
=== СНИЖАЕМ ПАУЗЫ ЗАСЫПАНИЯ ===<br />
'''Сложность совета: средний'''<br />
<br />
Жизнь инициализационных скриптов дистрибутива тяжела: они должны обеспечить работу огромного количества оборудования, различных типов пользователей и всевозможных программ, которые должны быть запущены во время загрузки. Поэтому при исследовании стартового скрипта вы найдете несколько хитростей и уловок. Из них наиболее распространены «спячки» (sleeps). Да, во время загрузки дистрибутив несколько раз фактически засыпает на пару секунд, чтобы убедиться, что оборудование инициализировано и другие программы определенно заработали.<br />
<br />
В скриптах это обозначено в виде вызовов ''sleep(1)'', утилиты командной строки, которая ничего не делает, кроме задержки выполнения на указанное время. (Откройте терминал и введите '''sleep 5''' ; '''ls''' – список файлов будет выведен после пятисекундной паузы). Например, перед настройкой сети стартовый скрипт должен сначала убедиться, что сетевой адаптер PCMCIA/Cardbus инициализирован, и он засыпает на пару секунд, чтобы не обгонять события.<br />
<br />
Многие из этих задержек являются излишней предосторожностью – если ваша система хорошо справляется со стандартным оборудованием, вы можете без опаски убрать их. Чтобы их найти, откройте терминал, войдите как суперпользователь ('''su''' или '''sudo bash''') и введите<br />
<br />
cd /etc/init.d<br />
grep sleep *<br />
<br />
Мы входим в каталог стартовых скриптов ('''/etc/init.d''') перечисляем файлы, содержащие вызовы sleep (вместе с временем задержки).<br />
<br />
По именам файлов определите, программы какого типа они запускают, затем откройте их в редакторе, найдите строки с командой sleep и удалите числа. Вряд ли стоит менять все значения на ноль, но вы спокойно можете уменьшить их вдвое (сгодится даже 0.5), перезагрузиться и проверить, что все работает нормально.<br />
<br />
Если у вас есть время, я бы рекомендовал делать изменения в пакетном режиме, чтобы облегчить возврат к предыдущим значениям, если что-то стартует некорректно. В больших дистрибутивах, имеющих множество стартовых скриптов, сокращение задержек может привести к уменьшению времени загрузки на 10–15 секунд. И ваш дистрибутив не потребует снотворного взамен!<br />
<br />
=== ТОНКАЯ НАСТРОЙКА СТАРТОВЫХ СКРИПТОВ ===<br />
'''Сложность совета: продвинутый'''<br />
<br />
Большинство советов этого урока годятся практически для всех дистрибутивов и типов установки (настольная, сервер и т.д.), но есть изменения, которые применимы только для определенных конфигураций. Если вы досконально знаете устройство своей системы и все процессы, необходимые для вашей работы, вы можете просеять стартовые скрипты сквозь сито и отфильтровать ненужные строки.<br />
<br />
Выполните команду '''top''' в терминале после загрузки системы и отметьте все процессы, которые вам явно не нужны. Затем в каталоге '''/etc/init.d''' при помощи ''grep ''вы можете найти строки, их запускающие, и превратить эти строки в комментарии.<br />
<br />
Довольно трудно определить, что происходит во время загрузки и какое время отнимает каждая часть этого процесса, особенно если показана только графическая заставка или некоторые строки в текстовом режиме мелькают слишком быстро. В каталоге '''/var/log''' найдите файлы '''messages''', '''syslog''' и '''daemon.log''' с подробным описанием происшедшего во время загрузки (каждая запись в файле имеет отметку времени, которая поможет определить виновников задержки).<br />
<br />
Если ваша система в полной гармонии с вами и вы не планируете подключение нового оборудования или драйверов ядра, ликвидация стадии загрузки depmod сбережет еще пару секунд. Это утилита, которая генерирует зависимости модулей ядра; ее незачем запускать при каждой загрузке, если вы не добавляете драйвера. Выполните поиск depmod в '''/etc/init.d''' (например, '''grep depmod /etc/init.d/''') и закомментируйте строки, где она запускается, проставив символ ‘#’ в самом начале.<br />
<br />
Отследите перекрытия функций в скриптах. Например, в Ubuntu скрипт ''checkroot.sh ''содержит секции, связанные с управлением питанием (особенно заметные, если система работает от блока питания). Но если у вас отключены APM/ACPI, то и не нужно выполнять проверки, связанные с питанием, можете их закомментировать. Здорово! Такие пересечения часто встречаются в стартовых скриптах дистрибутива, так что полезно пройтись по ним, определяя назначение всего запускаемого и оценивая его необходимость.<br />
<br />
Вы можете обнаружить, что некоторые части скрипта или служба замедляют загрузку, но их функциональность важна и вы не хотите отключать их навсегда. Например, загрузка тормозится, пока сетевая карта пытается получить DHCP-отклик от сервера – но не отказываться же напрочь от сети! Для решения подобных проблем просмотрите каталоги '''/etc/init.d''' и '''/etc/dhcp3''' и определите, где вызывается DHCP; затем попробуйте добавить амперсанд (&) после строки его вызова, чтобы запускать его в фоновом режиме. Перезагрузитесь, и, надеюсь, ваша карта будет сконфигурирована в фоновом режиме и позволит другим стартовым скриптам выполняться беспрепятственно!<br />
<br />
=== ЗАМЕНА СТАРТОВЫХ СКРИПТОВ ===<br />
'''Сложность совета: продвинутый'''<br />
<br />
Если вы прочли первый шаг, вы видели, что процесс загрузки Linux включает в себя программы фоновых служб, неинтерактивно настраивающих машину. Однако здесь есть проблема: некоторые скрипты зависят от других, и при попытке что-то изменить возникает путаница. Например, скрипт, запускающий доступ к файлам и принтерам Windows через ''Samba'', должен убедиться, что сетевая карта инициализирована другим скриптом. Поэтому в настоящее время большинство дистрибутивов Linux запускают скрипты один за другим, в строго определенном порядке, чтобы все необходимое наверняка было запущено.<br />
<br />
Но это же жутко неэффективно: почему бы не выполнять несколько скриптов сразу? К примеру, пока сетевой скрипт ожидает ответа DHCP, можно заняться звуковой картой.<br />
<br />
Этот подход называется параллельной инициализацией, в противовес последовательному запуску инициализационных скриптов, используемому практически в каждом дистрибутиве. При запуске служб все еще нужен порядок – но он предусматривается таким, чтобы ЦП и жесткий диск подолгу не простаивали. Распараллеливание может сократить время загрузки больше чем вдвое.<br />
<br />
''InitNG ''предоставляет такую возможность. Этот проект описан в рубрике HotPicks, и хотя он все еще находится в срединной стадии развития, многие давние пользователи Linux говорят, что он действительно помогает. ''InitNG ''заменяет ваши стартовые скрипты параллельными эквивалентами, чтобы ресурсы не оставались праздными, и это приводит к умопомрачительно быстрой загрузке. Вы можете обнаружить это приложение в разделе Система на нашем диске или найти последнюю версию по адресу '''http://InitNG.thinktux.net'''. Скачайте tar-архив и установите, как показано ниже (понадобится перезагрузка):<br />
<br />
tar xfvz ''InitNG''-0.5.5.tar.gz<br />
./configure && make install<br />
<br />
Отредактируйте конфигурационный файл загрузчика (т.е. '''/boot/ grub/menu.lst''' или '''/etc/lilo.conf'''), добавив '''init=/sbin/InitNG''' к строке образа ядра. Это обеспечит старт вашего дистрибутива со специальной I''nitNG ''версией ''init ''(основной процесс Linux), который в свою очередь начнет загружать службы. Строка в настройках вашего загрузчика должна походить на<br />
<br />
kernel /boot/vmlinuz-2.6.10-5-686 root=/dev/hda1 ro<br />
<br />
init=/sbin/InitNG<br />
<br />
(Если вы используете ''Lilo'', после изменений запустите '''/sbin/lilo''', для обновления загрузчика). Теперь, перекреститесь и перезагрузитесь; если все верно, то появится сообщение о загрузке.Внимательно следите за всеми сообщениями об ошибках и предупреждениями: ''InitNG ''с каждым выпуском становится все более гибким, но пока не справляется с особо трудными службами. Если вы обнаружите, что что-то не запустилось, введите '''ngc -s''' и посмотрите, что предположительно запущено и работает. Чтобы служба запускалась при каждой загрузке, используйте<br />
<br />
ng-update add type/service<br />
<br />
За подробной информацией обратитесь к документации на прилагаемом диске. Утилита ''InitNG ''имеет много опций для конфигурирования и администрирования, так что она заслуживает опробования всех ее возможностей. Если при старте возникают проблемы, вы можете удалить строку '''init=/sbin/InitNG''' в файле настройке загрузчика (см. выше), а также задать вопросы на полезном форуме ''InitNG ''по адресу '''http:// forum.InitNG.thinktux.net'''.<br />
<br />
Теперь ваш ПК должен быть быстрее ниндзя – ура!<br />
----<br />
'''ДРУГИЕ РЕСУРСЫ'''<br />
<br />
Вы можете оценить эффект от применения описанных шагов при помощи простого секундомера, но он не покажет вам, где остались узкие места. Полезной утилитой, позволяющей получить больше информации о процессах загрузки, является ''Bootchart ''('''www.bootchart.org'''), генерирующая графики ваших загрузочных процессов, где показана степень использования процессора и жесткого диска. После установки Bootchart вы сможете отследить провалы и паузы в ваших стартовых скриптах, сравнивая графики при каждой загрузке. На web-сайте или в разделе '''Системы/ Диаграммы''' загрузки на нашем диске-приложении имеются исходные тексты и документация.<br />
<br />
Ну вот, все закончилось! Вы нашли другие пути снижения времени загрузки? Или придумали хитрый трюк, экономящий еще несколько секунд? А может, зашли в тупик, и из-за сделанных изменений время загрузки на самом деле увеличилось? Присоединяйтесь к нашему форуму по адресу http://www.unixforum.org<br />
----<br />
'''РЕЗЕРВИРУЕМ!'''<br />
<br />
Изменения, которые мы внесем, повлияют на стартовые скрипты вашей системы Linux, расположенные в каталоге '''/etc''', поэтому разумно будет прежде всего сохранить их копию. Откройте окно терминала, войдите как суперпользователь и введите<br />
<br />
cp -R /etc /old-etc<br />
<br />
Конфигурационные файлы вашей системы скопируются из каталога '''/etc '''в каталог '''/old-etc'''. Если что-то пойдет не так, вы сможете перекинуть содержимое '''/old-etc '''обратно в ваш каталог '''/etc''', перезагрузиться, и все придет в норму. Если вы предприняли шаги, описанные в данном учебнике, и все работает корректно, каталог '''/old-etc м'''ожно смело удалять.<br />
<br />
Не паникуйте, если вы допустили ошибку и появились проблемы при загрузке – вы можете можете запустить Live-дистрибутив вроде Damn Small Linux (присутствующий на DVD-приложении), подмонтировать ваш жесткий диск и скопировать '''/old-etc '''из-под него.<br />
----<br />
'''ИСПРАВЛЯЕМ ПРОБЛЕМЫ'''<br />
<br />
Как утверждалось в начале этого урока, сохранение резервной копии вашего каталога '''/etc''' является хорошей идеей на случай, если что-то пойдет не так. Так как все изменения вы производите в '''/etc''', наличие его неизменяемой копии в '''/old-etc''' жизненно важно для исправления проблем.<br />
<br />
А вдруг вы понаделаете такого, что система вообще не загрузится? Не бойтесь: вам помогут Live-дистрибутивы! Для восстановления вашего исходного каталога /etc вы можете взять практически любой Live-дистрибутив, предоставляющий доступ к терминалу или командной строке – даже Games Knoppix с дискаприложения к этому номеру. Загрузите Live-дистрибутив с вашего DVD, откройте терминал и смонтируйте ваш жесткий диск командами<br />
<br />
mkdir /mydrive<br />
mount -t ext3 /dev/hda1 /mydrive<br />
<br />
Ваш диск станет доступен в каталоге '''/mydrive'''. (Возможно, придется заменить ‘'''ext3'''’ на ‘'''reiserfs'''’ если вы используете файловую систему Reiser, а ‘'''hda1'''’ может стать ‘'''hda2'''’, если вы установили Linux во второй раздел, ‘'''hda3'''’ – если в третий, и т.д.) Затем введите<br />
<br />
mv /mydrive/etc /mydrive/broken-etc<br />
mv /mydrive/old-etc /mydrive-etc<br />
umount /mydrive<br />
<br />
и перезагрузитесь. Ваш исходный '''/etc''' восстановлен, а проблемный '''/etc''', сорвавший загрузку, помещен в '''/broken-etc'''.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF90:%D0%A1%D0%BF%D0%B5%D1%86%D1%80%D0%B5%D0%BF%D0%BE%D1%80%D1%82%D0%B0%D0%B6LXF90:Спецрепортаж2010-03-01T10:48:59Z<p>Yaleks: /* ...теперь отдыхайте! */</p>
<hr />
<div>== Проблемы Linux решены ==<br />
''Что, завязли? Руководство '''Грэма Моррисона''' по типичным проблемам в Linux должно стронуть вас с места.''<br />
<br />
__TOC__<br />
'''Нечего стыдиться, если вы застряли на простой с виду проблеме в Linux. Знайте: множество вопросов по Linux люди задают снова и снова – и не потому, что ленятся искать ответы самостоятельно, а потому, что очень часто на это нет времени или данное проявление проблемы не похоже на обычное. Почему видеодрайверы так трудно устанавливать? Что случилось с моим интернет-соединением? Почему не устанавливается эта программа?'''<br />
<br />
Linux не является причиной проблем. В наши дни можно твердо сказать, что с Linux проблем не больше, чем с любой другой операционной системой, и подавляющее их большинство – это результат почти бесконечных комбинаций оборудования, которые можно встретить на типичных ПК. Обычный источник проблем – плохо поддерживаемое оборудование или то, что пользователь не знаком с ОС. Для большинства пользователей установка диска с последней версией Ubuntu в CD- или DVD-привод окончится без неприятностей. Но некоторые общие проблемы время от времени выплывают наружу – будь то «железо» или ПО, установка или администрирование. И из-за многовариантной природы Linux и оборудования, на котором он работает, бывает трудно точно указать причину.<br />
<br />
На последующих страницах – кроме подробных ответов по типовым проблемам – мы еще и попытаемся научить вас решать такие проблемы. Ключ к решению – понимание взаимодействия ОС и оборудования, а также работы различных компонентов вашего дистрибутива Linux. Глубокое знание Linux само по себе награда, но оно также помогает разобраться с неприятными инцидентами.<br />
<br />
Мы должны предупредить вас, что – хотя это и очевидно – некоторые внесенные изменения могут иметь катастрофические последствия для вашей Linux-системы, если они сделаны неправильно. Поэтому обязательно обезопасьте все ваши данные: вдруг что-то пойдет наперекосяк. Нам всем случалось раскаиваться, что мы отложили резервное копирование на потом; итак, вашим первым заданием, еще до чтения, будет создание резервной копии!<br />
<br />
== Установка ==<br />
''Что делать, если все отказало еще до того, как дистрибутив оказался на вашем жестком диске.''<br />
<br />
'''У некоторых невезучих Linux даже не устанавливается. Вы-то думали, что инсталляция – самый отлаженный аспект дистрибутивов Linux, поскольку и разработчики, и пользователи должны пройти одни и те же этапы; но это, к сожалению, неверно.'''<br />
<br />
Последние релизы, как Fedora Core, так и Ubuntu, намучились с процедурами установки, и хотя большинство пользователей запускает Linux без сучка без задоринки, итогом этого процесса может стать пустой экран и голый диск. Причины проблем весьма различны, но большинство из них сводится к оборудованию. Ваши шансы на успех сильно возрастут, если еще до инсталляции дистрибутива вы постараетесь сделать свою машину как можно более стандартной.<br />
<br />
Это означает удаление всех ненужных для инсталляции устройств. Может помочь попытка использовать IDE-диск вместо более современного SATA-варианта, а также отключение ненужных карт расширения и USB-периферии. Linux отлично адаптируется, и устройства легко будет добавить после завершения процесса первоначальной установки.<br />
<br />
Следует также убедиться, что вы используете последнюю версию BIOS для вашей материнской платы (ее можно скачать с сайта изготовителя вашей «материнки»). Номер версии BIOS мелькает на экране при включении компьютера. Его также можно проверить в меню BIOS, нажав [F2] или [F12] во время загрузки.<br />
<br />
=== Прощай, ACPI! ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-13.png|thumb|Загрузчик Grub появляется при запуске Linux-дистрибутива. Можно отредактировать пункты меню и добавить более совместимые с вашим «железом» опции: для входа в режим редактирования нажмите <Escape>, а затем <e>.]]Если проблем избежать не удалось, существует довольно большой шанс заставить вашу систему работать, отключив ACPI. Это функция управления питанием, встроенная в каждый современный BIOS/материнскую плату, но ее реализация далека от стандарта и может вызывать проблемы. Если вы хотите попробовать отключить ACPI, сделайте это из меню загрузки до того, как что-нибудь загрузится. Во-первых, большинство современных дистрибутивов Linux используют сис-<br />
тему загрузочного меню, именуемую ''Grub''. Установлен ли ''Grub'', можно узнать по появлению сообщения «Grub loading, please wait» после инициализации BIOS. Если вы такого не увидите, ваш дистрибутив, вероятно, использует старую альтернативу, именуемую ''Lilo'' – попробуйте более новый дистрибутив.<br />
<br />
Увидев сообщение «Grub», нажмите клавишу {{oncolor||green|Escape}}. Откроется меню опций для загрузки вашей системы. Нужно выделить опцию загрузки по умолчанию (обычно вверху списка) и нажать клавишу {{oncolor||green|e}}. Далее, выделите строку, начинающуюся со слова «kernel», и снова нажмите {{oncolor||green|e}}. Это редактирование строки конфигурации ядра для меню ''Grub'': нужно добавить «acpi=off», нажать {{oncolor||green|Enter}}, а затем {{oncolor||green|b}} для загрузки вашего модифицированного пункта. Если это решит вашу проблему, можете сделать данное изменение постоянным, добавив «acpi=off» в той же строке ядра в '''/boot/grub/menu.lst''' в вашей установленной Linux-системе. Чтобы сохранить изменения на диске, вам нужно будет отредактировать этот файл с правами администратора системы.<br />
<br />
=== Ошибки памяти ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-14.png|thumb|Если память выдюжила испытание огнем Memtest86, значит, проблемы не здесь]]Ошибку вызывать может также какой-либо аппаратный компонент. Linux предъявляет к оборудованию гораздо больше требований, чем другие ОС, и поэтому первоначальная установка Linux может первой выявить признаки сбоя. Обычно главный виновник – память, т.к. при превосходном функционировании всего модуля сбои может давать одна небольшая секция. Linux старается использовать столько памяти, сколько может потребоваться для оптимизации дискового кэша или временного файла, и прихватывает ту память, которой другие операционные системы касаться не рискуют. Ошибки памяти могут возникать случайным образом и приводить к зависанию вашей машины, повреждению изображения на экране или возникновению различных случайных системных ошибок.<br />
<br />
Вы можете выяснить, в памяти ли дело, запустив программу под названием ''Memtest86''. Она существует уже довольно долго (она унаследована от ранней версии ядра Linux). Ее нужно загружать прямо с CD/DVD-ROM или дискеты (еще помните такие?); загрузившись, она запустит исчерпывающую серию тестов вашей памяти. Если ваша память переживет эту пытку, не выдав никаких ошибок, можете быть почти уверены, что проблем с нею нет. Если ''Memtest'' что-нибудь обнаружит, придется заменить неисправный модуль (купите, одолжите или стяните другой). Стоит это примерно 2-3 тыс. рублей за 1 ГБ-модуль, но вы обнаружите, что такая замена сделает более стабильными и другие ОС на этой машине.<br />
{{Врезка<br />
|Заголовок='''Шаг за шагом: Создаем home-раздел'''<br />
|Содержание=Одной из наиболее полезных корректив при установке Linux-системы является создание отдельного дискового раздела для домашних каталогов. Не жалейте затраченного времени: это упростит и обновление дистрибутива, и создание резервных копий ваших данных. Системные файлы храните в корневом разделе, а пользовательские данные – в home-разделе. Во время обновления убедитесь, что инсталлятор переформатирует только корневой раздел, а home-раздел не трогает.<br />
{{{!}}<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-1.png|thumb|center]]<br />
* '''Ручное редактирование'''<br />
В этом примере мы воспользовались Ubuntu, но в большинстве дистрибутивов процесс похожий. Первый шаг – позаботиться о ручном изменении таблицы разделов, не позволив инсталлятору полностью управлять выделением дискового пространства.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-2.png|thumb|center]]<br />
* '''Выделение памяти'''<br />
Как минимум, не считая Windows-раздела, вам потребуются разделы ‘root’, ‘home’ и ‘swap’. Последний может быть небольшим (два объема ОЗУ), а размер остальных двух зависит от того, где вы собираетесь хранить свои данные.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-3.png|thumb|center]]<br />
* '''Выбор места'''<br />
Наконец, укажите подходящую точку монтирования (место в вашей файловой системе) для каждого раздела: / для корневого раздела, /home для домашних каталогов и swap для оставшегося раздела.<br />
{{!}}}<br />
}}<br />
<br />
== Оборудование ==<br />
''Заставить оборудование работать – не обязательно сложная задача.''<br />
<br />
{{Врезка|right|Ширина=400px<br />
|Заголовок=«Скорая помощь» по оборудованию<br />
|Содержание=<br />
* Введите '''lspci''' в окне терминала, чтобы увидеть список всех устройств, подключенных к вашей системе. Как правило, вы увидите больше информации, чем могли бы ожидать, потому что современные материнские платы зачастую объединяют несколько устройств в одно. Если ваше оборудование здесь не появилось, возможно, оно плохо подсоединено.<br />
* Есть несколько способов растянуть ваш рабочий стол на два экрана. Стандартный метод – использование ''Xinerama'' и дублирование различных секций в '''xorg.conf''', но в случае с оборудованием от Nvidia можно также воспользоваться инструментом от изготовителя и активировать режим «TwinView».<br />
* Если вы хотите использовать с Linux MP3-плейер, выбирайте такой, который монтируется как внешний накопитель. Вы сможете скопировать на него свои музыкальные файлы как на USB-диск и управлять своей коллекцией при помощи обычного файлового менеджера.<br />
* При сборке собственных приложений и драйверов в Ubuntu нужно установить базовое окружение для сборки, введя в командной строке следующее:<br />
<br />
sudo apt-get install build-essential linux-headers-`uname -r`<br />
* Когда вы собираете собственный модуль драйвера или устанавливаете проприетарный модуль от поставщика оборудования, вы сможете гарантировать его подгрузку во время старта системы, добавив имя модуля в файл '''/etc/modules'''.}}<br />
<br />
'''Заставить определенные «железки» работать в Linux пока что проблема. На это есть две принципиальных причины. Во-первых, возможных комбинаций оборудования бывает множество. Типичная ситуация – когда материнская плата от одного изготовителя, видеокарта – от другого, а внешняя периферия, например, принтер, мышь и клавиатура – от толпы каких-то других сборщиков. И каждому подавай свой драйвер, а драйверы часто еще и взаимодействуют друг с другом. Понятно, что изготовитель не в силах протестировать все возможные комбинации драйверов.'''<br />
<br />
Это сочетается со второй причиной: многие изготовители пока отказываются открыть спецификации своего оборудования, чтобы разработчики могли писать драйверы. Linux уже может похвастать превосходной поддержкой оборудования от Intel, IBM и AMD, но по-прежнему очень важно убедиться в совместимости нового оборудования, прежде чем выкладывать за него денежки. Следует также проверить наличие открытого драйвера для вашего оборудования, поскольку сообщество мало чем поможет, если драйвер закрыт. Чтобы разобраться в этих вещах, загляните на http://cdb.suse.de, http://www.mandriva.com/hardware или http://www.phoronix.com/lch.<br />
<br />
=== Проблемные видеокарты ===<br />
<br />
Типовая «горячая тема» для оборудования в Linux – заставить работать видеокарту с 3D-ускорителем. По умолчанию большинство Linux-дистрибутивов устанавливают для оборудования открытый драйвер. Последняя версия Ubuntu может прервать эту тенденцию, включив проприетарные драйверы, но покамест вы получаете видео-драйверы с открытым кодом, обеспечивающие лишь минимальную поддержку 3D-ускорения. Этого достаточно для обычного использования настольного ПК, но если вы захотите поиграть в ''PlanetPenguin Racer'' или создать сцену в ''Blender'', ваша видеокарта не справится с нагрузкой.<br />
<br />
Если вы собрались купить новую 3D-видеокарту, для серьезной производительности годятся лишь два поставщика. Nvidia и ATI (ныне принадлежащая AMD) предлагают к загрузке собственные закрытые драйвера для ваших карт, и каждый использует свою процедуру установки. Альтернатива для тех, кто не гонится за модной «трехмеркой» – карты Intel; это оборудование не столь мощное, зато драйверы полностью открыты. Если карта у вас уже есть, выясните, какой чипсет в ней используется (для этого наберите в командной строке '''lspci''').<br />
<br />
Независимо от вашего оборудования, нужно будет установить исходные коды ядра. Каждый драйвер должен быть скомпилирован именно с той версией ядра, которую вы используете. Nvidia и ATI пытаются предоставлять прекомпилированные двоичные версии для нескольких популярных ядер и дистрибутивов, но поскольку именно ядро обычно первым заменяется при установке обновлений безопасности, нет гарантии, что эти версии за ним поспевают.<br />
<br />
Исходный код ядра можно установить с помощью менеджера пакетов вашего дистрибутива, выполнив поиск либо по ‘kernel-source’ (для систем Mandriva и Fedora), либо по ‘linux-source’ (для систем Ubuntu/Debian). Менеджер пакетов выяснит, какая версия вам нужна, поскольку требуется ее идеальное соответствие вашему рабочему ядру, и вы всегда можете проверить, какая версия ядра у вас запущена, набрав в командной строке '''uname -a'''. Инструкции по установки драйвера Nvidia см. в нашем пошаговом руководстве, справа.<br />
<br />
После установки исходных текстов ядра, следующим шагом будет запуск для нового драйвера процедуры инсталляции, предусмотренной поставщиком, то есть скачивание двоичного пакета с сайта Nvidia или ATI. Перед запуском полученного файла нужно будет закрыть текущую сессию X Window. Некоторые дистрибутивы позволяют выйти в терминал, закрыв X-сессию, но с другими вам придется закрывать сессию вручную. Сделать это можно, введя как root либо '''killall gdm''', либо '''killall kdm''', чтобы остановить процесс менеджера входа в систему.<br />
<br />
Более надежный способ достичь того же – переключить уровень исполнения (runlevel) с помощью команды ''init''. Различные уровни исполнения настраиваются на запуск различных процессов. Например, уровень 1 (введите '''init 1''') – обычно однопользовательская система в безопасном режиме, а уровень 5 ('''init 5''') – ваш привычный, полноценный графический рабочий стол. На беду, здесь нет единого стандарта: различные дистрибутивы используют различные уровни исполнения. В Fedora и OpenSUSE пользователь может закрыть X-сессию, набрав '''init 3''', а пользователям Debian/Ubuntu остается для переключения в безопасный режим только '''init 1'''.<br />
<br />
=== Пустой экран ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-15.png|thumb|Изменить разрешение экрана можно не только редактируя файл Xorg.conf, но и через панель настройки Nvidia.]]Инсталлятор ATI или Nvidia попытается изменить настройки вашего экрана для согласования с новым устройством. После установки вам нужно будет запустить '''gdm''' (или '''kdm''' для пользователей KDE) от имени root, чтобы активировать менеджер входа в систему. Если вы получите пустой экран, нужно будет либо вручную отредактировать '''/etc/X11/xorg.conf''', либо запустить входящую в ваш дистрибутив утилиту настройки экрана. Учтите: '''xorg.conf''' не для малодушных. Это технический файл, включающий спецификации вашего оборудования, например, возможности экрана, а также установки драйверов. Вот несколько вещей, которые нужно проверить, если вы натолкнетесь на проблемы:<br />
* Убедитесь, что в секции Device конфигурационного файла подгружается правильный драйвер. Здесь должно быть либо «Driver ‘nvidia’», либо «Driver ‘fglrx’», в зависимости от вашего оборудования.<br />
* Разрешение экрана может выходить за пределы возможностей вашего монитора. В этом случае создайте безопасное разрешение, оставив только 800х600 для всех элементов Display в секции Screen.<br />
* Драйвер ядра может не загружаться. Наберите '''lsmod | grep “nvidia\| fglrx”'''. Если на выходе ничего не окажется, введите либо '''modprobe nvidia''', либо '''modprobe fglrx''', для загрузки модуля драйвера.<br />
<br />
После установки нового драйвера ваша Linux-система сможет поддерживать графику с 3D-ускорением.<br />
<br />
=== Следим за перегревом ===<br />
<br />
Когда ваша система работает под нагрузкой, вполне естественно, что ее компоненты перегреваются. Мощная видеокарта весьма способствует этой проблеме: без адекватного охлаждения могут начаться всякие странные вещи. Мы сказали «странные вещи», а не что-то более определенное, поскольку невозможно предсказать, что именно может случиться. На каком-то этапе возникают ошибки, обрушиваются приложения, повреждается изображение на экране, а то и система полностью зависает. А похоже это все на ошибки памяти.<br />
<br />
Отследить такие ошибки трудно, потому что за время перезагрузки машины оборудование охлаждается, и система опять работает как следует. Если вы заподозрили, что причиной проблем может быть перегрев, запустите инструмент слежения за температурами системы: это хорошо даже в том случае, если проблем и нет. Вывод предупреждения, что ваша система «разгорячилась» – прекрасный способ пресечь проблемы до того, как они возникли.<br />
<br />
Многие современные машины выводят информацию о температуре в каталог '''/proc/acpi/thermal_zone/''' в файловой системе. Если нет, попробуйте ввести '''modprobe thermal''' от имени root. Кроме того, существуют инструменты для мониторинга температуры и предупреждения о проблемах. Есть лишь один реальный претендент на роль лучшего приложения мониторинга: пакет под названием ''Lm-sensors''. Мониторинг – это приложение уровня ядра, и когда ''Lm-sensors'' будет установлен, его собственные драйверы смогут собирать все необходимые данные.<br />
<br />
Установка обычно сводится к поиску ‘lm-sensor’ в менеджере пакетов вашего дистрибутива, кроме того, имеет смысл установить графическую оболочку, например, не зависящий от рабочего стола Xsensors (для KDE попробуйте ''Ksensors''). Когда он будет установлен, запустите сценарий настройки из командной строки с правами root. Просто наберите '''sensors-detect''' и нажимайте [Enter] для каждого ответа по умолчанию. По завершении, скрипт попросит вас скопировать и вставить секцию в файл '''/etc/modules'''. Это обеспечит загрузку драйверов сенсоров при следующей перезагрузке системы, и вы сможете получить доступ к температурным данным, запустив '''sensors''' из командной строки или через одну из графических оболочек, установленных одновременно с ''Lm-sensors''.<br />
<br />
=== От молчания к звучанию ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-16.png|thumb|Звук можно оживить, всего лишь загрузив настройки микшера и подвигав "бегунки"]]Еще один источник головной боли – отсутствие звука. Без сомнения, современная звуковая подсистема в Linux очень совершенна, но она также слишком сложна, и поиски первичной причины беззвучия – занятие неблагодарное. Прежде всего проверьте все таблицы. Если вы не меняли конфигурацию оборудования, очень важно удержаться от попыток расковырять провода и динамики. Если раньше все работало, значит, настройки правильные. Возня с ними, пусть даже вы уверены, что здесь-то и причина проблемы, чревата лишь новыми бедами.<br />
<br />
Проверьте программный микшер (особенно если вы недавно модернизировали свою машину). Лучший способ это сделать – запустить какой-нибудь аудиофайл в настольном плейере и экспериментировать с уровнями различных каналов в вашем микшере. Если интерфейс командной строки в ''Alsamixer'' на ваш взгляд скудноват, можете установить и использовать инструмент под названием ''Alsamixergui''.<br />
<br />
Каналы, на которые следует обратить внимание – Master, PCM и Aux, но проблема со звуком в Linux заключается в том, что функции этих каналов не всегда очевидны. Например, обычная проблема – «бегунок» IEC: чтобы звук начал воспроизводиться, иногда его нужно выставить на 25%, а иногда на 0%. Поиграйте с ним, пока что-нибудь не услышите.<br />
<br />
{{Врезка<br />
|Заголовок=Шаг за шагом: Устанавливаем драйверы Nvidia<br />
|Содержание=Оборудование Nvidia – популярный выбор среди пользователей Linux, поскольку оно предоставляет лучшую 3D-производительность, которую только можно купить. Если вы любите играть или вам нужно работать с ПО для 3D-моделирования, вопрос производительности является существенным. Необходимое условие для инсталляции драйверов Nvidia – установленный исходный код вашего Linux-ядра. Прежде чем приступить к установке драйвера, откройте менеджер пакетов вашего дистрибутива и установите пакет исходных текстов. Есть шанс обойтись и без этого, если Nvidia уже предоставляет двоичный драйвер для вашего ядра. В противном случае просто следуйте этим шагам, войдя в систему как root.<br />
{{{!}}<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-4.png|thumb|center]]<br />
* '''Скачивание драйвера'''<br />
Закройте ''X Window'' или загрузитесь в консоль. Вы всегда сможете скачать последний драйвер из консоли, используя web-браузер ''Lynx''. Введите lynx http://www.nvidia.com/object/unix.html, найдите ссылку для скачивания и нажмите <d>.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-5.png|thumb|center]]<br />
* '''Запуск скрипта установки'''<br />
Введите '''sh''', а затем – имя полученного файла. Если инсталлятор возмущается, что вы не закрыли X, удалите '''/tmp/.X11-unix''' и '''/tmp/.X11-lock''' и попробуйте снова. Процесс установки выполняется автоматически; инсталлятор изменит ваш файл '''Xorg.conf'''.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-6.png|thumb|center]]<br />
* '''Проверка'''<br />
Модуль ядра будет собран и установлен. Для гарантированной его загрузки вы можете ввести '''modprobe nvidia'''. После этого остается либо перезагрузить машину, либо запустить менеджер входа в систему – ''gdm'' или ''kdm''.<br />
{{!}}}<br />
}}<br />
<br />
== Программное обеспечение ==<br />
''Тот факт, что ПО в Linux свободно, позволяет сделать многое. Но свободное ПО зачастую идет без свободной поддержки...''<br />
<br />
{{Врезка|right|Ширина=400px<br />
|Заголовок=«Скорая помощь» по программам<br />
|Содержание=<br />
* Ближайший аналог инсталляционных файлов '''setup.exe''' в Linux – это Autopackage. Их довольно сложно делать, но если они доступны, то ПО устанавливается просто вихрем. Autopackage-файлы для последних релизов ''Gimp'', ''Gaim'' и ''Inkskape'' находятся на http://autopackage.org.<br />
* Если вам нужно запускать системный скрипт во время загрузки, просто разместите ссылку на этот скрипт в каталоге '''/etc/rc.local'''. Как вариант, пользователь может добавить скрипт к своей Gnome-сессии из меню System > Preferences > Sessions, или кинуть ссылку в '''~/.kde/Autostart''' в случае KDE.<br />
* Настройки рабочего стола можно найти в директориях '''.gnome''' или '''.kde''' в вашем домашнем каталоге. Копирование всего содержимого этих каталогов в другую систему перенесет большинство ваших системных установок, при условии, что вы используете одинаковые версии рабочих столов {{oncolor||green|[и не забудете сменить права доступа к файлам: пользователь «user» в дистрибутиве A и дистрибутиве Б – разный пользователь, – прим. ред.]}}.<br />
* Менеджер пакетов можно использовать как для установки, так и для удаления ПО. Если вы ощутили недостаток места на диске, вспомните, что можно освободить немного места, удалив неиспользуемые приложения.<br />
* Вы можете конвертировать RPM в Deb и наоборот, используя удобную утилиту под названием ''Alien''. Создаваемые ею пакеты в критических для системы приложениях использовать не следует, но это может реально помочь, если никакие другие пакеты не доступны. См. http://kitenet.net/~joey/code/alien.html.}}<br />
'''ПО – сложная штука. Невозможно охватить все, поскольку Linux – одна из самых распространенных и используемых ОС на планете. И она бесконечно разнообразна. Каждый из нас так или иначе сталкивается с программными проблемами. И все-таки многие проблемы возникают чаще, чем должны бы. В основном это связано с обычным для свободного и открытого ПО недостатком документации – все меняется слишком быстро, чтобы технические писатели поспевали за разработкой. А если вы разработчик-одиночка, документация обычно расположена слишком низко в списке приоритетов.'''<br />
<br />
Хороший пример – композитный менеджер ''Compiz'' для сногсшибательных 3D-эффектов. Год назад он был на этапе формирования и вышел в январе 2006 года. Но за последние 12 месяцев программа созрела, к ней появились расширения, и в доказательство реального прогресса, проект распался на два (вторая ветвь известна как Beryl). Однако, несмотря на весь этот «прогресс», от жаждущих трехмерного куба чаще всего приходится слышать вопрос: а как заставить его работать? А жаждут практически все.<br />
<br />
=== «Ломаем» Compiz ===<br />
<br />
Для тех, кто хочет получить последний ''Compiz/Beryl'', жизнь недавно стала заметно проще, благодаря тому, что большинство современных дистрибутивов использует сервер ''X.org'' с активированным ''AIGLX''. Использование ''AIGLX'' означает, что больше не нужно менять используемый по умолчанию сервер ''X Window'' на ''Xgl''. Первоначально для многих пользователей это было основным камнем преткновения. Теперь остается лишь убедиться, что для вашей видеокарты есть драйверы, поддерживающие аппаратное ускорение (см. раздел «Оборудование»), и один из пакетов – ''Compiz'' или ''Beryl'' – установлен с помощью менеджера пакетов вашего дистрибутива.<br />
<br />
Если пакеты не предоставляются по умолчанию, потребуется добавить сторонний репозиторий. Например, в последней версии Ubuntu нужно добавить репозиторий ''Beryl'' (Ubuntu Beryl Repository, http://ubuntu.beryl-project.org) для загрузки пакетов ПО, прежде чем приступать к установке. Затем выполните '''Beryl-manager''' из командной строки – и текущая оконная рамка превратится в трясущееся желе.<br />
<br />
=== Идем в ногу со временем ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-17.png|thumb|Ubuntu позволяет добавлять различные источники для вашего ПО через приложение Software Sources]]С «красотой» мы разобрались; следующий наиболее популярный вопрос – как устанавливать файлы из Интернета. Ответить на него сложно, поскольку здесь нет простого решения. В Linux нет эквивалента скачивания программы '''setup.exe''' и ее запуска, как делается в Microsoft Windows. Менеджер пакетов дистрибутива ближе всего подходит к установке «в один клик», но он полностью зависит от дистрибутива, обеспечивающего пакеты для нужных вам приложений. Mandriva пытается отслеживать запросы публики и предоставлять пакеты для наиболее востребованных приложений, а Ubuntu и Debian включают тысячи прекомпилированных пакетов для установки.<br />
<br />
Но с появлением нового релиза вы застреваете. Каждому охота скачать и установить последнюю версию приложения, но если вам нужны официальные пакеты, то придется подождать следующего официального релиза выбранного вами дистрибутива. Это одна из причин, почему так много людей мечутся от одного дистрибутива к другому – они бегут с корабля, чтобы получить новейшую версию пакета, недоступную в настоящее время в их текущем дистрибутиве.<br />
<br />
Несмотря на это, есть несколько способов получить последнюю версию желанного ПО. Например, ''Mozilla Firefox'' доступен в виде статически собранного исполняемого файла – вы можете запустить эту программу сразу же, как скачаете, без размышлений о зависимостях и сценариях настройки. Вы также обнаружите, что готовые пакеты часто предоставляют сторонние разработчики (например, команда ''Beryl'' – свое композитное ПО), и установка их разработок обычно сводится к добавлению нового сервера в вашем менеджере пакетов до того, как вы решите установить свежее ПО.<br />
<br />
=== С исходным кодом на «ты» ===<br />
<br />
Если вам так уж нужна наисвежайшая версия, временами нет другого способа ее получить, кроме как скачать «голый» исходный код. Вид его зависит от вкуса автора, но наиболее общий метод распространения программ – упаковка исходного кода в файлы '''.tar.gz''' или '''.tar.bz2'''. Собирая свое ПО, легко нарваться на неприятности, и вообще-то это следует рассматривать как крайность – но большинство приложений можно собрать, следуя простой стандартной процедуре.<br />
<br />
Первый шаг – убедиться, что на вашей машине установлено необходимое для сборки окружение: не только инструменты компилятора GNU, но и версии «для разработчика» всех библиотек, нужных вашей программе. Это зависимости в чистом виде, и вы можете определить их, читая сопроводительную документацию. Поняв, какие пакеты вам нужно установить, убедитесь, что вы устанавливаете ‘dev’-версию из менеджера пакетов вашего дистрибутива – это те самые файлы «для разработчика», которые нужны для сборки вашего приложения.<br />
<br />
При установленных зависимостях большинство приложений требуют запуска '''./configure''' и '''make''' в созданном каталоге. Именно здесь и встречаются проблемы, когда процесс сборки не может найти библиотеку или файл, от которых он может зависеть. Хитрость тут в том, чтобы найти в выводе место возникновения первой ошибки и внимательно прочитать текст, чтобы найти, какой файл пропущен.<br />
<br />
Типичная ошибка может выглядеть как-то так: ‘'''libguile.h''': No such file or directory’. В данном случае не найден файл '''libguile.h'''. Как правило, вы сможете определить, какой пакет нужно установить, поискав этот файл в менеджере пакетов вашего дистрибутива или даже в Интернете. В случае с Debian/Ubuntu, хороший ресурс – www.debian.org/distrib/packages. Чтобы найти необходимый для решения проблемы пакет, вы можете ввести '''‘libguile.h’''' в поле «Search The Contents Of Packages» на этой странице. В нашем примере нехватает пакета '''libguile-dev''', его можно установить с помощью ''Synaptic''. С другой стороны, владельцы Mandriva могут поискать файлы, используя графический менеджер пакетов или набрав в командной строке '''urpmf libguile-dev''' от имени root. Компиляция проблемного ПО – это вопрос внимательного просмотра сообщений об ошибках, пока не будут выполнены все недокументированные требования.<br />
<br />
=== Пестрота мультимедиа ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-18.png|thumb|Новый инструмент пакетного менеджмента в Mandriva – один из простейших в использовании, он делает обработку зависимостей почти безболезненной.]]Что касается установки ПО, большинство пользователей, заполучив свой сияющий новизной Linux, первым делом желает либо послушать музыку в формате MP3, либо посмотреть в онлайне видео, закодированное с использованием проприетарного формата. Проблема заключается в том, что команды большинства дистрибутивов не хотят вступать в конфликт с законом, включая технологии, которые могут чем-то нарушить права на интеллектуальную собственность. MP3 – хороший пример, поскольку патент на его дизайн активно навязывается французской технологической компанией Thomson Consumer Electronics. Многие команды выбирают безопасную тропинку, оставляя его за пределами своего дистрибутива, поэтому-то открытые форматы, типа Ogg Vorbis, столь хорошо поддерживаются поставщиками дистрибутивов.<br />
<br />
Несмотря на эти ограничения, обычно есть возможность заставить большинство файловых форматов прекрасно работать в Linux. Например, разработанная сообществом версия RealPlayer для Linux включает лицензированное воспроизведение MP3 (см. www.real.com/linux). Но есть также возможность добавить поддержку различных форматов при помощи пакетов и репозиториев сторонних производителей. Активация Multiverse в Ubuntu позволит вам скачать пакет кодеков Win32, включающий поддержку всевозможных проприетарных форматов, а Penguin Liberation Front поддерживает также репозитории для Mandriva.<br />
<br />
{{Врезка<br />
|Заголовок=Шаг за шагом: Добавление репозитория в Ubuntu<br />
|Содержание=Один из наиболее частых вопросов, получаемых в Linux Format – как активировать сторонние или неподдерживаемые репозитории для вашего дистрибутива. Понятно, что процесс в каждом дистрибутиве свой, но поскольку Ubuntu – это хороший выбор для начинающих, то вот вам инструкция.<br />
{{{!}}<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-7.png|thumb|center]]<br />
* '''Выбор источников'''<br />
Запустите менеджер пакетов Synaptic, затем отметьте Settings > Repository. Откроется новое приложение Select Sources, в котором вы сможете активировать новые репозитории на вкладке Third Party или добавить собственный, щелкнув на New.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-8.png|thumb|center]]<br />
* '''Скачивание'''<br />
Когда бы вы ни сделали изменения в базе пакетов, Synaptic потребует обновить список доступных пакетов. Просто щелкните на Reload в Synaptic, чтобы скачать новый список пакетов с различных репозиториев.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-9.png|thumb|center]]<br />
* '''Поиск!'''<br />
Каждый поиск приложения теперь будет охватывать новые источники пакетов, используете ли вы Synaptic или apt в командной строке. Это самый безопасный способ добавить ПО, но сторонние пакеты могут оказаться проблемными.<br />
{{!}}}<br />
}}<br />
<br />
== Сеть и администрирование ==<br />
''В наши дни грош цена тем, кто не подключен к Интернету.''<br />
<br />
{{Врезка|right|Ширина=400px<br />
|Заголовок=«Скорая помощь» по сетям и администрированию <br />
|Содержание=<br />
* Существует множество беспроводных устройств, не поддерживаемых в Linux. Но часто их можно заставить работать, используя комбинацию Windows-драйвера и превосходное Linux-приложение по имени ''Ndiswrapper''. Он объединяет эмуляцию Windows с магией Linux, чтобы вернуть оборудование к жизни.<br />
* Брандмауэры зачастую понимаются неправильно, потому что пользователям Windows вдалбливают, что он должен быть у них установлен. Истина же в том, что если у вас нет портов или сетевых сервисов, запущенных на вашей машине, то нужды в брандмауэре никакой нет – вот почему Ubuntu не поставляется с преднастроенным брандмауэром.<br />
* Если вам нужно администрировать вашу систему удаленно, попробуйте установить программу ''Webmin''. Она позволит настраивать почти все аспекты работы вашей машины, от web-сервера до пользовательских учетных записей, и все это через браузер на удаленной машине.<br />
* Сетевые USB-устройства, от старых телефонных модемов до новых ADSL, создают проблемы. Вы можете заставить их работать, но обычно это не стоит затраченных усилий. Гораздо проще купить дешевый ADSL-маршрутизатор и использовать подключение по Ethernet-кабелю – и никакой специальной настройки не потребуется.<br />
* Таблицу маршрутизации (слегка запутанную) можно просмотреть, набрав '''route''' от имени root. Если у вас больше одного сетевого устройства, убедитесь, что только один маршрут отмечен как используемый по умолчанию. Можете удалить любые дополнительные маршруты по умолчанию, набрав '''route del default eth0''', только замените ‘eth0’ на имя соответствующего устройства.}}<br />
<br />
'''В Linux вы недалеко уйдете без подключения к сети. Несмотря на это, сейчас нет стандартного приложения для его настройки. В каждом дистрибутиве свой подход к поддержке сети, и как правило, предлагается собственная панель конфигурации или скрипт для настройки вашего соединения, а это вам не сильно поможет, если что-то поломается.'''<br />
<br />
Если ваша машина отказывается выходить в Интернет, можно попробовать несколько вещей. Наиболее обычная помеха в плохо настроенной сети – ваш компьютер не может преобразовать имя сервера в IP-адрес, необходимый для установления соединения. То есть если вы наберете что-то типа ‘bbc.co.uk’ в своем браузере, сетевой уровень, отвечающий за установление соединения, будет нуждаться в конвертации его в номер, или IP-адрес. Например, bbc.co.uk на самом деле соответствует IP-адресу 212.58.228.155.<br />
<br />
Одно в другое конвертирует DNS, сервер доменных имен. Если он не настроен, вы не сможете просматривать страницы, используя доменные имена, но тем не менее сможете использовать IP-адреса. Вот и первый ключ к решению проблемы – если доступ по IP-адресам работает, а по доменному имени – нет, значит, проблема в настройке DNS. Обычно это означает, что вы ввели неправильный адрес сервера. Адрес DNS вашего провайдера размещается в файле '''/etc/resolv.conf''', и вам нужно проверить, что после слова ‘nameserver’ указан правильный адрес.<br />
<br />
=== Общее соединение ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-19.png|thumb|Использование инструмента типа Firestarter для настройки брандмауэра сильно упрощает установку общего интернет-соединения.]]У многих из нас сейчас больше одного компьютера, которые без интернет-соединения полезны лишь наполовину. Вы можете использовать беспроводную сеть, но есть также возможность разделять соединение, используя Ethernet-кабель, если два компьютера достаточно близко друг от друга. Если у вас нет коммутатора между этими двумя компьютерами, важно, чтобы используемый вами кабель был «перекрестным» (crossover), а не стандартным.<br />
<br />
В некоторых дистрибутивах общее соединение создается открытием панели управления на машине, подсоединенной к Интернету, и активацией соответствующей опции. Например, в Mandriva общее соединение может быть активировано на страницу Network & Internet в центре управления. Но в других дистрибутивах, особенно в Ubuntu, вам придется выполнять настройку вручную.<br />
<br />
Намного проще настроить обе машины, если сетевые соединения используют статические адреса, а не назначаемые автоматически – особенно для машины, с которой вы хотите разделять соединение. Потому что если вы хотите, чтобы машины использовали общее соединение, имея автоматически назначаемый IP-адрес, то придется учитывать дополнительную сложность в лице DHCP-сервера. Общее интернет-соединение складывается из двух элементов: маршрутизации пакетов (forwarding) и трансляции сетевых адресов (NAT), оба они реализуются с помощью ''Iptables'' {{oncolor||green|[строго говоря, это не совсем верно. Часть ядра, отвечающая за маршрутизацию, может работать и без Iptables, – прим. ред.]}}. Это сетевой инструмент, работающий на уровне ядра и отвечающий за управление сетевыми пакетами – обычно известный как брандмауэр. А установка брандмауэра – самый простой способ настроить общее интернет-соединение.<br />
<br />
''Firestarter'' – одна из наиболее популярных утилит настройки брандмауэра для Linux. При первом старте «мастер» быстрого запуска проведет вас по настройкам брандмауэра и созданию общего интернет-соединения. Он берет на себя большую часть забот по настройке ''Iptables'', а также предоставляет в реальном времени информацию о том, какой именно процесс работает с Интернетом.<br />
<br />
=== Потерянный пароль ===<br />
<br />
[[Изображение:LXF90-Спецрепортаж-20.png|thumb|Даже если вы присматриваете за системой, где больше одного пользователя, сейчас гораздо проще использовать графический инструмент администрирования, а не консоль.]]Пароли не особо важны, если ваш компьютер стоит себе в углу, без подключения к интернету, и вы его единственный пользователь. Но как только вашу машину захочет использовать кто-то еще или вы пожелаете войти в сеть, хороший пароль становится жизненно необходимым для безопасности вашей системы. Хороший пароль, однако, плох тем, что его сложно запомнить. Самый популярный пароль, вероятно, ‘password1’, который как минимум учел желательность смешения букв и цифр. Если вы еще помните свой пароль root, достаточно войти в систему как root и назначить пароль пользователя командой passwd username. А вдруг пароль для учетной записи root вы тоже забыли? В случае Ubuntu, где и учетной записи root нету, забыть свой пользовательский пароль означает здорово влипнуть.<br />
<br />
Тогда придется перезагрузить вашу систему либо в безопасный режим, либо в режим восстановления. Обычно это применяется для решения проблем с загрузкой, но также полезно и для получения доступа с правами root без пароля. Если вы пользователь Debian или Ubuntu, при виде загрузочного меню ''Grub'' нажмите <Escape> и выберите загрузку ядра в режиме восстановления. По завершении процесса загрузки можно будет изменить пользовательский пароль обычным образом.<br />
<br />
=== ...теперь отдыхайте! ===<br />
<br />
Интернет полнится людьми, перенастраивающими свои дистрибутивы Linux, и мы отметили в начале, что для некоторых это весьма привлекательно. Продравшись сквозь проблемы и сумев самостоятельно их устранить, вы испытаете чувство подлинного удовлетворения. Это обряд посвящения для каждого пользователя Linux.<br />
<br />
Мы надеемся, что вы насобирали достаточно информации, способной помочь вам при любых проблемах; мы, как минимум, дали вам хорошую отправную точку для поиска решения. Но мы будем рады, если вы обратитесь к нам со своими сложностями. Можете также посетить наши дружелюбные форумы (http://www.unixforum.org). Linux зиждется на чувстве взаимопомощи; именно так мы делаем мир лучше. [http://www.linuxformat.ru LXF]<br />
<br />
{{Врезка<br />
|Заголовок=Шаг за шагом: Использование менеджера настройки<br />
|Содержание=Долгое время беспроводные сети причиняли в Linux настоящие мучения. К счастью, две утилиты берут на себя большую часть головной боли, связанной с этим процессом. Менеджеры настройки сети Gnome и KDE – это нововведения, которые, по сути, идентичны. Они выступают как интерфейс между вашим сетевым оборудованием и беспроводной сетью и позволяют вам сканировать доступные сети, сохраняя профиль для тех, которые вы будете использовать. Это значительное усовершенствование по сравнению с панелью управления старых дистрибутивов. Для начала воспользуйтесь своим менеджером пакетов, чтобы установить либо Gnome network-manager, либо KNetworkManager.<br />
{{{!}}<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-10.png|thumb|center]]<br />
* '''Подготовка'''<br />
Вам может потребоваться отредактировать файл '''/etc/network/interfaces'''. Он содержит вашу текущую фиксированную беспроводную конфигурацию, которую нужно будет закомментировать, чтобы менеджер настройки сети смог использовать собственные установки.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-11.png|thumb|center]]<br />
* '''Запуск'''<br />
Установленный и запущенный менеджер настройки сети можно будет найти на панели рабочего стола. Щелкните по иконке, чтобы открыть список доступных сетей, наряду с индикатором уровня сигнала и значком замка или щита, отмечающим зашифрованные сети.<br />
{{!}}[[Изображение:LXF90-Спецрепортаж-12.png|thumb|center]]<br />
* '''Соединение'''<br />
Если вы выбираете незашифрованную сеть, интернет-соединение установится автоматически. Если сеть требует ввода ключа, появится окно запроса, чтобы вы ввели в него дополнительную информацию. Если данные введены правильно, соединение будет установлено.<br />
{{!}}}<br />
}}</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF79:%D0%A7%D0%B8%D1%81%D1%82%D0%B8%D0%BC_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8LXF79:Чистим записи2010-03-01T10:48:18Z<p>Yaleks: /* Ваш выход! */</p>
<hr />
<div>''Наши драгоценные записи могут оказаться слишком уязвимы. Неважно, пожевал ли кот пленку, или вы просто пролили пиво на пульт, '''Грэм Моррисон (Graham Morrison)''' поможет очистить звук.''<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок=Необходимые инструменты|<br />
Содержание=* Audacity<br />
* Ardour<br />
* Jack<br />
* LADPSA plugins<br />
Желательны также:<br />
* Qjackctl<br />
* Jaaa<br />
* Postfish|<br />
Ширина=14%}}<br />
<br />
Шум в аудиозаписи может возникнуть по разным причинам. Возможно, при записи на виниловую пластинку попало слишком много «атмосферы», или чувствительность микрофона была слишком низка для того, чтобы звук преобладал над фоновыми шумами. Ну и конечно, у всех нас есть кипы аудиокассет, которые мы надеемся сохранить в XXI веке. Используя набор специальных Linux-инструментов и приложений, у вас есть возможность вдохнуть новую жизнь в эти старые записи и сделать их звучание таким же, как и в момент создания. Существует три типа шумов, которые портят звук: широкополосный шум, постоянный фоновый шум, а также импульсные помехи – щелчки, треск и другие дефекты.<br />
<br />
=== Искусство шума ===<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок=Антишум: щелчки|<br />
Содержание=* Идентифицируем<br />
* Увеличиваем<br />
* Зачищаем<br />
<br />
[[Изображение:Shelchki1.jpg|thumb|Найдите щелчки в окне Audacity. Они выглядят как резкие скачки амплитуды.]]<br />
[[Изображение:Shelchki2.jpg|thumb|С помощью лупы увеличьте масштаб настолько, чтобы рассмотреть отдельные сигналы.]]<br />
[[Изображение:Shelchki3.jpg|thumb|Инструментом Карандаш (Pencil) восстанавливаем линию на уровне соседних, «здоровых» участков записи.]]|<br />
Ширина=200px}}<br />
<br />
Широкополосный шум получил свое имя из-за того, что он присутствует на всем спектре частот. Больше всего он заметен на высоких частотах, и вы услышите его практически на любой аналоговой записи. Это так называемый «белый» шум – звук ненастроенного телевизора. Каждое устройство, через которое проходит ваш аудиосигнал – включая микрофон и аналого-цифровой преобразователь на звуковой карте – добавляет некоторое количество такого шума. Поэтому чем выше качество вашей техники, тем меньше широкополосного шума будет создано при записи. На втором месте находится нежелательный фоновый шум/гул на заднем плане. Подобно широкополосному шуму, он порождается оборудованием, но при этом заполняет вполне определенный спектр частот и на слух различается как низкий тон. Такой шум является результатом заземления электрооборудования при котором создается «петля» - слабые токи, которые проходят по аудио-кабелям. Частота колебаний такого шума соответствует частоте переменного тока, но это не опасно ни для человека, ни для звука. Промышленная частота тока составляет 50Гц в Великобритании и России и 60Гц в США, что воспринимается на слух как очень низкий бас. Вы также можете расслышать высшие гармоники этих колебаний, которые будут иметь частоты из ряда 100Гц, 200Гц и так далее. Еще одним источником гула служит ваша звуковая карта, которая имеет свойство ретранслировать высокочастотные наводки остальных компонентов компьютера. Из-за этого производители специально экранируют качественные звуковые карты.<br />
<br />
Импульсные помехи бывают как аналоговыми, так и цифровыми. Первые чаще всего встречаются при перезаписи старых виниловых пластинок, когда игла натыкается на загрязненный участок дорожки и подпрыгивает (треск). Цифровые щелчки являются либо результатом ошибки кэширования (процессор не успевает за ходом записи), либо возникают из-за чрезмерной громкости сигнала, когда тот зашкаливает за границы диапазона и часть звука попросту «отрезается».<br />
<br />
Самый простой способ управиться с низкокачественной записью состоит в использовании визуальных средств. С их помощью вы сможете определить характер шума и наиболее эффективно удалить его. К сожалению, даже несмотря на свои научные корни, набор инструментов визуализации в Linux совсем невелик. Классическим способом представления звука является периодограмма, используемая практически любым звуковым редактором. По вертикальной оси фиксируется амплитуда сигнала, по горизонтальной – время, а результатом является знакомый рисунок из «пиков» и «впадин». Волновой график прекрасно подходит для обнаружения щелчков и других резких изменений амплитуды, но он бесполезен при работе с низким шумом и гулом. Для них требуется что-то наподобие спектрограммы, где амплитуда каждого набора частот выделена своим цветом (см. врезку «Анатомия шума»). По горизонтальной оси отложено время, по вертикальной – частота. Синим цветом отмечен сигнал с небольшой, красным – со средней, и белым – с высокой амплитудой.<br />
<br />
Audacity имеет ряд инструментов для анализа звука и входит в состав многих дистрибутивов как стандартный аудиоредактор. В нем возможно переключение между режимами графика частот и спектрограммой, а также есть окно анализа выделенного звукового фрагмента. Для того, чтобы воспользоваться другими инструментами, вам понадобится протокол реального времени Jack, который является единственным способом применять звуковые эффекты и сразу же слышать результат.<br />
<br />
=== Шаг 1 – удаляем импульсные помехи ===<br />
<br />
Щелчки, также известные как «обрезки» (clipping), представляют собой наиболее пагубную разновидность шума, так как они перекрывают полезный сигнал, не оставляя от него следов. Обрезанный сигнал раздражает хуже нарыва, так как звук переходит от нормальной громкости к очень высокой и зашкаливает в течение нескольких выборок [цифровой звук имеет дискретную природу, поэтому при оцифровке производится определенное количество выборок – замеров – в единицу времени, – прим. ред.] Если под обрез попал большой участок, то вы, скорее всего, ничего с этим не сделаете. Тем не менее, более мелкие помехи можно исправить вручную.Чтобы сгладить «рваные» участки записи, нам нужно отредактировать исходный сигнал. В стандартном CD-качестве одна секунда звука состоит из 44100 выборок, каждая из которых имеет 16-разрядную амплитуду. Audacity позволяет прекрасно работать на уровне этих сигналов: просто загрузите файл и, используя лупу, увеличьте какой-либо фрагмент до максимума – пока не увидите отдельные сигналы. Небольшой щелчок (около дюжины выборок) можно «срисовать» с ближайшего здорового участка. Не забывайте почаще проигрывать обрабатываемый кусочек записи. Если искажения заметны на слух, это означает, что вы неправильно скорректировали профиль звуковой волны.<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок= Plot Spectrum|<br />
Содержание=<br />
[[Изображение:Graph.jpg|thumb|Этот график показывает «поперечный срез» нашей записи (время идет как бы по оси z – из глубины страницы на нас). Нам нужно вырезать звук на частоте 100Hz.]]|<br />
Ширина=200px}}<br />
<br />
=== Шаг 2 – убираем фоновый шум и гул ===<br />
<br />
Лучший способ избавиться от гула, жужжания или других тонов известной частоты заключается в использовании эквалайзера. Вы можете увеличить или уменьшить амплитуду определенного набора частот, поэтому эквалайзер – почти идеальный инструмент удаления нежелательных звуков. Минусом можно считать некоторую неразборчивость эквалайзера, который вместе с шумом удаляет и часть полезного звука.<br />
<br />
Самое трудное – определить диапазон частот, который соответствует нежелательным звукам и шуму. Вы можете положиться на свой слух и вручную подстроить частоты, но те из нас, кто не одарен идеальным слухом, захотят воспользоваться наглядным инструментом. Просто щелкните по опции Plot Spectrum в Audacity, и перед вами возникнет сечение выбранного фрагмента. Низкие частоты отображаются в левой части графика, а высокие – в правой. Кривая отражает относительную амплитуду для разных частот. Постоянный фоновый шум наглядно виден здесь как пик, одинаковый по всей длине записи. К сожалению, Audacity не умеет обновлять график в реальном времени – по мере проигрывания звука. Для того, чтобы воспользоваться этой удобной функцией, нам понадобятся Ardour и Jack.<br />
<br />
Сперва запустите Jack, воспользовавшись утилитой Qjackctl, затем Ardour. Чтобы сразу видеть все изменения на экране, запустите Jack and Alsa Audio Analyser, который скрывается за страшным словом Jaaa. В общих словах, это визуальный анализатор спектра, очень похожий на встроенный в Audacity. Он может работать с аудиофайлами или с потоком Jack. Для поддержки последнего запустите Jaaa c соответствующим ключом: jaaa -J. Когда все загружено, проверьте монитор соединений Jack и убедитесь, что звуковой поток направлен правильно. Вывод Ardour, как и Jaaa (если он запущен), должен быть направлен на выход звуковой карты. В Ardour вам необходимо создать новую дорожку: щелкните правой кнопкой мыши по рабочей области и выберите из выпадающего списка Stereo. Потом сделайте еще такой же щелчок и выберите Insert External Sound File (Вставить Звуковой Файл), после чего вам нужно будет указать файл, который вы хотите очистить. Возможно, придется сначала конвертировать этот файл в формат WAV, но это зависит от того, что поддерживает ваша сборка Ardour.<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок=Антишум: гул и жужжание|<br />
Содержание=* Настройка Jack<br />
* Эквалайзер<br />
* Проверка на выходе<br />
<br />
[[Изображение:AntiGul1.jpg|thumb|Для того, чтобы применять эффекты в реальном времени, нам понадобится Jack, а также визуализаторы Ardour и Jaaa.]]<br />
[[Изображение:AntiGul2.jpg|thumb|Загрузите в Ardour «шумную» запись и примените к ней эквалайзер. Найдите диапазон частот шума и уменьшите его присутствие в записи.]]<br />
[[Изображение:AntiGul3.jpg|thumb|До и после эквалайзера. Уменьшите ширину частотной полосы в эквалайзере. Это снизит потери в частотах, близких к гулу.]]|<br />
Ширина=200px}}<br />
<br />
Для загруженного файла сразу же создается амплитудный график. Заметим, что дорожек с файлами может быть сколько угодно (просто для данного примера достаточно одной). После нажатия на кнопку Play все дорожки проигрываются одновременно как один сведенный канал.<br />
<br />
=== Эквалайзер ===<br />
<br />
Для того, чтобы Ardour вырезал шум, нужно применить к звуку эффект эквалайзера. В отличие от Audacity, в Ardour эффекты сразу же применяются к текущей звуковой дорожке. Щелкните на кнопке Editor Mixer (Редактор каналов) в левом верхнем углу окна программы, и вы увидите область точной подстройки каналов. Внизу находится индикатор и ползунок громкости, а сразу же над ними вы заметите квадратик (под кнопкой записи), который и отвечает за эффекты. Щелкните правой кнопкой мыши по нему и выберите Новый модуль (New Plugin). Появится окно со списком всех установленных у вас модулей LADSPA. Здесь вы найдете самые разные фильтры, упорядоченные по типу, но нам больше всего подошел 4-полосный параметрический фильтр (4-Band Parametric Filter). Его параметричность заключается в том, что, указав частоту шума/гула, вы можете уменьшить ее вклад в запись.<br />
<br />
Каждый подключенный эффект отображается на области каналов – вы заметите его по квадратным скобкам, которые означают, что данный эффект загружен, но не активирован. Активация производится в контекстном меню (правый щелчок мыши). Там же присутствует и пункт Edit, отвечающий за подстройку эффекта. В вашем распоряжении четыре полосы, но нам пока достаточно будет всего одной, поэтому для Frequency 1 мы зададим значение, соответствующее частоте обнаруженного нами шума. Теперь просто уменьшите величину присутствия этой частоты в звуке, и шума станет меньше. Эффект можно контролировать на слух, чтобы тут же подобрать оптимальные значения частот, или использовать Jaaa для сравнения спектрограммы до и после включения эффекта. Добившись нужного результата, экспортируйте обработанный звук через меню Session.<br />
<br />
=== Шаг 3 – удаляем широкополосный шум ===<br />
<br />
Этот шум труднее всего подается удалению, так как его почти невозможно вычленить из исходного сигнала. Проще всего можно сделать так: заполнить паузы и все тихие участки записи тишиной. Это могут быть промежутки между песнями или задержки в диалогах людей (широкополосный шум наиболее заметен, когда кроме него больше ничего нет). При помощи обычного амплитудного графика в Audacity можно определить, когда на фоне шума возникают всплески полезного сигнала. Можно, конечно, удалить шум вручную, изменяя кривую громкости, но есть другой, гораздо более эффективный способ – порог.<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок=Антишум: широкополосный шум|<br />
Содержание=* Находим шум<br />
* Создаем профиль шума<br />
* Обрабатываем запись<br />
<br />
[[Изображение:ShirShum1.jpg|thumb|Это фрагмент записи, где нет полезного сигнала – одно шипение и гул.]]<br />
[[Изображение:ShirShum2.jpg|thumb|Выделив образец шума, перейдите в фильтр Эффекты > Удаление шума и щелкните по кнопке Получить профиль шума.]]<br />
[[Изображение:ShirShum3.jpg|thumb|Вернитесь обратно к записи и выделите ее полностью. Теперь заново откройте фильтр и нажмите ОК.]]|<br />
Ширина=200px}}<br />
<br />
Для начала необходимо выяснить уровень громкости шума. Для этого найдите в Audacity фрагмент записи, где нет ничего, кроме шума. Попробуйте проиграть самое начало записи и нажмите паузу до того, как начнется полезный сигнал. Графические индикаторы покажут громкость сигнала в этом месте в децибелах. Запишите это число, так как оно нам понадобится для выставления настроек порога. Среди LADSPA-эффектов содержится множество фильтров, которые действуют по этому принципу, но нам понадобится только один из них, который так и называется – Порог (Gate). Выделите всю запись и перейдите к этому фильтру через меню Эффекты. Бывает что навигация по этому меню превращается в настоящий кошмар, когда сотни установленных эффектов расположены в алфавитном порядке. Появится окно подстройки фильтра, содержащее восемь параметров. Нас интересует только один из них – Threshold (величина порога). Вводим сюда записанное ранее значение и нажимаем кнопку Preview, которая позволит нам убедиться, что из записи действительно удален только шум, а не сам звук. Для наилучшего результата можно слегка поиграть с величиной порога и под конец нажать OK.<br />
<br />
Тем не менее, использование порога удалит шум только из пауз и тихих участков, тогда как в составе звука он по прежнему останется. Здесь на помощь приходит более развитый инструмент Audacity – шумоподавитель, который вы можете найти в меню эффектов. Этот умный фильтр способен вычленить шум из полезного сигнала и заметно улучшить качество последнего. Но есть и недостаток: в качестве побочного эффекта в записи появляется странный эффект, похожий на звон.<br />
<br />
Сначала нужно выделить область, содержащую только шум (начало записи и прочие паузы). Потом нужно открыть этот фильтр и нажать кнопку «Получить профиль шума» (Get Noise Profile). Таким образом у Audacity появится образец «чистого» шума, который и будет вычитаться из полезного сигнала. Чтобы применить этот эффект, выделите всю запись и откройте окно фильтра заново, после чего прибавьте действия эффекта, передвинув движок вправо (примерно на 30%) и нажмите ОК. После того, как Audacity закончит свои вычисления, вы заметите, что запись больше не содержит шума. Качество работы этого фильтра во многом зависит от того, какой образец шума вы выбрали, так что попробуйте несколько вариантов.<br />
<br />
В зависимости от того, с каким рвением вы применяли фильтр, вы можете услышать различные звоноподобные артефакты. Это и есть плата за шум, поскольку вместе с ним из сигнала удаляется и часть полезных частот. Единственный способ с эти справиться – использовать более щадящие настройки фильтра и внимательнее подбирать образцы шума. Частично скрыть этот дефект также поможет эффект реверберации – это небольшое эхо, которое добавляет в звук объема, а также смазывает нежелательные артефакты шумоподавителя.<br />
<br />
=== Ваш выход! ===<br />
<br />
Если у вас есть записи, которые нужно почистить, я надеюсь, что смог вдохновить вас на такой шаг. Кассетная пленка не вечная!<br />
<br />
Ваш труд не обязательно будет тяжелым: подстройте эквалайзер, добавьте реверберации – и вполне возможно, что старые записи волшебным образом оживут. Не забудьте поделиться своим опытом и советами с другими меломанами на нашем форуме http://www.unixforum.org .</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8BLXF96:Ответы2010-03-01T10:47:17Z<p>Yaleks: /* Которое ядро? */</p>
<hr />
<div>== Ответы ==<br />
<br />
=== Удаленная печать ===<br />
'''В:''' ''Я учитель в школе, и когда я занялся компьютерами в учительской, то на них всех стоял Windows. Сейчас я готов установить Ubuntu на один из них, но это осложняется одной «мелкой» деталью – принтером!''<br />
<br />
''Имеется компьютер с Windows Server, подсоединенный к коммутатору. Сервер работает только как принт-сервер. Я запускаю Ubuntu Feisty Fawn, но не могу печатать. Ubuntu находит принтер, Samsung CLP- 500, я устанавливаю драйвера, но ничего не печатается. Может, надо использовать Samba?'' <br />
Эдуардо Рамальядейро [Eduardo Ramalhadeiro] <br />
<br />
'''O:''' Согласно базе OpenPrinting (www.linux- foundation.org/en/OpenPrinting), этому принтеру необходимы драйверы SplitX, их можно найти на сайте http://splix.sourceforge.net. Хотя этот драйвер хорошо работает с некоторыми лазерными принтерами Samsung (например, мой монохромный лазерник работает отлично), для CLP-500 он помечен как работающий «частично». Это, повидимому, связано с ограничением разрешения до 600 dpi при печати. Samsung также предлагает Linux-драйвера, которые можно загрузить с http://short.zen.co.uk/?id=792 (полный URL до смешного длинный). <br />
<br />
SplitX включен в состав текущей версии Ubuntu, так что весь вопрос заключается в его установке через Synaptic и выборе нужного драйвера в меню настройки принтера. <br />
<br />
CUPS может «разговаривать» с Windows-принтерами – он использует клиентские библиотеки Samba, так что Вам нужна установленная Samba, но самому ее настраивать не надо: Ubuntu устанавливает Samba по умолчанию, и незачем совершать лишние движения. Все, что нужно сделать – это установить пакет SplitX через Synaptic, а затем запустить Новый принтер в Система > Администрирование > Печать и, когда спросят, выбрать корректный принтер. НБ <br />
<br />
=== gHamachi gхамит ===<br />
<br />
'''В:''' ''Пытаюсь настроить gHamachi, используя уроки вашего июньского номера [LXF93]. Я следовал инструкциям на стр. 63 до этапа 3, когда я нажал Yes и ввел пароль root. Тут появилось сообщение: «TAP/TUN NOT FOUND». У меня Ubuntu 6.06. В чем может быть проблема?''<br />
Брайан Митчелл [Bryan Mitchell] <br />
<br />
'''O:'''Эта проблема вызвана тем, что gHamachi не находит программу tuncfg, которая происходит от Hamachi, так что придется установить также и Hamachi. Сообщение об ошибке довольно-таки дезинформирующее: TAP/TUN не найден, потому что нет программы, используемой для его поиска. Похоже, gHamachi выдает одно и то же при любых ошибках запуска tuncfg, даже если попытка сорвалась из-за того, что tuncfg не найден. <br />
<br />
Вам понадобится несколько дополнительных команд для установки Hamachi. Зайдите в Synaptic и установите пакет build-essential, содержащий все необходимое для установки пакетов вне Synaptic. Теперь загрузите Linux-версию Hamachi с http://hamachi.cc. <br />
<br />
Если вы сохранили ее на вашем рабочем столе (Desktop), откройте терминал и наберите: <br />
<code><br />
cd Desktop <br />
tar -xf hamachi-0.9.9.9-20-lnx.tar.gz <br />
cd hamachi-0.9.9.9-20-lnx <br />
sudo make install <br />
</code><br />
Теперь Вы готовы запустить gHamachi и продолжить действия по инструкциям. НВ <br />
<br />
=== Визит к Vista ===<br />
'''В:''' ''После проблем с Vista друг попросил меня установит на его компьютере Linux. На моем компьютере – FedoraCore 6, и я открыл для совместного доступа диск в Vista, чтобы сохранить необходимые файлы друга. Но мне нужна помощь в переносе файлов. Я могу получить доступ к общему диску, но когда я пытаюсь открыть папки, чтобы получить файлы, Linux выдает сообщение, что не может читать папки компьютера с Vista. Могу ли я получить доступ к общему диску в Vista и вытащить оттуда файлы через Linux? Проблем с доступом к общим дискам в Windows XP, 2000 или 98 из Linux у меня не было.''<br />
JCFreak, c форума LXF <br />
<br />
'''O:''' Уж сознайтесь, что Vista стоит на вашем компьютере – мы стараемся помочь всем, и не надо сваливать все на «друга»... <br />
<br />
Лучший способ получить доступ – это использовать для монтирования дисков командную строку, тогда Вы сразу увидите, в чем причина сбоев. Сделайте это от имени суперпользователя: <br />
<code><br />
mkdir -p /mnt/windows <br />
mount //ИМЯ_КОМПЬЮТЕРА//C /mnt/windows -o <br />
user=ИМЯ_ПОЛЬЗОВАТЕЛЯ <br />
</code><br />
замените ИМЯ_КОМПЬЮТЕРА на сетевое имя ПК с Windows, а ИМЯ_ПОЛЬЗОВАТЕЛЯ на пользователя с правами администратора на данном компьютере. После этого введите пароль пользователя. Диск C будет подмонтирован (будем считать, что вы открыли доступ к нему). Не пытайтесь отключить требование пароля для сетевых дисков в Панели управления Windows: это только осложнит ситуацию. Зато вам надо включить Public Folder Sharing в секции Network And Sharing Панели управления Windows. <br />
<br />
Но даже с этими настройками Вы не сможете зайти и скопировать любую директорию. Vista защищает директории, вложенные в пользовательские директории – вроде ИМЯ_ПОЛЬЗОВАТЕЛЯ\PrintHood. Однако сейчас Вы не должны иметь никаких трудностей для копирования документов и других файлов вашего друга. <br />
<br />
Поскольку вы подмонтировали этот разделяемый диск, то можете использовать для копирования любой файловый менеджер, какой вам нравится. Вы не сказали, как хотите это сделать – соединив компьютеры напрямую кабелем или через Интернет. В любом случае все будет работать одинаково, кроме скорости передачи, но помните, что данные передаются без <br />
шифрования. Возможно, Вам придется открыть у друга порт 130 в брандмауэре или маршрутизаторе для установки соединения через Интернет. Но это позволит присоединяться кому угодно, поэтому используйте надежный пароль и закройте порт после завершения работы. По возможности, заберите компьютер друга к себе домой (или принесите к нему свой) и используйте локальное соединение по сети. <br />
<br />
В качестве альтернативы, можно использовать программу резервного копирования Windows для создания копии данных на DVD и копирования их на компьютер с Fedora Core 6. Резервная копия Windows представляет собой zip-архив, его можно распаковать в Linux командой unzip, которая есть в Fedora Core 6. НБ <br />
<br />
=== Много мониторов ===<br />
'''В:''' ''Пытаюсь установить подходящий Nvidia драйвер для одно-, двух- и трехмониторной конфигурации, и после долгих поисков сделал это прямым созданием файлов конфигурации xorg.conf (так как GUI Nvidia постоянно жалуется на перекрытие режимов и выдает неправильную частоту обновления).'' <br />
<br />
''У меня теперь три разных рабочих файла xorg.conf – по одному для каждого необходимого режима (на один, два и три монитора), но я не могу найти информацию, как интегрировать их в одной конфигурации, чтобы переключаться между ними.'' <br />
<br />
''Мне нужна возможность переключаться между этими тремя режимами на лету, в идеале бы еще с использованием комбинации клавиш. А так я вручную останавливаю X-сервер, меняю xorg.conf и перезапускаю X-ы. Я понимаю, что нужно объединить три моих файла xorg.conf в один, но как? И как перезапустить X-сервер в альтернативный режим нажатием клавиш на клавиатуре (или чем-то похожим: пунктом меню, скриптом или другим способом «в один клик»)? ''<br />
<br />
''Я использую KDE в Fedora Core 6 и хотел бы получить указания на этот счет, но будьте великодушны ко мне – я вскочил в поезд Linux только неделю назад.''<br />
Jycle <br />
<br />
'''O:''' Вы можете просто скомбинировать отдельные куски разных файлов xorg.conf в один, обеспечивая их разными именами. Секции Monitor могут быть расположены просто друг за <br />
другом, но вы должны быть уверены, что каждая из Ваших секций Screen имеет свое имя, с отдельными секциями для каждого из режимов. Большинство остальных записей в xorg.conf будут одинаковы для всех режимов – например, параметры клавиатуры, мыши, шрифтов. Затем вам необходимо создать различные секции ServerLayout для каждого режима, с различными именами – что-то вроде такого: <br />
<code><br />
Section "ServerLayout" <br />
Identifier "SingleScreen" <br />
Screen 0 "SingleScreen" 0 0 <br />
InputDevice "Mouse0" "CorePointer" <br />
InputDevice "Keyboard0" "CoreKeyboard" <br />
EndSection <br />
Section "ServerLayout" <br />
Identifier "TwinScreen" <br />
Screen 0 "TwinScreen" 0 0 <br />
InputDevice "Mouse0" "CorePointer" <br />
InputDevice "Keyboard0" "CoreKeyboard" <br />
EndSection <br />
</code><br />
По умолчанию выбирается первая ServerLayout, но Вы можете указать это явно: <br />
<code><br />
Section "ServerFlags" <br />
DefaultServerLayout "SingleScreen" <br />
EndSection <br />
</code><br />
Теперь X-сервер по умолчанию загружается в режиме одного монитора, но может быть запущен в режиме вывода на два монитора командой: <br />
<code><br />
startx -- -layout TwinScreen <br />
</code><br />
«--» означает «конец опций startx, передайте серверу новую информацию». Чтобы привязать переключения к клавишам, Вам пригодится маленький скрипт – сохраните его где-нибудь, например, в <br />
/usr/local/bin/restartx: <br />
<code><br />
#!/bin/sh <br />
if [ [ "$(/sbin/runlevel | cut -c3)" == "5" ] ] <br />
then <br />
sudo /sbin/telinit 3 <br />
else <br />
sudo killall X <br />
fi <br />
sleep 2 <br />
startx -- -layout $1 <br />
</code><br />
и сделайте его запускаемым командой chmod +x /usr/local/bin/restartx. Так как скрипт требует прав администратора для запуска, Вы еще должны отредактировать /etc/sudoers (также как администратор) и добавить туда следующее: <br />
<code><br />
Ваше_имя_пользователя ALL = NOPASSWD: /usr/bin/ <br />
killallX,/sbin/telinit 3 <br />
</code> <br />
Теперь Вы сможете переключать режимы командой <br />
<code><br />
nohup /usr/local/bin/restartx имя_нового_режима <br />
</code><br />
nohup небходим, иначе скрипт будет уничтожен, когда закроется рабочий стол. Раз вы используете KDE, можно привязать любые команды к клавишам во вкладке Региональные и специальные возможности/комбинации клавиш Центра управления, установив по одной для включения каждого режима в Вашем файле xorg.conf. В конце, Вам необходимо заставить KDE «помнить» ваши открытые приложения после переключения. Чтобы сделать это, зайдите в Центр управления > Компоненты KDE > Менеджер сеансов и выберите опцию «Восстанавливать сеанс, сохраненный вручную». Это добавит вам возможность сохранять свою сессию, и Вы можете заставить скрипт делать это автоматически, дописав вторую <br />
строчку: <br />
<code><br />
dcop ksmserver ksmserver saveCurrentSession <br />
</code><br />
Это единственная часть, работающая только в KDE, и вы легко убедитесь, что все остальное годится и для других рабочих столов. НБ <br />
<br />
=== Блокировки Samba ===<br />
'''В:''' ''Я использую систему FedoraCore 1 и хотел обновить ее до Fedora Core 6. Перед этим загрузил Core 6 на отдельной машине, чтобы увидеть, как она выглядит «из коробки». Обнаружил, что sendmail настроен на доставку почты, но не смог ее принять. В Google я выяснил, что дистрибутив был выпущен с отключенной возможностью получения почты извне. Почему?''<br />
<br />
''Я также настроил несколько разделяемых ресурсов в Samba и столкнулся со следующей проблемой: если я настраиваю директорию, скажем, /backup, с такими же правами доступа и владельцем, как /var, то я могу подключиться к нему с другой машины и обмениваться содержимым, создавать и обновлять его, а также удалять. Когда я изменил точку входа с /backup на /var, то не смог подключиться к директории. Думаю, надо изменить какие-то предустановленные параметры, но какие именно? ''<br />
<br />
''Чего я хочу, это открыть доступ к /var/www/html, чтобы «поиграть» с HTML- и PHP-файлами. Все это прекрасно работает на Core 1 и не требует изменений. Я могу перейти на Сore 6 в любое время, но не сделаю этого, пока не решу эту и другие проблемы на отдельной машине. ''<br />
<br />
''Еще один момент. Когда я модернизировал систему с Core 1 до Сore 5 или 6, понадобилось несколько часов, и я счел, что проще и быстрее будет выполнить новую установку и скопировать соответствующие файлы конфигурации и данные, но теперь я не так уверен в этом.''<br />
Тони [Tony] <br />
<br />
'''O:''' Похоже, что при установке Fedora Core 6 Вы выбрали режим повышенной безопасности. При этом установлен прием почты только с локальных ящиков, что легко можно изменить, и запрещено открытие доступа к «сугубо личным» директориям. Хотя после этого и возможно добиться открытия доступа к /var, Вам следует пересмотреть свой подход. Блокировка общего доступа к /var имеет понятную причину – слишком много важной информации там хранится, и очень легко сделать систему незагружаемой – по злому умыслу, некомпетентности или просто по неосторожности. <br />
<br />
Вопрос следует задать не «как я могу поделиться содержимым /var?», а «нужно ли мне открывать общий доступ ко всему содержимому /var?» – в этом случае ответ «однозначно нет». Если Вам нужен дистанционный доступ к /var/www/html, то и откройте доступ к /var/www/html. Сделав это, Вы и снизите потенциальные риски, возникающие с открытием <br />
доступа к /var/log или /var/lib, и сможете делать то, что хотели. Есть также альтернативы использованию Samba. Если на обеих машинах запущен Linux, можно смонтировать /var/www/html на удаленной машине при помощи NFS. Если Вы используете KDE на редактируемой машине, можете избежать любой формы удаленного монтирования или открытия доступа, просто используя FISH от KDE. Этот метод использует SSH для обмена с удаленным компьютером: просто поместите fish://hostname/var/www/html в адресную строку Konqueror (или Krusader) для загрузки содержимого удаленной директории в окно файл-менеджера, где Вы сможете загрузить файлы в установленный в KDE редактор. <br />
<br />
Переход с Fedora Core 1 на Fedora Core 6 – серьезный шаг. Многие ключевые компоненты будут изменены, поэтому обновление потребует гораздо больше времени, чем требуется менеджеру пакетов, когда Вы исправляете другие проблемы. Установка с нуля – наилучший вариант, но, скакнув на несколько лет вперед, Вы и обнаружили, что основные компоненты <br />
работают не так, как Вы привыкли. МС <br />
<br />
=== BT без проводов ===<br />
'''B:''' ''Я недавно переключился на BT Total Broadband [широкополосный канал от British Telecom в Великобритании, – прим. пер.] и пытаюсь подключить BT Home Hub, используя Wi- Fi. Установил драйвера Intel/PRO 3945abg, и iwconfig показывает, что сетевой интерфейс включен, но KNetworkManager не соединяется с хабом. Я установил шифрование на OpenSystem и ввел 40/104- битный ключ. Менеджер сети зависает после 28%, а затем переспрашивает WEP-ключ. В документации BT Home Hub говорится, что шифрование 128- битное. Буду благодарен за любые указания, как подключить хаб. Вот вывод iwconfig:''<br />
<code><br />
eth2 IEEE 802.11g ESSID:cMode:Managed <br />
Frequency:2.412 GHz <br />
Access Point: 00:14:7F:BE:0D:9D <br />
Bit Rate:54 Mb/s Tx-Power:15 dBm <br />
Retry limit:15 RTS thr:off Fragment thr: off <br />
Encryption key:xxxx-xxxx-xx Security mode:open <br />
Power Management:off <br />
Link Quality=77/100 Signal level=-57 dBm <br />
Noise level=-58 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:65 Rx <br />
invalid frag:0 <br />
Tx excessive retries:0 Invalid misc:126 <br />
Missed beacon:0 <br />
</code><br />
Клифф Диас [Cliff Dias] <br />
<br />
'''O:''' Вывод iwconfig выглядит правильным, кроме ключа шифрования: он слишком длинен для 64-битного, но слишком короток для 128-битного, и, вероятно, в этом и заключается проблема с шифрованием. Первым делом отключите шифрование как на Home Hub, так и на компьютере. Шифрование беспроводной передачи вещь в целом хорошая, но заставляет помучиться при настройке соединения. Гораздо проще сперва настроить незашифрованное соединение, а затем, когда соединение заработает, применить шифрование. вы можете выключить шифрование на BT Home Hub через web-интерфейс на странице администратора. Руководство скажет вам, какой адрес ввести в строке браузера, и назовет пароль по умолчанию. Кстати, вы получаете хороший шанс сменить пароль на ваш любимый. <br />
<br />
Ваш вывод iwconfig показывает, что соединение работает без проблем. Проверив его работу <br />
соединением с внешней web-страницей (лучше www. linuxformat.co.uk, потому что Майк любит, когда накручивается счетчик посещений), можете включить WEP- шифрование снова. WEP использует так называемое 64-битное или 128-битное шифрование. «Так называемое» – потому что 24-бита из них Вам менять нельзя, отсюда и цифры 40 бит и 104 бита. 128-битный ключ вводится как 16-значная шестнадцатеричная строка, обычно разделенная дефисами для лучшей читаемости: XXXX-XXXX-XXXX-XXXX. <br />
<br />
Если у Вас ничего не выйдет в KnetworkManager, попробуйте запустить iwconfig в терминале от имени администратора. Это может привести к выводу полезных сообщений об ошибке. Вам нужно ввести следующие команды: <br />
<code><br />
ifconfig eth2 up iwconfig eth2 key open XXXX-XXXX-XXXX-XXXX <br />
iwconfig eth2 essid "BTHomeHub-8AF2" <br />
dhcpcd eth2 <br />
</code><br />
Когда все заработает в терминале, можете поместить детали в KNetworkManager или отключить NetworkManager в Yast и использовать стандартный конфигуратор сети Yast. <br />
<br />
Поиск информации в Интернет по этому поводу выдал нам больше историй проблем, чем побед. Консенсус достигнут в том, что это не особенно хороший беспроводной концентратор (несмотря на его попытки закосить под удачный аксессуар Apple) и что гораздо лучшим выбором будет беспроводная точка доступа/маршрутизатор одной из сетевых компаний. <br />
Но, учитывая, что это устройство идет бесплатно с вашим подключением, может, и стоит потратить время на его настройку. НВ <br />
<br />
=== Тасуя карты ===<br />
'''В:''' ''Как заставить сетевые карты помнить свои имена между перезагрузками в SUSE? У меня SUSE Enterprise 9 на моем Linux маршрутизаторе/брандмауэре, в котором установлено три сетевых карты: одна для выхода в Интернет, одна для нашей внутренней сети и еще одна для нашей DMZ [демилитаризованной зоны, – прим. пер.], они перекрывают все наши доступные извне ресурсы: web, e-mail и FTP-серверы. В основном все работает великолепно. Проблема в том, что Ethernet-имена устройств а) случайным образом меняются при перезагрузке (например, 'eth0' при следующей загрузке оказывается 'eth1') и б) любые постоянные имена, назначенные этим устройствам, вроде 'nic1' или 'nic2', часто игнорируются (хотя опция PERSISTENT_NAME="nic1/2/3" определена в файлах устройств /etc/sysconfig/network/ifcfg-eth-*). ''<br />
<br />
''В результате при перезагрузке маршрутизатора я почти всегда вынужден запускать ifconfig и исправлять ID устройств в правилах iptables с учетом текущей (практически случайной) конфигурации устройств. Это вызывает проблемы, потому что маршрутизатор редко восстанавливается сам при любых отключениях без вмешательства. ''<br />
<br />
''Прилагаю файл конфигурации DMZ сетевой карты из /etc/sysconfig/network/ifcfg-eth-id-00:02:96:00:3f:8e. Эта карточка обычно определяется как 'eth2', и (теоретически) ей было назначено постоянное имя 'nic2' в правилах iptables. Когда система загружается, она иногда говорит, что устройство имеет имя 'nic2', но чаще всего этого не происходит – система просто игнорирует строку PERSISTENT_NAME. ''<br />
<br />
''К несчастью, у меня нет других сетевых карт, чтобы попробовать что-то сделать на другой машине (с другим дистрибутивом), и я не могу остановить сервер для решения этого вопроса.''<br />
Пол Вoдби [Paul Waudby] <br />
<br />
'''O:''' Это довольно странно – ваш файл конфигурации выглядит правильным и у нас в SUSE это работает. То, что он иногда работает – показатель, что некоторые фундаментальные куски программного обеспечения все-таки присутствуют. Не обновляли ли вы систему так, что она перешла на udev? При этом имена могут задаваться принудительно, несмотря на настройки в /etc/ sysconfig/network. Если да, то самый простой и легкий способ решения этой проблемы заключается в установке правил именования для udev. Создайте файл /etc/udev/rules.d/10-network.rules от имени администратора и добавьте туда следующее: <br />
<code><br />
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:02:96:00:3f:aa", NAME:="nic0" <br />
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:02:96:00:3f:bb", NAME:="nic1" <br />
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:02:96:00:3f:8e", NAME:="nic2" <br />
</code><br />
заменив строки после ATTRS{address} MAC адресами трех сетевых карт. Хотя у SUSE имеются проблемы с повторным использованием стандартных имен, udev они не касаются. поскольку он переименовывает устройства еще до назначения любых других имен, и если вы захотите, можете здесь использовать имена eth0/1/2. <br />
<br />
Вы можете обнаружить, что у вас уже есть файл в /etc/udev/rules.d с правилами назначения сетевых имен; тогда отредактируйте его, добавив вышеприведенные строки. <br />
<br />
Как альтернативное решение можно использовать команду nameif для переименования интерфейсов. Это нужно делать до подключения интерфейсов. Создайте файл /etc/mactab для хранения списков имен интерфейсов и их MAC-адресов, например, как здесь: <br />
<code><br />
nic0 aa:bb:cc:dd:ee:ff #internal <br />
nic1 00:11:22:33:44:55 #external <br />
nic2 66:77:88:99:00:aa #dmz <br />
</code><br />
Команда nameif прочитает этот файл и переименует интерфейсы согласно ему. Этот метод стоит принять во внимание, если вы не используете udev, так как правила udev предлагают лучший способ для управления постоянными именами сетевых интерфейсов , и не только. НБ<br />
<br />
=== Которое ядро? ===<br />
'''В:''' ''Пытаюсь заставить мою систему видеть мой беспроводной USB-адаптер Belkin, используя ndiswrapper. Примечания говорят мне, что я должен иметь как минимум определенное ядро. Я новичок, так что не могли бы вы подсказать мне, где найти эту информацию? А также, не посоветуете ли, как его установить?''<br />
Барри Симпсон [Barry Simpson] <br />
<br />
'''O:'''Существует множество GUI-инструментов, способных подсказать Вам, какое ядро Вы используете: Центр управления KDE показывает версию на стартовой странице, или Вы можете использовать менеджер пакетов дистрибутива для нахождения версии пакетов с ядром (некоторые дистрибутивы называют их 'linux'). Самый же легкий путь – это открыть терминал и набрать одну из команд: <br />
<code><br />
uname --kernel-release <br />
uname -r <br />
</code><br />
До ndiswrapper дело может и не дойти: некоторые беспроводные устройства Belkin имеют родную поддержку. В этом случае запустите <br />
<code><br />
sudo lsusb <br />
</code><br />
в терминале, чтобы узнать больше о вашем устройстве. Затем поищите в Google или на форуме вашего дистрибутива [российские пользователи могу поискать на http://www.unixforum.org, – прим. пер.] информацию об этом устройстве. Вы также можете найти информацию о наилучшем драйвере для вашего устройства на http://qbik.ch/usb/devices. Если же родного драйвера нет, то без ndiswrapper не обойтись. При этом важно использовать драйвер, прилагавшийся к устройству: производители имеют привычку менять внутреннюю начинку устройства, оставляя один тот же номер модели, поэтому драйвер на вид идентичного устройства может оказаться бесполезным. Если в вашем дистрибутиве (вы не упомянули, какой он у вас) есть инструмент для настройки беспроводных устройств, лучше используйте его вместо ручной настройки. Некоторые из них, например, Yast от SUSE, также могут настроить ndiswrapper. МС<br />
<br />
=== Любопытной Варваре... ===<br />
'''В:''' ''У меня есть небольшая локальная сеть на 500 компьютеров с интернет-шлюзом на базе Linux (Ubuntu 6.06). На шлюзе работает биллинговая система и Jabber-сервер. В связи с тем, что пользователей достаточное количество, всегда находится какой-нибудь «умник», который страсть как желает перехватить передаваемые данные (пароли, файлы, личную переписку) каким-нибудь сниффером со своего рабочего места, а после использовать их в своих целях. Вопрос в следующем – каким образом можно отлавливать подобных личностей и как обезопасить сеть от перехвата данных на программном уровне?''<br />
Денис Суханов <br />
<br />
'''О:''' Защита от перехвата данных в Jabber (правильнее сказать – в XMPP), как и в других протоколах реализована стандартным способом – шифрованием (обычно SSL/TLS). Оно поддерживается большинством популярных клиентов (по крайней мере, Gajim и PSI), и с этой стороны не должно быть никаких проблем. Если же используемые dами протоколы не поддерживают шифрования напрямую, может пригодиться stunnel (www.stunnel. org). Его настройка была подробно рассмотрена Андреем Бешковым в статьях для журнала «Системный администратор», которые сейчас можно найти в сети: http://onix.opennet.ru/content/ view/34/26/. <br />
<br />
Поиск работающих снифферов – более сложная задача, не имеющая 100%-но надежного решения. Один из методов использует тот факт, что сетевая карта злоумышленника переводится в беспорядочный режим (promiscuous mode), т.е. отлавливает все пакеты, идущие по сети. Заполнив ее кадрами для несуществующих MAC-адресов, можно вызвать перегрузку на машинах, где запущен сниффер (остальные узлы не будут обращать внимания на эти пакеты на аппаратном уровне, а снифферу придется декодировать и визуализировать их). Повышенная нагрузка скажется на среднем времени ICMP-ответа («пинга»). Я бы не рекомендовал писать служебную записку на основании такого анализа, но если какой-то компьютер начинает задыхаться под нагрузкой пакетов для несуществующих адресов, это лишний повод заглянуть к его хозяину и посмотреть, в чем дело. ВС <br />
<br />
=== Puppy по-русски ===<br />
'''В:''' ''Меня заинтересовал дистрибутив Puppy Linux, о котором вы писали в LXF93. Я испробовал все возможности, о которых указал в своей статье Сергей Супрунов, однако, мне не удалось настроить использование русского языка в тестовом редакторе Abiword и электронных таблицах. Хотелось бы узнать есть ли поддержка русского языка и как ее настроить. Сейчас я работаю в Windows, но хочу побольше узнать о Linux и со временем думаю перейти на него, а Puppy мне понравился тем, что хорошо работает на старых машинах. Сейчас у меня опыта работы в Linux практически нет.''<br />
Иван Герасименко <br />
<br />
'''O:''' Если я Вас правильно понял и под использованием русского языка подразумевается возможность вводить символы кириллицы, то вот инструкция по настройке русской раскладки: <br />
# Щелкните на иконке Setup или выберите пункт Menu > Setup > Wizard Wizard. <br />
# Перейдите в Change the mouse and keyboard. <br />
# Щелкните Advanced Xorg keyboard configuration. <br />
# В открывшемся окне XKB_Config_Main следует: <br />
задать модель клавиатуры – Keyboard Model (при желании) <br />
* щелкнуть Layouts и задать основную раскладку (ru)<br />
* щелкнуть Layouts еще раз, указать, что хотите добавить (Add) раскладку, выбрать us <br />
* щелкнуть Layouts еще раз, указать, что хотите добавить (Add) раскладку, выбрать ru (с первого раза она почему-то не сохраняется, по крайней мере, в моей инсталляции) <br />
* щелкнуть Layout Variants и выбрать ru: Winkeys (вы должны видеть варианты как для us, так и для ru – иначе нужно вернуться в Layouts и в очередной раз добавить недостающую раскладку)<br />
* щелкнуть внизу кнопку Yes, чтобы изменения вступили в силу. <br />
* щелкнуть Group Shift/Lock behavior и выбрать желаемую комбинацию клавиш для переключения раскладок (мне больше по душе grp:alt_shift_toggle) <br />
* при желании здесь же можно настроить и другие интересные параметры <br />
* щелкнуть внизу кнопку Yes, чтобы изменения вступили в силу. <br />
* После этого никаких проблем с раскладками наблюдаться не должно. СС <br />
<br />
=== Большой вопрос ===<br />
На этом раздел заканчивается, но наши эксперты не расходятся по домам, пока не дойдут до сути общей проблемы <br />
<br />
'''В:''' ''У моего сына PlayStationPortable. Я хочу конвертировать DVD и другое видео в MPEG4, чтобы он мог смотреть их в долгих путешествиях. Уверен, что Transcode или Mencoder на это способны, но их man-страницы – сплошной жаргон. Есть ли какой-нибудь простой способ конвертации видео для PSP?''<br />
Льюис Берфорд [Lewis Burford] <br />
<br />
'''O:''' Да, есть! Когда конвертируешь DVD, наипростейшей программой является dvd:: rip – графическая оболочка для Transcode, MPlayer и других. К сожалению, в ней нет поддержки варианта MPEG4, используемого в PSP, поэтому Вам понадобится FFmpeg, другая консольная программа, но без запутанных опций Transcode или Mencoder. Графический интерфейс к FFmpeg называется Vive, его можно найти по адресу http://vive.sourceforge.net. <br />
<br />
Он существует только в виде исходных кодов, но очень легко устанавливается, при наличии установленных инструментов для компиляции. Скачайте последний tar-архив с сайта (сейчас это 2.0.0-beta1) и установите его, набрав в терминале <br />
<code><br />
tar xf vive-2.0.0-beta1.tar.gz <br />
cd vive-2.0.0-beta1 <br />
./configure <br />
make <br />
su -c "make install" <br />
</code><br />
При запросе, введите пароль администратора. Пользователи Ubuntu должны заменить последнюю команду на нижеследующую и использовать свой собственный пароль: <br />
<code><br />
sudo make install <br />
</code><br />
Vive теперь можно найти в меню KDE или Gnome или запустить его, набрав в командной строке vive. Vive использует предустановки для хранения настроек типов вывода. Пример файла конфигурации по умолчанию не ставится; сделайте это вручную, выполнив <br />
<code><br />
mkdir ~/.vive <br />
cp /usr/share/doc/vive/examples/preferences <br />
~/.vive <br />
</code><br />
Этот файл уже содержит предустановки видео для iPod/PSP, но не позволяет генерировать PSP- совместимые файлы и не справляется с широкоформатным видео. Добавьте следующие строки к файлу настроек: <br />
<code><br />
[PSP] <br />
format=psp <br />
vcodec=mpeg4 <br />
maxrate=768000 <br />
bitrate=700000 <br />
bufsize=4096 <br />
aspect=4:3 <br />
width=320 <br />
height=240 <br />
acodec=aac <br />
ab=64 <br />
ar=24000 <br />
comment=Encoded by Vive <br />
</code><br />
Для широкоформатного видео скопируйте блок, переназовите его, к примеру, PSPWide и измените значения aspect, width и height на 16:9, 368 и 208 соответственно. <br />
<br />
Запустив Vive, Вы должны выбрать или главу DVD, или файл для кодирования – нажмите Load, и Vive прочитает заголовки с DVD. Затем выберите выходной файл и используемые установки. Вы так- же можете изменить значения аудио и видео декодирования по умолчанию, выбрав другие пресеты. Видеофайлы должны быть записаны в директорию <br />
/MP_ROOT/100MNV01 на карту памяти и названы M4V00001.MP4, M4V00002.MP4 и так далее. <br />
<br />
За один раз Vive может конвертировать только один файл, но программу можно запустить из <br />
командной строки в режиме пакетной обработки. Для конвертации всех AVI файлов из директории используйте следующий скрипт: <br />
<code><br />
for FILE in *.avi <br />
do <br />
vive -p PSP -i $FILE -o ${FILE/.avi/.mp4} <br />
</code><br />
Шаг за шагом Конвертируем видео для PSP<br />
{| class="wikitable"<br />
|-<br />
| [[Изображение:Img 96 94 1.jpg|250px]]<br />
| [[Изображение:Img 96 94 2.jpg|250px]]<br />
| [[Изображение:Img 96 94 3.jpg|250px]]<br />
|-<br />
| '''1 Не сейчас'''<br />
<br />
dvd::rip хорош для декодирования видео и DVD, но не может создавать файлы PSP... пока. <br />
| '''2 Выберите дорожку'''<br />
<br />
Выберите главу вашего DVD, или выберите файл для декодирования. За раз Vive справляется только с одним. <br />
| '''3 Задайте установки'''<br />
<br />
По умолчанию настройки Vive содержат установки для iPod/PSP. Но тут создаются два пресета для PSP.<br />
|-<br />
| [[Изображение:Img 96 94 4.jpg|250px]]<br />
| [[Изображение:Img 96 94 5.jpg|250px]]<br />
| [[Изображение:Img 96 94 6.jpg|250px]]<br />
|-<br />
| '''4 Выберите предустановку'''<br />
<br />
Здесь можно выбрать предустановку для PSP и изменить настройки по умолчанию до начала кодирования. <br />
| '''5 Дайте файлу имя'''<br />
<br />
PSP привередлива к именам файлов – даже из- за лишнего 0 в номере файл станет невидим. <br />
<br />
| '''6 Любуйтесь работой'''<br />
<br />
Вкладка Output показывает... угадали, вывод, но в ней можно также запускать команды<br />
|}<br />
<br />
=== Вопрос-победитель (русская версия) ===<br />
<br />
'''Гетерогенный вопрос'''<br />
<br />
'''В:''' ''Помогите, пожалуйста, решить следующую задачу. Допустим, имеется сеть на 30 машин с Windows 2003 Server в качестве контроллера домена. Необходимо настроить Samba на клиентской машине под управлением Ubuntu 6.10 таким образом, чтобы был прозрачный доступ к ресурсам домена без запроса пароля. Кстати, есть ли возможность зайти Windows-пользователем на Linux-машину? ''<br />
Erlah <br />
<br />
Доступ к файловым ресурсам сети Windows-машин осуществляется с помощью Samba. В частности, в состав Samba входит утилита smbmount, кроме того, в Linux в виде модулей VFS реализована файловая система SMBFS, позволяющая выполнять монтирование файловых ресурсов SMB стандартным для Linux способом. <br />
<br />
В качестве механизма Single Sign On в Windows используется собственная реализация Kerberos. Чтобы доступ к ресурсам был прозрачен, необходимо настроить Linux-машину в качестве клиента Kerberos в домене (realm в терминологии Kerberos) Windows. Достаточно подробное описание этого процесса есть, например, здесь: http://barney.gonzaga. <br />
edu/~awithers/integration/. <br />
<br />
После того, как Linux-клиент будет аутентифицирован в Windows-домене, можно пользоваться smbmount и smbclient с аутентификацией Kerberos – в этом случае пароль вводить не потребуется. Подробное описание работы с клиентом SMB есть на сайте Samba: <br />
http://pserver.samba.org/samba/ftp/cifs- cvs/linux-cifs-client-guide.pdf. <br />
<br />
Пользователи Windows могут аутентифицироваться на Linux-машине со своими паролями, если в качестве PAM-модуля для соответствующего сервиса (SSH, IMAP и др.) использует- <br />
ся pam_krb5, проверяющий пароли через сервис Kerberos. Другим вариантом является использование так называемых Kerberized-сервисов, в этом случае пароль вводить вообще не придется. Каждый сервис подключается к системе аутентификации Kerberos посвоему, например, для OpenSSH процесс описан тут: http://www.tkk.fi/cc/ docs/kerberos/sso.html#openssh. Для правильной работы также требуется клиент SSH с поддержкой Kerberos, например, существует модифицированная версия PuTTY: http://rc.quest. <br />
com/topics/putty/. <br />
<br />
Если речь идет о подключении пользователей Windows к файловым ресурсам Linux-машины, то это опять же реализуется средствами Samba, а подробное описание всего, что необходимо для работы этого программного обеспечения, находится в замечательной книге "Using Samba", бесплатно доступной на сайте проекта: http://us1.Samba.org/Samba/docs/ using_Samba/toc.html. ВИ <br />
<br />
=== Вопрос-победитель (английская версия)===<br />
<br />
'''Apache homes'''<br />
<br />
'''В:''' ''Хочу настроить Apache так, чтобы пользователи имели персональные web-сайты в своих домашних директориях / homes/user/website со ссылкой на www.blah.com/~user. Я знаю, что могу это сделать с помощью модуля userdir. Беда, однако, в том, что пользователи монтируют свои домашние директории с Windows- машин, и когда они кладут свои файлы в папку, то Apache не разрешено их читать. ''<br />
<br />
''Как мне его настроить, чтобы файлы, положенные пользователями в их публичные папки, были доступны для чтения Apache автоматически? Я видел упоминание о так называемом mod rewrite, но это не ответ на вопрос. Вовсе не хочу, чтобы пользователи имели возможность менять права (слишком умно для них!) или запускать какие-нибудь скрипты каждую пару часов для проверки их прав. Есть ли модуль Apache, который делает что-то типа этого? ''<br />
Jellyman_4eva, с форумов LXF <br />
<br />
'''O:''' mod_rewrite – очень мощный инструмент, но для этой задачи использовать его неправильно, так как он переделывает переадресованные-запрошенные URL, базируясь на регулярных выражениях. А правильным выбором будет модуль userdir, который Вы упоминали. Ваша проблема сводится к обеспечению того, чтобы все HTML- и прочие файлы, которые пользователи скидывают в свое web-пространство, были читаемыми <br />
для сервера при невозможности чтения всего пользовательского каталога. Это можно легко сделать тщательным выбором владельцев и прав доступа. <br />
<br />
При работе c модулем Apache userdir, http://hostname/~username/ отображается на /home/username/ public_html/. Первый шаг – это проверить, что директории пользователей открыты на чтение только для них самих: <br />
<code><br />
chmod 711 /home/* <br />
</code><br />
Затем необходимо директории public_html сделать доступными для чтения группе, под которой запущен Apache. Обычно это 'Apache', но некоторые дистрибутивы запускают сервер под 'nobody'. Посмотрите на параметр Group в файле httpd.conf: <br />
<code><br />
chgrp apache /home/*/public_html <br />
chmod 750 /home/*/public_html <br />
chmod g+s /home/*/public_html <br />
</code><br />
Теперь директории пользователей доступны для чтения только для них (chmod 711), а директория public_ html принадлежит группе 'Apache', и члены этой группы могут ее читать (но не писать в нее). Третья команда устанавливает директорию как setgid, поэтому любые файлы, созданные в ней, автоматически принадлежат группе 'Apache' вместо группы обычных пользователей. Владение же файлом остается за пользователем. <br />
<br />
Если Вы хотите использовать другую директорию для файлов пользователя, вместо public_html, поправьте соответствующую часть Вашей конфигурации Apache. Она может варьироваться от одного дистрибутива к другому, но файл конфигурации всегда будет содержать строку: <br />
<code><br />
UserDir public_html <br />
</code><br />
Измените ее на ту, где Вы хотите хранить HTML-файлы в домашних каталогах пользователей. ПХ</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF79:FreevoLXF79:Freevo2010-03-01T10:45:31Z<p>Yaleks: /* Настройка телевизора */</p>
<hr />
<div>''Наверняка вы уже прикупили себе один из тех широко разрекламированных домашних кинотеатров. Или еще нет? '''Сергей Яремчук''' расскажет, как превратить обычный дистрибутив Linux в домашнюю мультимедиа-станцию.''<br />
<br />
Бытует мнение, что Linux – невероятно сложная в освоении система, от которой трудно ожидать продвинутой работы с мультимедиа. Все это уже в далеком далеком прошлом. За последние годы появились дистрибутивы, максимально дружелюбные к пользователю, а качество приложений предназначенных для просмотра видео, телевизионных программ, изображений и прочего, не только не уступает таковым для Windows, но и в некоторых случаях даже превосходит их. Кроме того, появились специализированные программы (и даже специализированные дистрибутивы), позволяющие объединить все утилиты и сделать из компьютера единый медиа-центр. Среди них стоит отметить китайский Linpus(tm) Media Center ([http://www.linpus.com.tw/Solutions/Embedded/Media_Center/default.htm www.linpus.com.tw/Solutions/Embedded/Media_Center/default.htm]), внешний вид которого напоминает продукт компании Microsoft, а также два LiveCD: Freevo LiveCD ([http://www.pegasos.org/downloads/torrents/Freevo-live.torrent www.pegasos.org/downloads/torrents/Freevo-live.torrent]) и Wolvix Media Edition ([http://wolvix.org/ wolvix.org]). В состав последнего входит установленный и настроенный Freevo, о котором мы сегодня и поговорим.<br />
<br />
__TOC__<br />
<br />
=== Проект Freevo ===<br />
<br />
[[Изображение:Img 79 54 1.jpg|thumb|Меню Freevo.]]<br />
<br />
Freevo ([http://Freevo.sourceforge.net/ Freevo.sourceforge.net]) является открытым домашним медиа-центром, работающим на компьютере под управлением Linux и базирующимся на других свободных разработках. Среди его возможностей: просмотр любых видео, аудио и графических файлов, расположенных на жестком диске компьютера, а также доступных через сеть. Имеется возможность просмотра и сохранения на диск телевизионных и спутниковых программ. Программа позволяет читать новости и просматривать программу телепередач прямо из Интернета. Сигнал может выводиться как на телевизор, через TV-выход графической карты, так и на монитор. Управление осуществляется традиционно (при помощи мыши и клавиатуры), а также с пульта дистанционного управления.<br />
<br />
Freevo разрабатывается Кристером Лагерстрёмом (Krister Lagerstr m) из Канады. Первая версия, выпущенная в мае 2002 года, представляла собой синий экран с простой системой меню. Сейчас это не просто программа, а полноценная платформа для организации домашнего медиацентра, а поддержка подключаемых модулей позволяет существенно расширить возможности и даже превзойти известные аппаратные решения. Имеющиеся сейчас модули умеют не только изменять внешний вид системы, но и кодировать аудио и видео, записывать CD и DVD-диски, отправлять и принимать почту, интегрироваться с iPod, получать погоду и многое другое. Написан Freevo на языке высокого уровня Python.<br />
<br />
=== Установка ===<br />
<br />
Программа легко устанавливается, не требует компиляции и не имеет большого числа внешних зависимостей, но вот для настройки необходимо иметь достаточные знания, так как документация рассчитана явно на подготовленного пользователя, хорошо знающего английский язык. На сайте проекта доступны исходные тексты, на странице About перечислены основные зависимости: интерпретатор Python, библиотеки SDL, Pygame, Python Imaging Library и Python Twisted, а также Mplayer и Xine. Сразу бросаться и скачивать их я бы не рекомендовал, так как большая часть, скорее всего, уже установлена в вашей системе. Инсталляционный сценарий пожалуется, если ему чего-то не хватает, либо порекомендует обновить те или иные программы, например:<br />
# python setup.py install<br />
checking for mmpython... not found<br />
please download it from http://www.sf.net/projects/mmpython and install it<br />
Скачайте указанный пакет (или найдите его в составе вашего дистрибутива), установите и повторите попытку. Обратите внимание, что для установки потребуется права суперпользователя. Freevo можно найти в портах Gentoo Linux, репозитарии Debian, доступны rpm-пакеты для SUSE Linux, Mandriva, Fedora Core и других дистрибутивов. Есть Freevo и в Сизифе (ALT Linux), поэтому не стесняйтесь использовать свой пакетный менеджер. Кроме всего прочего, для реализации тех или иных возможностей требуется установить сопутствующие библиотеки и приложения: Mplayer или Xine, LIRC и PyLIRC, PyGame, xmltv, jpgtran, библиотеки для работы с DVD и другие.<br />
<br />
=== Настройка ===<br />
<br />
Все настройки Freevo хранятся в трех конфигурационных файлах: Freevo.conf, Freevo_config.py и local_conf.py. Файл Freevo.conf генерируется автоматически во время установки, находится в /etc/Freevo и содержит основные параметры вашей системы, разрешение экрана и пути к исполняемым файлам. Второй файл – Freevo_config.py находится в /usr/share/Freevo и содержит настройки Freevo, используемые по умолчанию. Изменять его не рекомендуется – переопределить параметры можно в файле ~/.Freevo/local_conf.py. Создадайте его из Freevo_config.py.<br />
$ cd; mkdir .Freevo<br />
$ cp /usr/share/Freevo/Freevo_config.py ~/.Freevo/local_conf.py<br />
Теперь можно приступать к редактированию. Файл содержит несколько секций, некоторые из них можно пока не трогать (более детально все настройки описаны на странице DetailedConfig в документации Freevo). Самое главное: перед параметрами не должно быть никаких пробелов или табуляций, иначе вы получите сообщение ошибке синтаксиса, хотя внешне все будет выглядеть нормально. ''[хотите знать, почему? Читайте «Уроки Python» Серегя Супрунова! – прим. ред.]''<br />
<br />
=== Секция General freevo settings ===<br />
<br />
Первая секция содержит общие установки. Например, строка DEFAULT_VOLUME = 40 указывает на уровень громкости, выставляемый по умолчанию. Изменив значение параметра START_FULLSCREEN_X = 0 на 1, можно заставить Freevo запускаться в полноэкранном режиме. Используйте этот параметр, только когда полностью настроите пакет! Строка ROM_DRIVES = None активирует автоматическое обнаружение всех CD или DVD устройств с использованием /etc/fstab. Для отключения этой возможности используйте пустые скобки []. В некоторых случаях придется прописать путь вручную.<br />
ROM_DRIVES = [ ('/mnt/cdrom', '/dev/cdrom', 'CD-ROM') ]<br />
Чтобы шум привода не мешал при просмотре фильма, ограничьте скорость CD-ROM до 8x.<br />
ROM_SPEED =8<br />
И позвольте выключать компьютер при помощи меню Freevo.<br />
ENABLE_SHUTDOWN_SYS = 1<br />
Также в этой секции традиционно переопределяются события (events), которые описаны в файле src/event.py. Например, чтобы во время просмотра фильма увеличить контрастность до 100 нажатием на клавишу 1, нужно прописать следующее правило.<br />
EVENTS['video']['1'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='contrast -100')<br />
<br />
=== Подключаемые модули ===<br />
<br />
В следующей секции настраиваются подключаемые модули Freevo. Все установленные модули автоматически запускаются из файла Freevo_config.py. Например, строка для запуска модуля TV выглядит так.<br />
plugin.activate('tv', level=10)<br />
В пользовательском файле, как правило, либо отключают запуск ненужного модуля, либо переопределяют его параметры. Если у вас (как и у меня) нет TV-тюнера и джойстика, добавьте следующие строки.<br />
plugin.remove('tv')<br />
plugin.remove('joy')<br />
<br />
=== Каталоги ===<br />
<br />
Эта секция позволяет изменить порядок сортировки файлов в каталогах, включить «автозапуск» для содержимого каталогов и вывод информационных тэгов. Например, чтобы разрешить автовоспроизведение для музыкальных файлов и изображений, используйте:<br />
DIRECTORY_AUTOPLAY_ITEMS = [ 'audio','image' ]<br />
Позвольте создавать для них список воспроизведения (playlist).<br />
DIRECTORY_CREATE_PLAYLIST = [ 'audio','image' ]<br />
И добавьте его в каталог<br />
DIRECTORY_ADD_PLAYLIST_FILES = ['audio', 'image' ]<br />
Для большего удобства можно создать в каталоге файл folder.fxd. Он имеет приблизительно такую структуру:<br />
<source lang="xml"><br />
<Freevo><br />
<folder title="Заголовок каталога" img-cover="рисунок.png"><br />
<setvar name="directory_autoplay_single_item" val="0"/><br />
<info><br />
<content>Краткое описание каталога</content><br />
</info><br />
</folder><br />
</Freevo><br />
</source><br />
Можно использовать один общий файл folder.fxd (например, в домашнем каталоге) и ссылаться на рабочие директории следующим образом:<br />
<source lang="xml"><br />
<directory recursive="1">/mnt/mp3/party/rock</directory><br />
</source><br />
Изображения должны быть сохранены в формате JPEG или PNG и иметь размер 280x200 для фильмов, 200x200 для аудио и 200x160 для каталогов с рисунками. Теперь, если указать этот каталог Freevo, в меню будет выведен заголовок и рядом соответствующий ему рисунок. Кроме того, Freevo позволяет защитить некоторые каталоги от просмотра. Для этого в них необходимо поместить файл .password, в котором указать пароль для доступа. Это защита не спасет при наличии доступа к консоли, но при управлении с пульта ДУ ее вполне достаточно. Пароль желательно использовать цифровой, так как в этом случае его можно будет легко ввести с пульта.<br />
<br />
=== Настройка каталогов видео, аудио, изображений и игр ===<br />
<br />
По умолчанию в меню для просмотра фильмов, изображений и музыки отображается домашний каталог пользователя, корневой каталог и смонтированные сменные носители. Удобнее указать каталоги, в которых хранится требуемая информация, вручную, чтобы сократить время поиска. Для этого используются такие директивы:<br />
VIDEO_ITEMS = [ ('Movie', '/mnt/media/movies'),('Klips', '/mnt/media/klips') ]<br />
В качестве параметров могут выступать как каталоги, так и fxd файлы. При помощи следующей директивы можно указать используемый видеопроигрыватель. Для Mplayer:<br />
VIDEO_PREFERED_PLAYER = 'mplayer'<br />
Для XINE:<br />
VIDEO_PREFERED_PLAYER = 'xine'<br />
Аналогично для каталогов изображений и музыки.<br />
AUDIO_ITEMS = [ ('Music', '/mnt/media/music'),'fxd/webradio.fxd' ]<br />
Вторая строка указывает на файл, в котором прописаны Интернет-станции потокового аудио. Готовый файл идет в комплекте с Freevo, при необходимости его можно подредактировать, добавив свои любимые станции.<br />
IMAGE_ITEMS = [ ('Foto', '/mnt/media/foto'),('Pics', '/mnt/media/pics') ]<br />
Для игр необходимо указать не только заголовок и каталог, но и путь к исполняемому файлу эмулятора, аргументы и, по возможности, рисунок.<br />
GAMES_ITEMS = [ ('SUPER NINTENDO', '/home/media/games/snes/roms',('SNES', '/usr/bin/zsnes', '-m -r 3 -k 100 -cs -u', '', None )) ]<br />
<br />
=== Прочие настройки ===<br />
<br />
{{Шаблон:Врезка|<br />
Заголовок=Исправляем акцент|<br />
Содержание=К сожалению, при настройках по умолчанию Freevo плохо справляется с выводом локализованного текста, поэтому в меню желательно использовать только английские буквы. Что еще печальнее, данная ситуация сохранится, пока не будет произведен переход на Unicode всех приложений. Проблему можно решить (по крайней мере, частично), заменив используемые по умолчанию TTF-шрифты, хранящиеся в каталоге /usr/share/freevo/fonts/, на mscorefonts (в случае Unicode), либо другие поддерживающие системную кодировку. В локализованных дистрибутивах вроде ALTLinux или ASPLinux, также есть готовые шрифты, которые можно использовать с Freevo. Для полной поддержки русских шрифтов необходимо наложить исправления и пересобрать PyGame. Патч можно загрузить по адресу: [http://m0sia.ru/files/utf8.patch m0sia.ru/files/utf8.patch]|<br />
Ширина=250px}}<br />
<br />
Freevo поддерживает визуальные темы (skins). В комплекте поставляются три: Blurr, Info и Noia, на сайте проекта можно найти еще пять готовых тем.<br />
SKIN_XML_FILE = 'blurr'<br />
Темы представляют собой XML-файлы (с расширением fxd), на основании которых можно создавать собственные вариации. Далее в файле идет описание вывода меню, установки xine, mplayer, просмотра TV и локаль.<br />
LOCALE= 'ru_RU.UTF-8'<br />
Практически последним пунктом идут параметры управления Freevo. Об этом мы и поговорим подробнее<br />
<br />
=== Управление ===<br />
<br />
Управление является одной из сильных сторон Freevo. Кроме стандартных клавиатуры и мыши, можно использовать джойстик. Для управления можно использовать встроенный web-сервер, который позволяет не только просматривать локальные данные, но и производить запись web-трансляций вручную и по расписанию. C помощью web-браузера можно также просматривать файлы помощи. Для запуска web-сервера отредактируйте следующие строки:<br />
plugin.activate('www')<br />
WWW_PORT = 8080<br />
И установите пользователя и пароль для доступа к серверу.<br />
WWW_USERS = { 'user': 'password' }<br />
Теперь наберите в web-браузере http://localhost:8080/, зарегистрируйтесь и приступайте к работе. Точно таким же образом на компьютер можно зайти удаленно.<br />
<br />
Особенно полезна возможность дистанционного управления Freevo. Для этого можно использовать ИК-пульт через (LIRC) или телефон с поддержкой Bluetooth.<br />
<br />
=== Через Bluetooth ===<br />
<br />
Эта возможность является предпочтительной: радиосигнал хорошо распространяется по всей квартире, так что компьютер может стоять даже в соседней комнате. Пользоваться пультом ДУ в такой ситуации не совсем удобно. Для реализации данной возможности нам потребуется модуль расширения Bluetooth, который можно скачать со страницы Plugins проекта Freevo. Его установка не вызывает затруднений:<br />
$ tar xvf bluetooth.tar<br />
# python setup.py install<br />
Ядро большинства дистрибутивов уже поддерживает Bluetooth, и в комплекте имеются необходимые утилиты. Подобно на работе с USB и Bluetooth в Linux останавливаться не буду – читайте статью «make menuconfig: готовые рецепты» в LXF78. Информацию по настройке демона hcid и подключению телефона можно найти ниже.<br />
<br />
Добавьте в local_conf.py следующие строки:<br />
Активируйте модуль.<br />
plugin.activate('blue')<br />
Укажите на связанное устройство (в некоторых дистрибутивах это может быть, например, /dev/ rfcomm0).<br />
BLUE_RFCOMM = "/dev/bluetooth/rfcomm/1"<br />
Переменная для установки значения времени опроса (0 – опрос постоянно, 10 – слишком долго).<br />
BLUE_SLEEP = 1<br />
Проверка соединения.<br />
BLUE_KEEP_ALIVE = 100<br />
Далее запишите соответствие кнопок телефона командам Freevo. Проверить, какая кнопка нажата на телефоне, можно при помощи команды Freevo bluebutton либо Freevo bluetooth_config:<br />
BLUE_CMDS = {<br />
'1' : 'PLAY',<br />
'2' : 'VOL+',<br />
'3' : 'VOL-',<br />
'4' : 'LEFT',<br />
'5' : 'UP',<br />
'6' : 'RIGHT',<br />
'7' : 'SELECT',<br />
'8' : 'DOWN',<br />
'9' : 'EXIT',<br />
'0' : ' UNILOCK ' }<br />
Команда UNILOCK позволяет временно блокировать и разблокировать клавиатуру телефона, например, при ответе на звонок.<br />
<br />
=== Связь через BlueTooth ===<br />
<br />
Вставьте USB-Bluetooth адаптер и проверьте его обнаружение при помощи команды:<br />
#lsmod <nowiki>|</nowiki> grep usb<br />
hci_usb 14216 0<br />
bluetooth 44292 1 hci_usb<br />
Кроме того соответствующая информация должна появиться в /var/log/messages.<br />
#cat /var/log/messages<br />
….<br />
Mar 11 21:23:37 (none) kernel: usb 1-1: new full speed USB device using uhci_hcd and address 2<br />
Mar 11 21:23:44 (none) kernel: Bluetooth: Core ver 2.7<br />
Mar 11 21:23:44 (none) kernel: NET: Registered protocol family 31<br />
Mar 11 21:23:44 (none) kernel: Bluetooth: HCI device and connection manager initialized<br />
Mar 11 21:23:44 (none) kernel: Bluetooth: HCI socket layer initialized<br />
Mar 11 21:23:44 (none) kernel: Bluetooth: HCI USB driver ver 2.8<br />
Mar 11 21:23:44 (none) kernel: usbcore: registered new driver hci_usb<br />
Затем отредактируйте файл настройки демона hcid (/etc/bluetooth/hcid.conf)<br />
options {<br />
autoinit yes;<br />
security auto;<br />
pairing multi;<br />
pin_helper /etc/bluetooth/bluepin;<br />
}<br />
device {<br />
name "freevo";<br />
class 0x100;<br />
pkt_type DH1,DM1,HV1;<br />
iscan enable;<br />
pscan enable;<br />
lm master;<br />
lp hold,sniff,park;<br />
auth enable;<br />
encrypt disable;<br />
}<br />
Создайте файл /etc/bluetooth/bluepin, который будет содержать PIN для доступа к телефону.<br />
#!/bin/sh<br />
echo "PIN:12345"<br />
Сохраните его и сделайте исполняемым:<br />
$ chmod 700 bluepin && chown sergej bluepin<br />
Запустите демон hcid.<br />
#hciconfig hci0 up; hcid -f /etc/bluetooth/hcid.conf"<br />
Проверьте, обнаружено ли Bluetooth устройство:<br />
#hciconfig –a<br />
Просканируйте сеть в поисках телефона:<br />
# hcitool scan<br />
Scanning ...<br />
00:0F:DE:1A:34:05 T630<br />
И свяжите канал:<br />
#rfcomm bind rfcomm0 1"<br />
Проверьте, все ли сделано правильно:<br />
#rfcomm show<br />
rfcomm0: 00:0F:DE:1A:34:05 channel 1 clean<br />
<br />
=== Настройка телевизора ===<br />
<br />
Последним шагом будет вывод изображения на телевизор. Для этого необходимо добавить запись о новом устройстве в файл /etc/X11/xorg.conf. Формат записи будет зависеть от используемой видеокарты. За дополнительной информацией попробуйте обратиться на сайт производителя или разработчика драйвера. Если ничего из перечисленного не помогло – напишите вопрос на наш форум http://www.unixforum.org или в рубрику «Вопрос? Ответ!». Приятного просмотра!</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF79:LINUX_FROM_SCRATCHLXF79:LINUX FROM SCRATCH2010-03-01T10:43:41Z<p>Yaleks: /* Что дальше? */</p>
<hr />
<div>=== Linux from scratch ===<br />
<br />
''С детства любили разбирать игрушки, чтобы узнать, что внутри? '''Андрей Маркелов''' рассматривает дистрибутив для любознательных пользователей''<br />
<br />
Думаю, что если вы приступили к чтению статьи в названии которой присутствует фраза «Cобери свой Linux», то вам не нужно рассказывать, что такое операционная система Linux, свободное ПО и так далее. Скорее всего, вы уже используете один из вариантов этой ОС на работе или на своем домашнем компьютере.<br />
<br />
[[Изображение:Img_79_24_1.jpg|thumb|Your distro, your rules!]]<br />
<br />
И, в зависимости от целей и разнообразных причин, как объективных, так и субъективных, вы, скорее всего, уже выбрали для себя один из так называемых дистрибутивов Linux. Дистрибутивом обычно называют подготовленный для работы в качестве единого целого набор из программы установки, системных утилит и служб, прикладных программ и модифицированного в соответствии с представлениями создателей дистрибутива, ядра Linux. C каждым дистрибутивомможно также связать определенную политику лицензирования и порядок технической поддержки. Из объективных причин выбора того или иного дистрибутива можно, например, назвать потребность в круглосуточной технической поддержке, а из субъективных – «навороты» дистрибутива, разрекламированные знакомым системным администратором, или внешний привлекательный вид рабочего стола.<br />
<br />
По данным сайта Distrowatch.com, на сегодняшний день существует более 300 различных вариантов Linux, как общего назначения, типа Fedora Core, Slackware или Gentoo, так и ориентированных на решение специфических задач, например, MoviX или Trustix. И, по моему мнению, нельзя говорить о том, какой дистрибутив лучше, а какой хуже, безотноситель но целей, квалификации пользователя, используемого оборудования и множества других факторов.<br />
<br />
В этой статье я хотел бы поговорить о дистрибутиве Linux From Scratch (сокращенно LFS). Собственно, LFS – это даже не дистрибутив в классическом понимании этого слова. В LFS отсутствует одна важная деталь типичного дистрибутива Linux – программа установки.<br />
<br />
Ее роль исполняет пользователь, вооруженный двухсотстраничной книгой – руководством к действию, которая как раз и называется Linux From Scratch. Собственно, помимо данной книги, написанной, кстати, Герардом Бикмансом (Gerard Beekmans) и доступной по адресу [http://www.linuxfromscratch.org/ www.linuxfromscratch.org], «дистрибутив» состоит из архива исходных кодов плюс исправлений некоторых ошибок и, возможно, загрузочного LiveCD с заранее настроенной средой Linux, готовой для компиляции вашей собственной версии операционной системы из исходных текстов. Впрочем, доступный все на том же сайте [http://www.linuxfromscratch.org www.linuxfromscratch.org] загрузочный LiveCD вполне может быть заменен на уже установленный и соответствующим образом настроенный дистрибутив общего назначения. Требования и рекомендации к хост-системе (в которой пользователь собирает Linux From Scratch) также приведены в руководстве Linux From Scratch Бикманса (самое главное – ядро версии не ниже 2.6.2, скомпилированное GCC-3.0 или выше).<br />
<br />
Хотя LFS вполне можно использовать и в качестве рабочего места разработчика или (после установки дополнительного программного обеспечения, не входящего в базовую систему LFS) сервера небольшого предприятия; возможно – даже рабочего места секретаря, все это не будет лучшим вариантом применения Linux From Scratch. Основная цель данного дистрибутива – познакомить пользователя с внутренним устройством операционной системы Linux. С помощью LFS мы можем по шагам пройти через весь процесс компиляции Linux, создания конфигурационных файлов, и наконец, спустя часы (или даже дни) работы, – загрузить операционную систему и увидеть на экране приглашение к вводу имени пользователя. Вдумчивое и внимательное выполнение инструкций, приведенных в руководстве Linux From Scratch, вместе с изучением документации по устанавливаемым в каждом шаге компонентам ОС позволит вам познакомиться с системой на уровне, не достижимом для пользователей и администраторов систем с закрытым исходным кодом. Сборка LFS может быть также весьма неплохой школой для технического специалиста или инженера, использующего коммерческие дистрибутивы Linux и поставившего себе цель понять процессы, происходящие в системе, на более глубоком уровне.<br />
<br />
Еще одним применением LFS может стать задача оптимизации программного обеспечения операционной системы под конкретную начинку ПК на этапе компиляции и желание на все 100% использовать ресурсы оборудования. Кроме того, созданная «ручным» способом система получается очень компактной.<br />
<br />
Ну и наконец, последняя, но вполне достаточная причина для установки LFS (хватило же некоторым ее для написания целого ядра операционной системы): «Just for Fun»!<br />
<br />
=== Знакомство с LFS ===<br />
<br />
Как рассказывает сам Герард Бикманс во введении, его знакомство с Linux состоялось в 1998 году. Перепробовав несколько дистрибутивов и не найдя ни одного, полностью отвечающего его требованиям, Герард решил собрать свой собственный вариант Linux из исходных текстов. Обобщив свой опыт в виде понятных и компактных инструкций и возглавив проект по поддержке этих знаний в актуальном состоянии, Герард вместе с единомышленниками создал Linux From Scratch в том виде, в котором этот проект существует и по сей день.<br />
<br />
Помимо книги с инструкциями, в рамках проекта распространяется загрузочный LiveCD со средой разработчика и собранный в одном месте архив исходных текстов, протестированных на взаимную совместимость компонентов Linux-системы со всеми необходимыми исправлениями. Рассмотрим же компоненты LFS подробнее.<br />
<br />
На момент написания статьи последней доступной автору версией LFS была 6.1.1.<br />
<br />
Основная часть проекта – книга Linux From Scratch – содержит более 220 страниц и в семи главах описывает создание собственной Linux-системы, построенной на ядре 2.6.11 и включающей компилятор С/С++ gcc 3.4.3, язык программирования Perl 5.8.7, оболочку bash 3.0 и основные GNU утилиты работы с системой, сетью, а также утилиты обработки текстов. Инструкции не включают описание сборки оконной системы X Window System и серверных служб.<br />
<br />
Исходные тексты компонентов системы и исправления к ним занимают около 150 Мбайт. Помимо возможности скачать с сайтов разработчиков каждый пакет в отдельности, имеется возможность загрузить весь архив в составе Official Linux From Scratch LiveCD.<br />
<br />
Официальный LiveCD (рис. 1, 2) – это не только архив всех исходных текстов и сама книга LFS, но и полностью готовая для сборки вашей LFS-системы среда, включающая X Window System и Xfce. Если вы скачали этот диск, вам, по сути, больше ничего не потребуется. Кроме всего прочего, диск включает в себя скрипты и файлы с инструкциями автоматической установки LFS. Данные средства предназначены для опытных пользователей LFS, которые хотя бы раз устанавливали систему «вручную». Новичку эти средства использовать не рекомендуется. Общий объем ISO-образа диска – 390 Мбайт.<br />
<br />
Ну, и, наконец, последним в списке ингредиентов (но не последним по важности) LFS-коктейля будет хорошо приготовленный Linux-пользователь. (Я сказал «приготовленный»? Конечно, «подготовленный»!) Во-первых, если вы хотите использовать самую «свежую», англоязычную версию, вам необходимы минимальные знания технического английского для следования инструкциям книги. Существуют переводы и на русский язык, но они появляются с некоторой задержкой. Кроме того, большинство вспомогательных информационных ресурсов, ссылки на которые приведены статье, представлены только на английском языке. «Building an LFS system is not a simple task», – пишет Герард Бикманс. Безусловно, для того, чтобы собрать работоспособную систему Linux из исходных текстов, вы должны уметь работать с командной строкой, решать проблемы с компиляцией и иметь общее представление о том, как работает Linux.<br />
<br />
Помимо самой книги LFS, на сайте проекта ([http://www.linuxfromscratch.org www.linuxfromscratch.org]) существует раздел часто задаваемых вопросов, список рассылки, также доступный по протоколу NNTP, IRC-канал и ряд информационных материалов. Кроме того, у вас будет под рукой документация, входящая в состав компилируемых пакетов, man-страницы, и, безусловно, множество ресурсов сети Интернет.<br />
<br />
Также необходимо упомянуть, что кроме LFS на сайте [http://www.linuxfromscratch.org www.linuxfromscratch.org] «живут» несколько сопутствующих проектов: Automated Linux From Scratch (ALFS) – автоматизированная сборка из исходных текстов, Beyond Linux From Scratch (BLFS) – вопросы установки на уже готовую LFS-систему дополнительного программного обеспечения (X Window System, KDE, Gnome...), и другие.<br />
<br />
=== «Ключ на Старт!» ===<br />
<br />
Полная сборка Linux From Scratch на ноутбуке Sharp Actius MC24 (Mobile AMD Athlon XP-M Processor 2400+/512 MB RAM) с небольшими перерывами на домашние дела заняла одни выходные (Пользуясь случаем, хочу поблагодарить мою жену за терпение и понимание!). Для оценки затрачиваемого на сборку пакетов время, Герард вводит специальную единицу измерения – Standard Build Unit (SBU). Один SBU равен промежутку времени, затрачиваемому вашим ПК на выполнение команд<br />
./configure...<br />
make<br />
make install<br />
выполняющих сборку и установку самого первого из упоминаемых в руководстве пакетов – Binutil-2.15.<br />
<br />
Далее по ходу изложения материала по книге даются примерные оценки времени затрачиваемого на пакеты в единицах SBU. Самые затратные с точки зрения времени компиляции пакеты: glibc-2.3.4 (12.3 SBU), gcc-3.4.3 (11.7 SBU), ядро Linux-2.6.11.12 (4.2 SBU) и Perl-5.8.7 (4.1 SBU). К слову сказать, один SBU на моем ноутбуке равняется приблизительно 4 мин. 23 сек. Сборка на том же оборудовании, но в среде VMWare Workstation 5.0 под Windows XP Service Pack 2 увеличила SBU более чем в два раза. Поэтому, если вы планируете уложиться в одни выходные – не используйте виртуальные машины.<br />
<br />
Помимо сборки пакетов (кстати, некоторые из них собираются не по одному разу) время расходуется на различные make check и make test. Также прибавьте сюда время, которое вы потратите непосредственно на чтение книги и ввод команд.<br />
<br />
Для сравнения, на страничке [http://www.linuxfromscratch.org/~bdubbs/ www.linuxfromscratch.org/~bdubbs] представлено более 150 конфигураций систем, предоставленных пользователями, собравшими LFS. Для каждой системы приведены значения SBU, так что вы всегда можете оценить время, необходимое для компиляции, исходя из данных для машин с аналогичной производительностью.<br />
<br />
=== Этапы сборки собственной Linux-системы ===<br />
<br />
Общий порядок сборки системы представлен в вводной главе и вкратце состоит из следующих действий.<br />
<br />
Первым делом необходимо выделить для LFS собственный раздел на жестком диске, создать на нем файловую систему и подмонтировать к дереву файловой системы ОС, на которой будет производиться сборка. Далее, действуя из хост-системы (того же Official Linux From Scratch LiveCD), вы компилируете из исходных текстов среду разработчика, которую будете использовать для сборки LFS-системы. Затем, при помощи повторной пересборки GCC/Binutils и «песочницы» в виде chroot-окружения, LFS отделяется от хост-системы. После выполнения этого шага ваш LFS становится полностью самостоятельным, за исключением того, что он по-прежнему использует ядро хост-ситемы.<br />
<br />
Далее, следуя подробным инструкциям, в «песочнице» компилируются все необходимые компоненты для нашей LFS-системы и по ходу сборки создаются необходимые конфигурационные файлы.<br />
<br />
Наконец, в собранную систему добавляются стартовые скрипты, при необходимости, устанавливается и настраивается загрузчик, и, наконец, наступает долгожданный момент перезагрузки в систему, целиком собранную из исходных текстов.<br />
<br />
Поскольку LFS Book во многом ориентируется на людей, изучающих Linux, в каждом параграфе, посвященном сборке конкретного пакета, помимо инструкций по компиляции приведено примерное время, затрачиваемое на сборку, требуемое дисковое пространство, зависимости от других пакетов, и, наконец содержимое пакета с кратким описанием устанавливаемых утилит и библиотек.<br />
<br />
=== Что дальше? ===<br />
<br />
Безусловно, готовая LFS-система, собранная в соответствии с рекомендациями книги Герарда Бикманса, разительно контрастирует с современными Linux-дистрибутивами. В таком виде она мало подходит для решения реальных задач и повседневной работы, и способна лишь выполнять роль учебной системы для базового курса по Unix-системам, да и то в части, не касающейся настройки X Window System, которая просто не в ходит в список описанных в LFS пакетов. Чтобы довести LFS «до ума», в первую очередь советую вам обратиться к руководству Beyond Linux From Scratch (BLFS) доступному по адресу [http://www.linuxfromscratch.org/bLFS www.linuxfromscratch.org/bLFS]. Данная книга построена по принципам и с использованием той же структуры, что и Linux From Scratch, но по размерам – раз в пять больше. В двадцати одной главе рассматриваются вопросы самостоятельной сборки более трех сотен пакетов (X Window System, Gnome, KDE), а кроме того – расширенная конфигурация системы и сборка дополнительных библиотек, вопросы компиляции клиентского и серверного программного обеспечения для работы в сети, мультимедиа, ПО для работы со сканерами и принтерами и многое другое.<br />
<br />
Напоследок – несколько советов. Проверяйте и перепроверяйте введенные в процессе установки команды – если возникли ошибки компиляции, воспользуйтесь историей bash. Возможно, вы просто ошиблись во вводе. Не путайте предупреждения с ошибками, и читайте документацию – не все ошибки при проверках после сборки пакетов критичны. Раздел 1.4 книги LFS содержит алгоритм поиска ответов на вопросы, связанные с возможными проблемами. Придерживайтесь рекомендаций относительно того, как правильно задать вопрос и куда его направить, чтобы можно было расчитывать на помощь. Обратите внимание на раздел «What about netiquette?» в списке часто задаваемых вопросов. Не игнорируйте и FAQ в целом, а также список рассылки проекта. Возможно, вы не первый столкнулись с такой проблемой, и ответ уже можно найти в архиве списка рассылки. Обратите внимание на раздел [http://www.linuxfromscratch.org/hints/ www.linuxfromscratch.org/hints/], где приведены советы на темы, не освещенные в книгах LFS и BLFS. Прежде чем адресовать вопрос сообществу LFS, убедитесь, что вы использовали все доступные вам источники информации. Не забывайте и про форум нашего журнала (http://www.unixforum.org), а также рубрику «Вопрос? Ответ!». Направляйте свои письма на адрес [mailto:answers@linuxformat.ru answers@linuxformat.ru]. Удачи и успехов в освоении увлекательного мира Open Source!</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF108:OSS_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8LXF108:OSS в России2010-02-27T18:55:57Z<p>Yaleks: /* Итак, как стоит действовать */</p>
<hr />
<div>==OSS в России: взгляд правоведа==<br />
<br />
: В последние несколько лет вопрос о юридической стороне использования свободного ПО в России получил первостепенное значение. '''Владимир Житомирский''' развеет популярные мифы и даст ряд практических рекомендаций. <br />
<br />
::::::Исключительное право на результат интеллектуальной деятельности, созданный творческим трудом, первоначально возникает у его автора.<br />
::::::Правообладатель может по своему усмотрению разрешать или запрещать другим лицам использование результата интеллектуальной деятельности.<br />
::::::Правообладатель может распорядиться принадлежащим ему исключительным правом на результат интеллектуальной деятельности любым не противоречащим закону и существу такого исключительного права способом, в том числе путем его отчуждения по договору другому лицу (договор об отчуждении исключительного права) или предоставления другому лицу права использования соответствующих результатов интеллектуальной деятельности в установленных договором пределах (лицензионный договор).<br />
::::::::::::«Винегрет» из ст.ст. 1228, 1229 и 1233 пресловутой<br />
::::::::::::части четвертой Гражданского кодекса РФ<br />
<br />
В каком-то журнале в 70-е годы прошлого века была рубрика «Произведения, состоящие из одних названий». В ней, в иронической, правда, манере публиковались названия, после которых уже не надо было читать остальной текст. Вспомнил я об этом потому, что цитата из кодекса, взятая эпиграфом к данной статье, в идеале делает ненужным дальнейшие рассуждения о законности использования свободного программного продукта под лицензией GNU в России. Но мы живем не в идеальном мире, и право применяют люди. Я постараюсь избежать обильных ссылок на законы, и буду давать их только тогда, когда отсылка к ним может сыграть роль в сложной ситуации. Также примем за аксиому, что любые правовые конструкции работают при соблюдении определенных, а в нашем случае – очень простых условий.<br />
<br />
Начнем с того, что закон (здесь и далее – российский, если не оговорено другое) устанавливает, что исключительное право на результат интеллектуальной деятельности, в том числе и при создании программ для ЭВМ, принадлежит изначально автору; автор программы в основном приравнен в правах к автору любого произведения. Гражданство правообладателя значения не имеет. И автор, как правообладатель, может по своему усмотрению разрешать или <br />
запрещать другим лицам использование результата интеллектуальной деятельности, в том числе и путем предоставления другому лицу <br />
права использования соответствующих результатов интеллектуальной деятельности в установленных договором пределах (лицензионный договор).<br />
<br />
Встает закономерный вопрос – а где же сам договор? И это предусмотрено законом. Вот выдержка из статьи 1286 части четвертой Гражданского кодекса: «''Заключение лицензионных договоров о предоставлении права использования программы для ЭВМ ... допускается путем заключения каждым пользователем с соответствующим правообладателем договора присоединения, условия которого изложены на приобретаемом экземпляре ... программы ... либо на упаковке этого экземпляра. Начало использования ... программы ... пользователем, как оно определяется этими условиями, означает его согласие на заключение договора''». Поскольку правообладатель не лишает себя права выдачи лицензий другим лицам, это будет простая (неисключительная) лицензия. Надо ли напоминать пользователям, что в составе практически любого свободного продукта есть текст лицензии (то есть договора присоединения) или, по крайней мере, ссылка на лицензию GNU или иную из того же ряда? А уж коробочные версии без той или иной лицензии, причем отсылающей к GNU GPL, мне вообще не встречались.<br />
<br />
Следует подчеркнуть, что для удостоверения правомочности обладания программой закон не требует никаких наклеек, голограмм и прочего.<br />
<br />
===GPL в России===<br />
<br />
Перед тем, как коснуться GNU GPL, хочется высказать несколько соображений. Первое: мало кто из тех, кто ссылается на GPL, читал эту лицензию; большинство знает и применяет лишь поверхностно усвоенные и устраивающие их положения. Второе: я категорический противник нарушения авторских прав. Я глубоко убежден, что свободное программное обеспечение двигает человечество вперед, но я также убежден, что нигилистическое отношение к чужим правам<br />
и само наше движение погубит, и приведет к регрессу в сфере разработки ПО. Свобода и халява – суть разные вещи. Так, например, запрет копировать и распространять журнал '''Linux Format''' не есть посягательство на чьи-то мифические права, а законные действия правообладателя. Полностью соответствующие, кстати, всему букету свободных лицензий.<br />
<br />
А теперь обратимся к лицензии GNU GPL и посмотрим, как она (любая версия) соотносится с российским законом. И убедимся, что установленные ею правила распоряжения правами отвечают отечественным. На что следует обратить внимание – в соответствии с GNU GPL, она действует, если приобретателю (в числе прочих условий) вместе с экземпляром программы передается копия именно самой лицензии GNU. Что, заметим, опять же соответствует требованиям российских законов. Попросту говоря, сам текст лицензии GNU, тем или иным образом связанный с программой (или, на худой конец, хотя бы ссылка на него), делает продукт легитимным. А основные прочие условия – на каждом экземпляре помещен знак охраны авторского права и уведомление об отсутствии гарантий; оставлены без изменений все уведомления, относящиеся к самой лицензии и отсутствию гарантий.<br />
<br />
Как-то в одной дискуссии я услышал такой аргумент: продукты Windows в России зарегистрированы, а свободные программы нет. Ответ простой: закон дает правообладателю право (простите за невольную тавтологию) по собственному желанию зарегистрировать программу для ЭВМ (ст. 1262 ГК). Такая регистрация, кстати, осложняет переход всяких прав, их в этом случае также нужно регистрировать. Так что не думаю, что Microsoft регистрирует свои продукты.<br />
<br />
Итак, вывод – лицензия GNU GPL российским законам не противоречит и, следовательно, ее действие в России законно.<br />
<br />
===От слов – к делу===<br />
<br />
Это была теория, а она, как известно, без практики суха. Перейдем к жизни. Сначала поговорим о проблеме, кажущейся многим<br />
серьезной – о проблеме, которой на самом деле не существует.<br />
Периодически слышу сетования, что, мол, лицензии GNU в России<br />
официально не признаны. Господа, расскажите мне, пожалуйста,<br />
что такое официальное признание лицензии (по своей сути, договора), в чем оно выражается, лицензии каких правообладателей<br />
официально признаны и, опять же, в чем это выразилось? Боюсь,<br />
что ответа не дождусь.<br />
<br />
Любой документ в любой стране признается (слово «официально»<br />
в данном контексте совсем ни при чем), если он надлежащим образом оформлен и предъявлен (да, педанты могут сделать тут некоторые замечания – не относящиеся, однако, к исследуемой ситуации). В<br />
России официальным языком общения является русский, и понятно,<br />
что все пускаемые в оборот документы должны быть на русском языке. И где здесь проблема? Любой юридически значимый документ<br />
переводится у нотариуса переводчиком, чьи знания проверил этот<br />
нотариус, после чего он, нотариус, ставит на перевод свою красивую<br />
печать. И все. Сомневается нотариус – сделайте снимок экрана сайта с текстом нужной вам лицензии. Наши клиенты, да и я сам, имели дело с пятью нотариусами, ни разу проблем не возникло. Важно отметить, что эта квази-проблема в принципе отсутствует, если вы<br />
приобретаете дистрибутив на диске: следите только, чтобы при наличии в дистрибутиве проприетарных программ об этом было сказано<br />
внятно, т.е. были приведены условия использования. И, конечно,<br />
соблюдайте эти условия. Вот передо мной лежит коробочная версия<br />
Mandriva Powerpack 2008, выпущенная в оборот компанией «ГНУ/Линуксцентр». На стильной коробке размещена обильная информация о продукте, отдельно упомянуты проприетарные Cedega и Fluendo. В коробке два DVD (32- и 64-битный), купон с регистрационным<br />
номером, на котором среди прочей информации есть указание, что<br />
код Cedega будет выслан после регистрации, и лицензия с печатью<br />
ЗАО «Мезон.ру» на один компьютер; далее, правда, указано, что это<br />
ограничение распространяется только на определенную поддержку.<br />
(В скобках замечу, что меня эта лицензия во многом не устраивает,<br />
но причины этого не относятся к рассматриваемой проблеме.) После<br />
инсталляции дистрибутива в нем доступен файл с полной лицензией<br />
на русском языке. И что еще нужно?<br />
<br />
Естественно, ситуации возникают самые разные: вы скачали продукт для себя либо для продажи, без переработки или с переработкой; вы купили продукт с одной из этих целей; вы, наконец, создаете сборный продукт из разным образом полученных компонентов... И ко всем этим случаям применимо сказанное выше. Для наглядности приведу примеры.<br />
<br />
'''1''' Организация приобретает через Интернет проприетарный продукт, скажем, почтовый клиент всех времен и народов ''The Bat!'' (прекрасно<br />
работает в ''Wine'', хотя, на мой взгляд, ''Claws Mail'' – вполне достойная<br />
замена). Покупатель скачивает программу, оценивает ее и оплачивает<br />
продукт. И получает электронное письмо с кодом, который и регистрирует в соответствующем окне программы. Организация в итоге имеет:<br />
счет, платежное поручение с отметкой банка, бухгалтерские проводки,<br />
электронное письмо с кодом и, кроме того, если открыть диалог «О<br />
программе», в нем будет указано, что владелец экземпляра – именно<br />
эта организация.<br />
<br />
'''2''' Организация покупает скомпонованный, например, неким ООО диск с набором свободных программ. Возможны три варианта приобретения: через интернет-магазин, у поставщика напрямую и за наличный расчет в розничной сети. Во всех случаях покупатель имеет фирменную упаковку продукта, лицензию продавца со ссылкой на лицензию GNU, бухгалтерские проводки и оригинальный носитель. В<br />
первом и втором вариантах он имеет еще счет, платежное поручение с отметкой банка и накладную или иной документ о доставке. В<br />
третьем случае он имеет скрепленный с кассовым чеком товарный<br />
чек; это неплохо подкрепить приказом о покупке продукта и актом<br />
приема-передачи от приобретшего продукт работника.<br />
<br />
'''3''' Организация приняла решение скачать продукт из сети. Тут придется немного «помарать бумагу». Первый документ – докладная<br />
руководителю о потребности в продукте, с указанием, что он находится в свободном доступе и выпущен под соответствующей лицензией. Уже на этой стадии к докладной можно приложить нотариально удостоверенную копию лицензии (в дальнейшем можно просто ссылаться на нее: «...по той же лицензии, что установленная ранее программа ...»). Второй документ – подробный приказ уполномоченному<br />
лицу скачать и установить продукт. Затем последует акт о введении<br />
программы в эксплуатацию с указанием, на каком носителе и у кого<br />
будет храниться резервная копия. И последнее – продукт должен<br />
быть учтен в бухгалтерии. Ко всему этому прибавим содержание окна<br />
«О программе» и, скорее всего, наличие текста свободной лицензии<br />
в документации.<br />
<br />
Заверяю, что с такими наборами организации ничего не грозит.<br />
<br />
===К вам пришли...===<br />
<br />
А теперь поговорим о самой неприятной ситуации: на пороге стоит ОБЭП.<br />
<br />
Сначала немного статистики. По информации начальника 1-го отдела ОРЧ № 8 УБЭП ГУВД Санкт-Петербурга и Ленинградской области, в 2007 году на обслуживаемой территории возбуждено по ст. 146 УК 199 дел, в суд передано 117 дел. Наиболее суровое наказание<br />
получил руководитель торговой сети «505», который провел время до суда в тюрьме. Суд приговорил его к трем годам лишения свободы условно.<br />
<br />
ОБЭП может выявлять контрафакт как в процессе обычных проверок финансово-хозяйственной деятельности предприятия, так и во<br />
время целевого выхода. Во втором случае это, как правило, обусловлено получением соответствующей информации – от недовольных<br />
работников, конкурентов и т.п. В скобках отметим, что для проведения обычных проверок тоже нужна какая-то предварительная информация, но здесь это могут быть и налоговые органы, и контрагенты, и защитники экологии, и прочие. При неразвеянном подозрении на<br />
наличие в компьютере пиратских программ он может быть изъят для проведения экспертизы. Надо отметить, что в первую очередь проверяющих интересуют ''«1С», «Гарант», «Кодекс»'', то есть те компании, которые активно сотрудничают с милицией, даже берут на себя <br />
обязательства не заключать с нарушителями соглашений и доводить <br />
дело до суда. Теперь в этот список попал и Microsoft.<br />
<br />
Сотрудничая с правообладателями, работники милиции знают, <br />
во-первых, какие именно продукты они ищут, а во-вторых, признаки, <br />
отличающие данный легальный продукт от пиратского – пресловутые голограммы, наклейки, оформление коробок и так далее. То есть,<br />
наличие или отсутствие такой, например, наклейки явится определяющим признаком только для того продукта, который защищается от нелегального использования с помощью наклейки, и ни для какого иного. Если проще, то на вопрос, а почему у вас нет наклейки <br />
Windows, следует ответ: «У меня нет и Windows».<br />
<br />
Чтобы определить поведение проверяемого, нужно понять права и возможности работников ОБЭП. И, подчеркиваю, мы говорим о случаях, когда в компьютерах ничего незаконного нет.<br />
<br />
Наш интерес вызывает статья 11 Закона «О милиции», повествующая как раз о правах этих стражей правопорядка. И в ней есть два <br />
пункта, требующие особого внимания. Это пункт 4, позволяющий <br />
«получать от граждан и должностных лиц необходимые объяснения, <br />
сведения, справки, документы и копии с них», и пункт 25, описывающий порядок действий «при наличии данных о влекущем уголовную <br />
или административную ответственность нарушении законодательства, регулирующего финансовую, хозяйственную, предпринимательскую и торговую деятельность, в целях установления оснований для возбуждения уголовного дела или дела об административном <br />
правонарушении». В числе прочего, он позволяет проводить осмотр <br />
служебных помещений, изучать документы, отражающие финансовую, хозяйственную, предпринимательскую и торговую деятельность,<br />
образцы сырья, продукции и товаров, необходимые для проведения <br />
исследований или экспертиз. Важна отметить, что правила этого пункта дают серьезные гарантии проверяемому: так, во-первых, описанные в нем действия проводятся лишь по мотивированному постановлению начальника органа милиции или его заместителя, во-вторых, <br />
обязательно присутствие не менее двух понятых и представителя проверяемой организации, в-третьих, все действия протоколируются.<br />
<br />
Есть в статье 11 и пункт 35, дающий милиции право «при наличии достаточных данных, указывающих на признаки преступления, <br />
связанного с нарушением законодательства Российской Федерации <br />
о налогах и сборах, проводить проверки организаций ...», а как уже <br />
говорилось, такая проверка может охватить и интересующие нас проблемы. Но, если не вдаваться в юридическую казуистику, права и возможности как проверяющих, так и проверяемых, практически одинаковы при действиях ОБЭП и по пункту 25, и по пункту 35. Поэтому я и сказал о двух позициях, требующих особого внимания – пунктах 4 и 25.<br />
<br />
А требуют они внимания потому, что дают лазейку, позволяющую проверяющим превысить свои полномочия. Вот смотрите: приходит к <br />
вам работник ОБЭП и говорит, вот, мол, вам письмо, по которому вы, <br />
в соответствии с пунктом 4 статьи 11 Закона «О милиции» обязаны <br />
сообщить, какое программное обеспечение используете, дать соответствующие объяснения и выдать необходимые справки. И получает <br />
огромный массив информации. То есть, он под видом получения сведений проводит незаконную проверку. Повторю, что проведение проверки – значительное вторжение в жизнь предприятия, поэтому это действие формализовано и в законе, и в ведомственных инструкциях <br />
в целях соблюдения определенного баланса интересов и возможностей. И оно требует надлежащего процессуального оформления. Закон, <br />
кстати, дает работнику милиции право входить беспрепятственно на <br />
территорию и в помещения, занимаемые организациями, и осматривать их лишь при преследовании лиц, подозреваемых в совершении <br />
преступлений, либо при наличии достаточных оснований полагать, что <br />
там совершено или совершается преступление, и в других случаях, не <br />
имеющих отношение к рассматриваемым ситуациям – пункт 18 той же <br />
статьи 11. Вот работники милиции, допускаю, что из лучших побуждений, будучи не в состоянии законно получить информацию либо реализовать имеющуюся, и подменяют проверку «получением справок».<br />
<br />
Ниже я предлагаю определенные алгоритмы поведения. Прошу, однако, помнить, что это именно алгоритмы, а не панацея от всего на свете. Поскольку разговор наш идет все-таки о компаниях, буду исходить из того, что человек с предпринимательским мышлением на уровне своих знаний обладает умением оценивать обстановку и принимать решения, опираясь на знания специалистов. Но именно опираясь, а не отдавая специалистам руководство.<br />
<br />
===Итак, как стоит действовать===<br />
<br />
Допустим, компания получает письмо, в котором от нее требуют представить какую-либо информацию. Руководство организации оценивает (в конце концов, и по количественному параметру), запрос ли это конкретной информации или же он «тянет» на полноценную проверку. Во втором случае следует написать вежливое письмо, в котором прямо указать, что по объему и разносторонности запрошенных сведений требование, по мнению организации, выходит за пределы пункта 4 статьи 11. И копию ответа направить в вышестоящий орган милиции, известив об этом и автора запроса. Помните, что на каждого проверяющего есть свой проверяющий. Помните, что за исключением особых случаев (смотрите выше о пунктах 18, 25 и 35 Закона «О милиции»), работник милиции, как и любой другой человек, проходит на предприятие по разрешению его руководителя. На практике от вас или отстают, или вступают в занудную переписку, выливающуюся в приемлемый компромисс. Опыт показывает, кстати, что работникам всякого рода органов предпочтительнее не уступать:<br />
если чувствуешь свою правоту, они очень хорошо ощущают твердость и начинают вести себя адекватно, в то время как уступки наводят на мысли о поговорке об отданном пальце.<br />
<br />
Другая ситуация. Проверка пришла. Сохраняя хладнокровие, организация знакомится с постановлением; в нем, помимо прочего, персонально перечислены проверяющие. У всех пришедших следует истребовать документы. Если у кого-то документов нет, а про него говорят, что это, мол, специалист по программам, следует это занести в протокол. Понятых следует представить из персонала организации, и не двух, а в количестве, достаточном, чтобы никто из проверяющих не оставался без контроля. К протоколу не надо относиться формально, он должен отражать все действия. Если, например, майор Икс смотрел что-то в комнате А в присутствии понятого Иванова, а капитан Игрек – в комнате Б в присутствии понятого Петрова, это должно быть отражено в протоколе. Ход проверки можно фиксировать на магнитофон или видеозаписью, но делать это открыто, что тоже должно быть занесено в протокол. В протокол должны быть<br />
занесены все вопросы, замечания и объяснения. При желании проверяющих изъять компьютер, в протоколе должно быть указано, что организация уверена в отсутствии контрафактных программ, что, по ее мнению, специалист способен разобраться в этом на месте, и, наконец, организация оставляет за собой право взыскать с органа внутренних дел убытки. На практике был случай, когда в аналогичной ситуации в ответ на твердую позицию работники ОБЭП привели какого-то специалиста, он задал два-три вопроса, глянул на компьютер и заявил, что все в порядке.<br />
<br />
***<br />
<br />
В заключение хочется еще раз сказать, что не надо слепо уповать на юристов, экономистов и других специалистов (из них юристы наиболее активны в предложении своих услуг). Все, о чем мы говорим – это бизнес-ситуации, а не юридические, экономические и прочие. И оценивать их, планировать и принимать решения по ним должен человек, обладающий предпринимательским мышлением, имеющий опыт «распутывания» именно бизнес-ситуаций. Это не значит, что не надо прибегать к услугам специалистов, надо просто ставить перед ними вопросы и задачи в пределах их компетенции. И еще немаловажный момент. Наш мир Open Source очень невелик (надеюсь, пока), и легко найти авторитетного специалиста, например, преподавателя вуза по соответствующей специальности, который в трудную минуту сможет дать мотивированное заключение. '''LXF'''<br />
<br />
Если у вас есть что спросить про использование свободного ПО в России, можно получить консультацию непосредственноу Владимира Житомирского на форуме '''LinuxForum''': http://unixforum.org/index.php?showtopic=91402&st=0, но прежде чем задавать вопрос пожалуйста ознакомьтесь с уже имеющейся информацией.</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A6%D0%B8%D0%BA%D0%BB/PicasaШаблон:Цикл/Picasa2009-12-31T13:39:02Z<p>Yaleks: </p>
<hr />
<div>{{цикл|Picasa|<br />
* [[LXF104:Прибираем фотоколлекцию|Часть 1: ''Picasa'': Порядок в ваших снимках]]<br />
<!-- * [[LXF105:|Часть 2: ]]<br />
* [[LXF106:|Часть 3: ]]<br />
* [[LXF107:|Часть 4: ]] --><br />
}}</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF125LXF1252009-12-31T13:35:01Z<p>Yaleks: Новая: ==Linux Format 125 (11), Декабрь 2009== === Школа LXF === *Диаграммы OOo Calc для пользователей MS Excel [http://linuxformat.ru/...</p>
<hr />
<div>==Linux Format 125 (11), Декабрь 2009==<br />
<br />
=== Школа LXF ===<br />
*[[LXF125:School1|Диаграммы OOo Calc для пользователей MS Excel]] [http://linuxformat.ru/download/LXF125.school.pdf LXF125.school.pdf]</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF124LXF1242009-12-31T13:33:53Z<p>Yaleks: Новая: ==Linux Format 124 (11), Ноябрь 2009== === Школа LXF === *Свободные математические пакеты для школы и вуза [http...</p>
<hr />
<div>==Linux Format 124 (11), Ноябрь 2009==<br />
<br />
=== Школа LXF ===<br />
*[[LXF124:School1|Свободные математические пакеты для школы и вуза]] [http://linuxformat.ru/download/LXF124.school.pdf LXF124.school.pdf]</div>Yalekshttp://wiki.linuxformat.ru/wiki/Linuxformat:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0Linuxformat:Портал сообщества2009-12-31T13:32:09Z<p>Yaleks: </p>
<hr />
<div>Обязательно к прочтению: [[Информация для авторов]]<br />
{| class="standart"<br />
|+Координационная таблица<br />
|-<br />
! ||Январь||Февраль||Март||Апрель||Май||Июнь||Июль||Август||Сентябрь||Октябрь||Ноябрь||Декабрь<br />
|-<br />
! 2005<br />
| || || || || || || ||<br />
| [[LXF70]]<br />
| [[LXF71]]<br />
| [[LXF72]]<br />
| [[LXF73]]<br />
|-<br />
! 2006<br />
| [[LXF74-75]]<br />
| [[LXF76]]<br />
| [[LXF77]]<br />
| [[LXF78]]<br />
| [[LXF79]]<br />
| [[LXF80]]<br />
| [[LXF81]]<br />
| [[LXF82]]<br />
| [[LXF83]]<br />
| [[LXF84]]<br />
| [[LXF85]]<br />
| [[LXF86]]<br />
|-<br />
! 2007<br />
| [[LXF87-88]]<br />
| [[LXF89]]<br />
| [[LXF90]]<br />
| [[LXF91]]<br />
| [[LXF92]]<br />
| [[LXF93]]<br />
| [[LXF94]]<br />
| [[LXF95]]<br />
| [[LXF96]]<br />
| [[LXF97]]<br />
| [[LXF98]]<br />
| [[LXF99]]<br />
|-<br />
! 2008<br />
| [[LXF100-101]]<br />
| [[LXF102]]<br />
| [[LXF103]]<br />
| [[LXF104]]<br />
| [[LXF105]]<br />
| [[LXF106]]<br />
| [[LXF107]]<br />
| [[LXF108]]<br />
| [[LXF109]]<br />
| [[LXF110]]<br />
| [[LXF111]]<br />
| [[LXF112]]<br />
|-<br />
! 2009<br />
| LXF113-114<br />
| LXF115<br />
| LXF116<br />
| LXF117<br />
| LXF118<br />
| LXF119<br />
| LXF120<br />
| LXF121<br />
| [[LXF122]]<br />
| [[LXF123]]<br />
| [[LXF124]]<br />
| [[LXF125]]<br />
|}<br />
<br />
----<br />
<br />
# [[LXF70|Linux Format 70, Сентябрь 2005]] [[Изображение:75%.png]]<br />
# [[LXF71|Linux Format 71, Октябрь 2005]] [[Изображение:75%.png]]<br />
# [[LXF72|Linux Format 72, Ноябрь 2005]] [[Изображение:75%.png]]<br />
# [[LXF73|Linux Format 73, Декабрь 2005]] [[Изображение:75%.png]]<br />
# [[LXF74-75|Linux Format 74-75, Январь 2006]] [[Изображение:75%.png]]<br />
# [[LXF76|Linux Format 76, Февраль 2006]] [[Изображение:100%.png]]<br />
# [[LXF77|Linux Format 77, Март 2006]] [[Изображение:100%.png]]<br />
# [[LXF78|Linux Format 78, Апрель 2006]] [[Изображение:100%.png]]<br />
# [[LXF79|Linux Format 79, Май 2006]] [[Изображение:100%.png]]<br />
# [[LXF80|Linux Format 80, Июнь 2006]] [[Изображение:100%.png]]<br />
# [[LXF81|Linux Format 81, Июль 2006]] [[Изображение:100%.png]]<br />
# [[LXF82|Linux Format 82, Август 2006]] [[Изображение:75%.png]]<br />
# [[LXF83|Linux Format 83, Сентябрь 2006]] [[Изображение:100%.png]]<br />
# [[LXF84|Linux Format 84, Октябрь 2006]] [[Изображение:100%.png]]<br />
# [[LXF85|Linux Format 85, Ноябрь 2006]] [[Изображение:100%.png]]<br />
# [[LXF86|Linux Format 86, Декабрь 2006]] [[Изображение:75%.png]]<br />
# [[LXF87-88|Linux Format 87-88, Январь 2007]] [[Изображение:100%.png]]<br />
# [[LXF89|Linux Format 89, Февраль 2007]] [[Изображение:100%.png]]<br />
# [[LXF90|Linux Format 90, Март 2007]] [[Изображение:100%.png]]<br />
# [[LXF91|Linux Format 91, Апрель 2007]] [[Изображение:100%.png]]<br />
# [[LXF92|Linux Format 92, Май 2007]] [[Изображение:100%.png]]<br />
# [[LXF93|Linux Format 93, Июнь 2007]] [[Изображение:100%.png]]<br />
# [[LXF94|Linux Format 94, Июль 2007]] [[Изображение:75%.png]]<br />
# [[LXF95|Linux Format 95, Август 2007]] [[Изображение:75%.png]]<br />
# [[LXF96|Linux Fromat 96, Сентябрь 2007]] [[Изображение:100%.png]]<br />
# [[LXF97|Linux Format 97, Октябрь 2007]] [[Изображение:100%.png]]<br />
# [[LXF98|Linux Format 98, Ноябрь 2007]] [[Изображение:75%.png]]<br />
# [[LXF99|Linux Format 99, Декабрь 2007]] [[Изображение:100%.png]]<br />
<br />
[[INDEX|Предметный указатель]]<br />
<br />
{|<br />
|[[Изображение:00%.png]]||Меньше 3 статей<br />
|-<br />
|[[Изображение:25%.png]]||Больше 3 статей<br />
|-<br />
|[[Изображение:50%.png]]||Все статьи выложены, у большинства статей нет иллюстраций<br />
|-<br />
|[[Изображение:75%.png]]||Все статьи выложены, у нескольких статей нет иллюстраций<br />
|-<br />
|[[Изображение:100%.png]]||Все статьи оформлены и проиллюстрированы полностью<br />
|}<br />
<br />
<br />
Для пробы wiki-разметки: [[Песочница]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF106:%D0%A1%D0%BF%D0%B5%D1%86%D1%80%D0%B5%D0%BF%D0%BE%D1%80%D1%82%D0%B0%D0%B6LXF106:Спецрепортаж2009-12-31T13:27:50Z<p>Yaleks: /* Eee сегодня */</p>
<hr />
<div>==Eee уже с нами==<br />
<br />
: Хорошего, как говорится, помаленьку, и вы вряд ли сможете найти что-то меньшее, чем Asus Eee PC. Майк Сондерс исследовал это крохотное чудо, управляемое Linux.<br />
<br />
{{Врезка|Заголовок=Asus Eee PC 701|Содержание=<br />
* '''Размер''': 23x16x3.5 см<br />
* '''Вес''': 0.92 кг<br />
* '''Экран''': 7-дюймовый LCD при 800x480<br />
* '''CPU''': 630 МГц Intel Celeron<br />
* '''ОЗУ''': 512 МБ<br />
* '''Флеш-память''': 2, 4 или 8ГБ<br />
* '''Сеть''': Беспроводная или Ethernet<br />
* '''Порты''': 3x USB, аудио, VGA, SD карта <br />
* '''Батарея''': 3.5 часа (в среднем)<br />
* '''OS''': Xandros Linux<br />
* '''Сайт''': http://eeepc.asus.com<br />
|Ширина=200px}}<br />
<br />
Этот год будет самым важным в истории Linux. Целое десятилетие задавался один и тот же вопрос: «Когда же Linux придет в массы?» У нас есть дистрибутивы, дружественные к пользователю, у нас есть финансирование<br />
крупных компаний, таких как IBM и Google, и мы видим, что основные<br />
производители ПК, включая Dell и HP, предлагают системы, управляемые Linux. Но этого мало. Linux все еще имеет клеймо – он не<br />
поддерживается, труден в использовании, и для него нет многих приложений. Несмотря на все наши усилия, это представление не будет<br />
опровергнуто, пока Linux не попадет в руки миллионов неспециалистов, и не пойдет слух, что на самом деле Linux – очень хорошая ОС<br />
для настольных компьютеров.<br />
<br />
Это замкнутый круг: типичные пользователи ПК не переходят на Linux, так как они думают, что он слишком сложен, а слух не будет<br />
распространяться, пока рыночная доля Linux мала. Несмотря на усилия Dell – наша хвала этой компании, поставляющей Linux – средний<br />
пользователь собирается оставаться с тем, что ему знакомо, то есть с<br />
Windows. Нам нужен такой компьютер, который нарушит границы, расширит рамки и легко справится с другими преградами. Нам нужна крутая машина, ценовая точка, переопределяющая рынок, и, вдобавок к этому, работающая под Linux. Видя все плюсы, люди ринутся покупать<br />
такой компьютер, невзирая на то, какая ОС там стоит – фактически,<br />
этих людей уже более миллиона.<br />
<br />
Да, такой ПК существует, и, возможно, это самое обсуждаемое устройство в компьютерном мире. Asus Eee PC – это крохотный ноутбук с 7-<br />
дюймовым экраном, процессором Intel на 630 МГц и 512 МБ оперативной<br />
памяти, который продается по потрясающе низкой цене – около 10 000<br />
руб. Концепция ультрамаленьких ноутбуков не нова, но исторически они<br />
были главными опустошителями кошельков, появляясь примерно на<br />
отметке в 50 000 руб. Asus вывел сочетание массовости и производственных мощностей с флеш-памятью, чтобы произвести суперпортативный<br />
компьютер по поразительно низкой цене. Вдобавок, использование флешпамяти (а не жесткого диска) увеличивает долговечность устройства,<br />
поскольку, за исключением вентилятора, он не имеет движущихся частей.<br />
<br />
Мы делали обзор Eee PC в [[LXF100-101:Review3|LXF100/101]] и наградили его оценкой '''9/10''', заключив, что маленькая клавиатура и средние спецификации не<br />
мешают ему быть роскошным мобильным помощником. С обычными походными задачами, такими как web-серфинг, электронная почта и<br />
офисная работа, Eee справляется безукоризненно. Но больше всего нас<br />
порадовало то, как он способствует широкому распространению Linux:<br />
многие пользователи, купившие компьютер с намерением установить на<br />
нем Windows, остались на Linux, открыв для себя прекрасную альтернативную ОС. Eee имел бурный успех, и Asus прилагает усилия, чтобы удовлетворить спрос, так что если компания сумеет нарастить производство,<br />
к концу года, вероятно, будет продано несколько миллионов Eee. У Linux,<br />
наконец, получилось.<br />
<br />
===Рождение Eee===<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF106_27_1.jpg|300px]]Eee имеет слот для SD-карты, три порта USB, VGA и гнездо для замка Kensington.|Ширина=300px}}<br />
<br />
В мае 2006 года Intel запустила инициативу World Ahead Programme, чтобы исследовать возможность разработки дешевых ноутбуков для развивающихся стран. Компания создала машину Classmate PC, на базе Intel x86 (что, в общем, неудивительно), беспроводной сетью и флеш-памятью вместо жесткого диска. Более<br />
важно то, что Linux предполагался идеальной ОС, позволяющей удержать цену в разумных рамках и обеспечить возможность настройки.<br />
<br />
Вскоре эту идею уловил Asus, втихую разработав небольшой ноутбук со спецификациями Classmate. Однако потенциал идеи небольшого<br />
дешевого ноутбука, управляемого Linux, был столь велик, что нельзя<br />
было пройти мимо, и на Computex Taiwan в июне 2007 Asus оповестила мир об Eee PC. Но это была не машина по специальному заказу для<br />
развивающихся стран, а просто потребительское устройство, гаджет<br />
из мечты техноманьяка, мобильный спутник для каждого – от ребенка<br />
до акулы бизнеса.<br />
<br />
До того времени Asus был в основном известен как производитель комплектующих, вроде материнских плат. Вскоре после объявления об<br />
Eee PC положение изменилось: Asus избавился от роли массового производителя компонентов и анонсировал радикально новый микроноутбук по невероятно низкой проектной цене в $199.<br />
<br />
Технические сайты со всего света замерли в безумии ожидания. $199? Серьезно? От Asus для всех людей? Как такое может быть<br />
правдой? Журналисты давились, пытаясь достать устройство, и по<br />
мере того, как Asus наращивал производство на своих заводах, производитель дистрибутивов Xandros старательно готовил специализированную сборку Linux для этой машины. Великий день наступил в октябре, когда в Тайване в продажу поступила первая модель. Западные<br />
блоггеры и обозреватели выбивались из сил, лишь бы заполучить ее – даже с китайской клавиатурой.<br />
<br />
При выходе на рынок США Asus потерял свою исходную ценовую позицию: 2 ГБ модель продавалась за $299, а 4ГБ – за $349. Некоторые<br />
педанты пришли в неистовство от повышения цены, обвиняя компанию в предполагаемой лжи ради шумихи и популярности. Другие признали,<br />
что цены неизбежно будут колебаться в зависимости от ОЗУ и флешпамяти, и Eee все еще в четыре раза дешевле других ноутбуков того же<br />
форм-фактора. Хорошо это или плохо, но каждому есть что сказать.<br />
<br />
===Eee сегодня===<br />
<br />
Прошло шесть месяцев с момента выхода Eee, и Asus уже выпустил более 400000 экземпляров, и старается удовлетворить спрос. Фактор новизны уже прошел: первым пользователям приходилось привыкать к таким причудам машины, как малая клавиатура и ограниченная спецификация.<br />
<br />
Суетливое сообщество покупателей Eee сплотилось вокруг http://www.eeeuser.com, битком набитого хакерами, твикерами и конечными пользователями, обсуждающими устройство; в недавнем опросе среди 1297 участников форума 95 % отметили, что Eee отвечает ожиданиям или даже<br />
превосходит их. Фотографы обсуждают Eee как миниатюрную станцию обработки изображений, а аппаратные хакеры зарылись в модификацию<br />
своих машин, чтобы добавить дополнительное оборудование, например поддержку Bluetooth и GPS.<br />
<br />
Что касается пользователей Linux, самая главная новость такая: опрос среди 995 пользователей Eee показывает, что только на 29 % машин запущена Microsoft Windows. Большинство осталось под Linux, и важно отметить, что http://www.eeeuser.com – это не прибежище техноманов или старых фанатов Linux.<br />
Большая часть постоянных посетителей сайта выглядят типичными пользователями ПК, не заступающими на территорию командной строки и просто использующими Eee как мобильный компьютер.<br />
<br />
Снова и снова появляются сообщения форума, где новые пользователи Eee восхваляют простоту Xandros Linux и ликуют в связи с тем, что им не нужно тратиться на лицензию Windows или переустанавливать операционную систему. Многие раньше едва слышали слово Linux, не говоря уже об использовании, а некоторые даже не знали о существовании полнофункциональных альтернатив Windows и OS X.<br />
<br />
Правда, ситуация не столь радужная: неровная поддержка Linux’ом оборудования подложила свинью нескольким пользователям при подключении новых внешних устройств, и печально, что Asus медлителен в выпуске программных обновлений. Но уже витает мысль, что Linux чертовски хорош для «вычислений на ходу», и что стоит попробовать его и на подходящем настольном ПК.<br />
<br />
На этот кусок пирога неизбежно засматриваются и другие производители оборудования. Успех Eee подтвердил, что Windows не является необходимостью для решения насущных задач, так что теперь у нас есть Everex Cloudbook, где работает GOS ([[LXF106:Review4|смотрите наш обзор]]), управляемый Linux Elonex One (http://www.elonexone.co.uk), опытные образцы от Acer, Norhtec и MSI – и везде стоит Linux. Даже если сегодня Asus откажется от Eee, семя уже прочно проросло: новая волна ультрапортативных ноутбуков будет управляться Linux’ом.<br />
<br />
Британский комик, актер, драматург, писатель и сертифицированный маньяк Стивен Фрай [Stephen Fry], кажется, согласен с этим. Он сказал нам: «Будущее – это открытое ПО, будущее – это GNU и будущее – это флеш-накопители. Eee, может быть, не самая мощная, быстрая и элегантная машина из когда-либо представленных публике, но немногие так ясно указывали, что ждет нас впереди. Я люблю свой Eee и буду всегда помнить его как авангард Того, Что<br />
Пришло.»<br />
<br />
===Следующий шаг – Eee 900===<br />
<br />
Как Microsoft отреагирует на этот подающий надежды рынок Linux? У компании достаточно денег, чтобы раздавать бесплатные копии Windows XP производителям<br />
оборудования, поддерживая свое господство в компьютерном мире и не давая пользователям узнать о существовании другим<br />
операционных систем. Однако (оставим в стороне законность) это может быть не таким простым решением. Производители<br />
оборудования выбирают Linux не просто из-за того, что он<br />
дешев (хотя это довольно весомый фактор); они предпочитают<br />
Linux, поскольку он дает им возможность гибко подстраивать<br />
ОС под их машины, и при разработке устройств получается<br />
огромная свобода творчества, не то что под каблуком у<br />
Microsoft или другой компании.<br />
<br />
Также играют роль системные требования. Microsoft’у не терпится избавиться от Windows XP,<br />
и переключить всех на Vista, громоздкое чудовище. При помощи Linux, Asus и Ко. могут подогнать любые кусочки на свое усмотрение, увеличивая скорость и, тем самым, опережая своих конкурентов на шаг. Этот уровень тонкой настройки недостижим при использовании ОС с закрытым кодом, такой как<br />
Windows.<br />
<br />
====Готовьтесь к Eee PC 900====<br />
<br />
В ответ на жалобы на маленький экран Asus разработал Eee PC 900, новую версию машины, с большим девятидюймовым экраном. Буквально за час до того,<br />
как этот номер вышел в печать [в Великобритании], в наших дрожащих от волнения руках оказался-таки образец 900-го (Asus планирует запуск в Великобритании на 1 мая). При ценовой планке в 400 евро, 900-й серьезно вторгается на территорию обычных ноутбуков – но у него все еще есть преимущества в виде малого веса и размера. На первый взгляд, машина почти идентична 701, если не учитывать большего экрана и сенсорной панели. Она чуточку выше, шире и тяжелее, хоть клавиатура точно такого же размера, как и раньше. Другим косметическим изменением является положение микрофона: теперь он находится не в основании устройства, а вверху экрана,<br />
рядом с 1,3-мегапиксельной web-камерой. В то время, как процессор<br />
701-го был ограничен сверху частотой 630 МГц ради сбережения энергии, Eee 900 держит Intel Celeron на родной частоте в 900 МГц, хотя<br />
ее можно уменьшить посредством настроек BIOS. Машина будет<br />
доступна с 1 ГБ ОЗУ и 20 ГБ места на флеш-накопителе.<br />
<br />
Внутри коробки вы найдете обычные брошюры, диск восстановления и защитный чехол. Досадно, но теперь адаптер пита-<br />
ния – это маленький кирпич, что делает его менее переносимым. С точки зрения приложений, самой большой новой функцией являются жесты сенсорной панели – с помощью двух пальцев вы можете приближать и отодвигать документы и прокручивать их. Грустно, но встроенная ОС (Xandros) и приложения те же, что и в 701. Конечно, ОС работает хорошо, но ''OpenOffice.org 2.0'' сейчас становится ужасно старым! После работы с 701 разрешение экрана 1024x600 выглядит как<br />
глубина, и, поскольку аппаратное и программное обеспечение большей частью то же самое, мы можем назвать его ‘Eee PC 1.5’. В этом году Asus планирует снабдить Eee 900 ультранизковольтным процессором Intel Atom, хотя пока непонятно, сколько это будет стоить.<br />
<br />
====Смело идти навстречу конкуренции====<br />
<br />
Так что наша единственная претензия к 900-му – это цена. Для такого размера она все еще неплохая, но когда MSI, HP и Dell выпустят соперников Eee, 400 евро может показаться дороговато. Многие пользователи Eee уже разорились на 8 ГБ или 16 ГБ SD-карты, так что мы были<br />
бы рады увидеть урезанный Eee 900 с 4 ГБ на флешке и без web-камеры по цене около 300 евро. Это лакомый кусок – и Asus недолго будет<br />
пребывать здесь в одиночестве.<br />
<br />
Когда выйдет Eee 900, и другие производители сделают из своих опытных образцов полноценные модели, к концу года мы увидим Linux в руках миллионов новых пользователей. Это может привести к громадному сдвигу во всей индустрии, революции в мире ноутбуков. Microsoft получила свое господство, когда де-факто стала стандартной ОС компьютеров для бизнеса, и, таким образом, принудила пользователей запускать DOS и Windows на своих домашних ПК. Если Linux станет стандартном для компьютеров класса субноутбуков, его имидж сменится – из ОС для маньяков и технарей на нечто, чем может пользоваться каждый. Но такое будущее не является гарантированным – будем держать пальцы скрещенными. '''LXF'''<br />
<br />
===Настройка вашего Eee:===<br />
==== Добавление стартового меню====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF106_27_2.jpg|300px]]Добавив меню приложений, вы сможете легко добраться до ваших любимых программ без необходимости щелкать Tab’ом.|Ширина=300px}}<br />
<br />
В этой статье мы покажем вам, как улучшить интерфейс Eee (и так приятный сам по себе) и задействовать дополнительные возможности.<br />
В последующих выпусках '''Linux Format''' мы опубликуем учебники, объясняющие, как добавить больше приложений, сделать резервные копии<br />
флеш-накопителя и установить другие дистрибутивы. Но первым делом давайте добавим к интерфейсу ''IceWM'' меню запуска программ (кнопка<br />
'''Start'''). Нажмите '''Ctrl+Alt+T''', чтобы открыть терминал командной строки, и введите<br />
<br />
sudo kwrite /etc/X11/icewm/preferences<br />
<br />
С помощью этой команды мы открыли главный файл конфигурации ''IceWM'' в текстовом редакторе '''KWrite''' (под root). Здесь вы увидите все<br />
четко прописанные опции ''IceWM'', а также сможете включать и отключать их путем присваивания значений 1 и 0, соответственно. Посмотрите,<br />
поэкспериментируйте с опциями! В данном случае мы хотим активировать стартовое меню, так что ищем опцию '''TaskBarShowStartMenu''' и<br />
устанавливаем ее в 1, вот так:<br />
<br />
TaskBarShowStartMenu=1<br />
<br />
Сохраните файл и введите в командной строке ''killall -HUP icewm'' для<br />
перезапуска ''IceWM''. Вуаля! Внизу слева вы увидите кнопку '''Start'''. Заметим,<br />
однако, что данное меню типично ''IceWM'' и не показывает все приложения Eee. Это можно поправить, отредактировав файл меню ''IceWM'' (''sudo kwrite /etc/X11/icewm/menu''). Запись о программе состоит из трех частей,<br />
следующих за словом ‘'''prog'''’: сначала идет имя приложения (если оно содержит пробелы, то его нужно заключить в кавычки), затем пиктограмма, и, наконец, команда для запуска. Скажем, мы хотим добавить на самый верх меню пункт, который запускает терминал ''Konsole''. Напишем:<br />
<br />
prog “Konsole CLI” app konsole<br />
<br />
Чтобы пиктограммы представляли собой стандартный X-логотип (я всегда так делаю, так как мне не хочется выискивать подходящие картинки!), вместо значка следует прописать ‘'''app'''’. Файл меню также демонстрирует, как добавлять разделители и подменю – настройте его по своему вкусу! После сохранения ''IceWM'' обновится автоматически, так что нажмите '''Start''' и увидите изменения.<br />
<br />
====Горячие клавиши====<br />
<br />
Это сильно сэкономит ваше время. Возможно, вам уже известно сочетание для закрытия окна ('''Alt+F4'''), но если нет,<br />
щелкните правой кнопкой по его заголовку, и ''IceWM'' отобразит те сочетания клавиш, что стоит запомнить. Но это<br />
только вершина айсберга – как мы уже видели, ''IceWM'' содержит горячие клавиши для запуска терминала командной строки: '''Ctrl+Alt+T'''. Но где он хранит эти сочетания? Как вы уже догадались, там же, где и раньше, в каталоге '''/etc/X11/icewm'''. Откройте терминал и введите:<br />
<br />
sudo kwrite /etc/X11/icewm/keys<br />
<br />
Формат здесь легко понять. Есть слово ‘'''key'''’, за которым следует сочетание клавиш (в кавычках), затем команда,<br />
которую следует выполнить. Может, вы увидите маленькие значки в виде запятых – так ''KWrite'' отображает табуляцию.<br />
В качестве примера давайте изменим суть '''Ctrl+Alt+T''', чтобы она запускала дивную KDE-шную программу ''Konsole'', а не<br />
скучный старый терминал ''X''. Поменяйте строку 15 (ту, что содержит ''x-terminal-emulator'') на<br />
<br />
key “Alt+Ctrl+t” konsole<br />
<br />
Сохраните файл и перезапустите ''IceWM'' ('''Start > Logout > Restart IceWM'''). Нажмите ''Ctrl+Alt+T'' и вы увидите, что<br />
появится ''Konsole''! Можете дальше редактировать файл '''/etc/X11/icewm/keys''' на свой вкус, добавляя горячие клавиши для ваших любимых программ. Для справки: команда, запускающая Mozilla Firefox – это ''firefox''; команда для OpenOffice.org – ''ooffice'', а та, что вызывает калькулятор,<br />
называется ''kcalc''.<br />
<br />
====Расширьте панель задач====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF106_27_3.jpg|600px]]Требуется больше места в панели задач? Удалите ненужные значки путем редактирования стартового скрипта Eee. |Ширина=600px}}<br />
<br />
Единственный недостаток новой кнопки '''Start''' (смотри раздел '''Добавление стартового меню''') – это то, сколько места она занимает. Но взгляните в область системного лотка справа в панели задач – какая мешанина! Вам вправду нужен значок, сообщающий о том что включен<br />
режим '''Num Lock'''? Скорее всего, вы ответите «нет», и, к счастью, мы можем убрать некоторые из тех значков, чтобы освободить больше места. Некоторые из пиктограмм существенны для нормальной работы дистрибутива, так что всех их вымести оттуда не получится, но парочку сантиметров освободить нам вполне по силам. Запустите с помощью '''Ctrl+Alt+T''' терминал командной строки и введите:<br />
<br />
sudo kwrite /usr/bin/startsimple.sh<br />
<br />
'''startsimple.sh''' – это стартовый скрипт для Eee-шного GUI. Прокрутите вниз до строки 51, и вы увидите '''(sleep 3; /usr/bin/keyboardstatus) &'''. Эта строка как раз и добавляет «лишние» индикаторы '''Caps Lock''' и '''Num Lock'''. Поставьте знак решетки ('''#''') в начало строки, чтобы<br />
закомментировать ее, то есть воспрепятствовать выполнению. После изменения она должна выглядеть вот так:<br />
<br />
# (sleep 3; /usr/bin/keyboardstatus) &<br />
<br />
Теперь перезагрузите ваш Eee, и вы заметите, что значки исчезли, предоставив вам чуть-чуть места на панели задач. Если вдруг вы захотите вернуться в исходное состояние, просто заново отредактируйте '''startsimple.sh''', удалите из начала строки знак комментария ('''#'''), затем перезагрузитесь, и значки появятся вновь.<br />
<br />
Также можно убрать некоторые из значков, расположенных справа, прямо перед кнопкой '''Hide'''. Обычно их три: менеджер задач, справка и выход, но некоторые (или все) можно удалить, выполнив<br />
<br />
sudo kwrite /etc/X11/icewm/toolbar2<br />
<br />
Вы увидите, что этот файл содержит три строки для значков панели задач; просто добавьте знак комментария ('''#''') в начало той строки (или строк), которые вам не нужны. Затем перезагрузите ''IceWM'', и у вас появится еще один сантиметр-два, куда могут вместиться запущенные программы.<br />
<br />
====Просто картинка====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF106_28_1.jpg|600px]]Прочь, Asus’овские корпоративные декорации! Совсем несложно заменить фон по умолчанию рисунком на ваш выбор.|Ширина=600px}}<br />
<br />
Как насчет другого рисунка для фона рабочего стола? Эта задача будет поизощреннее, так как на Eee используются самые различные обои. Если пощелкать по вкладкам вверху рабочего стола, то можно заметить, что фоновый рисунок меняется. Существует пять главных вкладок (исключая Favourites), так что и фоновых рисунков тоже пять.<br />
<br />
Но постойте! Вы также можете поменять цветовую схему вашего рабочего стола ('''Personalisation''' под вкладкой '''Settings'''), и поскольку там есть<br />
четыре темы, каждая со своим набором пяти фоновых рисунков, мы приходим к 20 картинкам. Ничего себе! Простейший способ состоит в перезаписи всех рисунков одним махом. Сначала, для надежности, мы их зарезервируем. Откройте терминал и введите:<br />
<br />
mkdir eee_backgrounds<br />
cp /opt/xandros/share/AsusLauncher/*wallpaper* eee_backgrounds<br />
<br />
Здесь мы создали каталог под названием '''eee_backgrounds''' (в вашей домашней директории), куда скопировали стандартные обои Eee.<br />
Теперь нужно скопировать выбранный вами фоновый рисунок поверх текущего – если он называется '''mypic.jpg''' и находится в домашнем каталоге, введите:<br />
<br />
for f in /opt/xandros/share/AsusLauncher/*wallpaper*; do sudo cp mypic.jpg $f; done<br />
<br />
Команда выглядит ужасно, но, в сущности, она говорит: «Перезаписать каждый файл из каталога рисунков Xandros, содержащий в своем имени<br />
‘'''wallpaper'''’, и заменить его файлом '''mypic.jpg'''» Теперь все 20 файлов рисунков – это копии файла '''mypic.jpg'''. Можете пощелкать по вкладкам и посмотреть, что получилось!<br />
<br />
Если вы хотите восстановить прежние фоновые рисунки, это сущие пустяки:<br />
<br />
sudo cp ~/eee_backgrounds/* /opt/xandros/share/AsusLauncher/<br />
<br />
====Закройте его крышкой====<br />
<br />
По умолчанию, когда крышка закрывается, Eee переходит в ждущий режим, что помогает сохранить заряд батарей. Но, возможно, вы и не хотите, чтобы при закрытии крышки что-нибудь происходило, например, если вы используете Eee для прослушивания музыки или интернет-радио. К счастью, это легко поправить. Нажмите '''Ctrl+Alt+T''', чтобы открылось окно терминала, и введите:<br />
<br />
sudo kwrite /etc/acpi/lidbtn.sh<br />
<br />
Как многие уже догадались, '''lidbtn.sh''' – это скрипт, который выполняется, когда закрывается крышка Eee. Вы можете увидеть, что он вызывает другой скрипт под названием '''suspendtoram.sh''', но нам этого не нужно. Простейшим решением будет добавление ‘'''exit 0'''’ в самом начале скрипта, сразу после строки '''#!/bin/sh''', как на снимке экрана. Сохраните файл, и когда вы закроете крышку, ничего не случится (экранная подсветка отключится, и все!)</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF112:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8BLXF112:Ответы2009-12-31T13:24:19Z<p>Yaleks: /* 2 Гармония в ''Unison'' */</p>
<hr />
<div>==Ответы==<br />
: Есть вопрос по Open Source? Пишите нам по адресу: [mailto:answers@linuxformat.ru answers@linuxformat.ru]!<br />
<br />
===1 Linux для всех===<br />
<br />
'''В''' ''Обдумываю переход на Linux из Windows, но мне нужен экранный диктор, потому что я недавно потерял зрение. Я слушал подкаст, где слепой пользователь устанавливал Ubuntu 8.04 помощью программы '''Orca''', звучавшей вполне прилично.''<br />
<br />
''Будет ли '''Orca''' зачитывать весь экранный текст во всех приложениях Linux и лучший ли дистрибутив для этого Ubuntu 8.04, с учетом того факта, что слепые пользователи не могут читать с экрана или использовать мышь, и что этот диктор не может интезировать речь по графике и иконкам?''<br />
<br />
''Коммерческие экранные дикторы стоят фунтов 500 и работают только с программами Microsoft, так что мне грозит модернизация за 250 фунтов при замене Outlook Express 6 на OE7.''<br />
<br />
''Какой дистрибутив подойдет мне лучше всего, и где можно получить диск для его установки на моем компьютере?''<br />
'''Дэвид Бейтс [David Bates]'''<br />
<br />
'''О''' ''Orca'', похоже, делает то, что Вам нужно. Он работает со всеми программами, имеющими поддержку Assistive Technology Service Provider Interface (AT-SPI). К ним относятся рабочий стол Gnome и многие из выполняемых в нем приложений. Каждая типовая задача представлена по крайней мере одной программой; офисный пакет, web-браузер, электронная почта, бухгалтерия и даже<br />
терминал должны покрыть Ваши потребности.<br />
<br />
''Orca'' не очень хорошо работает с KDE, так что Вам понадобится именно Gnome (хотя адаптировать AT-SPI к KDE уже предлагается). Это рабочий стол Ubuntu по умолчанию, поэтому Ubuntu – вполне подходящая платформа. Ubuntu 8.04 был на DVD в '''LXF107''', а можно скачать его с http://www.ubuntu.com. Если у вас нет широкополосного доступа, Вы можете заказать бесплатный<br />
компакт-диск с сайта Ubuntu.<br />
<br />
Экранный диктор ''Orca'' включен в стандартную установку Ubuntu. Перейдите в системное меню и выберите '''Параметры > Вспомогательные технологии'''. Здесь можно настроить экранный диктор, с экранным увеличителем или без него, для запуска при старте. Чтобы справиться с экраном входа, есть два способа; оба установлены в '''Система > Администрирование > Окно<br />
входа в систему'''. Первый – включить автоматический доступ для пользователей на вкладке '''Безопасность'''.<br />
Но учтите: при всем удобстве это несколько снижает надежность вашей системы, так как любой включивший компьютер будет автоматически зарегистрирован под вашим именем. Другой вариант – активировать ''Orca'' для экрана входа, отметив галочкой '''Включить поддержку специальных возможностей''' на вкладке '''Специальные возможности'''.<br />
<br />
Более подробную информацию о специальных возможностях Ubuntu можно найти на http://www.ubuntu.com/products/whatisubuntu/accessibility, а подробную информацию об ''Orca'', включая список поддерживаемых программ, на http://live.gnome.org/orca. '''НБ'''<br />
<br />
===2 Гармония в ''Unison''===<br />
<br />
'''В''' ''Я хорошо знаком с '''rsync''' и хотел бы использовать '''Unison''', поэтому статья Криса Брауна в [[LXF110:DrBrown2|LXF110]] показалась мне очень интересной. Однако естьпара непонятных моментов. В тексте говорится: «... мой настольный компьютер, который я называю hardy...» и далее используется имя ‘hardy’ в командах. Где имя ‘hardy’ определяется в его системе?''<br />
<br />
''Показано несколько последовательностей команд, но нигде не говорится, выполняются ли они на ноутбуке или настольном ПК. Первая последовательность начинается с “'''$ ssh hardy unison -version'''”, позволяя предположить, что она была введена на ноутбуке, но другие команды неоднозначны в этом контексте – например, “'''$ unison -playtime'''”.''<br />
'''Морис Бате [Maurice Batey]'''<br />
<br />
'''О''' ‘Hardy’ – это имя компьютера; чтобы узнать его для каждой из ваших машин, запустите команду ''hostname'' в терминале. Место, где оно задается, варьируется от одного дистрибутива к другому, но обычно его можно найти в разделе сетевых настроек.<br />
<br />
''Unison'' не имеет реального разделения компьютеров на серверы и клиенты: его можно запустить на любом из пары компьютеров, требующих синхронизации. В контексте данной статьи все команды запускались на ноутбуке и работали с сервером, который имел имя '''hardy''' (видимо, Крис утаил имя своего ноутбука – либо для безопасности, либо потому, что оно какое-нибудь дурацкое). Первая команда, ''ssh hardy unison -version'', запускает ''unison -version'' на '''hardy''' через ''SSH''-соединение. Если она выдает тот же результат, что и вторая команда, все в порядке. <br />
<br />
Обзаведясь '''~/.unison/playtime.prf''' на обоих компьютерах, вы можете запустить ''unison playtime'' (здесь нет префикса '''-''') на любом компьютере и приступить к синхронизации. Начиная работать с моим ноутбуком или настольным компьютером, я обычно сперва запускаю ''Unison'', чтобы убедиться, что машины синхронизированы друг с другом.<br />
<br />
При желании начинать синхронизацию с любого компьютера, вам нужны похожие, но не идентичные профили. Список включенных файлов будет тот же, но вы можете захотеть изменить порядок следования параметров root. Иначе один и тот же компьютер всегда будет появляться слева в списке, а я предпочитаю всегда иметь слева локальный компьютер. Поэтому я использую директиву '''include''' и храню значения root со списками объектов синхронизации в отдельных файлах. Тогда '''playtime.prf''' должен содержать<br />
<br />
label = Test sync between here and hardy<br />
include playtime.roots<br />
times = true<br />
include playtime.files<br />
<br />
Это означает, что '''playtime.files''', содержащий основную часть настроек, одинаков для всех машин; его даже можно включить в список синхронизируемых файлов, чтобы так и было. Строка '''times''' гарантирует, что сохранится время модификации файлов и каталогов, что является хорошей идеей. '''ГМ'''<br />
<br />
===3 Горести новичка===<br />
<br />
'''В''' ''Я полный нуль в Linux, но недавно установил Fedora 9 с вашего LXF108 DVD. Рвусь в бой, но в данный момент малость застрял: не пойму, как оживить мою беспроводную сеть. Ясно, что будет работать лишь часть адаптеров, чипсеты бывают разные, и даже для тех, что поддерживают Linux, установка драйвера может быть достаточно сложной процедурой с применением кода. (У меня USB-адаптер Netgear WG111v2 USB, но я хочу использовать PCI-карту.)''<br />
<br />
''Я напуган количеством кода и языков, которые, судя по всему, необходимы для эффективного использования Linux. По большей части я даже не понимаю, о чем речь, и я далек от компьютерной грамоты. Как заставить адаптер беспроводной сети работать в Fedora 9?''<br />
<br />
''Во-вторых – и я думаю, это самое главное – можете ли вы предложить какие-либо ресурсы/книги, способные мягко погрузить меня в пучину Linux? Хотел сбежать из Windows, но чувствую, что почти созрел ползти обратно в знакомые окрестности XP: Linux, с его загадочным жаргоном, миллионами вариантов и странным кодом, выглядит таким недоступным! Горю желанием изучить столько, сколько необходимо, но плохо представляю, с чего начать; с благодарностью приму любые подсказки.''<br />
'''Энди [Andy Y]'''<br />
<br />
'''О''' Проблемы с беспроводными чипсетами бывают, и ситуация усугубляется самими изготовителями: они норовят изменить продукт, а название модели или номер оставить прежним. Сейчас почти все беспроводные адаптеры в той или иной форме поддерживаются, хотя усилия по приведению их в рабочее состояние неодинаковы. Раз вы все равно планируете купить новую PCI-карту, я посоветовал бы Вам приобрести ее в Linux Emporium (http://www.linuxemporium.co.uk): там продается оборудование, гарантированно работающее с Linux, и предусмотрена поддержка для большинства дистрибутивов. Также предоставляются Linux-драйвера для дистрибутивов, не имеющих встроенной поддержки (это, как правило, дистрибутивы-«старички», так как в последнее время поддержка беспроводных устройств в Linux сильно улучшилась).<br />
<br />
Для пользования Linux знать языки программирования не обязательно, но умение набирать команды в консоли иногда помогает. Различные дистрибутивы вложили много труда в развитие системных инструментов, заменяющих работу в командной строке, но<br />
иногда это быстрее и проще, и не так страшно, как кажется поначалу. Linux-жаргон не столько загадочен, сколько незнаком – попробуйте-ка объяснить работу Windows тем, кто никогда ее раньше не видал.<br />
<br />
Для Linux-пользователей, как опытных, так и новичков, полно ресурсов. Man-страницы – это документация для различных команд, к которой Вы можете получить доступ, набрав man имя_команды в консоли, или, если Вы используете рабочий стол KDE, нажав<br />
'''Alt+F2''' и введя ''man:имя_команды'', чтобы открыть HTML-версию man-страницы в web-браузере.<br />
<br />
К вашим услугам также и сетевые ресурсы, например, ''Rute'' (http://rute.2038bug.com/index.html.gz), содержащий понятное введение в работу с Linux, или Linux Documentation Project (http://tldp.org), где имеется коллекция инструкций '''HOWTO, FAQ, man'''-страниц и более длинные руководства типа ‘Introduction to Linux – A Hands-on Guide’ ['''в том числе, на русском языке, – прим.ред.'''].<br />
<br />
Если Вы предпочитаете печатные книги, есть много работ для начинающих в различных дистрибутивах – у Fedora это, например, Beginning Fedora от Apress и Fedora Unleashed, в соавторстве нашего почтенного редактора, Пола Хадсона (оба можно найти на Amazon<br />
либо в розничной сети). И, разумеется, продолжайте читать Linux Format, углубляя и расширяя свои знания по Linux. Кстати, по мере<br />
накопления опыта стоит оглянуться на старые проблемы. Статья, бывшая для вас непознаваемой несколько месяцев назад, после нескольких месяцев обучения многое вам прояснит. '''НБ'''<br />
<br />
===4 Нет сообщений===<br />
<br />
'''В''' ''Делал в Ubuntu 7.10 автоматическое резервное копирование данных, используя '''crontab''' для запуска скриптов '''Bash''', выводящих графические уведомления посредством '''Zenity'''. После обновления до Ubuntu 8.04 сообщения перестали появляться, хотя резервное копирование данных все еще проходит нормально. Я безуспешно испробовал множество решений из Интернета для написания альтернативного кода вывода сообщений из '''crontab'''. Также испытал процедуры в Linux Mint 5.0 Light и Ubuntu 7.10 на других машинах – там они нормально работают, и я полагаю, что проблема заключается в ядре.''<br />
<br />
''Начинка моей машины не менялась со времени работающих процедур в Ubuntu 7.10. Я уповал на то, что подходящая заплатка будет в одном из многочисленных обновлений Ubuntu 8.04, но напрасно!''<br />
<br />
''Командная строка в '''crontab''' такая:''<br />
<br />
16 10 * * * export DISPLAY=:0.0 && /home/bruceadmin/Scripts/dayback.sh > /dev/null 2>&1<br />
<br />
''и '''export | less''' в терминале показывает, что ''':0.0''' – корректное значение для моего параметра '''DISPLAY'''.''<br />
'''Брюс Ричардс [Bruce Richards]'''<br />
<br />
'''О''' Первый шаг – удалить или изменить перенаправление вывода, чтобы увидеть сообщение об ошибке, которую ваша команда, <br />
вероятно, выдает. В первом случае, оно поступит к вам на e-mail; можно также перенаправить его в файл. Если скрипт резервного копирования выводит слишком много информации, попробуйте перенаправить выводы скрипта и '''STDERR''' в различные <br />
файлы. Подозреваю, что ваши сообщения об ошибке могут содержать “'''cannot connect to X server :0.0'''”, так <br />
что Вы можете также увидеть нужные сообщения в '''/var/log/Xorg.0.log'''.<br />
<br />
Вы запускаете эту команду из ваших пользовательского '''crontab''' или '''/etc/crontab'''? Если последнее, вам нужно выполнить<br />
<br />
xhost local:<br />
<br />
чтобы разрешить другим пользователям (команды в<br />
'''/etc/crontab''' запускаются от root) доступ на ваш дисплей. Иначе – запустите сценарий от имени пользователя и используйте ''sudo'' внутри скрипта для любой команды, требующей прав root.<br />
<br />
И на пользовательский, и на системный '''crontab'''<br />
могло еще повлиять использование ''export'' для установки '''DISPLAY''' отдельно от команды. ''Export'' необходим только тогда, когда команды запускаются отдельно от настройки переменной окружения, а в этом здесь нет необходимости. Так что лучше использовать<br />
команду<br />
<br />
16 10 * * * DISPLAY=”:0.0” /home/bruceadmin/<br />
Scripts/dayback.sh &>/home/user/cron.log<br />
<br />
это прекрасно работает на нашем испытательном стенде с Hardy. Удовлетворившись результатом, перенаправьте файл журнала в '''/dev/null''', но до этого он может пригодиться для отладки. '''МС'''<br />
<br />
===5 Пропала «флэшка»===<br />
<br />
'''В''' ''Я только что установил последнюю версию OpenSUSE 11 с DVD LXF109. Перед инсталляцией, я сохранил все свои файлы в резервной копии на флэш-брелке ('''/media/disk''') – это прошло гладко. Но открыв терминал '''Konsole''' и попытавшись сменить каталог командой '''cd /media/disk''', я получил сообщение об ошибке:''<br />
<br />
bash: cd: /media/disk: no such file or directory<br />
<br />
''То же самое происходит при попытке добраться до моей флэшки через '''Konqueror'''. Но я заметил, что '''Dolphin''' распознает ее как ‘Volume (vfat)’, и только после нажатия на иконку '''Volume (vfat)''' я могу выполнить команду '''cd /media/disk''' через терминал. То же самое происходит с браузером '''Konqueror'''.''<br />
'''GK Heng'''<br />
<br />
'''О''' Это нормально. В вашей системе просто не настроено автомонтирование съемных устройств при их подключении. Система<br />
автомонтирования создает соответствующий каталог в '''/media''' незадолго до монтирования устройства и удаляет его, когда устройство отсоединяется – вот почему '''/media/disk''' не существует. Когда вы открываете «флэшку» в ''Dolphin'', устройство монтируется, и Вы получаете к нему доступ в терминале. При подключении нового съемного устройства KDE должен выводить всплывающее уведомление с вариантом открытия его в ''Dolphin''. KDE 3 позволяет установить действия, выполняемые автоматически при<br />
подключении устройства (в разделе '''Периферия > Устройства хранения''' '''Центра управления KDE'''), хотя<br />
KDE 4, к сожалению, на момент написания не имеет такой возможности. Но теперь, когда Вы понимаете, что происходит, не так уж трудно сперва открыть устройство в ''Dolphin'', а потом пытаться получить доступ к нему из консоли. '''ПХ'''<br />
<br />
===6 Soupчик для системы===<br />
<br />
'''В''' ''Я установил '''HardInfo''' (системный профайлер и приложение тестирования) с LXFDVD на свой Ubuntu 8.04. Запуская его из командной строки, я получаю''<br />
<br />
“hardinfo: error while loading shared libraries: libsoup-2.2.so.8:<br />
cannot open shared object file: No such file or directory”<br />
<br />
''Однако '''locate libsoup''' показывает''<br />
<br />
/usr/lib/libsoup-2.4.so.1<br />
/usr/lib/libsoup-2.4.so.1.1.0<br />
/usr/share/doc/libsoup2.4-1<br />
/usr/share/doc/libsoup2.4-1/AUTHORS<br />
/usr/share/doc/libsoup2.4-1/NEWS.gz<br />
/usr/share/doc/libsoup2.4-1/README<br />
/usr/share/doc/libsoup2.4-1/changelog.Debian.gz<br />
/usr/share/doc/libsoup2.4-1/copyright<br />
<br />
'''Уилфрид Самаэй [Wilfried Samaey]'''<br />
<br />
'''О''' ''HardInfo'' требуется версия ''libsoup 2.2'', а у Вас, похоже, более поздняя версия, 2.4. ''HardInfo''<br />
включен в репозитории Ubuntu и устанавливается из ''Synaptic'', который разрешит зависимость от ''libsoup2.2'', а заодно и установит ее. Так что решение Вашей проблемы – установить из ''Synaptic'' либо ''HardInfo'', либо просто ''libsoup2.2''.<br />
<br />
''Libsoup 2.4'' – не просто обновление библиотеки: это другая версия без обратной совместимости с 2.2. Благодаря этому код чист и компактен, поскольку не обременен наследием старых функций, но зато библиотека не работает с программами, написанными специально для ''libsoup 2.2''. Раз Вы в курсе данной ситуации, то можете установить оба варианта, а программы будут брать ту версию, которая им нужна. '''НБ'''<br />
<br />
===7 Windows в сетях===<br />
<br />
'''В''' ''Я установил OpenSUSE из LXF109 DVD на компьютере, который прекрасно работал с Windows, в том числе, в Интернете. OpenSUSE также дал возможность просмотра Web, но при возврате в Windows не горел индикатор LAN модема-маршрутизатора (TalkTalk Huawei SmartAX MT882). Я удалил и вновь установил драйвер Windows, но без толку. Множество выключений и перезагрузок также не дали результата. Возврат на предыдущие точки восстановления также не помог. Перезапуск OpenSUSE снова сделал сеть доступной, и Интернет заработал, но это не отменило ситуацию в Windows. Расстроившись, я отключил компьютер от сети полностью и пошел спать. Утром вошел в Windows, а индикатор сети снова горит, и все, кажется, в порядке.''<br />
<br />
''Можете ли вы сказать, в чем проблема, и что надо сделать, чтобы ее решить? Понятия не имею, где загвоздка: в компьютере или модеме-маршрутизаторе, но ненавижу подобные «чудесные исцеления».''<br />
'''Рон Мойес [Ron Moyes]'''<br />
<br />
'''О''' Проблема – в компьютере, а точнее, в том, как Windows инициализирует сетевой адаптер. При «холодном» запуске компьютера<br />
устройство имеет настройки по умолчанию, и Windows не имеет проблем с его инициализацией. После перезагрузки Windows все продолжает работать, потому что драйвер ожидает, что устройство будет в состоянии, в котором он его оставил. Проблема возникает<br />
при переходе с Windows на Linux. Windows воспринимает ее как «горячую» перезагрузку, но карта была инициирована не так, как ожидает Windows, потому что последним ее использовал драйвер Linux.<br />
<br />
Как правило, это вызвано драйверами загрузки микропрограммного обеспечения для конкретной карты – вполне возможно, что драйвера Windows и Linux используют разные версии «прошивки», или же Linux-драйвера просто оставляют настройки, запутывающие драйвер Windows. Так или иначе, простейшее решение – когда вы хотите перейти с Linux на Windows, вместо перезагрузки выключайте компьютер. Достаточно будет выбрать Завершение работы в меню рабочего стола, после чего нажать на кнопку питания. Но так как материнская плата все еще получает определенную энергию после выключения, может оказаться, что нужно на несколько секунд<br />
выдернуть шнур питания из розетки или щелкнуть выключателем на задней панели блока питания, чтобы обеспечить полностью «холодную» перезагрузку. Этим объясняется то, что у вас все заработало, когда наутро вы включили компьютер. '''ГМ'''<br />
<br />
===8 Файловые системы===<br />
<br />
'''В''' ''Хочу полностью избавиться от Windows! Но, похоже, есть случаи, когда мы обязаны использовать конкретные файловые системы – FAT, FAT32 или NTFS. Что мы должны использовать для USB-брелков? Они всегда отформатированы в FAT. Я пытался отформатировать общий раздел в ext3, как на моем компьютере, где у меня несколько дистрибутивов, но получается раздел только для чтения, а вот с NTFS-3G и чтение, и запись разрешены без каких-либо дополнительных операций.''<br />
<br />
''На работе у меня MacBook с Leopard и Ubuntu, но выходит, что для общего раздела я обязан использовать NTFS. OS X не умеет читать ext3, а Linux не может писать на HFS+, зато в NTFS оба умеют и читать, и писать. Можете ли вы посоветовать, какую файловую систему использовать при наличии различных ОС и дистрибутивов Linux? Неужели мы действительно навеки прикованы к файловым системам<br />
Microsoft?''<br />
'''Bobzr, с форумов'''<br />
<br />
'''О''' Причина, по которой USB-брелки и флэшкарты памяти обычно отформатированы в FAT, заключается в том, что FAT умеют читать<br />
и писать все. Изготовителей этих устройств больше заботит общедоступность используемой файловой системы, чем ее эффективность. При всем при том, на устройстве с флэш-памятью можно использовать практически любую файловую систему, какая вам нравится.<br />
<br />
Журналируемых файловых систем, таких как ext3, ReiserFS, XFS и NTFS, лучше избегать: это может сильно сократить срок службы устройства. Флэш-память выдерживает только ограниченное число записываний в одном месте (большинство изготовителей упоминают 100000 раз). Блок, перезаписываемый при любом изменении в файловой системе, подвергнется<br />
гораздо большему износу и выйдет из строя намного раньше, чем остальная часть «флэшки».<br />
<br />
Файловые системы HFS+ поддерживаются в Linux, хотя и с ограниченной возможностью журналирования; в свете вышеуказанных причин это как раз неплохо, но и является причиной не использовать HFS+ на «флэшках» для Mac. Хороший выбор – ext2: она быстра, надежна и не журналируема, а кроме того, поддерживается на других операционных системах, но не по умолчанию. Существует драйвер ext2 для Mac<br />
OS X, его можно получить на сайте http://sourceforge.net/projects/ext2fsx, а также для Windows – на http://www.fs-driver.org.<br />
<br />
Действительно ли ваша файловая система ext3 работать только на чтение, или это ваш пользователь лишен прав на запись? Вывод ''mount'' должен показать это – он будет содержать ‘'''ro'''’ если ФС смонтирована только для чтения. В противном случае, вполне вероятно, что файловая система была создана root, которому она и принадлежит, и только ему позволяется выполнять запись. Чтобы это исправить, смонтируйте брелок и запустите<br />
<br />
sudo chown -R youruser: /media/usbstick<br />
<br />
Как видите, выбор файловых систем богатый; одни лучше, другие хуже. Благодаря повсеместной совместимости, FAT наиболее популярна, но следите за максимальным размером файла (4 ГБ), если Вы используете объемное устройство. Если же вы собираетесь использовать устройство только в своих системах и знаете, что для них имеется подходящий драйвер, ext2 – хорошая альтернатива. '''НБ'''<br />
<br />
===9 Скачивание видео===<br />
<br />
'''В''' ''Я пытаюсь загрузить SWF-файлы потокового Flash-видео в папку для последующего просмотра. У меня Ubuntu 7.10 на Compaq Presario SR1720NX. Существует ли способ это сделать? Когда я перетаскиваю иконку в папку, все что я это получаю – это ссылку для скачивания.'' '''Джим Лапрад [Jim Laprad]'''<br />
<br />
'''О''' Первым делом нужно проверить ссылку в файле, который у вас загрузился. Вставьте эту ссылку в браузер, или скачайте его загрузчиком командной строки, например, ''Wget'':<br />
<br />
wget [ссылка]<br />
<br />
Если ссылка имеет вид '''mms:// URL''', обычно вы можете сразу проиграть ее непосредственно в ''Mplayer'': <br />
<br />
mplayer “mms://что-то.....”<br />
<br />
Возможно, вам придется заключить полную ссылку в кавычки, поскольку они часто содержат символы вроде '''?''', которые пытается интерпретировать оболочка. Заключение URL в кавычки препятствует этому и обеспечивает передачу URL в программу неизмененным.<br />
<br />
Если Вы пытаетесь проиграть видео с YouTube,<br />
то есть целый ряд скриптов, позволяющих определить правильный адрес и скачать видео. Один из<br />
них – ''Youtube-dl'' с сайта http://www.arrakis.es/~rggi3/youtube-dl. Вызовите его с адресом страницы YouTube, содержащей видео, используя кавычки, как указано выше,<br />
чтобы загрузить видео в текущий каталог. Далее<br />
проиграйте его вашим любимым плейером. Если вы<br />
используете KDE и web-браузер ''Konqueror'', существует сервис меню, которое можно получить с http://www.kde-apps.org/content/show.php/Get+YouTube+Video+(improved)?content=41456. Установив его, вы можете нажатием правой кнопкой мыши на любой странице YouTube или встроенном видео загрузить или воспроизвести его. '''НБ'''<br />
<br />
===10 Сканер на все руки===<br />
<br />
'''В''' ''С удовольствием читаю LXF, особенно понравился цикл уроков по '''GIMP'''. Возник вопрос: а можно ли с помощью '''GIMP''' создавать со сканера многостраничные TIFF'ы? А если нельзя, то какие программы следует использовать?''<br />
'''Вячеслав'''<br />
<br />
'''О''' К сожалению, возможность сохранени отсканированного документа в многостраничный TIFF в ''GIMP'' пока недоступна, но есть несколько вариантов решения этой задачи с помощью других программ. Например, можно прибегнуть к стандартному подходу UNIX – применить утилиту, которая делает что-то одно, но делает это хорошо. В данном<br />
случае, ею будет ''tiffscan'' – улучшенный интерфейс для ''SANE'' (http://www.sane-project.org). Официальная страничка программы ''tiffscan'' находится по адресу: http://sourceforge.net/projects/tiffscan/. ''tiffscan'' – это консольная утилита с возможностью пакетного режима обработки данных и создания сжатых многостраничных файлов в формате TIFF в диапазоне от чёрно-белых изображений до 8-битных и 16-битных сканов плюс инфракрасное сканирование.<br />
<br />
Далее, можно прибегнуть к старому-доброму ''XSANE''. Выберите опцию '''Многостраничный''' в основном окне программы, далее, в появившемся диалоге '''Многостраничный проект''' укажите имя создаваемого файла, выбираете желаемый формат, диапазон и название страниц, далее нажмите '''Сканировать'''. После завершения процесса вернитесь в окно многостраничного проекта и нажмите '''Сохранить многостраничный файл'''. По окончании, не забудьте нажать на кнопку '''Удалить проект''' для освобождения места на диске.<br />
Подробности см. на http://www.xsane.org/doc/sane-xsane-doc.html. Полученный многостраничный TIFF<br />
можно смело открывать в ''GIMP'' (для «очень многостраничного» файла, особенно если необходимо<br />
представить каждую страницу в виде отдельного изображения, а не слоя, рекомендую выделить побольше<br />
места для кеша – это можно сделать в настройках).<br />
<br />
Пользуясь случаем, хочу также упомянуть программу ''gscan2pdf'' (http://gscan2pdf.sourceforge.net) с интерфейсом на ''GTK+''. С ее помощью всего за два щелчка мышью можно отсканировать несколько страниц и сохранить всё или выделение в файл, включая, при необходимости, и метаданные. Полученный документ может иметь формат PDF, DjVu, многостраничный TIFF или же одностраничное изображение. '''ЮД'''<br />
<br />
===11 DVD и ''Kaffeine''===<br />
<br />
'''В''' ''Я записываю ТВ-программы с использованием '''Kaffeine'''. Он сохраняет их в файлах формата M2T. Мне надо перевести их в формат, пригодный для записи на DVD с помощью '''K3b''', чтобы я мог проиграть их снова на моем DVD-проигрывателе на телевизоре. Можете ли вы порекомендовать какие-либо стандартные комбинации, которые помогут сделать такую работу?''<br />
'''Алан Секер [Alan Secker]'''<br />
<br />
'''О''' ''Kaffeine'' использует расширение '''.m2t''' для файлов MPEG2-TS (Transport Stream). Это программы, передаваемые в формате MPEG2 по каналам вещания цифрового видео, например, Freeview. MPEG2-PS (Program Stream) – вариация того же формата. Различие их в том, что TS-файлы содержат избыточную информацию, обеспечивающую проигрывание потока даже при частичной утрате данных. Поэтому при том же битрейте и продолжительности они несколько объемнее.<br />
<br />
Одно из самых простых приложений для переноса таких файлов, или практически любого другого типа видео, на DVD – пакет ''Tovid'' с http://tovid.wikia.com. Как и большинство подобных программ,<br />
он потребует времени, если нужно перекодировать каждый файл, но зато работает с минимумом вмешательства.<br />
<br />
''Tovid'' имеет графическую оболочку, где можно построить структуру меню, добавить видео, набор фоновых изображений и музыку, а также многие другие выкрутасы, которые возможны на DVD. Он также поставляется с удобным скриптом, ''todisc'', который делает все из командной строки, требуя только список файлов для кодирования. Если Вам нужен только легкий способ просмотра файлов с Вашего компьютера на семейном телевизоре, без всяких там меню, ''todisc'' – простейший вариант. Это еще один пример<br />
быстроты при работе в консоли, хотя фактически<br />
задача создания DVD по-прежнему может отнять<br />
немало времени, даже на быстрых двухъядерных<br />
системах с большим объемом памяти.<br />
<br />
Хотя ''todisc'' также способен выполнять довольно<br />
сложные сценарии, он поставляется со своим собственным, на случай, если Вы просто хотите запихать пару видео на DVD. ''Todisc'' примет список видеофайлов и конвертирует их в правильный формат,<br />
создаст меню и структуру DVD, а затем сгенерирует<br />
ISO-файл для прожига:<br />
<br />
todisc -pal -files video1.mpg video2.m2t video3.<br />
avi -titles “First video” “Second video” “Third<br />
video” -out mydvd<br />
<br />
Количества файлов и названий должны совпадать, и если имена содержат пробелы, их надо<br />
заключать в кавычки. Запустите эту программу,<br />
подождите некоторое время, и Вы получите образ<br />
DVD, готовый для прожига на диск.<br />
<br />
Есть и альтернативные программы. ''QDVD-Author''<br />
([[LXF110:QDVDAuthor|LXF110]]) – графическая оболочка для ''dvdauthor'',<br />
программы, которая генерирует полную файловую<br />
структуру DVD из компонентов видео и файлов<br />
меню, которая также используется ''Tovid''. Кроме того,<br />
можно рассмотреть ''MythTV''. Будучи более сложным<br />
в настройке, он обеспечивает большую гибкость, и,<br />
кроме того, позволяет задать временные параметры<br />
для программы записи, а также имеет модуль расширения для записи программ прямо на DVD, то есть<br />
берет на себя всю работу. Просто выберите программы по названию и попейте чайку, пока он преобразовывает и записывает видео. '''НБ LXF'''<br />
<br />
====Шестерка лучших: Инструменты для создания DVD====<br />
<br />
[[Изображение:LXF112_91_1.jpg|1]]<br />
'''1 Kaffeine'''<br />
: ''Kaffeine'' записывает цифровое вещание в файлы с расширением '''M2T''', но по сути это стандартные ролики формата MPEG2.<br />
<br />
[[Изображение:LXF112_91_2.jpg|2]]<br />
'''2 Tovid'''<br />
: Графический интерфейс ''Tovid'' позволяет выбрать компоненты и макет вашего DVD, и вы можете создать свой личный шедевр.<br />
<br />
[[Изображение:LXF112_91_3.jpg|3]]<br />
'''3 Todisc'''<br />
: Если вы ищете быстрое, стандартное решение, ''todisc'' сделает все за вас по одному нажатию кнопки.<br />
<br />
[[Изображение:LXF112_91_4.jpg|4]]<br />
'''4 K3b'''<br />
: ''K3b'' может записывать видео DVD из правильно заданной файловой структуры, но не умеет сам создавать файлы.<br />
<br />
[[Изображение:LXF112_91_5.jpg|5]]<br />
'''5 QDVD-Author''<br />
: Еще одна программа для создания образов DVD из видеофайлов: ''QDVD-Author'' умеет генерировать интерфейс в виде меню.<br />
<br />
[[Изображение:LXF112_91_6.jpg|6]]<br />
'''6 MythTV'''<br />
: ''MythTV'' – огромная программа, требующая множества настроек, но в итоге мы получаем отличный результат.<br />
<br />
===* Граница на замке===<br />
<br />
'''В''' ''Давно ищу программу, которая бы по истечении определенного периода неактивности пользователя блокировала все виртуальные терминалы (не в '''X''', а именно в текстовом режиме). '''vlock -a''' неплох, но его надо запускать вручную и на пустой консоли: если выполнить команду из '''Midnigh Commander''', заблокируется только текущая консоль. Есть '''lockvc''', но для блокирования консолей он использует VGA-заставку, которая, в свою очередь,<br />
«тянет» небезопасную '''libsvga'''. Кроме, того хранитель экрана как таковой мне не нужен.''<br />
<br />
''Не могли бы вы посоветовать подобную программу (желательно для Debian) или подсказать хороший источник информации и примеры по программированию виртуальных консолей в Linux?''<br />
'''Gapsf'''<br />
<br />
'''О''' Для контроля над простоями и установки общих параметров использования виртуальных консолей можно попробовать связку из следующих утилит:<br />
* '''''Autolog'''''. Закрывает соединения простаивающих пользователей. Активность соединения определяется ''Autolog'' по ряду параметров. Ссылка на пакет для Debian: http://packages.debian.org/ru/lenny/autolog.<br />
* '''''timeoutd'''''. ''timeoutd'' осуществляет ограничение по времени, определенное в файле '''/etc/timeouts'''. Когда данная программа запускается как демон (без параметров), она остается работать в системе в фоновом режиме и каждую минуту сканирует файл '''/var/run/utmp''', проверяя в '''/etc/timeouts''' записи, соответствующие имени пользователя, по установленным параметрам. Ссылка на описание на opennet.ru: http://www.opennet.ru/cgi-bin/opennet/<br />
man.cgi?topic=timeouts&category=5.<br />
* '''''pyttymon'''''. Это простой демон, написанный на ''Python'', наблюдающий и ограничивающий использование виртуальных консолей tty. В простом конфигурационном файле можно указать ограничения на месяц, на день, на сессию и на бездействие активных tty. При написании автор вдохновлялся ''timeoutd'', но в ''pyttymon'' добавлена поддержка установки максимального срока использования tty в месяц и различные ограничения, основанные на количестве активных tty. Страничка ''pyttymon'' на Freshmeat доступна по адресу: http://freshmeat.net/projects/pyttymon/.<br />
<br />
Кроме этого, имеет смысл обратить внимание на ''idleout''. Эта команда следит за деятельностью на линии и отключает пользователей, чьи терминалы бездействуют дольше установленного времени. По умолчанию эта утилита использует файл<br />
'''/etc/default/idleout''', в котором указывается, сколько часов пользовательский терминал может оставаться в бездействии, прежде чем он будет отключен.<br />
Страница с русскоязычным руководством по ''idleout''<br />
доступна на linuxsoft.ru: http://www.linuxsoft.ru/lib/libarch/lib/manpages/IDLEOUT.8.shtml.<br />
<br />
В принципе, все вышеперечисленные инструменты можно увязать с ''GNU Screen'' (http://www.gnu.org/software/screen/). Попробуйте начать с документа, озаглавленного «Virtual Terminals and screen»<br />
[Виртуальные терминалы и Screen], и доступного по<br />
адресу: http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/virtual-terminals.html.<br />
'''ЮД'''<br />
<br />
===* # Исправляем DNS===<br />
<br />
'''В''' ''Я использую E220 HSDPA USB-модем в Fedora 9, все это работает с новым '''Network Manager 0.7.x'''. Я вижу маленькую иконку беспроводной связи на панели задач и могу получить IP-адрес. Когда я щелкаю правой кнопкой мыши на иконке и перехожу к '''Настройки соединения''', то в настройках значатся адреса 4.2.2.3 и 4.2.2.4 для DNS, даже когда я иду в '''/etc/resolve.conf''' и изменяю их на соответствующие OpenDNS. Я не использую с этим ноутбуком кабельный Ethernet или беспроводное соединение, только USB-модем. Все сайты, которые я просмотрел, советовали изменить DNS в '''Network Manager''' и файле '''/etc/resolve.conf''', но когда я делаю это, они все равно возвращаются к 4.2.2.3 и 4.2.2.4.''<br />
<br />
''Как изменить настройки DNS для соединения PPP (мобильная широкополосная связь) и заставить их сохраниться в модеме?'' '''dj-toonz, с форумов'''<br />
<br />
'''О''' Fedora получает адреса DNS от Вашего провайдера как этап соединения DHCP, когда также задается<br />
ваш IP-адрес, маршрут по умолчанию и некоторые другие настройки. Это можно изменить, запустив инструмент настройки сети через '''Система > Администрирование > Сеть''', выбрав Ваш модем и нажав кнопку «'''Изменить'''». Оставьте параметр ‘'''Automatically obtain IP address settings with:'''’ (Автоматически получать IP-адреса с настройками:) в DHCP и уберите выделение с ‘'''Automatically obtain DNS information from provider'''’ (Автоматически получать информацию от DNS-провайдера). Нажмите '''OK''', а затем перейдите на вкладку<br />
DNS и укажите адреса вручную.<br />
<br />
Не пытайтесь редактировать '''/etc/resolv.conf''': он генерируется каждый<br />
раз, когда вы обращаетесь к сетевому интерфейсу после изменения<br />
настроек.<br />
<br />
Некоторые другие дистрибутивы позволяют задать опции запроса информации от провайдера для ''dhcpcd'' или ''pump'' – двух основных DHCP-клиентов. Параметр, передаваемый ''dhcpcd'' – это '''-R''', он велит не переписывать '''/etc/resolv.conf'''; ''pump'' в данном случае использует '''--no-resolvconf'''. '''НБ'''<br />
<br />
==Часто задаваемые вопросы: DHCP==<br />
<br />
: Протокол динамической конфигурации хостов<br />
<br />
* '''Ох, опять протокол. И что он делает?'''<br />
<br />
Компьютер, подключаемый к традиционной или беспроводной сети, нужно снабдить некоторой информацией, как то: IP-адрес; место, куда следует направлять запросы для неизвестных компьютеров; адреса DNS-серверов. Ручная работа такого рода называется статической<br />
адресацией, но для получения этих сведений от сервера компьютер может использовать DHCP. Это существенно облегчает<br />
работу в крупных сетях, а также упрощает перемещение от одной сети к другой, с ноутбуками такое часто случается.<br />
<br />
* '''DNS? А что это?'''<br />
<br />
Domain Name Service (Служба доменных имен). Этот сервис переводит доменное имя, например, www.linuxformat.ru, в<br />
сетевой адрес, например 88.212.205.226.<br />
<br />
* '''Как она работает?'''<br />
<br />
Подключившись, клиент – ваш компьютер – рассылает по сети запрос ‘discover’<br />
(поиск). Запрос получают все компьютеры, но только DHCP-серверы отвечают на него. Каждый сервер посылает в ответ<br />
‘offer’ (предложение). Клиент выбирает, на какое предложение ответить (если оно не одно), и запрашивает IP-адрес<br />
для компьютера, один или больше DNS-серверов, и адрес шлюза.<br />
<br />
* '''Шлюза?.. Компьютеры сплавлять?'''<br />
<br />
Это не тот шлюз. Стандартный шлюз сети – это адрес, на который направляется трафик для компьютеров чужих сетей,<br />
таких как интернет-серверы. Далее шлюз передает трафик по цепочке, а ответы пересылает Вам.<br />
<br />
* '''А где взять DHCP-сервер?'''<br />
<br />
Как правило, для этого не требуется установка отдельного пакета. Большинство маршрутизаторов, включая широкополосные и беспроводные модемы/маршрутизаторы, имеют встроенный DHCP-сервер, и он выдает адреса для локальной сети. Интернет-провайдеры тоже пользуются DHCP, когда вы включаете свой компьютер и модем. Если для вашей сети нужен собственный сервис DHCP, то он почти<br />
наверняка имеется в вашем дистрибутиве – как сервер, так и клиент. Поищите DHCP в менеджере пакетов. Или возьмите http://www.thekelleys.org-uk/dnsmasq, которым пользуюсь я.<br />
<br />
* '''Я где-то читал о DHCP leases (арендах) – что это такое?'''<br />
<br />
Когда закрывается сетевое подключение, на DHCP-сервер уходит запрос ‘release’ (освободить), с помощью которого сервер узнает о том, что выданный адрес больше не нужен и его можно использовать снова. Если же подключение оборвалось неожиданно (погас свет,<br />
скажем, или ноутбук вышел из зоны действия сети), то сервер не сможет повторно использовать адрес. Время аренды – это тайм-аут для выделенного адреса. DHCP-клиент знает об этом, и до истечения аренды периодически посылает запрос о сохранении подключения.<br />
Если клиент вовремя не выслал этот запрос, то адрес может быть передан другому компьютеру.<br />
<br />
==Краткая справка про… ''Screen''==<br />
<br />
Освоившись с командной строкой Linux, вы будете пользоваться терминалами все чаще, иногда несколькими одновременно.<br />
Вкладочный X-терминал – неплохой способ слежения за несколькими терминальными сессиями, но от него не много толку при удаленном доступе или виртуальной консоли. ''Screen'' – оконный менеджер для терминалов, позволяющий запускать несколько сессий на одном из них, и не только.<br />
<br />
Наберите в терминале ''screen''. С виду это похоже на очистку экрана, но на самом деле вы окажетесь<br />
в другом терминале. Наберите ''ls -l'' для просмотра текущей директории, затем нажмите '''Ctrl+A, C'''; все<br />
исчезнет. Перейдите в другую директорию, снова запустите ''ls'' и нажмите '''Ctrl+A, N''' – и вы опять в прежнем окружении. '''Ctrl+A, C''' создают новый терминал, оставляя прежний в работе, а '''Ctrl+A, N''' переключают<br />
между ними. Теперь нажмите '''Ctrl+A, D''' для выхода из ''Screen'' и возврата в оболочку, затем откройте<br />
другой X-терминал и наберите ''screen -r'' для возврата в прежнюю сессию ''Screen''.<br />
<br />
''Screen'' не ограничивается локальными подключениями – он хорошо работает через ''SSH''. Например,<br />
можно подключиться к домашнему компьютеру с работы, запустить ''Screen'', загрузить новую версию<br />
некоторой программы, начать компиляцию и покинуть ''Screen''. Позже можно снова войти в сессию<br />
''Screen'' с помощью ''screen -r'' (там же, на работе, или вернувшись домой) и узнать, как идут дела. Даже<br />
когда ''SSH''-подключение закрыто, программы, запущенные в ''Screen'', продолжают выполняться.<br />
<br />
Есть масса других возможностей; все они подробно описаны на man-странице. Можно разделить<br />
окно по '''Ctrl+A, S'''; перейти в новую область по '''Ctrl+A, Tab'''; воспользоваться '''Ctrl+A, N''' (или '''C''') для перехода<br />
в новый терминал ''Screen''. Можно делить окно до тех пор, пока будет свободное место, наблюдая выполнение команды во время взаимодействия с интерактивной программой в другой части окна.</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF105:%D0%A1%D0%BE%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC_%D0%BC%D0%B5%D0%B4%D0%B8%D0%B0%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80LXF105:Собираем медиасервер2009-12-31T13:23:07Z<p>Yaleks: </p>
<hr />
<div>==Создаем медиасервер==<br />
<br />
: '''Джек Саммерфилд''' уходит в сарай с обломками старого компьютера, а возвращается с самодельным сервером мультимедиа.<br />
<br />
Уверено, что я не единственный в мире человек, у которого много медиафайлов. Львиная доля моих данных - музыка и видео, и, к сожалению, они занимаюит большинство места на диске. Многие файлы дублируются, и в итоге MP3-файл размером 5Мб, который находится на телефоне, двух компьютерах и MP3-плеере в итоге съедает 20Мб. Для экономии места было бы здорово свалить все медиа-файлы в некий центр хранения и обращаться к нему с любого компьютера в домашней сети, когда мне (или другим) это потребуется.<br />
<br />
Лучшим решением проблемы стал бы NAS-сервер (Network Atteched Storage - сетевое хранилище данных), например, Excito Bubba, рассмотренный в [[LXF104:Review2|LXF104]], или QNAP TS-109 Pro, про который писалось в [[LXF99:QNAP|LXF99]]. Увы, у них уж очень серьезные технические требования, да и деньги, которых онпи стоят, лучше потратить на пивко. Не создать ли нечто вроде NAS, но без ценника? Ну, мы-то можем. Соберем сервер NAS из самых дешевых компонентов, установим на него Ubuntu Server и будем использовать для потокового воспрроизведения всех типов мультимедиа. Заодно мы даже кое-чему научимся. Приступим...<br />
<br />
===Аппаратные требования===<br />
<br />
Будучи медиа-сервером, данный компьютер будет работать 24 часа<br />
в сутки. Это важно помнить, выбирая аппаратное обеспечение: оно<br />
должно быть не только надежным, но и достаточно производительным, и работать бесшумно. Наш компьютер должен поставлять медиа-файлы, и если он для этого недостаточно быстр, то он не просто плох,<br />
а вообще бесполезен (представив себе задержки в потоке видео, вы уясните суть проблемы). С другой стороны, он должен работать тихо,<br />
не нарушая покоя комнаты, где он стоит, а также стабильно и надежно,<br />
чтобы вы не тратили все выходные на замену компонентов или копание в настройках.<br />
<br />
Имея все это в виду, можно составить небольшой список требований. Наше устройство должно:<br />
<br />
# Иметь приемлемое количество дискового пространства.<br />
# Работать тихо и хорошо охлаждаться.<br />
# Быть надежным и легким в обслуживании.<br />
<br />
Первому из этих требований удовлетворить проще всего – нужный объем дисковой памяти достигается простым добавлением жестких<br />
дисков Как часто бывает, вы получаете то, что оплатили, а ради скорости низкого уровня шума и надежности можно и раскошелиться.<br />
Будем использовать жесткие диски Seagate объемом 160 ГБ. Seagate – марка уважаемая, и, выложив за каждый жесткий диск 2000 рублей,<br />
мы ззадешево получим массу дискового пространства.<br />
<br />
Сложнее сделать компьютер бесшумным и в то же время хорошо охлаждаемым: эти свойства взаимно исключаются. Чтобы охладить<br />
компьютер, нужны вентиляторы, обязанные прогнать максимальное количество воздуха; чтобы компьютер работал тихо, нужно уменьшить количество компонентов – источников шума, в том числе вентиляторов. Итак, придется искать компромисс. Если вы готовы<br />
терпеть некоторый шум, берите процессор средней производительности, а если хотите<br />
тишины – возьмите более старый процессор: такие не нужно охлаждать столь активно. На<br />
моем сервере используется пара процессоров Celeron, они неплохо охлаждаются и без вентиляторов.<br />
<br />
Для компьютера, используемого как файловый сервер, скорость процессора не особо важна, поэтому сгодится и старое оборудование; на сэкономленные средства вы сможете приобрести больше жестких дисков. Главным узким местом системы, вероятно, будет сетевое соединение между компьютерами, и если ваше оборудование справляется с сетью, проблем у вас быть не должно. Я бы ориентировался на минимальную частоту процессора в 300 МГц. Новые процессоры от Via<br />
идеальны для наших целей: они потребляют очень мало энергии, и для их охлаждения достаточно радиатора.<br />
<br />
====Персональный диск для ОС====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_47_1.jpg|200px]]Этот крошечный адаптер позволяет использовать карту CompactFlash как жесткий диск. С ума сойти!<br />
|Ширина=200px}}<br />
<br />
Независимо от назначения компьютера, операционную систему лучше устанавливать на отдельный жесткий диск – главным образом потому,<br />
что в случае выхода ОС из строя ее можно переустановить, не подвергая опасности данные. Это особенно важно, если предполагается<br />
использование RAID-массива, где данные разделяются между несколькими дисками.<br />
<br />
В качестве загрузочного диска в нашей системе используется карта CompactFlash; к порту IDE она подключена через адаптер CompactFlash-<br />
IDE, купленный на eBay. Такой диск имеет ряд преимуществ перед обычным винчестером. Будучи чисто электронной схемой, он полностью бесшумен. В нем нет движущихся частей, он потребляет гораздо меньше энергии и выделяет гораздо меньше тепла. Хотя на нем меньше места, чем на обычном диске, это беда небольшая: чтобы уместить ОС, его вполне хватит. Ubuntu Server будет работать нормально на карточке в 1 ГБ; правда, не останется места для новых пакетов. Сам я взял карточку в 2 ГБ, предусмотрев место для файлов журналов и дополнительного ПО.<br />
<br />
Эталонные тесты Ливерпульского университета (University of Liverpool) (http://www.csc.liv.ac.uk/~greg/CFbench.html) показывают, что скорости передачи данных карт CompactFlash гораздо выше, чем у обычных жестких дисков, поэтому они прекрасно подходят для хранения ОС.<br />
<br />
====Память====<br />
<br />
{{Врезка|left|Заголовок=Золотой винчестер|Содержание=Компания Samsung недавно выпустила твердотельный накопитель (SSD – Solid State Disk).<br />
Такие диски имеют несколько важных преимуществ перед обычными жесткими дисками; самое заметное – что у них нет времени разгона и почти нет времени поиска. На них совершенно не влияет фрагментация файлов, так что производительность не будет падать со временем. С несколькими дисками SSD в массиве RAID 5 можно ожидать такой скорости передачи данных, от которой со стен слетят обои, а медведи в страхе убегут. А недостатки?<br />
Ну, цена одного диска Samsung SSD объемом 64 ГБ сейчас 29 500 руб (стоимость трех жестких дисков Seagate по 1 ТБ каждый), поэтому он выходит за рамки нашего бюджета.|Ширина=200px}}<br />
<br />
Создание медиа-сервера – отличный способ приставить к делу старые жесткие диски. Для тех, кто алчен до закачек, места никогда много не<br />
бывает, но помните: чем больше жестких дисков, тем больше шума. При интенсивном использовании диски сильно нагреваются, и лучше<br />
иметь один большой диск вместо нескольких небольших, если ваша цель – тишина. Для остановки жесткого диска в те моменты, когда он<br />
не используется, подойдет ''hdparm''. Но будьте осторожны: задав неверные параметры, запросто можно разрушить данные.<br />
<br />
====Охлаждение====<br />
<br />
Большинство компонентов компьютера выделяют тепло. Это особенно<br />
заметно на сверхмощных компьютерах, которые громко тарахтят и для<br />
охлаждения которых нужен ураганный поток воздуха.<br />
<br />
Нам нужна лишь небольшая струйка воздуха, продувающая корпус. Дешевое старое «железо» не очень греется, и для продува хватит одного вентилятора. Я бы посоветовал оставить вентилятор в блоке питания: это такой компонент, выход которого из строя, если он решит, что отработал свое, может привести к катастрофе. Вентиляторы обычно крепятся в верхней части корпуса, чтобы там не застаивался горячий воздух. Для снижения уровня шума я посадил вентилятор блока питания на контроллер вентилятора. Тогда он почти не слышен, если не приложить ухо к корпусу.<br />
<br />
Если у вас достаточно быстрый процессор (выше Pentium III), то почти наверняка потребуется отдельный вентилятор на радиатор процессора, но он не обязан работать на полной скорости. Прикрепите его к контроллеру вентилятора и поверните вниз, и он создаст достаточный<br />
поток воздуха, чтобы охлаждать детали без лишнего шума.<br />
<br />
====Звукоизоляция====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_47_2.jpg|200px]]Прежде чем курочить экран и сверлить дырки для крепежа, не худо убедиться, что оно работает.<br />
|Ширина=200px}}<br />
<br />
Вообще говоря, двигатель автомобиля грохочет сильнее, чем компьютер, поэтому нечего удивляться, что нам отлично подойдет автомобильная звукоизоляция. Она отлично поглощает звуки и особенно удобна, если необходима полная тишина. Ее можно приклеить на внутренние стороны корпуса с помощью клея-аэрозоля, имеющегося во многих магазинах «Сделай сам». На сайте http://www.overclockers.co.uk можно приобрести набор самоклеящихся материалов “AcoustiPack”, похожих на те, что используются для звукоизоляции студий звукозаписи.<br />
<br />
===Требования к ПО===<br />
<br />
Наш сервер будет обрабатывать мультимедиа, и ПО, которое мы установим, должно уметь это делать. Я использовал взломанный Xbox с<br />
Xbox Media Centre, с помощью которого можно просматривать видео во многих форматах, транслируемых с ресурсов Windows. Следовательно,<br />
нам потребуется открыть доступ к одному каталогу с помощью ''Samba''. Как и для оборудования, прежде чем загружать тонны ненужных программ, удобно составить список требований. Наша система<br />
должна:<br />
<br />
# Быть надежной.<br />
# Легко устанавливаться и обнаруживать устаревшее «железо».<br />
# Уметь каким-то образом обрабатывать мультимедиа.<br />
<br />
На такое способны многие дистрибутивы Linux, но для упрощения установки системы и установки обновлений мы будем использовать<br />
Ubuntu Server.<br />
<br />
Основное различие между Ubuntu Server и версиями для рабочего стола в том, что в серверной версии нет ''X'' и не установлен оконный<br />
менеджер. Если вы не знаток командной строки, то пора попрактиковаться! Ubuntu Server можно загрузить с сайта http://www.ubuntu.com/server.<br />
<br />
====Операционная система====<br />
<br />
Среди дистрибутивов Linux, простых в установке и настройке и не требующих особого внимания, лучше Ubuntu Server не найти. Установка<br />
выполняется с помощью системы меню, все очень предсказуемо. Если ОС должна быть установлена на отдельном диске, то, возможно, потребуется разбить диски вручную, чтобы проверить, что раздел подкачки именно там, где должен быть, и дважды проверить, что корневой<br />
раздел тот, о котором вы думаете. Я бы не советовал создавать раздел<br />
подкачки на карте CompactFlash: последовательные операции чтения на<br />
таких картах производятся достаточно медленно. В последних версиях<br />
Ubuntu Server при инсталляции можно выбрать сервер ''SSH''. Это идеальный вариант, так как позволяет сразу после завершения установки<br />
подключиться к компьютеру по ''SSH''. Затем можно установить пакеты<br />
типа ''Samba'' для разделения файлов между рабочими группами. Также<br />
неплохо установить демон ''FTP''.<br />
<br />
{{Врезка|left|Содержание=[[Изображение:LXF105_49_1.jpg|200px]] Карты CompactFlash емкостью 2 ГБ более чем достаточно для установки Ubuntu. Восхищайтесь!<br />
|Ширина=200px}}<br />
<br />
Если нужен более легкий дистрибутив, стоит взглянуть на Arch Linux. Все его пакеты оптимизированы для процессоров Pentium II и<br />
выше, в нем используется менеджер пакетов ''Pacman'', и для обновления системы надо всего-навсего запустить ''sudo pacman –Syu''.<br />
<br />
Если нужен графический интерфейс, лучше воспользоваться легким оконным менеджером типа ''BlackBox'', а не Gnome или KDE, потребляющими много оперативной памяти – на файловом сервере это неуместно.<br />
<br />
====Основное ПО====<br />
<br />
После установки системы сразу же убедитесь, что у вас самые свежие версии ПО. В Ubuntu для этого выполните команду ''sudo apt-get update'',<br />
а потом ''sudo aptget upgrade''.<br />
<br />
{{Врезка|Заголовок=Настройка ''Samba''|Содержание=Ниже приведен пример файла '''smb.conf''', который разрешает всем<br />
пользователям рабочей группы читать файлы из '''/media/hdh1'''. Перед перезапуском демона ''Samba'' проверьте файл конфигурации с помощью ''testparm'', чтобы убедиться, что с ним все в порядке.<br />
<br />
[global]<br />
workgroup = WORKGROUP<br />
invalid users = root<br />
socket options = TCP_NODELAY<br />
[media]<br />
comment = Media<br />
path = /media/hdh1<br />
public = yes<br />
writable = no<br />
|Ширина=200px}}<br />
<br />
Для установки демона ''FTP'' просто выполните команду ''sudo apt-get install proftpd'' или ''vsftpd''. Чтобы задать приветствие при входе в<br />
систему или чтобы запретить/разрешить анонимных пользователей и доступ к файлам, можно отредактировать соответствующие файлы<br />
конфигурации. Я бы советовал оставить для ресурсов Windows доступ через ''Samba'' только на чтение. При этом пользователи будут применять<br />
''FTP'' для загрузки файлов. Это значит, что просматривать и загружать медиа-файлы может кто угодно, а закачивать и удалять их – только пользователи, имеющие доступ к ''FTP''. Кроме всего прочего, это упрощает создание файла настроек ''Samba'' и ограничивает число пользователей, которые норовят загружать подозрительные файлы и удалять важные.<br />
<br />
Чтобы открыть серверу доступ к файлам в Windows, установите ''Samba''. Для этого выполните команду ''sudo apt-get install samba smbclient''. Будут установлены сервер и клиент; это удобно для обнаружения ошибок. Файл настроек ''Samba'' находится в '''/etc/samba/smb.conf'''.<br />
<br />
====Администрирование====<br />
<br />
Если у сервера не будет собственного монитора, его придется администрировать удаленно. Кто разбирается в командной строке,<br />
может подключиться к серверу по ''ssh''.<br />
<br />
Чтобы подключиться с другого компьютера Linux по ''ssh'', просто наберите ''ssh 192.168.1.1'', заменив этот адрес адресом<br />
сервера. Если вы подключаетесь с компьютера Windows, то ''Putty'' – прекрасный клиент ''SSH''.<br />
<br />
Если оконный менеджер у вас установлен, а вы пока не освоились в командной строке, можно подключиться к удаленному компьютеру через ''VNC'', виртуальный терминал, на котором вы видите все, что происходит на сервере. ''VNC'' является кроссплатформенным, поэтому с его помощью можно подключиться с компьютера Windows на рабочий стол Linux. Для задач управления есть web-приложение ''Webmin''. К нему можно подключиться с любого<br />
компьютера через браузер и выполнять административные задачи, включающие создание общих ресурсов, добавление пользователей и<br />
изменение паролей.<br />
<br />
Удаленное администрирование удобно, когда система включена и работает, но с его помощью нельзя изменить настройки BIOS или<br />
узнать о неудачной перекомпиляции ядра – для всего этого потребуется полноценный монитор. Я хотел обойтись без внешнего монитора,<br />
который все время был бы на виду. Мне хотелось чего-то более миниатюрного, без кабелей, о которые все время спотыкаешься. В конце<br />
концов я купил портативный DVD-проигрыватель и решил воспользоваться его экраном. Диагональ у него всего семь дюймов, и он отлично<br />
вписывается в пространство двух отсеков для привода; он неброский, но достаточно велик, чтобы вы видели, что происходит.<br />
<br />
{{Врезка|left|Содержание=[[Изображение:LXF105_49_2.jpg|200px]] Сигнал подается на экран с выхода RCA старой видеокарты.|Ширина=200px}}<br />
<br />
Сбоку есть порт RCA для видеосигнала и небольшой тумблер для переключения режима работы<br />
порта из входа в выход. Механизм воспроизведения DVD отделен от основной платы, и монитор отлично работает с RCA в режиме входа и без этого механизма. После некоторых усилий монитор отлич но вместился над отсеками для приводов, а плата с проводами – позади них, там, где обычно размещается оптический диск. Это не очень изящно, но сбоку она не умещалась, а проводной шлейф недостаточно длинен, чтобы поместить ее где-то еще.<br />
<br />
====Собранный компьютер====<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_49_3.jpg|100px]]Вот что получилось|Ширина=100px}}<br />
<br />
Сервер NAS, который я собрал, прижился в углу на кухне, рядом со стиральной машиной и беспроводным маршрутизатором. Я все подключил, запустил компьютер и не прикасался к нему три месяца. Он у меня используется для резервного копирования важных документов (по ''FTP''), потокового видео и аудио для моего «чипованного» Xbox (через ''Samba'') и программирования в Linux (через ''SSH''). Я ни разу не<br />
перезагружал его, и он работает абсолютно надежно. Чтобы вспомнить, для написания статьи, где он находится, мне пришлось призадуматься – и это лучшее доказательство тихой, надежной и незаметной работы сервера. Признаться, мы ожидали, что будут сложности с передачей видео, но файлы с DVD передаются вполне успешно, ничуть не спотыкаясь.<br />
<br />
Для расширения возможностей сервера надо только подключиться к нему по ''telnet'' и установить ПО с помощью менеджера пакетов Ubuntu,<br />
а если случилось ужасное и сервер по какой-то причине не загружается, для отслеживания ошибок есть встроенный экран. Короче, если<br />
вам нужен домашний сервер мультимедиа, экономьте деньги и берегите планету – возродите какой-нибудь старый ПК и установите на него<br />
Linux! '''LXF'''<br />
<br />
===Биты, байты и бабки===<br />
<br />
Если вы – тип вроде меня, то подобный хлам наверняка есть у вас дома! Расчет стоимости звукоизоляции основан<br />
на ценах от Overclockers, а если вам не нужна полная тишина, то звукоизоляция необязательна. Жесткие диски – мое<br />
личное предпочтение; я выбрал Seagate объемом 160 ГБ, за их дешевизну, так как знаю, что они надежны и работают тихо. Все остальное куплено на eBay.<br />
<br />
* '''Корпус''': 10 евро (500 руб)<br />
Обычный ATX-корпус без всякого брэнда. Его можно достать практически даром.<br />
<br />
* '''Блок питания''': 15 евро (750 руб)<br />
Тоже безымянный, но я заменил его вентилятор на более тихий.<br />
<br />
* '''Звукоизоляция''': 30 евро (1500 руб)<br />
Возможно, она вам не потребуется, но я хотел сделать мою систему настолько тихой, насколько это возможно физически.<br />
<br />
* '''Тихий вентилятор''': 6 евро (300 руб)<br />
<br />
* '''Контроллер вентилятора''': 4 евро (200 руб)<br />
<br />
* '''Адаптер IDE-CF''': 6 евро (300 руб)<br />
Такие вещи лучше всего покупать на eBay. Вентилятор – это тот вентилятор диаметром 80 мм, который я вставил в блок питания. Для единственного вентилятора есть контроллер с самоклеящейся площадкой для крепления внутри корпуса.<br />
<br />
* '''Карта CompactFlash SanDisk 2 ГБ''': 14 евро (700 руб)<br />
<br />
* '''Жесткие диски Seagate 160 ГБ''': 40 евро (2000 руб)<br />
<br />
* '''Материнская плата, процессоры и память''': 20 евро (1000 руб)<br />
На нашем сервере будет материнская плата ABIT BP6 и два процессора Celeron с тактовой частотой 466 МГц. Оперативная память – гибрид нескольких брэндов, она включает три планки PC133 по 128 МБ каждая, итого 384 МБ.<br />
<br />
* '''Портативный проигрыватель DVD''': 20 евро (1000 руб)<br />
Я приобрел б/у DVD-проигрыватель Ronin. Особенно важно, что на нем есть вход RCA, и он поставляется с сетевым адаптером.<br />
<br />
----<br />
<br />
'''Итого''': 229 евро (11450 руб)</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%B0%D0%B9%D0%BA%D0%BB_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B5%D0%BBКатегория:Майкл Хэммел2009-10-19T19:44:25Z<p>Yaleks: Новая: Категория:Авторы</p>
<hr />
<div>[[Категория:Авторы]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5Категория:Сравнение2009-10-19T19:43:58Z<p>Yaleks: Новая: Сравнение</p>
<hr />
<div>Сравнение</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8BКатегория:Ответы2009-10-19T19:43:36Z<p>Yaleks: Новая: Ответы</p>
<hr />
<div>Ответы</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:TeXКатегория:TeX2009-10-19T19:43:23Z<p>Yaleks: Новая: Категория:Учебники</p>
<hr />
<div>[[Категория:Учебники]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%9A%D0%B8%D1%80%D1%81%D0%B0%D0%BD%D0%BE%D0%B2Категория:Дмитрий Кирсанов2009-10-19T19:42:50Z<p>Yaleks: Новая: Категория:Авторы</p>
<hr />
<div>[[Категория:Авторы]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA%D0%B8Категория:Учебники2009-10-19T19:42:10Z<p>Yaleks: Новая: Учебники</p>
<hr />
<div>Учебники</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF112LXF1122009-10-18T11:50:15Z<p>Yaleks: </p>
<hr />
<div>==Linux Format 112 (12), Декабрь 2008==<br />
<center>[[Изображение:LXF112.jpg|Linux Format 112 (12), Декабрь 2008]]</center><br />
<br />
[[LXF112:Что за штука... ГИС?|Что за штука... ГИС?]]<br />
<br />
=== Учебники ===<br />
* [[LXF112:Совет месяца|'''Совет месяца''' Запасной пользователь]]<br />
<br />
* [[LXF112:Начинающим|'''Начинающим'''. Глянцевый Gnome и открытый космос]]<br />
*: Коричневый Ubuntu наводит скуку? '''Энди Ченнел''' даст советы по облагораживанию рабочего стола, а заодно рассмотрит ''Stellarium'' – восхитительный свободный планетарий.<br />
<br />
* [[LXF112:Игры|'''Игры'''. Программируем гонки]]<br />
*: По просьбам трудящихся, серия по программированию игр с ''PyGame'' продолжается. Подключайтесь к '''Майку Сондерсу''' в кодировании ралли старой школы.<br />
<br />
* [[LXF112:LVM|'''Hardcore Linux''' Логические тома]]<br />
*: Традиционные схемы разбиения ужасно ограничены – '''Роб Добози''' проведет мастер-класс по ''LVM'', гораздо более гибкой и продвинутой системе.<br />
<br />
* [[LXF112:GIMP|'''''GIMP''''' Восстановим фото]]<br />
*: Размытость, шум и оптические искажения: вот три главных причины, по которым сделанные вами снимки не выглядят безупречно. К счастью, '''Александр Толстой''' знает, как это исправить.<br />
<br />
* [[LXF112:KDE4|Погружаясь в ''Solid'']]<br />
*: '''Андрей Боровский''' рассмотрит кросс-платформенную систему взаимодействия с оборудованием, предлагаемую KDE 4, и напишет для нее парочку несложных приложений.<br />
<br />
* [[LXF112:R|'''''R''''' Data-mining]]<br />
*: Термин «data mining» нынче в моде, но что за ним скрывается? '''Алексей Шипунов''' и '''Евгений Балдин''' рассматривают эту технологию через призму ''R''.<br />
<br />
* [[LXF112:Grid|'''''gLite''''' Гриды, часть 2]]<br />
*: Большие задачи подразумевают большие объемы данных. '''Андрей Е. Шевель''' покажет, как они перемещаются в масштабах грида, и рассмотрит информационные сервисы.<br />
<br />
* [[LXF112:Getopt|'''Getopt''' Анализ командной строки]]<br />
*: Обработка аргументов вашей программы по всем правилам – задача не из простых, но '''Артем Коротченко''' знает легкий путь к успеху: '''getopt()'''.<br />
<br />
* [[LXF112:Геотеги|'''Геотеги''' Пришпилим снимки]]<br />
*: Картинка стоит тысячи слов, а с учебником '''Марко Фиоретти''' – двух тысяч. Научитесь добавлять информацию о местоположении к вашим снимкам, используя ''Minimap'' и ''Image-ExifTool''.<br />
<br />
* [[LXF112:Мультимедиа|'''Мультимедиа''' Калейдоскоп обоев]]<br />
*: В этом месяце '''Марко Фиоретти''' обрабатывает RAW-изображения, устанавливает случайные обои на рабочем столе и развлекается в Facebook.<br />
<br />
===[[LXF112:Ответы|Ответы]]===<br />
: Решение проблем Linux: экранные читалки, беспроводные сети, USB-брелки и запись ТВ прямо на DVD.<br />
<br />
<br />
=== Школа LXF ===<br />
* [[LXF112:Atutor|ATutor 1.6.2]]<br />
* [[LXF112:Ponosov|Как я провел лето]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF112:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0..._%D0%93%D0%98%D0%A1%3FLXF112:Что за штука... ГИС?2009-10-18T11:49:37Z<p>Yaleks: Новая: == Что за штука… ГИС? == : '''''Марко Фиоретти''' разъясняет, в чем сила географических баз данных и зачем он...</p>
<hr />
<div>== Что за штука… ГИС? ==<br />
: '''''Марко Фиоретти''' разъясняет, в чем сила географических баз данных и зачем они нужны.''<br />
<br />
; Ну вот, еще один акроним! Что эти-то три буквы означают?<br />
GIS, Geographical Information System – это географическая информационная система (ГИС), то есть<br />
любая программа для создания, систематизации, отображения и интерактивного анализа географических<br />
данных.<br />
; Значит, это способ создания себе карт и просмотра их на компьютере?<br />
Чуть больше. ГИС интересна благодаря предоставляемой возможности привязать всевозможные данные<br />
(например, изображения, онлайн-дневники путешественников и данные переписи населения) к конкретной местности. Многие цифровые объекты могут<br />
иметь географический компонент, и их ценность от<br />
подобной привязки возрастает. Процесс прикрепления<br />
цифровых объектов к географическому положению<br />
называется геопривязкой или геокодированием (подробнее мы его рассмотрим в [[LXF112:Геотеги|материале на LXFDVD]]).<br />
; Разве обычные реляционные базы данных с этим не справляются?<br />
На самом деле, нет. Стандартным SQL-строкам, колонкам и запросам сложно обрабатывать нерегулярности,<br />
столь распространенные в природе – вообразите, к<br />
примеру, береговую линию озера.<br />
; Согласен, штука полезная… скажем, картографам. Ну, а мне-то оно зачем?<br />
Помимо занимательности, ГИС – мощный инструмент защиты ваших интересов, средство быть активным гражданином и личностью. ГИС поможет создать<br />
карты буквально всего, от свалок до групп Linux-пользователей, от мест проведения рок-концертов<br />
до распределения выбросов угарного газа и уровня<br />
преступности в вашем городе или стране. Вы можете определить, на какие места ваш мэр выдал разрешения на застройку в полосе отчуждения аэропорта,<br />
или проанализировать плотность налоговых выплат и<br />
затрат на покупки в заданном регионе.<br />
; Вот это уже интереснее. Научите меня ГИС!<br />
Ну, слушайте. Во-первых, освежим в памяти<br />
некоторые понятия, единые и для бумажных, и для<br />
цифровых карт. Это необходимо: хотя любая ГИС-программа сама умеет делать «черную работу», надо,<br />
по крайней мере, знать, какими данными ее кормить. Известно несколько<br />
разных систем записи координат, но<br />
самая распространенная основана на<br />
широте и долготе (то есть угловом расстоянии от Гринвичского меридиана и<br />
экватора) и высоте над уровнем моря.<br />
Без координат нет ГИС, но вы можете ассоциировать их почти с чем угодно – не только с физическим<br />
расположением.<br />
; А другие теории надо знать?<br />
Есть еще разные методы проекции. Ведь бумажные карты и экраны мониторов плоские, а Земля круглая. Математически невозможно спроецировать сферическую поверхность на плоскость без некоторого<br />
искажения. Вы, вероятно, замечали, что Гренландия на<br />
разных картах выглядит по-разному?<br />
; Черт возьми, верно! Но при чем здесь проекции?<br />
Мы изготавливаем карты, чтобы иметь представление<br />
о конфигурации какой-либо местности, или вычислять<br />
угол, на который наш курс (по компасу) отклоняется от северного направления. Проекция – математический метод отображения земной поверхности на<br />
карте таким образом, что по крайней мере один из<br />
этих параметров не искажается. Наглядные примеры<br />
различных картографических проекций приведены на<br />
http://exchange.manifold.net/manifold/manuals/manifold/projections/projections_tutorial.htm.<br />
; И какая из проекций лучше?<br />
Та, что не искажает параметр, который вы хотите получить от карты. Допустим, сохранения относительных размеров различных областей достаточно,<br />
чтобы понять, какая страна, озеро или остров больше<br />
других, а при сохранении точных контуров объектов<br />
легко отличить искусственные сооружения от естественных образований. Если же вы рассчитываете<br />
направление пути домой, понадобится карта, не искажающая угловые размеры.<br />
; Но зачем пользователю ГИС брать в голову проекции?<br />
Если дать ГИС-программе правильную команду, она<br />
совместит данные карт, сделанных в различных проекциях. Это только один способ извлечь пользу из скрытых связей между различными ГИС-данными.<br />
; А что такое эти ГИС-данные?<br />
Например, цифровые версии изображений на<br />
обычных картах, общие данные с геопривязкой или<br />
‘shapefiles’ (файлы контуров). Первая категория включает такие вещи, как реки, здания, границы парков с<br />
сопутствующими данными. Другие виды данных… да<br />
что угодно, от сканированных исторических карт и до<br />
распределения среднедушевого дохода по почтовым<br />
индексам.<br />
; Вы сказали «файлы контуров»?<br />
Это фактически стандартный формат, включающий несколько типов файлов. Описывает контуры<br />
географических объектов, типа дорог или рек, и их<br />
свойства (название, наличие лесного покрова и пр.).<br />
; Ой, лучше не грузите. И как разбираться в карте с подобным нагромождением данных?<br />
Так ведь все сведения можно группировать по слоям,<br />
а просматривая карту, менять цвета, прозрачность и<br />
прочие свойства слоев, и видеть только то, что вас<br />
интересует.<br />
; Есть ли свободное ПО для работы со ГИС?<br />
Конечно, есть! Главный проект FOSS в этой<br />
области – Geographical Resources Analysis Support<br />
System (http://www.grass.itc.it). Grass – это набор из нескольких программ командной строки и простых GUI, позволяющий создавать географические карты и модели<br />
деятельности человека и природы и находить пространственные связи между данными.<br />
; Вы говорили, что обычные реляционные базы данных не годятся для ГИС. А есть ли решение среди открытого ПО?<br />
Есть. PostGIS (http://postgis.refractions.net) – это вариант PostgreSQL с использованием различных ГИС-примитивов для применения в программах типа Grass.<br />
; А нет ли чего кроме Grass, чтобы начать изучение ГИС на Linux? Желаю свободы выбора – не зря же я Linux-пользователь!<br />
Есть, конечно. Самый популярный такой проект –<br />
Quantum GIS, сокращенно QGIS (http://www.qgis.org); он умеет отображать, редактировать и печатать карты, работать как графическая оболочка для Grass или баз<br />
данных PostGIS, а также измерять расстояния и протяженность маршрутов. Модули расширения для<br />
проекта представлены на http://wiki.qgis.org/qgiswiki/PluginRepositories.<br />
; Могу ли я добавить ГИС на свой сайт?<br />
Да. MapServer (http://mapserver.gis.umn.edu)<br />
предлагает интерактивные карты, и их можно масштабировать, панорамировать и разделять на слои, отображающие разные сведения.<br />
; Спасибо! Теперь я сам себе сделаю то, что раньше брал из Google Maps!<br />
По части функций вы правы, но кое-что важное упустили из виду. ГИС ничего не стоит без массива данных: придется загрузить существующую базу либо<br />
создать ее самому, с нуля.<br />
; Делов-то! Многие государственные учреждения уже используют ГИС. Я просто выпрошу у них копию базы данных. Ведь это общественное достояние?<br />
Теоретически – да. Практически же вас ожидает неприятный сюрприз. Например, Ordnance Survey<br />
(http://www.ordnancesurvey.co.uk) выдает свои данные только за плату, по своим ценам и согласно своей лицензионной политике. Другие организации вообще отказываются делиться информацией.<br />
; Несправедливо. Ну почему так?<br />
Иногда это просто бюрократия ради бюрократии; но чаще все упирается в деньги. Создание обширной, подробной базы данных ГИС стоит дорого. Для<br />
организации, блокирование таких данных или дорогостоящее лицензирование часто единственный способ<br />
наскрести бюджет на очередной финансовый год.<br />
; Секунду. А разве мы не можем делать карты сами, координируя усилия через Интернет?<br />
Разумеется, можем – загляните на OpenStreetMap<br />
(http://www.openstreetmap.org), проект карты мира в стиле<br />
[[:wikipedia:|Wikipedia]]. Хотя он не решает коренных проблем, это<br />
свободный, коллективно редактируемый ресурс, и не<br />
обязательно даже иметь GPS-устройство, чтобы принять участие. Чего же вы ждете? Регистрируйтесь скорее, и – карты вам в руки!</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:ScribusLXF96:Scribus2009-10-18T08:16:55Z<p>Yaleks: </p>
<hr />
<div>== Профессиональная верстка в scribus ==<br />
<br />
''По-вашему, Linux’у не по зубам издательское дело? Может, вы и правы, но '''Ник Вейч''' решил переубедить вас, создав эту статью при помощи только открытого программного обеспечения.''<br />
<br />
Издательская индустрия кардинальным образом изменилась с приходом в нее компьютеров, и в частности, с появлением Apple Macintosh. Первые Макинтоши имели прекрасную поддержку шрифтов, и не удивительно, что программное обеспечение для настольных издательских систем появилось сперва на них. Так, уже на заре использования компьютеров, профессионалы издательского дела оказались привязаны к оборудованию Apple. Вероятность того, что Linux придет в эту область и изменит все в одночасье, очень мала.<br />
<br />
Но мы поговорим не о том, может ли Linux заменить собой Мас в сердце рынка DTP, а о его технических возможностях для выполнения таких работ. Можете ли вы использовать Linux для создания журналов должного качества, печатая их с использованием технологии «сразу на печатную форму (direct-to-plate)» на современных принтерах? Единственный способ выяснить это — проверка на практике. В рамках статьи, мы немного умерим свои амбиции: вместо целого журнала попробуем сделать эти четыре страницы, используя только программное обеспечение с открытым исходным кодом. Они будут выведены в виде PDF-файлов и запущены в производственный цикл издательства Future Publishing так же, как если бы были сделаны обычным порядком (в Adobe InDesign на Mac). Чтобы проверка была честной, мы не сказали об этом никому вне команды LXF (если сейчас вы видите пустые страницы, значит, у нас ничего не получилось). Другое небольшое извинение состоит в том, что вместо профессиональной художественной обезьяны, верстающей страницы, я все сделаю сам, так что если они будут отходить от обычных стандартов, вы уж меня простите. Теперь — вперед!<br />
<br />
[[Изображение:LXF96-Scribus.png|center|frame]]<br />
<br />
=== Точка отсчета ===<br />
Первым делом, еще до начала работы, нужно выяснить, как прийти к конечному результату, Обычно, в настольных издательских системах, программа верстки — это место, где различные объекты соединяются вместе, стилизуются, а затем облекаются в уместный дизайн. Используемые элементы зависят от конечной цели работы, но стоит отметить, что в большинстве документов встречается как минимум три типа содержимого.<br />
<br />
'''Текст:''' Если вы не делаете чисто визуальное объявление с парой слов на нем, то этою материала у вас будет очень много. Эта та часть, которую люди читают.<br />
<br />
'''Фотографии:''' Многие публикации содержат фотографии. Также вы можете использовать сгенерированные на компьютере реалистичные изображения, экранные снимки или что-то другое. Короче, имеется в виду растровая графика.<br />
<br />
'''Иллюстрации:''' Даже если это небольшой элемент страницы, вроде логотипа или заголовка, или просто метки для совмещения страниц, вы, вероятнее всего, захотите использовать в своей публикации векторную графику.<br />
<br />
Для создания каждого из этих объектов понадобится специальное приложение. Да, можно набрать текст прямо в Scribus, но это нежелательно, Встроенный редактор очень хорош для оформления текста различными стилями, но не так хорош для его написания, особенно если вы не можете жить без таких возможностей, как, например, счетчик слов. При известной самоотверженности и умении, вы даже можете установить стили OpenOfiice.org, которые будут соответствовать стилям конечного документа — это может устранить подверженный ошибкам этап назначения стилей в тексте, но тогда придется доверить этот этап также и автору текста! В противном случае, очень легко назначить стили текста, используя встроенный текстовый редактор Scribus. Советы по стилям OpenOffice приведены во врезке «Забавы со шрифтами!»<br />
<br />
При желании можно, конечно, использовать старый текстовый редактор. Нет желания? Тогда двигаемся дальше.<br />
<br />
{{Врезка|center|<br />
|Заголовок=Забавы со шрифтами<br />
|Содержание=Вы можете столкнуться с той же проблемой, что и мы — потребностью использовать шрифты с вашего Макинтоша на машине с Linux. С PC будет не так уж много проблем, или, если быть честными, не будет проблем со шрифтами TrueType, которые можно просто скопировать (вы должны убедиться в там, что лицензионные ограничения позволяют копировать шрифт на другие системы — многие лицензии на шрифты этого не разрешают).<br />
<br />
Шрифты Postscnpt Type1 все еще широко используются на платформах Мас, и это может вызвать большие проблемы. Они часто упакованы в «Мас’овский Портфель шрифтов» (Font SuitCase), но даже если этого нет, они подвержены любимой забаве Мас’а с разделением данных и ресурсов шрифт Typel состоит из нескольких файлов и, скопировав шрифт, вы обнаруживаете его пустым, поскольку все данные о шрифте содержались в другой, скрытой части).<br />
<br />
Решение этой проблемы (мы обнаружили его, провозившись немало часов) — это загрузить программу для Мас с открытым исходным кодом fondu (http://fondu.sourceforge.net/). Используйте ее для извлечения PFB-файлов, которые понимает Unix. Затем поместите их в ZIP-архив и скопируйте.<br />
<br />
Под Unix легче всего загрузить PFB-файлы в Fontforge и сохранить затем в формате TrueType перед установкой шрифтов в вашей системе.<br />
<br />
''[ВНИМАНИЕ! Читайте [[LXF96:scribus_по-русски|комментарий]] русской редакции, касающийся работы с кириллицей]''<br />
|Ширина=}}<br />
<br />
=== Вопрос изображений ===<br />
{{Врезка<br />
|Заголовок=Цветовые профили ICC<br />
|Содержание=При конвертации изображении из одного формата в другой и получения результата, близкого к вами задуманному, хорошей идеей является использование цветовых профилей ICC. Помимо стандартных профилей от Adobe (см. «Вопрос изображении») существует множество других — например, для вашей цифровой камеры. Дополнительную информацию и программное обеспечение, связанное с ICC можно получить, пройдя по ссылке http://www.eci.org/eci/en/060_downloads.php. Кроме того, убедитесь, что вы включили управление цветам в меню настроек Scribus, если хотите использовать данный профиль для окончательного вывода.<br />
|Ширина=200px}}<br />
Казалось бы, по части обработки изображений GIMP-именно тот чудесный инструмент, что удовлетворит любые ваши нужды. А так ли это? Во многих случаях GIMP прекрасен. Можно изменить цвет, добавить лихие эффекты и вообще превратить любую картинку, экранный снимок или фото в то, что вам хочется. Однако в офсетной печати, применяемой при больших тиражах, на страницу наносят четыре краски: голубую (Cyan), желтую (Yellow), пурпурную (Magenta) и черную, она же основная (Key), Поэтому для полноцветной печати (CMYK) необходимо иметь все изображения в формате CMYK. Все бы ничего, но для растровых файлов это создает проблему, так как GIМР не поддерживает цветовое пространство CMYK (поддержка CMYK появится при переходе на движок GEGL, где-то через год).<br />
<br />
Есть два способа обойти эту проблему (на самом деле, способов масса, но лишь два из них заслуживают рассмотрения), Первый — воспользоваться модулем расширения Separate для GIMР. Он преобразует файл в формат СМYК, Раньше Scribus малость спотыкался на файлах, сгенерированных подобным образом, но начиная с версии 1.3.3.6 этот путь стал безопасен. Модуль Separate находится по адресу: http://www.blackfiveservices.co.uk/separate.shtml. Для использования вы должны иметь установленные ICC-профили. Некоторые из них распространяются в архиве Separate, а файл readme содержит полную инструкцию по установке. Но чтобы сэкономить на головной боли, установите еще и IСС-профили от Adobe: они дадут вам лучший результат при выводе и преобразовании (http://www.adobe.com/support/downloads/). Для получения дополнительной информации, см. врезку «Цветовые профили ICC» на предыдущей странице, Второй путь — спокойно работать в GIMP, затем с помощью другого пакета отделить изображение и сохранить его в CMYK. К счастью, в Linux есть для этого инструмент Cinepaint — давнее ответвление от GIMP, довольно элементарное, но включающее поддержку CMYK. Гораздо лучше, однако, Krita (часть пакета КOfficе), которая также поддерживает преобразование из RGB в CMYK при различной разрядности цвета и использует встроенные профили. Хотя Krita не имеет таких возможностей для манипуляции с графикой, как GIMP, она обладает прекрасными способностями для решения большинства задач обработки изображений. Но вам все равно понадобятся профили изображения.<br />
<br />
Что касается формата файлов — как правило, люди используют TIFF, хоть он и несколько чужд Unix-миру. Но ничто не мешает вам использовать формат JPEG (который также поддерживает CMYK). Для нашего производственного процесса мы будет выводить PDF-файлы с типографским разрешением, так что данный выбор некритичен — главное, чтобы полученный файл можно было встроить в PDF. Если вы сами и печатаете, то, очевидно, сгодится любой формат файла, и незачем беспокоиться насчет создания файлов CMYK (хотя это желательно, потому что дает на экране четкое представление о том, как будет выглядеть результат).<br />
<gallery><br />
Изображение:LXF96 37 1.png|Правильное размещение сетки в проекте критично для любого дизайна и компоновки.<br />
Изображение:LXF96 38 1.jpg|Inkscape бесценен для работы над иллюстрациями и небольшими «украшательствами».<br />
Изображение:LXF96 38 2.jpg|Пройдя долгий путь, Krita стала полезнейшим инструментом преобразования CMYK для печати.<br />
</gallery><br />
<br />
=== Сверка по вектору ===<br />
С векторной графикой легче. Большинство векторных инструментов в Linux позволяют выбрать формат SVG (Scalable Vector Graphics). Это положительный момент, потому что Scribus хорошо его поддерживает. К отрицательным можно отнести необходимость остерегаться вашего возможного формата вывода. Scribus поддерживает SVG и множество его «хитростей», а вот PDF-формат их не поддерживает. Существуют некоторых вещи, в основном связанные с прозрачностью и другими эффектами, которые не будут работать в PDF-файлах, предназначенных для коммерческой печати, как в нашем случае.<br />
<br />
Коротко говоря, если вам нужен экспорт в формате PDF 1.3, то нельзя применять прозрачность в векторной графике. Это относится не только к объектам с установленным основным прозрачным цветом, но также и к имеющим полупрозрачную заливку или градиент с прозрачностью. Это не проблема Scribus или Inkscape, а ограничения PDF-формата. Файлы в формате PDF версий 1.4 и выше поддерживают прозрачность, но могут быть совместимы не со всеми просмотрщиками и другими приложениями.<br />
<br />
Некоторые эффекты Inkscape вообще нельзя использовать в Scribus, например, популярный эффект размытия (blur).<br />
Обычно Scribus предупреждает о возможной несовместимости при первоначальном импорте графики или во время префлайта — «проверки перед взлетом», как раз и предназначенной для выявления узких мест и потенциальных проблем. Если вам непременно нужно импортировать в Scribus изображения с такими эффектами, остается сохранить их как растровые изображения, правда, ценой возможной потери качества и удобства использования. SVG-графика обрабатывается в Scribus с помощью модуля расширения, но не аналогично растровому изображению. Вместо этою она переводится в объект Scribus (тоже векторный), и впоследствии вы сможете ее легко редактировать.<br />
<br />
=== Верстаем ===<br />
Все материалы подготовлены, и мы наконец готовы импортировать все в Scribus и создать страницу нечеловеческой красоты — или не готовы? Я — нет, и вы, вероятно, тоже. Перед тем как приступать к дизайну страницы, полезно обзавестись шаблоном, или, как говорят полиграфисты, «модульной сеткой». В случае с Linux Format нам очень повезло, так как он (она) у нас уже есть. Прекраснейшие в мире дизайнеры долгими месяцами трудились не покладая рук, чтобы придумать проект, объединяющий должную практичность журнала с изяществом и элегантностью. Затем в последний момент мы все это поломали, чтобы впихнуть побольше слов на страницу… Но так или иначе, в итоге мы имеем сетку для Linux Format и можем просто скопировать ее в документ Scribus, чтобы получить желаемый результат. Если вы разрабатываете собственную сетку, полезно проследить за этим процессом и разобраться, какие виды элементов мы использовали.<br />
# Размеры страницы. Основная часть дизайна — это физический размер страницы («обрезной формат» в полиграфических терминах). По ряду причин Linux Format использует не совсем равный А4 размер листа 222х300 мм плюс три миллиметра на выпуск (своего рода буфер вокруг пропечатываемой области).<br />
# Поля. Физические границы обычной печатной площади страницы. Они ведут себя как направляющие и легко устанавливаются в свойствах документа.<br />
# Направляющие. Linux Format использует довольно гибкую систему сетки, которая позволяет иметь две колонки для статей, четыре колонки для писем, три для обзоров и так далее. Некоторые журналы используют отдельную сетку для каждого раздела. В нашем везде используется сетка из семи колонок, которые применимы для всех вариантов (например, в двухколоночном тексте мы используем по три колонки сетки на колонку текста, и одну запасную для врезок или одписей).<br />
# Элементы. Используя пункт Правка > Мастер-страницы (Edit > Master Pages) из меню, мы можем добавить неизменяемые объекты, такие как верхние и нижние колонтитулы. Все, что помещено на мастере, появляется на каждой странице, но остается заблокировано.<br />
# Цвета. По умолчанию, Scribus предлагает палитру с поистине безграничными возможностями. Для большинства работ вы, вероятно, ограничитесь четырьмя или пятью цветами: в случае необходимости вы всегда сможете добавить еще, а при списке из 200 цветов трудно упомнить те, которые уже использовались.<br />
# Стили. Вы можете импортировать стили документа из текстового редактора, но, вероятно, вам по-прежнему будут нужны стили, которые есть только в Scribus (например, номеров страниц, колонтитулов и т. д.). В конечном итоге оказывается проще списать все стили в Scribus (вы сперва можете импортировать их из документа, если хотите).<br />
<br />
=== Создание этой статьи! ===<br />
Создание статьи о создании этой статьи в Scribus оказалось весьма непростым занятием. Не потому, что случались сбои в работе инструментов, а потому, что довольно сложно понять, с чего начать, не превратив статью в ссылающуюся-самое-на-себя ерунду типа змея Ороборос [Змей, кусающий свой хвост, символ бесконечности).<br />
<br />
Поскребя в затылке, я прикинул, что самое лучшее решение — написать как можно больше текста, а уж потом как следует взяться за верстку. Поэтому я начал с установки сетки — приняв сетку типичной статьи LXF за основу. В этом месте я прошу прощения у нашею художественного редактора Эффи и всех читателей в том, что часть из кусочков и кусков не совсем верны. Некоторые вещи было почти невозможно в точности воспроизвести в Scribus — например, скругленные углы плашек для заголовков врезок: они были первоначально сделаны вручную в InDesign, и мне пришлось делать их вручную в Scribus (двойной щелчок по любому элементу для редактирования узлов, и вы тоже можете играть с контрольными точками кривой Безье). Scribus тут не виноват, и я думаю, что если бы мы переделали дизайн журнала под Scribus, это проблема отпала бы сама собой.<br />
<br />
Основная проблема, которая возникала в процессе работы, заключалась в том, что функция Undo (Отменить) в Scribus немного ненадежна — иногда работает, а иногда нет. Имелись также отдельные проблемы с графикой, особенно после того, как мы использовали функцию «collect for output» (собрать для вывода) и не вся графика скопировалась в папку назначения (это дефект Scribus или просто сбой в моей системе?).<br />
<br />
''[Внимание! Следующая пара абзацев и наш, собственный Опыт вынудили нас написать собственный — и вовсе не в двух словах — комментарий к статье, Мы в российской редакции столкнулись не только и не столько с этими проблемами, к тому же не могли упустить такую возможность предупредить наших читателей о некоторых важных особенностях текущих релизов Scribus. читайте чуть более скептический [[LXF96:scribus_по-русски|комментарий]],- прим. росс. ред.] ''<br />
<br />
Главным сюрпризом оказалась возможность сделать все. Кроме потери двух дней при попытке заставить работать шрифты (опять же не по вине Scribus)! В статье мы не выделили курсивом названия. ''[это касается английской версии — прим. росс. ред.]'', потому что шрифт Bentonsans (какой идиот его выбрал?!), не имеет курсивного начертания. В InDesign это кое-как решалось искажением текста, что в Scribus невозможно (только в нестабильной версии 1.4!).<br />
<br />
Однако к концу процесса я обрел практически полную уверенность в том, что Scribus обеспечит прочную и надежную работу. Согласно нашему технологическому процессу здесь в Future Publishing, сгенерированные Scribus PDF-файлы были еще и скормлены нашей собственной препресс-системе (которая генерирует PDF-файл, содержащий сгенерированные PDF), а это добавочная сложность, о которой большинству людей беспокоится не надо. Вы сами можете судить об успехе этого эксперимента. Я гарантирую вам, что эти четыре страницы были получены на 100 % свободном ПО, работающем под Linux, а не так уж мною журналов могут этим похвастаться! Это было даже не трудно, хотя прежде чем вы начнете массово писать, я все-таки не верстаю журнал каждый месяц!</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF96_38_2.jpgФайл:LXF96 38 2.jpg2009-10-18T08:15:16Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF96_38_1.jpgФайл:LXF96 38 1.jpg2009-10-18T08:14:40Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF96_37_1.pngФайл:LXF96 37 1.png2009-10-18T08:13:20Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:ScribusLXF96:Scribus2009-10-17T19:39:28Z<p>Yaleks: </p>
<hr />
<div>== Профессиональная верстка в scribus ==<br />
<br />
''По-вашему, Linux’у не по зубам издательское дело? Может, вы и правы, но '''Ник Вейч''' решил переубедить вас, создав эту статью при помощи только открытого программного обеспечения.''<br />
<br />
Издательская индустрия кардинальным образом изменилась с приходом в нее компьютеров, и в частности, с появлением Apple Macintosh. Первые Макинтоши имели прекрасную поддержку шрифтов, и не удивительно, что программное обеспечение для настольных издательских систем появилось сперва на них. Так, уже на заре использования компьютеров, профессионалы издательского дела оказались привязаны к оборудованию Apple. Вероятность того, что Linux придет в эту область и изменит все в одночасье, очень мала.<br />
<br />
Но мы поговорим не о том, может ли Linux заменить собой Мас в сердце рынка DTP, а о его технических возможностях для выполнения таких работ. Можете ли вы использовать Linux для создания журналов должного качества, печатая их с использованием технологии «сразу на печатную форму (direct-to-plate)» на современных принтерах? Единственный способ выяснить это — проверка на практике. В рамках статьи, мы немного умерим свои амбиции: вместо целого журнала попробуем сделать эти четыре страницы, используя только программное обеспечение с открытым исходным кодом. Они будут выведены в виде PDF-файлов и запущены в производственный цикл издательства Future Publishing так же, как если бы были сделаны обычным порядком (в Adobe InDesign на Mac). Чтобы проверка была честной, мы не сказали об этом никому вне команды LXF (если сейчас вы видите пустые страницы, значит, у нас ничего не получилось). Другое небольшое извинение состоит в том, что вместо профессиональной художественной обезьяны, верстающей страницы, я все сделаю сам, так что если они будут отходить от обычных стандартов, вы уж меня простите. Теперь — вперед!<br />
<br />
[[Изображение:LXF96-Scribus.png]]<br />
<br />
=== Точка отсчета ===<br />
Первым делом, еще до начала работы, нужно выяснить, как прийти к конечному результату, Обычно, в настольных издательских системах, программа верстки — это место, где различные объекты соединяются вместе, стилизуются, а затем облекаются в уместный дизайн. Используемые элементы зависят от конечной цели работы, но стоит отметить, что в большинстве документов встречается как минимум три типа содержимого.<br />
<br />
'''Текст:''' Если вы не делаете чисто визуальное объявление с парой слов на нем, то этою материала у вас будет очень много. Эта та часть, которую люди читают.<br />
<br />
'''Фотографии:''' Многие публикации содержат фотографии. Также вы можете использовать сгенерированные на компьютере реалистичные изображения, экранные снимки или что-то другое. Короче, имеется в виду растровая графика.<br />
<br />
'''Иллюстрации:''' Даже если это небольшой элемент страницы, вроде логотипа или заголовка, или просто метки для совмещения страниц, вы, вероятнее всего, захотите использовать в своей публикации векторную графику.<br />
<br />
Для создания каждого из этих объектов понадобится специальное приложение. Да, можно набрать текст прямо в Scribus, но это нежелательно, Встроенный редактор очень хорош для оформления текста различными стилями, но не так хорош для его написания, особенно если вы не можете жить без таких возможностей, как, например, счетчик слов. При известной самоотверженности и умении, вы даже можете установить стили OpenOfiice.org, которые будут соответствовать стилям конечного документа — это может устранить подверженный ошибкам этап назначения стилей в тексте, но тогда придется доверить этот этап также и автору текста! В противном случае, очень легко назначить стили текста, используя встроенный текстовый редактор Scribus. Советы по стилям OpenOffice приведены во врезке «Забавы со шрифтами!»<br />
<br />
При желании можно, конечно, использовать старый текстовый редактор. Нет желания? Тогда двигаемся дальше.<br />
<br />
{{Врезка|center|<br />
|Заголовок=Забавы со шрифтами<br />
|Содержание=Вы можете столкнуться с той же проблемой, что и мы — потребностью использовать шрифты с вашего Макинтоша на машине с Linux. С PC будет не так уж много проблем, или, если быть честными, не будет проблем со шрифтами TrueType, которые можно просто скопировать (вы должны убедиться в там, что лицензионные ограничения позволяют копировать шрифт на другие системы — многие лицензии на шрифты этого не разрешают).<br />
<br />
Шрифты Postscnpt Type1 все еще широко используются на платформах Мас, и это может вызвать большие проблемы. Они часто упакованы в «Мас’овский Портфель шрифтов» (Font SuitCase), но даже если этого нет, они подвержены любимой забаве Мас’а с разделением данных и ресурсов шрифт Typel состоит из нескольких файлов и, скопировав шрифт, вы обнаруживаете его пустым, поскольку все данные о шрифте содержались в другой, скрытой части).<br />
<br />
Решение этой проблемы (мы обнаружили его, провозившись немало часов) — это загрузить программу для Мас с открытым исходным кодом fondu (http://fondu.sourceforge.net/). Используйте ее для извлечения PFB-файлов, которые понимает Unix. Затем поместите их в ZIP-архив и скопируйте.<br />
<br />
Под Unix легче всего загрузить PFB-файлы в Fontforge и сохранить затем в формате TrueType перед установкой шрифтов в вашей системе.<br />
|Ширина=}}<br />
<br />
=== Вопрос изображений ===<br />
{{Врезка<br />
|Заголовок=Цветовые профили ICC<br />
|Содержание=При конвертации изображении из одного формата в другой и получения результата, близкого к вами задуманному, хорошей идеей является использование цветовых профилей ICC. Помимо стандартных профилей от Adobe (см. «Вопрос изображении») существует множество других — например, для вашей цифровой камеры. Дополнительную информацию и программное обеспечение, связанное с ICC можно получить, пройдя по ссылке http://www.eci.org/eci/en/060_downloads.php. Кроме того, убедитесь, что вы включили управление цветам в меню настроек Scribus, если хотите использовать данный профиль для окончательного вывода.<br />
|Ширина=200px}}<br />
Казалось бы, по части обработки изображений GIMP-именно тот чудесный инструмент, что удовлетворит любые ваши нужды. А так ли это? Во многих случаях GIMP прекрасен. Можно изменить цвет, добавить лихие эффекты и вообще превратить любую картинку, экранный снимок или фото в то, что вам хочется. Однако в офсетной печати, применяемой при больших тиражах, на страницу наносят четыре краски: голубую (Cyan), желтую (Yellow), пурпурную (Magenta) и черную, она же основная (Key), Поэтому для полноцветной печати (CMYK) необходимо иметь все изображения в формате CMYK. Все бы ничего, но для растровых файлов это создает проблему, так как GIМР не поддерживает цветовое пространство CMYK (поддержка CMYK появится при переходе на движок GEGL, где-то через год).<br />
<br />
Есть два способа обойти эту проблему (на самом деле, способов масса, но лишь два из них заслуживают рассмотрения), Первый — воспользоваться модулем расширения Separate для GIMР. Он преобразует файл в формат СМYК, Раньше Scribus малость спотыкался на файлах, сгенерированных подобным образом, но начиная с версии 1.3.3.6 этот путь стал безопасен. Модуль Separate находится по адресу: http://www.blackfiveservices.co.uk/separate.shtml. Для использования вы должны иметь установленные ICC-профили. Некоторые из них распространяются в архиве Separate, а файл readme содержит полную инструкцию по установке. Но чтобы сэкономить на головной боли, установите еще и IСС-профили от Adobe: они дадут вам лучший результат при выводе и преобразовании (http://www.adobe.com/support/downloads/). Для получения дополнительной информации, см. врезку «Цветовые профили ICC» на предыдущей странице, Второй путь — спокойно работать в GIMP, затем с помощью другого пакета отделить изображение и сохранить его в CMYK. К счастью, в Linux есть для этого инструмент Cinepaint — давнее ответвление от GIMP, довольно элементарное, но включающее поддержку CMYK. Гораздо лучше, однако, Krita (часть пакета КOfficе), которая также поддерживает преобразование из RGB в CMYK при различной разрядности цвета и использует встроенные профили. Хотя Krita не имеет таких возможностей для манипуляции с графикой, как GIMP, она обладает прекрасными способностями для решения большинства задач обработки изображений. Но вам все равно понадобятся профили изображения.<br />
<br />
Что касается формата файлов — как правило, люди используют TIFF, хоть он и несколько чужд Unix-миру. Но ничто не мешает вам использовать формат JPEG (который также поддерживает CMYK). Для нашего производственного процесса мы будет выводить PDF-файлы с типографским разрешением, так что данный выбор некритичен — главное, чтобы полученный файл можно было встроить в PDF. Если вы сами и печатаете, то, очевидно, сгодится любой формат файла, и незачем беспокоиться насчет создания файлов CMYK (хотя это желательно, потому что дает на экране четкое представление о том, как будет выглядеть результат).<br />
<br />
=== Сверка по вектору ===<br />
С векторной графикой легче. Большинство векторных инструментов в Linux позволяют выбрать формат SVG (Scalable Vector Graphics). Это положительный момент, потому что Scribus хорошо его поддерживает. К отрицательным можно отнести необходимость остерегаться вашего возможного формата вывода. Scribus поддерживает SVG и множество его «хитростей», а вот PDF-формат их не поддерживает. Существуют некоторых вещи, в основном связанные с прозрачностью и другими эффектами, которые не будут работать в PDF-файлах, предназначенных для коммерческой печати, как в нашем случае.<br />
<br />
Коротко говоря, если вам нужен экспорт в формате PDF 1.3, то нельзя применять прозрачность в векторной графике. Это относится не только к объектам с установленным основным прозрачным цветом, но также и к имеющим полупрозрачную заливку или градиент с прозрачностью. Это не проблема Scribus или Inkscape, а ограничения PDF-формата. Файлы в формате PDF версий 1.4 и выше поддерживают прозрачность, но могут быть совместимы не со всеми просмотрщиками и другими приложениями.<br />
<br />
Некоторые эффекты Inkscape вообще нельзя использовать в Scribus, например, популярный эффект размытия (blur).<br />
Обычно Scribus предупреждает о возможной несовместимости при первоначальном импорте графики или во время префлайта — «проверки перед взлетом», как раз и предназначенной для выявления узких мест и потенциальных проблем. Если вам непременно нужно импортировать в Scribus изображения с такими эффектами, остается сохранить их как растровые изображения, правда, ценой возможной потери качества и удобства использования. SVG-графика обрабатывается в Scribus с помощью модуля расширения, но не аналогично растровому изображению. Вместо этою она переводится в объект Scribus (тоже векторный), и впоследствии вы сможете ее легко редактировать.<br />
<br />
=== Верстаем ===<br />
Все материалы подготовлены, и мы наконец готовы импортировать все в Scribus и создать страницу нечеловеческой красоты — или не готовы? Я — нет, и вы, вероятно, тоже. Перед тем как приступать к дизайну страницы, полезно обзавестись шаблоном, или, как говорят полиграфисты, «модульной сеткой». В случае с Linux Format нам очень повезло, так как он (она) у нас уже есть. Прекраснейшие в мире дизайнеры долгими месяцами трудились не покладая рук, чтобы придумать проект, объединяющий должную практичность журнала с изяществом и элегантностью. Затем в последний момент мы все это поломали, чтобы впихнуть побольше слов на страницу… Но так или иначе, в итоге мы имеем сетку для Linux Format и можем просто скопировать ее в документ Scribus, чтобы получить желаемый результат. Если вы разрабатываете собственную сетку, полезно проследить за этим процессом и разобраться, какие виды элементов мы использовали.<br />
# Размеры страницы. Основная часть дизайна — это физический размер страницы («обрезной формат» в полиграфических терминах). По ряду причин Linux Format использует не совсем равный А4 размер листа 222х300 мм плюс три миллиметра на выпуск (своего рода буфер вокруг пропечатываемой области).<br />
# Поля. Физические границы обычной печатной площади страницы. Они ведут себя как направляющие и легко устанавливаются в свойствах документа.<br />
# Направляющие. Linux Format использует довольно гибкую систему сетки, которая позволяет иметь две колонки для статей, четыре колонки для писем, три для обзоров и так далее. Некоторые журналы используют отдельную сетку для каждого раздела. В нашем везде используется сетка из семи колонок, которые применимы для всех вариантов (например, в двухколоночном тексте мы используем по три колонки сетки на колонку текста, и одну запасную для врезок или одписей).<br />
# Элементы. Используя пункт Правка > Мастер-страницы (Edit > Master Pages) из меню, мы можем добавить неизменяемые объекты, такие как верхние и нижние колонтитулы. Все, что помещено на мастере, появляется на каждой странице, но остается заблокировано.<br />
# Цвета. По умолчанию, Scribus предлагает палитру с поистине безграничными возможностями. Для большинства работ вы, вероятно, ограничитесь четырьмя или пятью цветами: в случае необходимости вы всегда сможете добавить еще, а при списке из 200 цветов трудно упомнить те, которые уже использовались.<br />
# Стили. Вы можете импортировать стили документа из текстового редактора, но, вероятно, вам по-прежнему будут нужны стили, которые есть только в Scribus (например, номеров страниц, колонтитулов и т. д.). В конечном итоге оказывается проще списать все стили в Scribus (вы сперва можете импортировать их из документа, если хотите).<br />
<br />
=== Создание этой статьи! ===<br />
Создание статьи о создании этой статьи в Scribus оказалось весьма непростым занятием. Не потому, что случались сбои в работе инструментов, а потому, что довольно сложно понять, с чего начать, не превратив статью в ссылающуюся-самое-на-себя ерунду типа змея Ороборос [Змей, кусающий свой хвост, символ бесконечности).<br />
<br />
Поскребя в затылке, я прикинул, что самое лучшее решение — написать как можно больше текста, а уж потом как следует взяться за верстку. Поэтому я начал с установки сетки — приняв сетку типичной статьи LXF за основу. В этом месте я прошу прощения у нашею художественного редактора Эффи и всех читателей в том, что часть из кусочков и кусков не совсем верны. Некоторые вещи было почти невозможно в точности воспроизвести в Scribus — например, скругленные углы плашек для заголовков врезок: они были первоначально сделаны вручную в InDesign, и мне пришлось делать их вручную в Scribus (двойной щелчок по любому элементу для редактирования узлов, и вы тоже можете играть с контрольными точками кривой Безье). Scribus тут не виноват, и я думаю, что если бы мы переделали дизайн журнала под Scribus, это проблема отпала бы сама собой.<br />
<br />
Основная проблема, которая возникала в процессе работы, заключалась в том, что функция Undo (Отменить) в Scribus немного ненадежна — иногда работает, а иногда нет. Имелись также отдельные проблемы с графикой, особенно после того, как мы использовали функцию «collect for output» (собрать для вывода) и не вся графика скопировалась в папку назначения (это дефект Scribus или просто сбой в моей системе?).<br />
<br />
''[Внимание! Следующая пара абзацев и наш, собственный Опыт вынудили нас написать собственный — и вовсе не в двух словах — комментарий к статье, Мы в российской редакции столкнулись не только и не столько с этими проблемами, к тому же не могли упустить такую возможность предупредить наших читателей о некоторых важных особенностях текущих релизов Scribus. читайте чуть более скептический [[LXF96:scribus_по-русски|комментарий]],- прим. росс. ред.] ''<br />
<br />
Главным сюрпризом оказалась возможность сделать все. Кроме потери двух дней при попытке заставить работать шрифты (опять же не по вине Scribus)! В статье мы не выделили курсивом названия. ''[это касается английской версии — прим. росс. ред.]'', потому что шрифт Bentonsans (какой идиот его выбрал?!), не имеет курсивного начертания. В InDesign это кое-как решалось искажением текста, что в Scribus невозможно (только в нестабильной версии 1.4!).<br />
<br />
Однако к концу процесса я обрел практически полную уверенность в том, что Scribus обеспечит прочную и надежную работу. Согласно нашему технологическому процессу здесь в Future Publishing, сгенерированные Scribus PDF-файлы были еще и скормлены нашей собственной препресс-системе (которая генерирует PDF-файл, содержащий сгенерированные PDF), а это добавочная сложность, о которой большинству людей беспокоится не надо. Вы сами можете судить об успехе этого эксперимента. Я гарантирую вам, что эти четыре страницы были получены на 100 % свободном ПО, работающем под Linux, а не так уж мною журналов могут этим похвастаться! Это было даже не трудно, хотя прежде чем вы начнете массово писать, я все-таки не верстаю журнал каждый месяц!<br />
----<br />
<br />
''[ВНИМАНИЕ! Читайте [[LXF96:scribus_по-русски|комментарий]] русской редакции, касающийся работы с кириллицей]''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:ScribusLXF96:Scribus2009-10-17T19:21:54Z<p>Yaleks: /* Цветовые профили ICC */</p>
<hr />
<div>== Профессиональная верстка в scribus ==<br />
<br />
''По-вашему, Linux'у не по зубам издательское дело? Может, вы и правы, но '''Ник Вейч''' решил переубедить вас, создав эту статью при помощи только открытого программного обеспечения.''<br />
<br />
Издательская индустрия кардинальным образом изменилась с приходом в нее компьютеров, и в частности, с появлением Apple Macintosh. Первые Макинтоши имели прекрасную поддержку шрифтов, и не удивительно, что программное обеспечение для настольных издательских систем появилось сперва на них. Так, уже на заре использования компьютеров, профессионалы издательского дела оказались привязаны к оборудованию Apple. Вероятность того, что Linux придет в эту область и изменит все в одночасье, очень мала. <br />
<br />
Но мы поговорим не о том, может ли Linux заменить собой Мас в сердце рынка DTP, а о его технических возможностях для выполнения таких работ. Можете ли вы использовать Linux для создания журналов должного качества, печатая их с использованием технологии "сразу на печатную форму (direct-to-plate)" на современных принтерах? Единственный способ выяснить это — проверка на практике. В рамках статьи, мы немного умерим свои амбиции: вместо целого журнала попробуем сделать эти четыре страницы, используя только программное обеспечение с открытым исходным кодом. Они будут выведены в виде PDF-файлов и запущены в производственный цикл издательства Future Publishing так же, как если бы были сделаны обычным порядком (в Adobe InDesign на Mac}. Чтобы проверка была честной, мы не сказали об этом никому вне команды LXF (если сейчас вы видите пустые страницы, значит, у нас ничего не получилось). Другое небольшое извинение состоит в том, что вместо профессиональной художественной обезьяны, верстающей страницы, я все сделаю caм, тaк что если они будут отходить от обычных стандартов, вы уж меня простите. Теперь — вперед!<br />
<br />
[[Изображение:LXF96-Scribus.png]]<br />
<br />
=== Точка отсчета ===<br />
Первым делом, еще до начала работы, нужно выяснить, как прийти к конечному результату, Обычно, в настольных <br />
издательских системах, программа верстки — это место, где различные объекты соединяются вместе, стилизуются, а затем облекаются в уместный дизайн. Используемые элементы зависят от конечной цели работы, но стоит отметить, что в большинстве документов встречается как минимум три типа содержимого. <br />
<br />
'''Текст:''' Если вы не делаете чисто визуальное объявление с парой слов на нем, то этою материала у вас будет очень много. Эта та часть, которую люди читают.<br />
<br />
'''Фотографии:''' Многие публикации содержат фотографии. Также вы можете использовать сгенерированные на компьютере реалистичные изображения, экранные снимки или что-то другое. Короче, имеется в виду растровая графика. <br />
<br />
'''Иллюстрации:''' Даже если это небольшой элемент страницы, вроде логотипа или заголовка, или просто метки для совмещения страниц, вы, вероятнее всего, захотите использовать в своей публикации векторную графику. <br />
<br />
Для создания каждого из этих объектов понадобится специальное приложение. Да, можно набрать текст прямо в Scribus, но это нежелательно, Встроенный редактор очень хорош для оформления текста различными стилями, но не так хорош для его написания, особенно если вы не можете жить без таких возможностей, как, например, счетчик слов. При известной самоотверженности и умении, вы даже можете установить стили OpenOfiice.org, которые будут соответствовать стилям конечного документа — это может устранить подверженный ошибкам этап назначения стилей в тексте, но тогда придется доверить этот этап также и автору текста! В противном случае, очень легко назначить стили текста, используя встроенный текстовый редактор Scribus. Советы по стилям OpenOffice приведены во врезке «Забавы со шрифтами!» <br />
<br />
При желании можно, конечно, использовать старый текстовый редактор. Нет желания? Тогда двигаемся дальше.<br />
<br />
=== Вопрос изображений ===<br />
Казалось бы, по части обработки изображений GIMP-именно тот чудесный инструмент, что удовлетворит любые ваши нужды. А так ли это? Во многих случаях GIMP прекрасен. Можно изменить цвет, добавить лихие эффекты и вообще превратить любую картинку, экранный снимок или фото в то, что вам хочется. Однако в офсетной печати, применяемой при больших тиражах, на страницу наносят четыре кpacки: голубую (Cyan), желтую (Yellow), пурпурную (Magenta) и черную, она же основная (Key), Поэтому для полноцветной печати (CMYK) необходимо иметь все изображения в формате CMYK. Все бы ничего, но для растровых файлов это создает проблему, так как GIМР не поддерживает цветовое пространство CMYK (поддержка CMYK появится при переходе на движок GEGL, где-то через год).<br />
<br />
Есть два способа обойти эту проблему (на самом деле, способов масса, но лишь два из них заслуживают рассмотрения), Первый — воспользоваться модулем расширения Separate для GIMР. Он преобразует файл в формат СМYК, Раньше Scribus малость спотыкался на файлах, сгенерированных подобным образом, но начиная с версии 1.3.3.6 этот путь стал безопасен. Модуль Separate находится по адресу: http://www.blackfiveservices.co.uk/separate.shtml. Для использования вы должны иметь установленные ICC-профили. Некоторые из них распространяются в архиве Separate, а файл readme содержит полную инструкцию по установке. Но чтобы сэкономить на головной боли, установите еще и IСС-профили от Adobe: они дадут вам лучший результат при выводе и преобразовании (http://www.adobe.com/support/downloads/). Для получения дополнительной информации, см, врезку «Цветовые профили ICC» на предыдущей странице, Второй путь — спокойно работать в GIMP, затем с помощью другого пакета отделить изображение и сохранить его в CMYK. К счастью, в Linux есть для этого инструмент Cinepaint — давнее ответвление от GIMP, довольно элементарное, но включающее поддержку CMYK. Гораздо лучше, однако, Krita (часть пакета КOfficе), которая также поддерживает преобразование из RGB в CMYK при различной разрядности цвета и использует встроенные профили. Хотя Krita не имеет таких возможностей для манипуляции с графикой, как GIMP, она обладает прекрасными способностями для решения большинства задач обработки изображений. Но вам все равно понадобятся профили изображения. <br />
<br />
Что касается формата файлов — как правило, люди используют TIFF, хоть он и несколько чужд Unix-миру. Но ничто не <br />
мешает вам использовать формат JPEG (который также поддерживает CMYK). Для нашего производственного процесса мы будет выводить PDF-файлы с типографским разрешением, так что данный выбор некритичен — главное, чтобы полученный файл можно было встроить в PDF. Если вы сами и печатаете, то, очевидно, сгодится любой формат файла, и незачем беспокоиться насчет создания файлов CMYK (хотя это желательно, потому что дает на экране четкое представление о том, как будет выглядеть результат).<br />
<br />
=== Сверка по вектору ===<br />
С векторной графикой легче. Большинство векторных инструментов в Linux позволяют выбрать формат SVG (Scalable Vector Graphics). Это положительный момент, потому что Scribus хорошо его поддерживает. К отрицательным можно отнести необходимость остерегаться вашего возможного формата вывода. Scribus поддерживает SVG и множество ero «хитростей», а вот PDF-формат их не поддерживает. Существуют некоторых вещи, в основном связанные с прозрачностью и другими эффектами, которые не будут работать в PDF-файлах, предназначенных для коммерческой печати, как в нашем случае. <br />
<br />
Коротко говоря, если вам нужен экспорт в формате PDF 1.3, то нельзя применять прозрачность в векторной графике. Это относится не только к объектам с установленным основным прозрачным цветом, но также и к имеющим полупрозрачную заливку или градиент с прозрачностью. Это не проблема Scribus или Inkscape, а ограничения PDF-формата. Файлы в формате PDF версий 1.4 и выше поддерживают прозрачность, но могут быть совместимы не со всеми просмотрщиками и другими приложениями. <br />
<br />
Некоторые эффекты Inkscape вообще нельзя использовать в Scribus, например, популярный эффект размытия (blur).<br />
Обычно Scribus предупреждает о возможной несовместимости при первоначальном импорте графики или во время префлайта — «проверки перед взлетом», как раз и предназначенной для выявления узких мест и потенциальных проблем. Если вам непременно нужно импортировать в Scribus изображения с такими эффектами, остается сохранить их как растровые изображения, правда, ценой возможной потери качества и удобства использования. SVG-графика обрабатывается в Scribus с помощью модуля расширения, но не аналогично растровому изображению. Вместо этою она переводится в объект Scribus (тоже векторный), и впоследствии вы сможете ее легко редактировать.<br />
<br />
=== Верстаем ===<br />
Все материалы подготовлены, и мы наконец готовы импортировать все в Scribus и создать страницу нечеловеческой -красоты — или не готовы? Я — нет, и вы, вероятно, тоже. Перед тем как приступать к дизайну страницы, полезно об-<br />
завестись шаблоном, или, как говорят полиграфисты, «модульной сеткой». В случае с Linux Format нам очень повезло, так как он (она) у нас уже есть. Прекраснейшие в мире дизайнеры долгими месяцами трудились не покладая рук, чтобы придумать проект, объединяющий должную практичность журнала с изяществом и элегантностью. Затем в последний момент мы все это поломали, чтобы впихнуть побольше слов на страницу... Но так или иначе, в итоге мы имеем сетку для Linux Format и можем просто скопировать ее в документ Scribus, чтобы получить желаемый результат. Если вы разрабатываете собственную сетку, полезно проследить за этим процессом и разобраться, какие виды элементов мы использовали. <br />
# Размеры страницы. Основная часть дизайна — это физический размер страницы («обрезной формат» в полиграфических терминах). По ряду причин Linux Format использует не совсем равный А4 размер листа 222х300 мм плюс три миллиметра на выпуск (своего рода буфер вокруг пропечатываемой области). <br />
# Поля. Физические границы обычной печатной площади страницы. Они ведут себя как направляющие и легко устанавливаются в свойствах документа. <br />
# Направляющие. Linux Format использует довольно гибкую систему сетки, которая позволяет иметь две колонки для статей, четыре колонки для писем, три для обзоров и так далее. Некоторые журналы используют отдельную сетку для каждого раздела. В нашем везде используется сетка из семи колонок, которые применимы для всех вариантов (например, в двухколоночном тексте мы используем по три колонки сетки на колонку текста, и одну запасную для врезок или одписей). <br />
# Элементы. Используя пункт Правка > Мастер-страницы (Edit > Master Pages) из меню, мы можем добавить неизменяемые объекты, такие как верхние и нижние колонтитулы. Все, что помещено на мастере, появляется на каждой странице, но остается заблокировано. <br />
# Цвета. По умолчанию, Scribus предлагает палитру с поистине безграничными возможностями. Для большинства работ вы, вероятно, ограничитесь четырьмя или пятью цветами: в случае необходимости вы всегда сможете добавить еще, а при списке из 200 цветов трудно упомнить те, которые уже использовались. <br />
# Стили. Вы можете импортировать стили документа из текстового редактора, но, вероятно, вам по-прежнему будут нужны стили, которые есть только в Scribus (например, номеров страниц, колонтитулов и т.д.). В конечном итоге оказывается проще списать все стили в Scribus (вы сперва можете импортировать их из документа, если хотите).<br />
<br />
=== Создание этой статьи! ===<br />
Создание статьи о создании этой статьи в Scribus оказалось весьма непростым занятием. Не потому, что случались сбои в работе инструментов, а потому, что довольно сложно понять, с чего начать, не превратив статью в ссылающуюся-самое-на-себя ерунду типа змея Ороборос [Змей, кусающий свой хвост, символ бесконечности).<br />
<br />
Поскребя в затылке, я прикинул, что самое лучшее решение — написать как можно больше текста, а уж потом как следует взяться за верстку. Поэтому я начал с установки сетки — приняв сетку типичной статьи LXF за основу. В этом месте я прошу прощения у нашею художественного редактора Эффи и всех читателей в том, что часть из кусочков и кусков не совсем верны. Некоторые вещи было почти невозможно в точности воспроизвести в Scribus — например, скругленные углы плашек для заголовков врезок: они были первоначально сделаны вручную в InDesign, и мне пришлось делать их вручную в Scribus (двойной щелчок по любому элементу для редактирования узлов, и вы тоже можете играть с контрольными точками кривой Безье). Scribus тут не виноват, и я думаю, что если бы мы переделали дизайн журнала под Scribus, это проблема отпала бы сама собой. <br />
<br />
Основная проблема, которая возникала в процессе работы, заключалась в том, что функция Undo (Отменить) в Scribus немного ненадежна — иногда работает, а иногда нет. Имелись также отдельные проблемы с графикой, особенно после того, как мы использовали функцию «collect for output» (собрать для вывода) и не вся графика скопировалась в папку назначения (это дефект Scribus или просто сбой в моей системе?) . <br />
<br />
''[Внимание! Следующая пара абзацев и наш, собственный Опыт вынудили нас написать собственный - и вовсе не в двух словах — комментарий к статье, Мы в российской редакции столкнулись не только и не столько c этими проблемами, к тому же не могли упустить такую возможность предупредить наших читателей о некоторых важных особенностях текущих релизов Scribus. читайте чуть более скептический [[LXF96:scribus_по-русски|комментарий]],- прим. росс. ред,] ''<br />
<br />
Главным сюрпризом оказалась возможность сделать все. Кроме потери двух дней при попытке заставить работать шрифты (опять же не по вине Scribus)! В статье мы не выделили курсивом названия. ''[это касается английской версии - прим. росс. ред.]'', потому что шрифт Bentonsans (какой идиот его выбрал?!), не имеет курсивного начертания. В InDesign это кое-как решалось искажением текста, что в Scribus невозможно (только в нестабильной версии 1.4!) . <br />
<br />
Однако к концу процесса я обрел практически полную уверенность в том, что Scribus обеспечит прочную и надежную работу. Согласно нашему технологическому процессу здесь в Future Publishing, сгенерированные Scribus PDF-файлы были еще и скормлены нашей собственной препресс-системе (которая генерирует PDF-файл, содержащий сгенерированные PDF), а это добавочная сложность, о которой большинству людей беспокоится не надо. Вы сами можете судить об успехе этого эксперимента. Я гарантирую вам, что эти четыре страницы были получены на 100% свободном ПО, работающем под Linux, а не так уж мною журналов могут этим похвастаться! Это было даже не трудно, хотя прежде чем вы начнете массово писать, я все-таки не верстаю журнал каждый месяц!<br />
----<br />
<br />
=== Врезка ===<br />
==== Цветовые профили ICC ====<br />
При конвертации изображении из одного формата в другой и получения результата, близкого к вами задуманному, хорошей идеей является использование цветовых профилей ICC. Помимо стандартных профилей от Adobe (см. «Вопрос изображении») существует множество других — например, для вашей цифровой камеры. Дополнительную информацию и программное обеспечение, связанное с ICC можно получить, пройдя по ссылке http://www.eci.org/eci/en/060_downloads.php. Кроме того, убедитесь, что вы включили управление цветам в меню настроек Scribus, если хотите использовать данный профиль для окончательного вывода.<br />
<br />
==== Забавы со шрифтами ====<br />
Вы можете столкнуться с той же проблемой, что и мы - потребностью использовать шрифты с вашего Макинтоша на машине с Linux. С PC будет не так уж много проблем, или, если быть честными, не будет проблем со шрифтами TrueType, которые можно просто скопировать (вы должны убедиться в там, что лицензионные ограничения позволяют копировать шрифт на другие системы — многие лицензии на шрифты этого не разрешают). <br />
<br />
Шрифты Postscnpt Type1 все еще широко используются нa платформах Мас, и это может вызвать большие проблемs. Они часто упакованы в "Мас'овский Портфель шрифтов" (Font SuitCase), но даже если этого нет, они подвержены любимой забаве Мас'а с разделением данных и ресурсов шрифт Typel состоит из нескольких файлов и, скопировав шрифт, вы обнаруживаете его пустым, поскольку все данные о шрифте содержались в другой, скрытой части). <br />
<br />
Решение этой проблемы (мы обнаружили его, провозившись немало часов) — это загрузить программу для Мас с открытым исходным кодом fondu ( http://fondu.sourceforge.net/). Используйте ее для извлечения PFB-файлов, которые понимает Unix. Затем поместите их в ZIP-архив и скопируйте. <br />
<br />
Под Unix легче всего загрузить PFB-файлы в Fontforge и сохранить затем в формате TrueType перед установкой шрифтов в вашей системе.<br />
<br />
''[ВНИМАНИЕ! Читайте [[LXF96:scribus_по-русски|комментарий]] русской редакции, касающийся работы с кириллицей]''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF96:ScribusLXF96:Scribus2009-10-17T19:17:30Z<p>Yaleks: /* Вопрос изображений */</p>
<hr />
<div>== Профессиональная верстка в scribus ==<br />
<br />
''По-вашему, Linux'у не по зубам издательское дело? Может, вы и правы, но '''Ник Вейч''' решил переубедить вас, создав эту статью при помощи только открытого программного обеспечения.''<br />
<br />
Издательская индустрия кардинальным образом изменилась с приходом в нее компьютеров, и в частности, с появлением Apple Macintosh. Первые Макинтоши имели прекрасную поддержку шрифтов, и не удивительно, что программное обеспечение для настольных издательских систем появилось сперва на них. Так, уже на заре использования компьютеров, профессионалы издательского дела оказались привязаны к оборудованию Apple. Вероятность того, что Linux придет в эту область и изменит все в одночасье, очень мала. <br />
<br />
Но мы поговорим не о том, может ли Linux заменить собой Мас в сердце рынка DTP, а о его технических возможностях для выполнения таких работ. Можете ли вы использовать Linux для создания журналов должного качества, печатая их с использованием технологии "сразу на печатную форму (direct-to-plate)" на современных принтерах? Единственный способ выяснить это — проверка на практике. В рамках статьи, мы немного умерим свои амбиции: вместо целого журнала попробуем сделать эти четыре страницы, используя только программное обеспечение с открытым исходным кодом. Они будут выведены в виде PDF-файлов и запущены в производственный цикл издательства Future Publishing так же, как если бы были сделаны обычным порядком (в Adobe InDesign на Mac}. Чтобы проверка была честной, мы не сказали об этом никому вне команды LXF (если сейчас вы видите пустые страницы, значит, у нас ничего не получилось). Другое небольшое извинение состоит в том, что вместо профессиональной художественной обезьяны, верстающей страницы, я все сделаю caм, тaк что если они будут отходить от обычных стандартов, вы уж меня простите. Теперь — вперед!<br />
<br />
[[Изображение:LXF96-Scribus.png]]<br />
<br />
=== Точка отсчета ===<br />
Первым делом, еще до начала работы, нужно выяснить, как прийти к конечному результату, Обычно, в настольных <br />
издательских системах, программа верстки — это место, где различные объекты соединяются вместе, стилизуются, а затем облекаются в уместный дизайн. Используемые элементы зависят от конечной цели работы, но стоит отметить, что в большинстве документов встречается как минимум три типа содержимого. <br />
<br />
'''Текст:''' Если вы не делаете чисто визуальное объявление с парой слов на нем, то этою материала у вас будет очень много. Эта та часть, которую люди читают.<br />
<br />
'''Фотографии:''' Многие публикации содержат фотографии. Также вы можете использовать сгенерированные на компьютере реалистичные изображения, экранные снимки или что-то другое. Короче, имеется в виду растровая графика. <br />
<br />
'''Иллюстрации:''' Даже если это небольшой элемент страницы, вроде логотипа или заголовка, или просто метки для совмещения страниц, вы, вероятнее всего, захотите использовать в своей публикации векторную графику. <br />
<br />
Для создания каждого из этих объектов понадобится специальное приложение. Да, можно набрать текст прямо в Scribus, но это нежелательно, Встроенный редактор очень хорош для оформления текста различными стилями, но не так хорош для его написания, особенно если вы не можете жить без таких возможностей, как, например, счетчик слов. При известной самоотверженности и умении, вы даже можете установить стили OpenOfiice.org, которые будут соответствовать стилям конечного документа — это может устранить подверженный ошибкам этап назначения стилей в тексте, но тогда придется доверить этот этап также и автору текста! В противном случае, очень легко назначить стили текста, используя встроенный текстовый редактор Scribus. Советы по стилям OpenOffice приведены во врезке «Забавы со шрифтами!» <br />
<br />
При желании можно, конечно, использовать старый текстовый редактор. Нет желания? Тогда двигаемся дальше.<br />
<br />
=== Вопрос изображений ===<br />
Казалось бы, по части обработки изображений GIMP-именно тот чудесный инструмент, что удовлетворит любые ваши нужды. А так ли это? Во многих случаях GIMP прекрасен. Можно изменить цвет, добавить лихие эффекты и вообще превратить любую картинку, экранный снимок или фото в то, что вам хочется. Однако в офсетной печати, применяемой при больших тиражах, на страницу наносят четыре кpacки: голубую (Cyan), желтую (Yellow), пурпурную (Magenta) и черную, она же основная (Key), Поэтому для полноцветной печати (CMYK) необходимо иметь все изображения в формате CMYK. Все бы ничего, но для растровых файлов это создает проблему, так как GIМР не поддерживает цветовое пространство CMYK (поддержка CMYK появится при переходе на движок GEGL, где-то через год).<br />
<br />
Есть два способа обойти эту проблему (на самом деле, способов масса, но лишь два из них заслуживают рассмотрения), Первый — воспользоваться модулем расширения Separate для GIMР. Он преобразует файл в формат СМYК, Раньше Scribus малость спотыкался на файлах, сгенерированных подобным образом, но начиная с версии 1.3.3.6 этот путь стал безопасен. Модуль Separate находится по адресу: http://www.blackfiveservices.co.uk/separate.shtml. Для использования вы должны иметь установленные ICC-профили. Некоторые из них распространяются в архиве Separate, а файл readme содержит полную инструкцию по установке. Но чтобы сэкономить на головной боли, установите еще и IСС-профили от Adobe: они дадут вам лучший результат при выводе и преобразовании (http://www.adobe.com/support/downloads/). Для получения дополнительной информации, см, врезку «Цветовые профили ICC» на предыдущей странице, Второй путь — спокойно работать в GIMP, затем с помощью другого пакета отделить изображение и сохранить его в CMYK. К счастью, в Linux есть для этого инструмент Cinepaint — давнее ответвление от GIMP, довольно элементарное, но включающее поддержку CMYK. Гораздо лучше, однако, Krita (часть пакета КOfficе), которая также поддерживает преобразование из RGB в CMYK при различной разрядности цвета и использует встроенные профили. Хотя Krita не имеет таких возможностей для манипуляции с графикой, как GIMP, она обладает прекрасными способностями для решения большинства задач обработки изображений. Но вам все равно понадобятся профили изображения. <br />
<br />
Что касается формата файлов — как правило, люди используют TIFF, хоть он и несколько чужд Unix-миру. Но ничто не <br />
мешает вам использовать формат JPEG (который также поддерживает CMYK). Для нашего производственного процесса мы будет выводить PDF-файлы с типографским разрешением, так что данный выбор некритичен — главное, чтобы полученный файл можно было встроить в PDF. Если вы сами и печатаете, то, очевидно, сгодится любой формат файла, и незачем беспокоиться насчет создания файлов CMYK (хотя это желательно, потому что дает на экране четкое представление о том, как будет выглядеть результат).<br />
<br />
=== Сверка по вектору ===<br />
С векторной графикой легче. Большинство векторных инструментов в Linux позволяют выбрать формат SVG (Scalable Vector Graphics). Это положительный момент, потому что Scribus хорошо его поддерживает. К отрицательным можно отнести необходимость остерегаться вашего возможного формата вывода. Scribus поддерживает SVG и множество ero «хитростей», а вот PDF-формат их не поддерживает. Существуют некоторых вещи, в основном связанные с прозрачностью и другими эффектами, которые не будут работать в PDF-файлах, предназначенных для коммерческой печати, как в нашем случае. <br />
<br />
Коротко говоря, если вам нужен экспорт в формате PDF 1.3, то нельзя применять прозрачность в векторной графике. Это относится не только к объектам с установленным основным прозрачным цветом, но также и к имеющим полупрозрачную заливку или градиент с прозрачностью. Это не проблема Scribus или Inkscape, а ограничения PDF-формата. Файлы в формате PDF версий 1.4 и выше поддерживают прозрачность, но могут быть совместимы не со всеми просмотрщиками и другими приложениями. <br />
<br />
Некоторые эффекты Inkscape вообще нельзя использовать в Scribus, например, популярный эффект размытия (blur).<br />
Обычно Scribus предупреждает о возможной несовместимости при первоначальном импорте графики или во время префлайта — «проверки перед взлетом», как раз и предназначенной для выявления узких мест и потенциальных проблем. Если вам непременно нужно импортировать в Scribus изображения с такими эффектами, остается сохранить их как растровые изображения, правда, ценой возможной потери качества и удобства использования. SVG-графика обрабатывается в Scribus с помощью модуля расширения, но не аналогично растровому изображению. Вместо этою она переводится в объект Scribus (тоже векторный), и впоследствии вы сможете ее легко редактировать.<br />
<br />
=== Верстаем ===<br />
Все материалы подготовлены, и мы наконец готовы импортировать все в Scribus и создать страницу нечеловеческой -красоты — или не готовы? Я — нет, и вы, вероятно, тоже. Перед тем как приступать к дизайну страницы, полезно об-<br />
завестись шаблоном, или, как говорят полиграфисты, «модульной сеткой». В случае с Linux Format нам очень повезло, так как он (она) у нас уже есть. Прекраснейшие в мире дизайнеры долгими месяцами трудились не покладая рук, чтобы придумать проект, объединяющий должную практичность журнала с изяществом и элегантностью. Затем в последний момент мы все это поломали, чтобы впихнуть побольше слов на страницу... Но так или иначе, в итоге мы имеем сетку для Linux Format и можем просто скопировать ее в документ Scribus, чтобы получить желаемый результат. Если вы разрабатываете собственную сетку, полезно проследить за этим процессом и разобраться, какие виды элементов мы использовали. <br />
# Размеры страницы. Основная часть дизайна — это физический размер страницы («обрезной формат» в полиграфических терминах). По ряду причин Linux Format использует не совсем равный А4 размер листа 222х300 мм плюс три миллиметра на выпуск (своего рода буфер вокруг пропечатываемой области). <br />
# Поля. Физические границы обычной печатной площади страницы. Они ведут себя как направляющие и легко устанавливаются в свойствах документа. <br />
# Направляющие. Linux Format использует довольно гибкую систему сетки, которая позволяет иметь две колонки для статей, четыре колонки для писем, три для обзоров и так далее. Некоторые журналы используют отдельную сетку для каждого раздела. В нашем везде используется сетка из семи колонок, которые применимы для всех вариантов (например, в двухколоночном тексте мы используем по три колонки сетки на колонку текста, и одну запасную для врезок или одписей). <br />
# Элементы. Используя пункт Правка > Мастер-страницы (Edit > Master Pages) из меню, мы можем добавить неизменяемые объекты, такие как верхние и нижние колонтитулы. Все, что помещено на мастере, появляется на каждой странице, но остается заблокировано. <br />
# Цвета. По умолчанию, Scribus предлагает палитру с поистине безграничными возможностями. Для большинства работ вы, вероятно, ограничитесь четырьмя или пятью цветами: в случае необходимости вы всегда сможете добавить еще, а при списке из 200 цветов трудно упомнить те, которые уже использовались. <br />
# Стили. Вы можете импортировать стили документа из текстового редактора, но, вероятно, вам по-прежнему будут нужны стили, которые есть только в Scribus (например, номеров страниц, колонтитулов и т.д.). В конечном итоге оказывается проще списать все стили в Scribus (вы сперва можете импортировать их из документа, если хотите).<br />
<br />
=== Создание этой статьи! ===<br />
Создание статьи о создании этой статьи в Scribus оказалось весьма непростым занятием. Не потому, что случались сбои в работе инструментов, а потому, что довольно сложно понять, с чего начать, не превратив статью в ссылающуюся-самое-на-себя ерунду типа змея Ороборос [Змей, кусающий свой хвост, символ бесконечности).<br />
<br />
Поскребя в затылке, я прикинул, что самое лучшее решение — написать как можно больше текста, а уж потом как следует взяться за верстку. Поэтому я начал с установки сетки — приняв сетку типичной статьи LXF за основу. В этом месте я прошу прощения у нашею художественного редактора Эффи и всех читателей в том, что часть из кусочков и кусков не совсем верны. Некоторые вещи было почти невозможно в точности воспроизвести в Scribus — например, скругленные углы плашек для заголовков врезок: они были первоначально сделаны вручную в InDesign, и мне пришлось делать их вручную в Scribus (двойной щелчок по любому элементу для редактирования узлов, и вы тоже можете играть с контрольными точками кривой Безье). Scribus тут не виноват, и я думаю, что если бы мы переделали дизайн журнала под Scribus, это проблема отпала бы сама собой. <br />
<br />
Основная проблема, которая возникала в процессе работы, заключалась в том, что функция Undo (Отменить) в Scribus немного ненадежна — иногда работает, а иногда нет. Имелись также отдельные проблемы с графикой, особенно после того, как мы использовали функцию «collect for output» (собрать для вывода) и не вся графика скопировалась в папку назначения (это дефект Scribus или просто сбой в моей системе?) . <br />
<br />
''[Внимание! Следующая пара абзацев и наш, собственный Опыт вынудили нас написать собственный - и вовсе не в двух словах — комментарий к статье, Мы в российской редакции столкнулись не только и не столько c этими проблемами, к тому же не могли упустить такую возможность предупредить наших читателей о некоторых важных особенностях текущих релизов Scribus. читайте чуть более скептический [[LXF96:scribus_по-русски|комментарий]],- прим. росс. ред,] ''<br />
<br />
Главным сюрпризом оказалась возможность сделать все. Кроме потери двух дней при попытке заставить работать шрифты (опять же не по вине Scribus)! В статье мы не выделили курсивом названия. ''[это касается английской версии - прим. росс. ред.]'', потому что шрифт Bentonsans (какой идиот его выбрал?!), не имеет курсивного начертания. В InDesign это кое-как решалось искажением текста, что в Scribus невозможно (только в нестабильной версии 1.4!) . <br />
<br />
Однако к концу процесса я обрел практически полную уверенность в том, что Scribus обеспечит прочную и надежную работу. Согласно нашему технологическому процессу здесь в Future Publishing, сгенерированные Scribus PDF-файлы были еще и скормлены нашей собственной препресс-системе (которая генерирует PDF-файл, содержащий сгенерированные PDF), а это добавочная сложность, о которой большинству людей беспокоится не надо. Вы сами можете судить об успехе этого эксперимента. Я гарантирую вам, что эти четыре страницы были получены на 100% свободном ПО, работающем под Linux, а не так уж мною журналов могут этим похвастаться! Это было даже не трудно, хотя прежде чем вы начнете массово писать, я все-таки не верстаю журнал каждый месяц!<br />
----<br />
<br />
=== Врезка ===<br />
==== Цветовые профили ICC ====<br />
При конвертации изображении из одного формата в другой и получения результата, близкого к вами задуманному, хорошей идеей является использование цветовых профилей ICC.Помимо стандартных профилей от Adobe (см «Вопрос изображении») существует множество других — например, для вашей цифровой камеры. Дополни ельную информацию и программное обеспечение, связанное с ICC можно получить, проидя по ссылке . Кроме того,убедитесь, что вы включили управление цветам в меню настроек Scnbus. если хотите использовать данный профиль для окончательного вывода.<br />
<br />
==== Забавы со шрифтами ====<br />
Вы можете столкнуться с той же проблемой, что и мы - потребностью использовать шрифты с вашего Макинтоша на машине с Linux. С PC будет не так уж много проблем, или, если быть честными, не будет проблем со шрифтами TrueType, которые можно просто скопировать (вы должны убедиться в там, что лицензионные ограничения позволяют копировать шрифт на другие системы — многие лицензии на шрифты этого не разрешают). <br />
<br />
Шрифты Postscnpt Type1 все еще широко используются нa платформах Мас, и это может вызвать большие проблемs. Они часто упакованы в "Мас'овский Портфель шрифтов" (Font SuitCase), но даже если этого нет, они подвержены любимой забаве Мас'а с разделением данных и ресурсов шрифт Typel состоит из нескольких файлов и, скопировав шрифт, вы обнаруживаете его пустым, поскольку все данные о шрифте содержались в другой, скрытой части). <br />
<br />
Решение этой проблемы (мы обнаружили его, провозившись немало часов) — это загрузить программу для Мас с открытым исходным кодом fondu ( http://fondu.sourceforge.net/). Используйте ее для извлечения PFB-файлов, которые понимает Unix. Затем поместите их в ZIP-архив и скопируйте. <br />
<br />
Под Unix легче всего загрузить PFB-файлы в Fontforge и сохранить затем в формате TrueType перед установкой шрифтов в вашей системе.<br />
<br />
''[ВНИМАНИЕ! Читайте [[LXF96:scribus_по-русски|комментарий]] русской редакции, касающийся работы с кириллицей]''</div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF85:ScribusLXF85:Scribus2009-10-17T19:01:15Z<p>Yaleks: </p>
<hr />
<div>==Верстаем сами со SCRIBUSами==<br />
: ''Задумали выпускать свой собственный журнал о Linux, но не знаете, с чего начать? Запаситесь качественным контентом – а направление дальнейшего движения вам укажет '''Александр Супрунов'''!''<br />
<br />
{{врезка|Ширина=150px|<br />
Заголовок=Скорая помощь|<br />
Содержание=Если ваш журнал, как и большинство молодых изданий, испытывает трудности с авторами – можете занять печатную площадь шаблонным текстом из одноименного пункта меню текстового блока. Осмысленностью он не отличается, но для экспериментов со Scribus его заведомо хватит.}}<br />
Cегодня мы поговорим о верстке – точнее, настольной издательской системе [http://www.scribus.net Scribus]. Scribus – свободное ПО, стоящее в одном ряду с такими флагманами, как Gimp и Inkscape. Его ближайший аналог – Adobe PageMaker – стоит $499.<br />
<br />
Спросите себя: «Для чего мне все это может понадобиться?» Допустим, в один прекрасный день вы решите сделать рекламный буклет или выпустить небольшую книгу стихов. В этом деле незаменимым помощником окажется Scribus. Не захотите? Cтихов не пишете? Тогда вы ошиблись уроком, начните с курса «Как писать стихи». Он подарит вам много прекрасных моментов и будет заведомо полезнее сидения перед монитором в попытках пристрелить очередного монстра на далекой космической станции.<br />
<br />
Издательские (DTP – DeskTop Publishing) системы отличаются от текстовых процессоров из OpenOffice.org или KOffice [хотя последний обладает некоторыми функциями DTP, – прим.ред.], что, впрочем, не удивительно. Системы верстки манипулируют текстом и изображениями в виде блоков. Редактировать текст в них тоже можно, но не с таким комфортом, как в OOo Writer, а в Writer тоже можно располагать текст, но не так легко, как в специализированной программе верстки.<br />
<br />
Scribus умеет сохранять результат в виде PDF (впрочем, OpenOffice.org Writer – тоже), в то время как многие проприетарные системы требуют для этого Adobe Acrobat Professional (а точнее – компонент Distiller) стоимостью еще $449. Если у вас от всех этих долларов уже закружилась голова, и вы решили немедленно сэкономить, следуйте за мной.<br />
<br />
Допустим, мы создаем небольшую брошюру или журнал (кому что нравится). Для начала определимся с форматом. Здесь есть два нюанса – издание формата A4 (альбомный лист) легко напечатать на обычном бытовом принтере, который точно пылится где-то в углу во многих организациях. Если же вы решили верстать брошюру – размер более половины альбомного листа (формат А5) вряд ли вызовет нескрываемый восторг у читателей.<br />
<br />
Итак, мы:<br />
* Будем верстать журнал формата A4;<br />
* Расположим текст в три колонки;<br />
* Соль, сахар, перец добавим по вкусу.<br />
<br />
[[Изображение:LXF85 60 1.png|thumb|(Рис. 1) Создаем новый документ Scribus.]]<br />
Теперь самое время открыть Scribus. Перед вами появится рабочий стол и мастер, предлагающий выбрать параметры будущего проекта (см. рис. 1). В левой части мастера выберите пиктограмму «парные страницы» (для любопытных: также доступны варианты одиночные страницы / 3-частная гармошка / 4-частная гармошка). В секции «Формат страницы» укажите размер A4 и портретную ориентацию листа. Затем установите поля в секции Направляющие полей – иначе при распечатке вы с удивлением обнаружите, что текст занимает всю площадь, не оставляя места для степлера. Здесь также доступны предустановки: Ничего, Гутенберг, Журнал, Фибоначчи, Золотая середина, Девять долей.<br />
<br />
Не будем сейчас углубляться в значение каждого пункта, отметим лишь, что Ничего – это вовсе не фамилия, а те, кто услышал знакомое слово (да, я про «журнал») – сделали правильный выбор.<br />
<br />
Если вы уже знаете, на каком принтере будет распечатан ваш труд (пока босс вышел попить чайку или выкурить сигару), наведайтесь в раздел Поля принтера и выберите «временно ваш» принтер.<br />
<br />
Далее нас будет интересовать секция Параметры, а именно – пункт Количество страниц.<br />
<br />
Здесь необходимо указать предполагаемое количество страниц в журнале. Не относитесь к их подсчету чересчур серьезно – это значение можно изменить в любое время работы над проектом, а сами страницы тасовать с места на место, словно колоду карт. Для начала укажем 10 страниц.<br />
<br />
Чуть ниже расположена неактивная секция Автосоздание текстовых рамок. Вещь достаточно полезная для автоматизации рутинных операций, поэтому отметьте ее галочкой – и вам станут доступны новые свойства. В поле Столбцов установите 3 – именно столько, как вы помните, текстовых столбцов предполагается разместить на одной странице в нашем журнале.<br />
<br />
Управились? Теперь можно нажать кнопку OK.<br />
<br />
===Работа над проектом===<br />
[[Изображение:LXF85 61 1.png|thumb|(Рис. 2) Рабочий стол Scribus.]]<br />
На рабочем столе Scribus появится стопка страниц. Перемещаться к следующей странице можно, прокручивая колесико мыши, либо перетаскивая ползунок. Обратите внимание на панель в нижней части окна. На ней в выпадающем меню 1 из 10 можно выбирать номер страницы, на которую вы желаете попасть. На этой же панели можно выбрать масштаб отображения (кроме этого, изменение масштаба происходит при удержании клавиши Alt и прокрутке колесика мыши). Я надеюсь, вы уже поняли – для выполнения многих действий в Scribus существует несколько путей, так что в дальнейшем мы воздержимся от перечисления всех способов решений той или иной задачи.<br />
<br />
Очевидно, что первая страница – это обложка. Далее, скорее всего, будет слово редактора, содержание, новости, а потом дело дойдет и до статей. Вот с этих самых статей мы и начнем. <br />
<br />
Приблизительный расчет показывает, что они начнутся страницы с четвертой, но это не столь важно – и скоро мы узнаем, почему.<br />
<br />
На первой странице щелкните мышью по центру листа – вы увидите красную пунктирную линию, выделяющую текстовый блок, на которой будут видны контрольные точки в виде квадратиков (см. рис. 2) Наведя на них курсор мыши и зажав левую кнопку, можно изменять размеры текстового блока, а для его перемещения по странице достаточно поместить курсор мыши внутрь и, нажав кнопку, тащить.<br />
<br />
Как вы помните, мы собирались верстать наш журнал в три колонки, но на экране их пока не наблюдается. Чтобы наладить «визуальный контакт», достаточно выбрать в главном меню пункт Вид и отметить опцию Show Text Frame Columns [Scribus переводится на русский язык постепенно: в версии 1.3.3.4 этот пункт уже зовется «Показать границы столбцов» – прим. ред.]. <br />
<br />
[[Изображение:LXF85 61 2.png|thumb|(Рис. 3) Можно приступать к набору текста.]]<br />
Самого текста мы по-прежнему не видим по банальной причине – откуда же ему взяться! Вот и займемся его добавлением в текстовый блок. Щелкните правой кнопкой мыши внутри текстового блока и в развернувшемся меню выберите Изменить текст (или Получить текст, если хотите просто импортировать файл в форматах OpenDocument, HTML, OpenOffice.org 1.x Writer, Palm PDB или простом текстовом). Появится окно Story Editor – простенького текстового редактора (см. рис. 3). В принципе, можно создавать гениальную статью прямо в нем, но я надеюсь, что у вас уже все написано и ждет своего часа в файлах вроде *.odt или *.txt. Поскольку первый вариант все же распространеннее, будем считать, что материалы для вашего журнала хранятся в ODT.<br />
<br />
Запустите ОOo Writer и откройте нужную статью. Выделите все, все, нажав Ctrl+A, и скопируйте в буфер обмена (Ctrl+C). Вернувшись в Story Editor, вставьте текст, нажав Ctrl+V [отметим, что при этом все форматирование исходного документа будет утеряно – по крайней мере, так происходит в версии 1.3.3.2, – прим. ред.].<br />
<br />
Теперь статью необходимо переместить из окна редактора в текстовый блок. Для этого нажмите на кнопку с изображением зеленой стрелки на листе (Обновить текстовый блок) или используйте комбинацию клавиш Ctrl+U.<br />
<br />
Закрыв Story Editor, вы увидите на экране текст, набранный в три колонки. Но почему я не расположил его сразу же на четвертой странице? Дело в том, что, когда Scribus автоматически создал текстовые рамки на всех страницах, он связал их в единое целое. Добавив текст на четвертую страницу, мы бы с удивлением обнаружили его на первой. Чтобы этого не произошло, необходимо разорвать связь между текстовыми блоками на четвертой и третьей страницах. Как это сделать, будет показано ниже.<br />
<br />
[[Изображение:LXF85 61 3.png|thumb|(Рис. 4) Диалог свойств объекта.]]<br />
Скорее всего, текст на странице будет набран не тем шрифтом, который вы планировали использовать. Убедитесь, что текстовая рамка по-прежнему выделена и выберите пункт Стиль в главном меню (рис. 4).<br />
<br />
В пункте Шрифт укажите подходящую гарнитуру – скажем, Verdana Regular. Размер – кто бы мог подумать? – позволяет указать кегль [размер шрифта в пунктах – прим. ред.], например, 9. Эффекты оставим на потом и перейдем к Выключке – она позволяет выравнивать текст в пределах колонки по левому краю, по центру, по правому краю и по ширине. Если вы не хотите, чтобы текст на странице выглядел неряшливо (это не всегда хорошо), установите выключку по ширине.<br />
<br />
Ну вот, текст стал выглядеть более опрятно. Теперь неплохо бы расставить переносы. Это можно сделать через главное меню приложения – выберите Расш. -> Вставить переносы.<br />
<br />
То, что получилось, выглядит весьма неплохо, но где, собственно, «шапка» – заголовок, приковывающий внимание читателей? Давайте изменим размер текстового блока – уменьшим его по вертикали, освободив место для названия статьи. Вспомните те самые контрольные точки-квадратики – цепляйте среднюю верхнюю мышью и тяните вниз. Текстовый блок станет меньше, а текст, который не уместился на этой странице, перейдет на следующую.<br />
<br />
Пока не будем усердствовать в изысках и просто добавим в верхнюю часть страницы еще один текстовый блок, куда и впишем название. Для этого: <br />
* Нажмите кнопку Добавить текстовый блок – она находится на панели инструментов и выглядит как лист с буквой «А» или нажмите клавишу T. Курсор мыши изменит вид на копию пиктограммы; <br />
* Щелкните мышью по свободному месту и, не отпуская кнопки, потяните вправо-вниз, тем самым создавая текстовый блок. Щелкнув внутри блока, можно двигать его по экрану – для более точного перемещения используйте клавиатуру (клавиши управления курсором); <br />
* Щелкните правой кнопкой мыши на блоке и выберите Изменить текст. В открывшемся редакторе Story Editor впишите заголовок статьи и нажмите Обновить текстовый блок и выйти (кнопка с зеленой галочкой).<br />
<br />
То, что вы увидите, будет мало похоже на заголовок, но это легко исправить, используя свойства объекта. Чтобы вызвать диалог свойств, нажмите F2. Откроется окно Свойства, в котором обнаружатся вкладки: <br />
* X,Y,Z – позволяет изменять размер объекта, поворачивать его по часовой стрелки и против, используя в качестве центра поворота либо центр рамки, либо один из ее углов. Здесь также можно создать зеркальную копию или заблокировать возможность изменения объекта. <br />
* Очертания – здесь можно указать радиус скругления углов объекта и включить функцию обтекания объекта текстом. <br />
* Текст – в этой вкладке можно указать шрифт и его размер, а также цвет надписи и другие параметры. <br />
* Линия – имеется ввиду линия окантовки блока. С ее помощью создаются различные эффекты – например, рамки. Если же рамка вокруг блока, наоборот, не нужна – толщину линий следует установить в 0. <br />
* Цвета – позволяет изменить цвет фона и надписи.<br />
<br />
Мы уделили описанию диалога свойств должное внимание, поскольку при работе в Scribus вы будете обращаться к нему постоянно. По большому счету, его вообще не стоит закрывать – лучше расположить где-нибудь сбоку.<br />
<br />
[[Изображение:LXF85 62 1.png|thumb|(Рис. 5) Диалог свойств объекта.]]<br />
Сейчас нас интересует вкладка Текст (см. рис. 5). Выберите на ней нужный шрифт и щелчками мыши увеличьте его размер – под строгим визуальным контролем. Здесь же укажите выключку по центру.<br />
<br />
Далее можно заняться украшательством – изменить цвет заголовка, добавить падающую от букв тень. Здесь нам тоже поможет вкладка Текст. Нажмите на кнопку с буквой «S» – Shadowed Text. У надписи появится тень. Если вы ее не видите, значит ее цвет установлен равным цвету текста или отсутствует вовсе. Выбор цвета производится посредством выпадающих списков, расположенных чуть выше кнопок. Назовем их условно «карандаш» и «ведро». Первое отвечает за цвет тени, второе – за цвет букв. Для примера, назначьте буквам цвет «хаки» – Khaki4, а тени – черный (Black). Таким образом можно добиться весьма интересных эффектов.<br />
<br />
Если в заголовке есть какое-то слово, которое вы хотите выделить, можно изменить цвет именно этого слова. Щелкните по кнопке с буквой «A» (Изменить содержимое блока) в панели инструментов Scribus или нажмите клавишу E. Затем выделите мышью требуемое слово и установите требуемые параметры (например, цвет «Lavender») на вкладке Текст.<br />
<br />
В принципе, если заголовки такого плана вас устраивают, то на этом можно и остановиться. Те же, кто жаждет большего, могут применить пару эффектов, например, написать по диагонали «Проверено, мин нет» – на манер штампа-печати. Для этого необходимо создать еще один текстовый блок, как было описано выше, добавить новую надпись, а затем перейти на вкладку X,Y,Z и в поле Поворот указать, например, 30 градусов.<br />
<br />
Теперь ваш заголовок выглядит гораздо живее, но впечатление портят траурные рамки вокруг блоков. Как было сказано выше, для их устранения достаточно перейти на вкладку Линия в диалоге свойств и установить Толщину линии в 0.<br />
<br />
Мы преуспели в создании текста, но материал без иллюстраций – как детектив без погони. Давайте разбавим наши умные мысли парой-тройкой картинок.<br />
<br />
===Добавим иллюстрации===<br />
{{врезка|left|Ширина=190px|<br />
Заголовок=Скорая помощь|<br />
Содержание=Обтекание объекта текстом можно настраивать и по другому: используйте способ, описанный на следующей странице применительно к редактированию сложных контуров обтекания через диалоговую панель Узлы, для простого масштабирования контурной линии и, следовательно, увеличения расстояния от текста до обтекаемого объекта. За масштабирование отвечают 2 нижних ряда кнопок. <br />
[[Изображение:LXF85 63 3.png|center]]<br />
Не правда ли очень просто? На самом деле, это еще и удобно. Попробуйте сами – и вам понравится!}}<br />
<br />
Позволю себе немного отвлечься и коснуться такой темы, как расположение картинок на странице. Газеты предпочитают располагать большие картинки в строго определенных местах. В журналах, особенно развлекательного толка, такой подход применяется крайне редко. <br />
<br />
Представьте, что ваш рабочий стол (настоящий рабочий стол – добро пожаловать в реальный мир) – это и есть страница. Возьмите несколько фотографий и небрежно киньте их. Какие-то снимки упадут вкривь, какие-то вкось, да и размер у них у всех разный. Вот такой вариант – самый распространенный в журнальной верстке. Это придает материалу динамичность – взгляните хотя бы на страницы Linux Format.<br />
<br />
Теперь можно добавить картинку и к нашей статье. Выберите Добавить изображение (клавиша I) на панели инструментов – курсор мыши вновь изменит свой вид. Далее, зажав клавишу мыши, нарисуйте блок, в котором будет располагаться картинка. Вызовите контекстное меню блока (правой кнопкой мыши) и выберите в нем пункт Вставить изображение.<br />
<br />
В появившемся диалоговом окне выберите нужный файл и нажмите кнопку Открыть (поддерживаются форматы TIFF, JPG, PNG, GIF, PSD и другие, в том числе, PDF. Запомните это обстоятельство – оно пригодится, когда ваш журнал станет популярным и вы захотите добавить в него рекламные модули). Картинка появится в отведенном для нее месте. Обратите внимание – она может «не влезть» в рамку или же, наоборот, оказаться слишком маленькой. Оба случая поддаются лечению.<br />
<br />
[[Изображение:LXF85 63 1.png|thumb|(Рис. 6) Масштабируем изображение.]]<br />
Нажмите F2 (появится диалог свойств) и отметьте пункт Масштабировать до размеров рамки во вкладке Изображение – картинка будет пропорционально растянута до заполнения ближайшего измерения блока. После этого подгоните другое измерение под размер получившейся картинки. Если сохранность пропорций не нужна, можно снять галочку с пункта Пропорционально (см. рис. 6) Изображение заполнит весь изначально созданный блок.<br />
<br />
Если вы создали изображение не на пустой странице, то уже наверняка заметили, что иллюстрация закрыла собой текст. Следовательно, необходимо заставить его обтекать изображение.<br />
<br />
[[Изображение:LXF85 63 2.png|thumb|(Рис. 7) Теперь иллюстрации не заслоняют текст статьи.]]<br />
В диалоге свойств (как видите, я не зря советовал держать его открытым) перейдите на вкладку Очертания и отметьте пункт Текст обтекает рамку (см. рис. 7)<br />
<br />
Теперь текст обтекает рамку, но... он расположен слишком близко к изображению. Один из способов исправить это – добавить фигуру, немного превышающую по своим размерам изображение, и заставить текст обтекать ее.<br />
<br />
Чтобы достичь этого, выберите Добавить фигуру (S) в панели инструментов – будет разумно начертить вокруг изображения прямоугольник. Теперь перед нами черный квадрат. Радоваться не стоит. Это не тот, знаменитый квадрат Малевича, хотя похож... Похож!<br />
<br />
В диалоге свойств, перейдите на вкладку Цвет и выберите в качестве значения цвета Никакого. Черный квадрат исчезнет, оставив после себя рамку. Перейдите на вкладку Очертания и отметьте пункт Текст обтекает рамку. Теперь осталось только проделать уже знакомую нам последовательность действий: Линия – Толщина линии – 0. Вуаля!<br />
<br />
===Скругляем углы===<br />
Зачастую картинка смотрится более приятно, если имеет не ровные, а закругленные углы.<br />
<br />
Перейдите ко вкладке Начертания все в том же диалоге свойств и введите в поле Закругленные углы отличную от нуля величину – например, 10.<br />
<br />
Но что это? Вы не можете выбрать блок с картинкой – он перекрыт блоком Фигура. Давайте опустим вспомогательную фигуру ниже блока с изображением. Для этого достаточно щелкнуть мышью на блоке Фигура и нажать клавишу End. Поднять блок выше можно клавишей Home. Единственное, что хотелось бы отметить – если блок «Фигура» перекрывает по размерам блок с изображением, то достаточно заставить текст обтекать только фигуру.<br />
<br />
===Вот, новый поворот===<br />
Давайте добавим на страницу вторую картинку и, для разнообразия, слегка повернем ее.<br />
<br />
Разместите изображение, как было описано выше, а затем укажите угол поворота (скажем, 356 градусов – небольшой поворот по часовой стрелке) на вкладке X, Y, Z в диалоге свойств. Загляните также в Очертания – скруглить углы. Кстати, «pt» после числа можно и не указывать.<br />
<br />
Аналогичным образом добавьте фигуру, которая будет обеспечивать поля вокруг изображения (не забудьте повернуть ее на те же 356 градусов). При этом текст, скорее всего, образует причудливую и плохо читаемую колонку. Чтобы обойти такой неприятный эффект, прибегнем к небольшому трюку (в журнале Linux Format его очень любят) – разместим одну большую фигуру, которая однозначно «перекроет» угол поворота иллюстрации, и лишь затем вставим саму иллюстрацию. Фигуру можно заменить на блок – эффект будет в точности таким же.<br />
<br />
===Раз статья, два статья...===<br />
{{врезка|left|Ширина=150px|<br />
Заголовок=Скорая помощь|<br />
Содержание=Если вы расположили все блоки так, как задумали, и не желаете случайно нарушит гармонию, любой объект можно заблокировать, т.е. сделать недоступным для изменений. Для этого выделите блок и нажмите Ctrl+L. Чтобы разблокировать объект, снова нажмите Ctrl+L.}}<br />
<br />
[[Изображение:LXF85 64 1.png|thumb|left|(Рис. 8) Изменяем контуры объекта.]]<br />
Настало время добавить в наш журнал второй материал. Если предыдущая статья заняла не всю страницу и вы желаете разместить начало следующей статьи на ней же, тогда достаточно щелкнуть на текстовом блоке и выбрать Изменить текст, после чего в Story Editor дописать новый текст. Но лучше все-таки так не делать.<br />
<br />
Если вы желаете, чтобы новая статья начиналась с новой страницы, то для начала необходимо разорвать связь между страницами. А для этого ее надо увидеть.<br />
<br />
Чтобы включить отображение связей, выберите в главном меню пункт Вид -> Показывать связь между блоками. На экране появятся стрелочки, указывающие, куда будет переноситься текст, если предыдущий блок окажется заполненным.<br />
<br />
Перейдите на страницу, где находится окончание первой статьи – вы увидите, что стрелка указывает на связь со следующей станицей. Щелкните на текстовый блок с окончанием статьи. На верхней панели найдите значок с расходящимися в разные стороны стрелками (Разорвать связь текстовых блоков, клавиша U). А теперь щелкните на блок, расположенный на следующей странице. Готово – стрелка связи исчезла.<br />
<br />
Допустим теперь, что ваша новая статья содержит элемент сложной формы – наподобие «звездочки» «Через месяц», которая до последнего времени встречалась на страницах LXF. Как заставить текст обтекать саму звездочку, а не описанный вокруг нее квадрат?<br />
<br />
Вставьте текст и изображение для новой статьи как было описано выше, а затем откройте диалог свойств картинки и на вкладке Очертания отметьте пункт Текст обтекает рамку. Там же отметьте галочкой пункт Контурная линия, а затем нажмите кнопку Изменить очертания. Появится панель Узлы, изображенная на рис. 8 – отметьте на ней пункт Изменить контурную линию. Обратите внимание, что вокруг картинки появилась синяя рамка с четырьмя точками в вершинах прямоугольника. Перетаскивая эти точки-узлы, можно изменять контурную линию, которую и обтекает текст. Но четырех точек мало, поэтому в диалоге Узлы нажмите кнопку с изображением линии с точкой и знаком «+» (Добавить узлы) и щелкайте в тех местах контурной лини, где вам хотелось бы увидеть дополнительные узлы. Когда точек будет достаточное количество, нажмите кнопку Переместить узлы в том же окне и растащите узлы так, чтобы очертания контурной линии примерно соответствовали контуру фигуры.<br />
<br />
===Добавим страницу===<br />
{{врезка|Ширина=300px|<br />
Заголовок=Scribus – вне Linux|<br />
Содержание=Scribus использует инструментарий Qt (что само по себе редкость – большинство других проектов из мира Linux-графики построены на GTK), поэтому нет ничего удивительного в том, что он комфортно чувствует себя и за пределами Linux – в Mac OS X и Windows. Как известно, Qt 3 не имеет свободной версии для платформы Microsoft, что создает некоторые трудности. Компания Trolltech пошла навстречу разработчикам Scribus, сделав для них исключение из общей схемы лицензирования – так что теперь ничто не препятствует дальнейшему развитию и становлению Scribus.}}<br />
<br />
Помните, я говорил вам, что число страниц в документе можно изменить в любой момент? Это чистая правда. Для добавления страниц следует воспользоваться пунктами Страница -> Вставить главного меню Scribus. В появившемся диалоге нужно указать число новых страниц (поле «Вставить») и их положение в документе.<br />
<br />
Вставленные страницы будут лишены текстовых блоков. Не беда – всю разметку можно скопировать с уже существующих (очень желательно – чистых) страниц документа. Выделите текстовый блок щелчком мыши и нажмите Ctrl+C, а затем перейдите к неразмеченной странице и нажмите Ctrl-V.<br />
<br />
Нам осталось преодолеть последнее препятствие – научиться создавать связанные текстовые блоки. Перейдите к одной из свежевставленных неразмеченных страниц (или удалите текстовый блок с размеченной клавишей Del) и создайте три новых текстовых блока (клавиша T). Выделите первый текстовый блок и выберите «Связать текстовые блоки» (N) в панели инструментов. Щелкните мышью на блок, в который должен «перетекать» лишний текст – появится стрелка. Проделайте ту же операцию и с третьим блоком – стрелки покажут, что теперь они образуют единое целое.<br />
<br />
Чтобы убедиться в этом, щелкните на любом из созданных блоков и выберите Изменить текст. Скопируйте достаточно длинный текст в окно Story Editor и обновите рамку с текстом.<br />
<br />
Поздравляю – вы успешно прошли «курс молодого бойца» Scribus. Он, безусловно, не всеобъемлющ, но если вы уверены, что можно сделать иначе, можно сделать лучше, чем написано на этих страницах, да и вообще все здесь перевернуто с ног на голову – я рад, что вы так думаете. Это означает, что вы не только поняли, но и проделали все то, что я вас просил, и двинулись дальше, развивая свой талант и способности. Надеюсь, мы с вами доказали, что можно комфортно верстать и в свободных программах. В этом и был смысл. Как вы думаете?<br />
<br />
===Полезные ссылки ===<br />
* [http://docs.scribus.net Официальная документация Scribus]<br />
* [http://wiki.scribus.net Публичный Wiki о Scribus]<br />
* [[wikipedia:Category:Typography|Category:Typography]] — английская Википедия о типографике<br />
* [[wikipedia:ru:Категория:Типографика|Категория:Типографика в русской Википедии ]]</div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_63_3.pngФайл:LXF85 63 3.png2009-10-17T18:57:42Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_64_1.pngФайл:LXF85 64 1.png2009-10-17T18:55:58Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_63_2.pngФайл:LXF85 63 2.png2009-10-17T18:55:18Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_63_1.pngФайл:LXF85 63 1.png2009-10-17T18:54:50Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_62_1.pngФайл:LXF85 62 1.png2009-10-17T18:51:38Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_61_3.pngФайл:LXF85 61 3.png2009-10-17T18:50:34Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_61_2.pngФайл:LXF85 61 2.png2009-10-17T18:50:02Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_61_1.pngФайл:LXF85 61 1.png2009-10-17T18:49:25Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF85_60_1.pngФайл:LXF85 60 1.png2009-10-17T18:48:04Z<p>Yaleks: </p>
<hr />
<div></div>Yalekshttp://wiki.linuxformat.ru/wiki/LXF105:DjangoLXF105:Django2009-10-17T18:24:50Z<p>Yaleks: Отмена правки № 8965 участника Gordano (обсуждение) - ссылки в тексте на строки!</p>
<hr />
<div>: '''Новая серия!''' Разрабатываем динамические web-приложения современным способом[[Категория:Учебники]]<br />
<br />
==''Django'': Новостной портал==<br />
<br />
{{Цикл/Django}}<br />
<br />
: '''ЧАСТЬ 1''' Нужен ли миру еще один новостной портал? Вряд ли больше, чем очередной интернет-магазин, но кого это останавливало! '''Никита Шультайс''' (http://shultais.ru) расскажет эту старую историю на новый лад.<br />
<br />
Сегодня каждый более-менее продвинутый пользователь желает иметь свой сайт. Одни устанавливают готовые системы управления web-содержимым (CMS), вторые пишут все с нуля, а третьи – используют web-каркасы (framework), позволяющие создавать отличные динамические web-сайты без особых усилий.<br />
''Django'' как раз и является таким каркасом, написанным на ''Python''. К<br />
числу задач, с которыми он помогает справиться, относятся:<br />
<br />
* Создание и обработка форм;<br />
* Разделение логики и представления с помощью мощной системы шаблонов;<br />
* Добавление, поиск, извлечение и удаление записей из базы данных, в объектно-ориентированном стиле (ORM);<br />
* Обработка URL с помощью регулярных выражений;<br />
* Автогенерация интерфейса администратора (в просторечии, «админки»);<br />
* Аутентификация и авторизация пользователей;<br />
* Кэширование как отдельных элементов, так и целых страниц;<br />
* Интернационализация сайта;<br />
* Создание и отправка сообщений по e-mail;<br />
* Тестирование;<br />
* Работа с сессиям, HTTP-запросами и cookie.<br />
<br />
Все эти возможности сочетаются с относительно высокой скоростью работы и простотой написания кода. Ну что, заинтересовались?<br />
Тогда приступим.<br />
<br />
===На исходную!===<br />
<br />
Дистрибутив ''Django'' можно скачать с официального сайта (http://www.djangoproject.com) или взять с '''LXFDVD'''. Желательно использовать<br />
версию из репозитория (0.97), но можно ограничиться и последним стабильным релизом – 0.96. Кроме того, для связи с сервером ''MySQL'' нам<br />
понадобится ''MySQLdb'' версии 1.2.1p2 или выше. После получения ''Django'',<br />
распакуйте архив, перейдите в появившийся каталог и выполните<br />
<br />
sudo python setup.py install<br />
[ваш пароль]<br />
<br />
При желании, можете заменить ''sudo'' на ''su'' и ввести пароль суперпользователя.<br />
<br />
Для начала работы нам нужно создать «проект», в котором будут<br />
храниться все наши файлы. Для этого перейдите в директорию, в<br />
которой вы собираетесь хранить проект (например, '''/var/www'''), и<br />
дайте команду<br />
<br />
python /путь/к/django/bin/django-admin.py startproject myproject<br />
<br />
после выполнения которой в текущем каталоге появится поддиректория с именем '''myproject'''.<br />
<br />
Рассмотрим ее внутреннюю структуру:<br />
myproject/<br />
__init__.py<br />
manage.py<br />
settings.py<br />
urls.py<br />
<br />
'''__init__.py''' – это специальный (как видно по двум подчеркиваниям в<br />
имени) файл, который указывает на то, что данный каталог является<br />
модулем (пакетом) языка ''Python''; '''manage.py''' – утилита, позволяющая<br />
управлять вашим проектом. '''Settings.py''' содержит его настройки, а '''urls.py''' – это так называемый «файл URL-карт». В нем указывается, какому адресу какой код соответствует.<br />
<br />
Для запуска проекта выполните из его директории команду<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_86_1.jpg|Рис. 1|300px]]Рис. 1. Оно работает, следовательно, существует!|Ширина=300px}}<br />
<br />
python manage.py runserver<br />
<br />
Она запустит встроенный в ''Django'' web-сервер, предназначенный<br />
специально для разработки сайтов. Сервер стартует на локальном<br />
хосте на порту 8000 и, если все пройдет успешно, вы увидите в консоли следующее сообщение:<br />
<br />
Validating models...<br />
0 errors found.<br />
Django version 1.0, using settings 'myproject.settings'<br />
Development server is running at http://127.0.0.1:8000/<br />
Quit the server with CONTROL-C.<br />
<br />
Направив свой любимый web-браузер по адресу<br />
http://127.0.0.1:8000/:, вы получите нечто похожее на рис. 1.<br />
<br />
===Настроим ''Django''===<br />
<br />
Как уже говорилось выше, основные настройки вашего проекта хранятся в файле '''settings.py'''. Откроем его и найдем строку '''DATABASE_ENGINE = ''''': она отвечает за СУБД, которую мы будем использовать в нашем проекте. Поскольку мы выбрали ''MySQL'', изменим эту строку<br />
на '''DATABASE_ENGINE = 'mysql''''. Далее, в '''DATABASE_USER''' укажем<br />
имя пользователя вашей базы данных (заметьте, что у него должны<br />
быть права на создание таблиц в БД), а в '''DATABASE_PASSWORD''' –<br />
его пароль. Если сервер баз данных запущен на локальном хосте и на<br />
порту по умолчанию, параметры '''DATABASE_HOST''' и '''DATABASE_PORT'''<br />
можно оставить пустыми. В поле '''DATABASE_NAME''' введите имя базы<br />
данных (не путайте его с именем СУБД!), которую будет использовать<br />
проект. Да, и не забудьте создать ее перед использованием. В частности, для ''MySQL'' это делается так:<br />
<br />
mysql --user=username --password=password<br />
mysql > CREATE DATABASE `myproject_base` DEFAULT CHARACTER<br />
SET utf8 COLLATE utf8_general_ci;<br />
<br />
Здесь '''username''' – имя пользователя, который имеет доступ к<br />
СУБД, '''password''' – его пароль, '''myproject_base''' – название БД, в которой будут храниться данные нашего проекта.<br />
<br />
Перейдем к секции '''INSTALLED_APPS''', которая отвечает за установленные в нашем проекте приложения. По умолчанию, команда<br />
startproject создает проект с четырьмя предустановленными приложениями общего назначения:<br />
<br />
INSTALLED_APPS = (<br />
'django.contrib.auth',<br />
'django.contrib.contenttypes',<br />
'django.contrib.sessions',<br />
'django.contrib.sites',<br />
)<br />
<br />
Каждое из них отвечает за свою специфическую область:<br />
<br />
* '''django.contrib.auth''' – система аутентификации;<br />
* '''django.contrib.contenttypes''' – каркас типов содержимого;<br />
* '''django.contrib.sessions''' – работа с сессиями;<br />
* '''django.contrib.sites''' – каркас, позволяющий управлять несколькими сайтами из одной установки ''Django''.<br />
<br />
Хотя эти приложения и перечислены в '''INSTALLED_APPS''', они еще не установлены окончательно, так как для них не созданы таблицы в<br />
базе данных. Для завершения инсталляции, выполните следующий<br />
код:<br />
<br />
python manage.py syncdb<br />
<br />
Данная команда создаст необходимые таблицы в базе данных,<br />
после чего вам будет предложено определить суперпользователя –<br />
администратора сайта:<br />
<br />
You just installed Django's auth system, which means you don't have any<br />
superusers defined.<br />
Would you like to create one now? (yes/no):<br />
<br />
Ответьте «'''yes'''», а затем следуйте инструкциям, заполняя поля<br />
имени, '''e-mail''' и пароля для суперпользователя. Вот теперь система<br />
полностью установлена.<br />
<br />
===Создание приложения===<br />
<br />
Перечисленные выше приложения ''Django'' – это, по сути, программы<br />
''Python'', предназначенные для решения конкретной задачи. Например,<br />
мы можем написать приложение-блог, которое будет создавать записи в личном интернет-дневнике, а также предоставлять другим пользователям возможность просматривать их. Для генерации нового приложения нужно просто скомандовать:<br />
<br />
python manage.py startapp news<br />
<br />
где '''news''' – имя нашего приложения; его-то мы и будем разрабатывать<br />
на протяжении всех четырех уроков. Задача '''news''' достаточно стандартна: это публикация, просмотр и обсуждение новостей. По традиции, давайте начнем с изучения структуры нашего приложения:<br />
<br />
news/<br />
__init__.py<br />
models.py<br />
views.py<br />
<br />
Как видно, оно состоит из трех файлов: '''__init__.py''', с которым<br />
мы уже встречались выше, '''models.py''' – места для описания моделей<br />
(схем таблиц в БД с некоторыми дополнительными данными) и '''views.py''', определяющего представления (код, который отвечает за логику<br />
вашего приложения).<br />
<br />
Работа с приложением обычно начинается с создания моделей,<br />
поэтому откройте файл '''models.py''' в вашем любимом текстовом<br />
редакторе и наберите следующий код:<br />
<br />
from django.db import models<br />
class News(models.Model):<br />
title = models.CharField(max_length=70)<br />
description = models.CharField(max_length=255)<br />
pub_date = models.DateTimeField()<br />
text = models.TextField()<br />
class Comment(models.Model):<br />
news = models.ForeignKey(News)<br />
username = models.CharField(max_length=70)<br />
text = models.TextField()<br />
pub_date = models.DateTimeField(auto_now_add=True)<br />
<br />
Мы создали две модели: первая ('''News''') отвечает за саму новость,<br />
а вторая ('''Comment''') – за комментарии к ней.<br />
<br />
Каждая модель (таблица, в терминах БД) представлена классом,<br />
который наследуется от '''django.db.models.Model'''. Все поля представляются объектом класса '''models.*Field'''. Имя поля используется как<br />
для создания столбцов в таблице БД, так и для доступа к данным<br />
через ''Django ORM'', поэтому для упрощения чтения и написания кода<br />
старайтесь давать полям осмысленные названия.<br />
<br />
Начнем с поля '''title''' класса '''News'''. Запись '''models.CharField''' указывает на то, что это поле является символьным, а '''max_length=70''' говорит, что мы можем записать в него максимум 70 символов. Соответственно,<br />
'''DateTimeField''' означает, что поле будет содержать дату в формате<br />
'''DateTime''' (атрибут '''auto_now_add''' в '''pub_date''' в классе '''Comments''' указывает на то, что поле при создании записи будет автоматически заполняться текущим временем), '''TextField''' – это обычный текст.<br />
<br />
Особое значение имеет '''ForeignKey''', который говорит, что поле<br />
является внешним ключом (в связке «один-ко-многим») по отношению к модели (таблице) '''News'''. То есть, у каждого комментария<br />
есть поле news, хранящее номер новости, к которой относится комментарий.<br />
<br />
Теперь, когда модели созданы, приложение можно установить.<br />
Этот процесс проходит в два этапа:<br />
<br />
# Инициализация приложения в '''settings.py''' в разделе '''INSTALLED_APPS''';<br />
# Создание таблиц в базе данных.<br />
<br />
Откройте '''settngs.py''' и добавьте к '''INSTALLED_APPS''' строку ''''myproject.news''''. Заметьте, что '''INSTALLED_APPS''' – это кортеж ''Python'',<br />
поэтому будьте внимательны с синтаксисом. Теперь перейдите в корень нашего проекта и наберите команду:<br />
<br />
python manage.py syncdb<br />
<br />
Она, как мы уже знаем, создаст необходимые таблицы в БД.<br />
<br />
===Автогенерация «админки»===<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_1.jpg|Рис. 2|250px]]Рис. 2. Врата в административный раздел ''Django''. |Ширина=250px}}<br />
<br />
Одной из замечательных возможностей ''Django'' является автогенерация раздела администрирования сайта. Конечно, в серьезных работающих проектах его использование не вполне удобно, однако на стадии разработки и в небольших проектах он очень полезен.<br />
<br />
Для того, чтобы подключить систему администрирования, нужно выполнить несколько шагов (в той очередности, в которой они представлены ниже):<br />
# Добавить '''django.contrib.admin''' в '''INSTALLED_APPS''' вашего проекта.<br />
# Выполнить ''python manage.py syncdb'' из корневого каталога проекта.<br />
# Открыть myproject/urls.py и раскомментировать строку<br />
# (r'^admin/', include('django.contrib.admin.urls')),<br />
<br />
После этого запустите web-сервер (''python manage.py runserver'') и перейдите по адресу http://127.0.0.1:8000/admin/. Вы увидите форму авторизации для входа в систему администрирования:<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_2.jpg|Рис. 3|300px]]Рис. 3. Административный интерфейс ''Django''.|Ширина=300px}}<br />
<br />
Введите имя и пароль суперпользователя, и – добро пожаловать<br />
в «админку» ''Django''! На ее главной странице (рис.3) можно видеть<br />
несколько областей:<br />
* Вверху – панель приветствия, просмотра документации, изменения пароля и выхода из системы.<br />
* Посередине слева – установленные приложения (название и модели) и действия, которые можно совершать с ними (добавление и изменение записей).<br />
* Посередине справа – последние действия, которые были произведены в «админке».<br />
<br />
Вы заметили, что нашего приложения '''news''' в нет списке (в журнале<br />
этого не видно, но уж поверьте мне на слово)? Все правильно: просто<br />
так приложения в нем не появляются – для этого нужно выполнить<br />
несколько несложных действий. Откройте файл моделей ('''models.py''')<br />
приложения news и добавьте в каждую модель подкласс.<br />
<br />
class Admin:<br />
pass<br />
<br />
Сохраните файл моделей и перезагрузите страницу. Теперь наше<br />
приложение должно быть доступно в «админке». Если бы мы использовали какой-то другой HTTP-сервер (например, ''Apache''), нам бы<br />
пришлось бы перегружать его после каждого изменения в исходных<br />
кодах. А это очень неудобно, особенно когда процесс разработки в<br />
самом разгаре.<br />
<br />
Ну что, добавим первую новость? Найдите на странице строку<br />
'''Newss''' (это не опечатка – ''Django'' автоматически добавляет окончание<br />
'''-s''' к именам моделей) и перейдите по ссылке '''Add'''. Откроется форма для<br />
добавления новости:<br />
<br />
Заполните все поля и нажмите кнопку '''Save''' [Сохранить]. Вы будете перенаправлены на страницу списка доступных новостей. Пока что он состоит из одной новости, которую мы только что добавили, но<br />
как только их станет больше, возникнет одно неудобство: все новости<br />
будут отображаться как '''News object''' [Объект класса News], и мы быстро<br />
запутаемся, где какая. Чтобы видеть заголовок новости, изменим<br />
'''models.py''' приложения '''news''', добавив в модель '''News''' следующий код:<br />
<br />
{{Врезка|Содержание=[[Изображение:LXF105_88_3.jpg|Рис. 4|300px]]Рис. 4. Форма для добавления новостей.|Ширина=300px}}<br />
<br />
def __unicode__(self):<br />
return self.title<br />
<br />
Обновите страницу – у новостей появятся осмысленные названия.<br />
Давайте добавим еще одну новость, но на этот раз оставим поле '''Title'''<br />
пустым, в поле '''Date''' напишем слово «дата», а в поле '''Time''' – «время»<br />
и попробуем сохранить ее в базе. Что, ''Django'' ругается? И правильно делает – нечего оставлять поля пустыми. Обратите внимание, что<br />
прочие поля (которые были введены верно) остались нетронутыми, и<br />
вам осталось только исправить ошибки, а не заполнять форму заново, как это часто бывает на сайтах «средней руки».<br />
<br />
===Публикация в сети===<br />
<br />
Хорошо, создавать записи («объекты» в терминах ''Django ORM'') мы научились, а дальше-то что? Дальше нам надо разместить их на сайте – ведь<br />
от новостей, которые никто не видит, нет пользы. Чтобы сделать это,<br />
нужно опять пройти через несколько несложных этапов:<br />
<br />
* Создать представление (функцию, отвечающую за логику), которое будет выбирать нужные нам объекты из базы данных и обрабатывать их в соответствии с нашими потребностями;<br />
* Создать шаблон, который будет отвечать за стиль отображения данных;<br />
* Передать выбранные объекты в шаблон;<br />
* Связать URL с нашим представлением.<br />
<br />
Порядок тут особой роли не играет. К тому же, за разные действия<br />
могут отвечать разные люди: за представления – программист, за<br />
шаблоны – дизайнер.<br />
<br />
Начнем с представлений. Они, как мы знаем, хранятся в файле<br />
'''views.py''' в корне каждого приложения. Перейдите в директорию '''news'''<br />
и откройте файл '''views.py'''. Затем добавьте следующий код (разумеется,<br />
номера строк приведены исключительно для удобства):<br />
<br />
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS"><br />
from datetime import datetime<br />
from django.template.loader import get_template<br />
from django.http import HttpResponse<br />
from django.template import RequestContext<br />
<br />
from news.models import News<br />
<br />
def last_news(request):<br />
news = News.objects.filter(<br />
pub_date__lte=datetime.now()).order_by(«-pub_date»)[:10]<br />
template = get_template(“news/last_news.html”)<br />
context = RequestContext(request, {<br />
“last_news”:news,<br />
})<br />
return HttpResponse(template.render(context))<br />
</source><br />
<br />
Первые четыре строчки загружают необходимые функции и классы:<br />
* '''datetime''' – тип для работы с датой и временем;<br />
* '''get_template''' – функция, которая ищет и возвращает шаблон;<br />
* '''HttpResponse''' – основной HTTP ответ;<br />
* '''RequestContext''' – специальный класс, с помощью которого можно определять переменные, используемые в шаблонах.<br />
<br />
Далее (строка 6) происходит импорт класса модели наших новостей. С<br />
его помощью мы получаем доступ к ''Django ORM'', и, следовательно, к объектам в нашей базе данных.<br />
<br />
Функция '''last_news''' – это и есть представление. Заметьте, что она принимает обязательный аргумент '''request''', через который передаются параметры HTTP-запроса.<br />
<br />
Что же происходит при вызове '''last_news'''? Сначала мы извлекаем<br />
объекты из базы данных (строки 9–10). Конструкция '''filter''' ограничивает<br />
выборку по какому-то условию, в нашем случае '''pub_date__lte=datetime.now()''' означает, что дата публикации новостей должна быть меньше или<br />
равна ('''lte''' – «less than or equal to») текущей дате ('''datetime.now()'''). Это<br />
позволит нам создавать новости «на будущее», и они не будут отображаться на сайте до тех пор, пока дата их публикации не станет раньше или<br />
равной текущей. '''order_by''' – сортирует записи по определенному столбцу,<br />
в нашем случае – '''pub_date''', а знак минус означает, что сортировка будет<br />
произведена в обратном порядке. И наконец '''[:10]''' – срез, который указывает, что извлекать нужно только 10 последних записей.<br />
<br />
В строке 11 мы получаем объект шаблона, передавая в функцию<br />
'''get_template''' путь до него. Строки 12–14 отвечают за наполнение наших<br />
шаблонов какими-то данными, причем мы передаем в шаблон весь HTTP-<br />
запрос (request) и извлеченные новости (на самом деле, они еще даже<br />
не извлечены: просто создан объект, с помощью которого новости будут<br />
получены при первом обращении к ним). Обратите внимание, что данные<br />
передаются в шаблон с помощью словаря, где ключ – это имя переменной,<br />
которая будет доступна в шаблоне, а значение – ее значение.<br />
<br />
Ну и, наконец, в последней строке мы возвращаем стандартный HTTP-<br />
ответ, в который передаем готовый заполненный шаблон. Вот только... где<br />
взять шаблон?<br />
<br />
===Шаблоны===<br />
<br />
Для начала подготовим базовый шаблон – '''index.html'''. Создадим в корне<br />
нашего проекта каталог media для хранения статичных файлов (изображений, шаблонов, стилей и т.д.), а уже в '''media''' – подкаталог '''templates''', в<br />
который и поместим файл '''index.html''' со следующим содержимым:<br />
<br />
<html><br />
<head><title>My site</title></head><br />
<body><br />
<nowiki><a href=“/news/”>News</a><br/></nowiki><br />
{% block application %}<br />
Welcome to site.<br />
{% endblock %}<br />
</body><br />
</html><br />
<br />
Шаблон – это обычный текстовый файл, содержащий специальные<br />
конструкции языка шаблонов ''Django''. В '''index.html''' содержится только одна<br />
конструкция, которая определяет блок '''application''' (строки 6-8). Она называется «тэгом», причем тэг начинается с '''{%''', а заканчивается '''%}'''. Внутри<br />
этого блока находится приветствие, как это часто бывает на сайтах. ''Django''<br />
еще не знает, где искать шаблон, поэтому откроем '''settings.py''', найдем кортеж '''TEMPLATE_DIRS''' и добавим в него строку '''/path/to/project/myproject/media/templates/''', где '''/path/to/project''' – путь до вашего проекта; у меня<br />
это '''/var/www'''.<br />
<br />
{{Врезка|Заголовок=Скорая помощь|Содержание=Если вы не увидели ни одной новости (при условии, что они были добавлены), то скорее всего, вы не попали в нужный часовой пояс. Когда мы вызываем функцию '''datetime.now()''', она возвращает время относительно часового пояса, заданного в переменной<br />
'''TIME_ZONE''' в файле '''settings.py'''. По умолчанию в нем содержится '''America/Chicago'''. Все, что вам нужно – это изменить значение на название вашего часового пояса на английском, например, на '''Asia/Krasnoyarsk'''. Cписок часовых поясов можно найти в директории '''/usr/share/zoneinfo/'''<br />
в файле '''zone.tab'''. |Ширина=200px}}<br />
<br />
Теперь, когда базовый шаблон готов, перейдем к шаблону новостей.<br />
Опять же, создадим в директории нашего приложения ('''news''') каталог<br />
'''templates''', внутри '''templates''' создадим каталог '''news''', а в '''templates/news'''<br />
добавим файл '''last_news.html'''. Заметьте, что имя файла шаблона совпадает с именем представления, к которому оно относится. Так делать не<br />
обязательно – это просто правило хорошего стиля.<br />
<br />
Сам файл '''last_news.html''' может иметь следующий вид:<br />
<source lang="python" line="GESHI_NORMAL_LINE_NUMBERS"><br />
{% extends “index.html” %}<br />
<br />
{% block application %}<br />
{% for news in last_news %}<br />
<nowiki>[{{ news.pub_date|date:»d.m.Y»}}]</nowiki><br />
<nowiki><strong>{{ news.title }}</strong></nowiki><br />
<nowiki><p>{{ news.description }}</p></nowiki><br />
{% endfor %}<br />
<br />
{% endblock %}<br />
</source><br />
Первая строка означает, что шаблон новости расширяет шаблон '''index.html'''. В строке 3 мы открываем блок '''application''' (он, как вы помните,<br />
идет из '''index.html''') и переопределяем его. В строках 5–8 мы создаем цикл<br />
по объектам '''last_news''' (которые были переданы в шаблон из нашего представления). В строках 6–8 мы вставляем данные, относящиеся к каждой<br />
новости, из '''last_news'''. Помимо тэгов, в шаблоны можно помещать переменные, имена которых будут заменены их значениями. Для этого используется конструкция '''<nowiki>{{ имя_переменной }}</nowiki>'''. В строке 7 мы обращаемся<br />
к переменной '''news''', но каждая новость имеет несколько полей (в соответствии с тем, что мы определили в '''models.py'''), поэтому мы указываем<br />
конкретное поле – '''title''', что в конечном счете выведет заголовок новости.<br />
Особое внимание нужно обратить на запись в строке 6, где мы не просто<br />
обращаемся к дате публикации новости '''news.pub_date''', но и применяем<br />
фильтр форматирования '''|date:«d.m.Y»''', который позволяет вывести дату<br />
в более традиционном для России виде.<br />
<br />
Последнее, что нам осталось – это связать URL с представлением.<br />
Откроем '''urls.py''' и после строки<br />
<br />
(r'^admin/', include('django.contrib.admin.urls')),<br />
<br />
добавим<br />
<br />
(r'^news/', 'news.views.last_news').<br />
<br />
Данный код означает, что при переходе к http://www.mydomain.ru/news/ будет выполняться представление '''news.views.last_news'''.<br />
<br />
Затем допишите в самый конец файла<br />
<br />
urlpatterns += patterns('django.views.generic.simple',<br />
(r'^$','direct_to_template', {'template': 'index.html'}),)<br />
<br />
Эта запись говорит, что при обращении к корню сервера должен<br />
использоваться шаблон '''index.html'''.<br />
<br />
Ну все, наш сайт готов. Запустите сервер разработчика и перейдите в<br />
вашем браузере по адресу http://127.0.0.1:8000/. Кликните по ссылке '''News'''<br />
и получите самые свежие новости! '''LXF'''</div>Yaleks