LXF87-88:Ответы
|
|
|
Содержание |
Ответы
- Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
SUSE: из DVD в CD
В: SUSE из августовского номера (LXF82) дала мне отличную возможность установить Linux и начать его изучение. У меня есть компьютер с DVD-приводом, но я хочу попробовать Linux не на нем, и я не представляю, как создать комплект инсталляционных CD для другого компьютера.
Алан Ханимен [Alan Honeyman]
О: Тот диск включал скрипт mkiso, предназначенный для создания образов CD из DVD. Однако он работает только в Linux. В этом месяце мы выложили на диск скрипт, позволяющий сделать то же самое в Windows. Эта несложная процедура займет немного больше времени, чем обычно, поскольку скрипт расположен не на том же самом диске. Начните с копирования winmkiso.bat с DVD куда-нибудь на жесткий диск. Неважно куда, по окончании процедуры его можно будет удалить. К примеру, Вы скопировали его на диск C:, а диск D: – это Ваш DVD-привод. Откройте командную строку и напечатайте
D: cd distros\suse c:\winmkiso
Вам придется довольно долго ждать, потому что для создания каждого образа CD скрипт просматривает все содержимое DVD-диска. Так уж устроена Jidgo – программа, выполняющая черную работу. Linux-версия кэширует данные при первом просмотре, чтобы увеличить скорость следующих; Windows-версия, по идее, делает то же самое, но в реальности создание каждого образа весьма продолжительно. В конце концов Вы получите пять образов на C:. Можете записать их с помощью Nero или другой программы прожига CD, но обязательно через опцию записи ISO-образа.
Если Вы захотите поместить создаваемые образы в другое место, укажите в команде winmkiso путь. Например, если Ваш DVD-привод E: и Вы хотите сохранить образы в D:\suse, выполните:
E: cd distros\suse c:\winmkiso D:\suse
Убедитесь, что указанный путь существует, иначе winmkiso просто будет расходовать ваше время, а в конце концов скажет, что не может сохранить ISO-образ. НБ
Верь мне
В: Мне подарили цифровую фотокамеру (производства Trust), но я не сумел заставить DigiKam распознать ее. Тем не менее, судя по /var/log/messages, новое USB-устройство было обнаружено, а камера включилась. Я ничего не знаю про USB, но я знаю, что камеры нет в /etc/fstab. Может, проблема в этом? И вправду ли DigiKam – лучшая KDE-программа для этих целей?
chris_debian, с форума LXF
О: Вам не нужна запись в fstab для того, чтобы работало автомонтирование в KDE: без нее оно работает даже лучше. Однако не все цифровые камеры работают как стандартные USB- накопители; некоторые используют специфичные протоколы. Показано ли в /var/log/messages, что система нашла разделы на USB-устройстве? Строчки вроде этих помогут Вам убедиться, что камера подключается как стандартный USB-накопитель:
usb-storage: waiting for device to settle before scanning Vendor: NIKON Model: NIKON DSC E3200 Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sda: 2012160 512-byte hdwr sectors (1030 MB) ... SCSI device sda: 2012160 512-byte hdwr sectors (1030 MB) sda: sda1
Если подобных строк нет, значит, камера не является стандартным накопителем. Однако DigiKam всетаки должен распознать ее, если она поддерживается Gphoto2 и Gphoto2 у Вас есть. Gphoto2 – клиент для библиотеки libGphoto2, используемой DigiKam. Если он не установлен, пакет можно найти на дисках дистрибутива. Вы должны запустить его от обычного пользователя и от root – любое различие в выводе укажет на проблему с правами доступа.
Чтобы узнать, поддерживается ли Ваша камера, запустите
gphoto2 --auto-detect
и посмотрите на вывод. Если камера не обнаружилась, проверьте архивы списков рассылки http://www.gphoto.org и пошлите разработчикам данные Вашей камеры.
DigiKam отлично управляется с цифровыми фотографиями, но если Вам нужно только скопировать изображения с фотоаппарата, это можно сделать через Konqueror, набрав в адресной строке camera:/. Отобразятся все подключенные и обнаруженные libGphoto2 камеры. НВ
E-mail отовсюду
В: У меня почтовый сервер на Linux (SquirrelMail). Как я могу проверить почту с любой Windows-машины без установки дополнительного ПО?
Энди Уайетт (Andy Wyatt)
О: Вы можете читать почту с помощью любого стандартного почтового клиента, даже Outlook Express. Если Вы не хотите настраивать для этого почтовый клиент (например, в случае временного пользования чужим ПК), лучше всего установить на сервере web-интерфейс: это позволит читать почту откуда угодно при помощи только web- браузера.
SquirrelMail (http;//www.SquirrelMail.org) – один из наиболее популярных и долгоживущих серверов web-почты. Вам нужно запустить сервер IMAP, поскольку большин- ство web-интерфейсов работают с ним. SquirrelMail – приложение PHP, запускаемое через web-сервер, так что понадобится установленный и настроенный Apache (или другой web-сервер). Установленный и настроенный (это хорошо документированный процесс) web-интерфейс даст Вам доступ к Вашему почтовому ящику через практически любой браузер.
Кроме SquirrelMail, есть и другие решения. Лично мне нравится RoundCube (http://www.RoundCube.net). Это Ajax-проект, и хотя его версия 0.1beta2, он выглядит вполне стабильным и функциональным. Выберете Вы какое-то решение из этих двух или предпочтете NeoMail (http://neocodesolutions.com/software/neomail), зависит от Ваших потребностей. Если доступ через web-интерфейс Вам нужен нечасто, подойдут все три проекта (я все же порекомендовал бы RoundCube). Если Вас ждет интенсивная работа и могут потребоваться какие-то продвинутые функции полноценного почтового клиента, протестируйте все три проекта и выберите наиболее подходящий.
Можно установить их все, поместив каждый в отдельную директорию на сервере, и определить, какой из них Вам удобнее. ДК
Потайной раздел
В: Мой тесть недавно заинтересовался GNU/Linux, и я посоветовал ему скачать Ubuntu. Я надеялся, что установка пройдет гладко, однако он столкнулся с проблемой, которая поставила меня в тупик. Может быть, решение и простое, но не для меня.
У него новый P4 Dell, поставляемый с предустановленной Windows XP. Есть 10 ГБ свободного места для установки. Обычная процедура установки прошла гладко и попросила перезагрузки. После перезагрузки Grub выдал ошибку 21. Покопавшись, тесть обнаружил, что Dell помещает на диск небольшой скрытый раздел с фирменными утилитами Dell. Видимо, MBR [Master Boot Record] на этих машинах куда-то смещен. Опрос на форумах Ubuntu показал, что это и вправду проблема и что никто не знает хорошего решения.
Так как настроить Grub, чтобы он нормально запускался? У меня нет физического доступа к машине, однако я знаю, что на ней только один жесткий диск. После установки список разделов выглядит примерно так:
hda1 Суперсекретные файлы Dell. hda2 Windows. hda3 Загрузочный раздел. / swap.
Майкл Маркс [Michael Marks]
О: Вы не сказали, что за модель Dell у Вашего тестя, но обычно утилиты Dell расположены на hda1, а загрузочным разделом с Windows является hda2. MBR должен быть на обычном месте, иначе BIOS не нашла бы разделы. Ошибка 21 – это ошибка второго этапа загрузки. То есть Grub уже загрузился из MBR и нашел в /boot файлы второго этапа.
Ошибка 21 означает «Выбранного диска не существует», так что скорее всего неправильно настроен Grub: возможно, он пытается загрузить ядро с несуществующего раздела. Если Grub способен загрузить Windows, значит, так оно и есть (и это доказывает, что сам Grub в порядке).
Нажмите Esc для входа в меню Grub, подсветите пункт Linux и нажмите е. Вы должны увидеть нечто вроде этого:
root (hd0,0) kernel /boot/vmlinuz-2.6.15-23-386 root=...
Велика вероятность того, что значение root неверно. Нажмите c и в подсказке Grub наберите
find /boot/vmlinuz-2.6.15-23-386
используя имя ядра, показанное в предыдущей строке. Это вернет местоположение раздела, содержащего образ ядра: возможно, это будет (hd0,2) или (hd0,4), в зависимости от того, расположен ли /boot на первичном или логическом разделе. Нажмите Esc для возврата в меню, подсветите строчку с ‘root’, нажмите е и измените ее согласно результату команды find. Затем нажмите Enter для применения изменений и ‘b’ для загрузки.
Убедившись, что все работает, можете изменить конфигурационный файл, запустив в терминале
sudo nano /boot/grub/menu.lst
Настройки меню вы найдете под строкой ## ## End Default Options ##. Плохо лишь то, что для этого потребуется физический доступ к компьютеру, или уж объясните все своему тестю. НБ
Автоверстка
В: Хотел бы напечатать картинку в BMP или JPEG и текст в одном отчете. Есть ли бесплатная утилита, позволяющая сделать это из командной строки? Хорошо бы генерировать отчеты скриптом.
et_phonehome_2, с форума LXF
О: Да, есть даже несколько способов. Выбор зависит от качества вывода и времени, которое Вы готовы на это потратить. Самый простой вариант – записывать отчет в HTML, тогда его можно просмотреть или напечатать в любом web-браузере. Следующий скрипт берет имена файлов с изображением и текстом и пишет HTML в стандартный вывод. Это очень простой пример, но Вы поймете идею:
#!/bin/sh echo “<html><head><title>Мой отчет</title></ head><body>” echo “<img src=\”$1\” align=\”right\”>” cat $2 echo “</body></html>”
На другом конце спектра находятся пакеты на базе TeX, типа teTeX или LyX. Эти программы типографского набора дают полный контроль над оформлением документа. Изучить их непросто, но результат оправдает Ваши ожидания. Исходные файлы TeX – обычный текст, и его легко генерировать из командной строки с использованием шаблона и небольшого скрипта.
LyX – более простое средство для создания файлов TeX. Это графическое приложение, но однажды создав в нем шаблон, Вы можете манипулировать им из скрипта. Можно разбить шаблон на три куска и сделать что-то вроде этого:
cat template1.lyx > report.lyx echo /путь/к/изображению >> report.lyx cat template2.lyx текст.txt template3.lyx >>report.lyx
Или вариант посложнее: используйте sed для подстановки путей к файлам изображения и текста в шаблоне. Полученный файл report.lyx можно преобразовать в несколько высококачественных форматов. Например,
lyx --export pdf report.lyx
сгенерирует отчет в формате PDF. LyX – мощная программа с хорошей документацией. Обязательно попробуйте ее.
Как альтернативу можно рассмотреть использование скриптов в программах вроде OpenOffice.org (ознакомьтесь с нашим учебником в LXF80–LXF84), AbiWord или Scribus. НБ
Упрямый Canon
В: У меня компьютер с Windows XP и SUSE 10.1 и лазерный принтер Canon LBP-1120. Под Windows принтер работает отлично. Беда в том, что как я ни бьюсь, с настройкой его в Linux ничего не получается. Я скачивал и устанавливал CAPT-драйверы, настраивал принтер, и ничего не происходило.
Единственное, чего удалось добиться – принтер прогнал чистый лист бумаги. Все, что я пытаюсь напечатать, просто сидит в очереди, и приходится скидывать документы себе на почту, принимать ее в Windows и печатать их оттуда.
Найджел Норфолк [Nigel Norfolk]
О: Это Win-принтер – один из тех, чей драйвер выполняет ряд функций прошивки. Как и в случае с родственными им win-модемами, заставить их работать вне Windows – не самая тривиальная операция, и не факт, что она завершится успешно. У Вас есть выбор: существует официальный драйвер от Canon – его-то, я думаю, Вы и пробовали, и еще один, рекомендованный http://www.linuxprinting.org и доступный на сайте http://www.boichat.ch/nicolas/capt. Я бы посоветовал попробовать оба драйвера, а также последовать инструкциям с http://linuxprinting.org/show_printer.cgi?recnum=Canon-LBP-1120.
Диагностируя проблемы печати, в первую очередь Вы должны проверять журналы CUPS. Наберите в терминале
tail -f /var/log/cups/error_log
и попытайтесь напечатать страницу. На терминале появятся сообщения, записываемые в лог-файл, они часто дают ключ к решению. По умолчанию сообщения довольно скудны. Если Вам нужна детальная информация, отредактируйте от лица root файл /etc/cups/cupsd.conf, найдите в нем строку
LogLevel info
и замените info на debug. Перезапустите CUPS из YaST или терминала:
/etc/init.d/cups restart
Теперь error_log будет содержать больше данных об ошибках. В качестве руководства перед приобретением принтера каждый линуксоид должен использовать сайт http://www.linuxprinting.org. НБ
Мониторинг сервисов
В: На моем сервере работает ряд сервисов. Есть ли способ следить за ними и перезапускать их, когда они умирают? Я подумывал о заданиях по типу Cron.
Генри Робертс [Henry Roberts]
О: Есть несколько программ, написанных специально для этой задачи, и самая популярная, вероятно, Mon, доступный на http://www.kernel.org/software/mon. У этой утилиты довольно длинный список зависимостей (в основном модулей Perl), поэтому лучше всего установить ее через менеджер пакетов вашего дистрибутива. Mon можно установить и на тот компьютер, за сервисами которого вы намерены следить, и на удаленный – доступный через сеть. Последний вариант лучше, поскольку так вы сможете узнать, что ваш сервер полностью упал.
Mon настраивается с помощью файла конфигурации /etc/mon. Вот, например, его часть, отвечающая за мониторинг web-сервера:
hostgroup servers www.example.com watch servers service http interval 5m monitor http.monitor period wd {Sun-Sat} alertevery 1h alert mail.alert webmaster@example.com
Утилита будет соединяться с сервером каждые пять минут и отсылать письмо с уведомлением, если он окажется недоступным. Параметр alertevery указывает, что при недоступности сервера программа должна продолжать проверки, но отправлять уведомления не каждые пять минут, а с часовым интервалом. Mon умеет не только наблюдать за сервисами, но и следит за дисковым пространством и процессами, помогая предотвратить атаки типа отказ в обслуживании.
В Mon предусмотрены разные виды уведомлений, включая отсылку сообщения на пейджер (а то зачем отправлять письмо, если почтовый сервер рухнул?). Модули слежения и уведомления – обычные скрипты на Perl, их можно подправить и приспособить под свои нужды. На сайте Mon есть множество пользователь- ских вариантов.
Другая похожая программа – Monit (http://www.tildeslash.com/Monit). Она работает по тому же принципу, что и Mon, но спроектирована специально для запуска на целевом сервере и способна выполнять самостоятельные операции по «спасению», а не просто уведомлять администратора. Monit умеет перезапускать сервисы, а кроме того, содержит встроенный web-сервер, дающий возможность просмотреть статистику по сервисам с удаленного компьютера. Самый безопасный подход – запускать Mon удаленно, а Monit локально. ДК
Инспектор трафика
В: Мне нужно следить, как используют канал мои серверы. Как можно вести учет сетевого трафика для всех или каких-то определенных интерфейсов?
Том Райс [Tom Rice]
О: Есть множество программ, отображающих информацию о трафике на каждом интерфейсе, большинство из них берут данные из
/proc. А отличаются они обычно способом представления полученной статистики.
Для простого обзора хороший выбор – Vnstat. Он доступен на http://humdi.net/Vnstat и, возможно, в репозитарии Вашего дистрибутива. Vnstat обычно запускается раз в час через Cron, собирает статистику из /proc и добавляет ее в базу данных. Вы можете обратиться к этой базе, запустив Vnstat из командной строки. Есть опции для отображения статистики за день, неделю или месяц, а также множество вариантов настройки вывода.
Если Вам нужно нечто покруче простого отчета в ASCII, попробуйте Traffic-vis (http://www.mindrot.org/traffic-vis.html). Этот пакет содержит несколько утилит; основную работу выпоняет Traffic-collector, запущенный постоянно. Traffic-collector отслеживает трафик на определенных сетевых интерфейсах и сохраняет данные в файле. Этот файл предназначен не для чтения напрямую, а для передачи другим программам, которые преобразуют его в отчет формата HTML, PostScript, обычного текста или GIF. Опция преобразования в HTML будет интересна, если Вы хотите следить за web-сервером. Тогда из CGI-скрипта можно запустить Traffic-tohtml и получать самую свежую информацию прямо в браузере. Есть и другие утилиты для обработки данных о трафике. Например, Traffic-exclude будет полезна, если у Вас есть ограничения по трафику или трафик платный, и Вы хотите знать, много ли байт уходит за пределы локальной сети, не вникая во внутреннее прохождение информации.
Назойливый KFind
В: Я использую Kubuntu 6.06 с пакетами lchthux, но мой вопрос скорее касается любого дистрибутива с KDE. Стандартная утилита поиска файлов сканирует каждую директорию, начиная с корневой и включая поддиректории в /mnt. Это значит, что KFind ищет файлы в других моих системах и, соответственно, зря тратит время. Есть ли возможность исключить из поиска '/mnt?
Все, что мне удалось придумать – размонтировать /mnt перед каждым использованием KFind, но это создает проблемы.
Дэйв [Dave], с форума LXF
О: ' 'KFind – это просто графический интерфейс к двум стандартным утилитам: locate и find. К сожалению, он не дает доступа ко всем опциям find, в частности, к установке областей поиска. Все, что можно сделать – указать начало поиска. Это не страшно, если надо найти файл в домашней директории (выбор по умолчанию), однако при просмотре всей файловой системы возникают проблемы вроде вашей.
К счастью, с помощью флажка Использовать файловый индекс (Use files index), вы можете выбрать
locate вместо find. Locate обращается к базе данных, построенной командой updatedb для ускорения поиска, однако находит только файлы, существовавшие до последнего обновления базы. Updatedb обычно запускается ежедневно или еженедельно как задача Cron. Пути поиска locate настраиваемы, так что Вы можете добавить /mnt в список PRUNEPATHS в файле /etc/updatedb.conf.
Для достижения желаемой гибкости, стоит изучить сами команды find и locate. Например, строка
find / /home -xdev -iname `*.pdf’
будет искать все PDF-файлы в каталогах / и /home, игнорируя (благодаря опции -xdev) другие файловые системы типа /proc, /dev или смонтированные под /mnt или /media. man-страницы locate и find содержат много полезной информации, но главное, что следует запомнить – locate быстра, зато find гораздо гибче, поскольку может учесть имя, тип и возраст файла, а также и директории. Размонтирование файловых систем из /mnt, конечно, поможет, но вызовет проблемы, если у Вас открыт файл на какой-то из этих систем. В любом случае, без него можно обойтись. НБ