LXF94:Ответы

Материал из Linuxformat.

(Различия между версиями)
Перейти к: навигация, поиск
(1. Решительный шаг)
(2. Прокси для деток)
Строка 57: Строка 57:
Эти команды временно смонтируют новый раздел в /mnt/tmp, переместят в него ваш домашний каталог и перезагрузят компьютер, после чего изменения станут необратимыми. Теперь в загрузочном меню не останется упоминания о Windows, а после загрузки Ubuntu то место, что прежде занимала Windows, можно будет использовать для хранения Ваших собственных файлов. '''НБ'''
Эти команды временно смонтируют новый раздел в /mnt/tmp, переместят в него ваш домашний каталог и перезагрузят компьютер, после чего изменения станут необратимыми. Теперь в загрузочном меню не останется упоминания о Windows, а после загрузки Ubuntu то место, что прежде занимала Windows, можно будет использовать для хранения Ваших собственных файлов. '''НБ'''
-
=== 2. Прокси для деток ===
+
==== 2. Прокси для деток ====
'''Вопрос:''' Web-прокси Squid (и SquidGuard) работает на моем компютере с Fedora Core 6 с тех пор, когда я прочел о нем в самом первом учебнике Hardcore Linux, в [[LXF75|LXF75]]. Я настроил SquidGuard так, чтобы защитить моих детей от нежелательного контента. Это означает, что на их (Windows XP) компьютере я установил маршрут доступа в Интернет через мой прокси-сервер (192.168.100.100:8080), и все бы прекрасно.
'''Вопрос:''' Web-прокси Squid (и SquidGuard) работает на моем компютере с Fedora Core 6 с тех пор, когда я прочел о нем в самом первом учебнике Hardcore Linux, в [[LXF75|LXF75]]. Я настроил SquidGuard так, чтобы защитить моих детей от нежелательного контента. Это означает, что на их (Windows XP) компьютере я установил маршрут доступа в Интернет через мой прокси-сервер (192.168.100.100:8080), и все бы прекрасно.

Версия 13:44, 13 марта 2008

Содержание

Ответы

Есть вопрос по OpenSource? Пишите нам по адресу: answers at linuxformat dot ru

Сегодня мы ответим на вопросы о:

  1. Удалении Windows
  2. Прокси-сервере
  3. EXIF-данных
  4. Jigdo
  5. Модемах
  6. Инсталляции с DVD
  7. Почта для консоли
  8. OpenGL
  9. Правилах udev
  10. Случайных числах
  11. Раздвоении дисплея

1. Решительный шаг

Вопрос: Хоть я и новичок в Linux, но все же решился полностью убрать Windows XP со своего ноутбука. У меня двойная загрузка XP и Ubuntu; не могли бы вы подсказать мне, как убрать Windows и оставить только Ubuntu? Как передать Linux место, прежде занятое Windows XP? А может быть, мне, как новичку, проще отформатировать весь диск и переустановить Linux? Pub Bloke, из форумов LXF

Ответ: Начнем с вашего последнего вопроса. Конечно, переустановить Ubuntu и отдать ему во владение весь диск проще, но тогда вы потеряете все свои настройки и данные. Удаление Windows-раздела и перераспределение освободившегося места под Linux оставит текущую установку Ubuntu нетронутой. Кроме того, проделав эту работу, вы ближе познакомитесь с Linux.

Уничтожить Windows нетрудно. Сначала нужно удалить Windows-раздел (обычно hda1) с помощью Gnome Partition Editor, который вы найдете в меню System > Administration (Система > Администрирование). Если его там нет, добавьте GParted через менеджер пакетов Synaptic.

Найти Windows-раздел тоже легко, обычно он содержит файловую систему NTFS (в крайнем случае, FAT), а Linux такими файловыми системами не пользуется. Удалив раздел, щелкните мышью в освободившейся неразмеченной области и нажмите кнопку New (Создать) для создания нового Linux-раздела с файловой системой ext3 (сгодятся установки по умолчанию).

Пока новый раздел выделен в списке, перейдите в меню и выберите Partition > Format To > Ext3 (Раздел > Форматировать в > Ext3) (см. экранный снимок справа). Нажмите Apply (Применить), чтобы изменения вступили в силу.

Следующий шаг – удаление пункта Windows из загрузочного меню. Откройте терминал и введите

sudo -i
gedit /boot/grub/menu.lst

чтобы открыть загрузочное меню в редакторе. Ближе к концу этого файла вы найдете строку, начинающуюся с ‘title Windows’. Удалите все вплоть до следующей пустой строки и сохраните файл. Windows в загрузочном меню больше не появится.

А вот освоить только что освободившееся пространство уже сложнее. Увеличить Linux-раздел можно, только отодвинув его окончание, а освобожденное пространство располагается перед началом Linux-раздела, так как Windows-раздел был первым на диске. К счастью, Linux может использовать несколько разделов – в данном случае вы можете занять освободившееся место под свою домашнюю директорию (преимущество такого подхода состоит в том, что при переустановке системы или переходе на новый дистрибутив вы сохраните все свои персональные данные, поэтому они находятся на отдельном разделе). Сообщить системе о том, что данный раздел нужно занять под домашнюю директорию, можно, добавив строку в файл /etc/fstab (это таблица файловых систем). В терминале, которым вы только что пользовались, введите

gedit /etc/fstab

Добавьте следующую строку и сохраните файл:

/dev/hda1 /home ext3 defaults 0 0

До перезагрузки, которая активирует новый home-раздел, скопируйте туда существующие файлы. Не покидая терминал, введите

mkdir /mnt/tmp
mount /dev/hda1 /mnt/tmp
mv /home/* /mnt/tmp/
reboot

Эти команды временно смонтируют новый раздел в /mnt/tmp, переместят в него ваш домашний каталог и перезагрузят компьютер, после чего изменения станут необратимыми. Теперь в загрузочном меню не останется упоминания о Windows, а после загрузки Ubuntu то место, что прежде занимала Windows, можно будет использовать для хранения Ваших собственных файлов. НБ

2. Прокси для деток

Вопрос: Web-прокси Squid (и SquidGuard) работает на моем компютере с Fedora Core 6 с тех пор, когда я прочел о нем в самом первом учебнике Hardcore Linux, в LXF75. Я настроил SquidGuard так, чтобы защитить моих детей от нежелательного контента. Это означает, что на их (Windows XP) компьютере я установил маршрут доступа в Интернет через мой прокси-сервер (192.168.100.100:8080), и все бы прекрасно.

Но меня беспокоит, что мой старший очень быстро взрослеет, и недалек тот день, когда он догадается снять флажок Use Proxy Server (Использовать проксисервер) и, настроив прямое подключение к Интернету, получит ничем не ограниченный доступ. Можно ли пропускать весь трафик через мой (постоянно включенный) FC6-компьютер (вероятно, пробросом портов на маршрутизаторе, пароль к которому знаю только я), чтобы весь web-трафик проходил через прокси-сервер, а при «прямом» подключении доступа в Интернет не было? Если можно, то как? Я пробовал перенаправить порты 80 и 8080 на IP моего компьютера, но это не помогло. Марк [Mark], из форумов LXF

Ответ: Насколько я понимаю, под словом «Интернет» вы подразумеваете World Wide Web, то, с чем обычно имеет дело Squid. Однако вы можете направить весь Интернет-трафик через свою FC6-машину, а следовательно, через SquidGuard, в три шага.

Во-первых (конкретное воплощение зависит от вашего маршрутизатора), вы должны настроить маршрутизатор так, чтобы он позволял подключаться к Интернету только Вашей FC6-машине. Сделанный Вами проброс портов влияет только на входящие подключения, поэтому ликвидируйте его.

Во-вторых, необходимо назначить FC6 шлюзом по умолчанию, чтобы весь Интернет-трафик (а не только web-трафик) проходил через него. Отредактируйте /etc/sysctl.conf от имени суперпользователя, изменив окончание строки

net.ipv4.ip_forward = 0

с 0 на 1. Потом наберите

service network restart

Теперь нужно перенастроить детский компьютер на использование IP-адреса вашего компьютера в качестве адреса сетевого шлюза. Так как вы запретили им бесконтрольный доступ с помощью маршрутизатора, теперь это единственный путь подключения к Сети.

Остается проблема удаления Вашими детьми всяких прокси-настроек, поэтому мы воспользуемся функцией Squid, называемой «прозрачный прокси». Эта функция принудительно направляет все web-запросы, проходящие через машину – а вы уже предопределили их направление на предыдущих шагах – на прокси Squid, следовательно, на SquidGuard. Откройте в редакторе файл настройки Squid (обычно /etc/Squid/Squid.conf) и найдите строку (строки), начинающиеся с ‘http_port’. В Вашем файле это, скорее всего, выглядит так: http_port 8080. Измените это на

http_port 80 transparent

80 – это стандартный HTTP-порт. Параметр transparent предписывает Squid вмешиваться и перехватывать все запросы, независимо от того, настроен браузер на работу с прокси или нет. вам нужно или удалить старую настройку прокси из браузеров, или добавить строку обработки запросов для старого порта 8080.

http_port 8080 transparent

Существует другой метод сделать то же самое. Можно оставить http_port на 8080, а запросы, которые вы хотите пропускать через прокси, перенаправить с порта 80 на 8080 при помощи правила Iptables. Это сложнее, но удобнее, так как позволяет некоторым машинам полностью миновать прокси. Подробнее об этом можно узнать на web-сайте Squid: http://www.Squidcache.org.

Вы можете также использовать Iptables или графическую оболочку вроде Firestarter для блокировки исходящего трафика на любые порты, кроме стандартных (HTTP, HTTPS, POP3, SMTP и FTP). Это предотвратит использование Вашими детьми удаленного прокси, работающего через другой порт. Возможно, вы решите сделать это на маршрутизаторе, но если вы установите запрет на своей FC6-машине, то блокировка нежелательного доступа для детей не ограничит вашей собственной свободы. НБ

3. Упорядочить хаос

Вопрос: Отбилась от рук моя фотоколлекция на несколько гигабайт. Я хотел бы упорядочить ее, чтобы сделать резервную копию. Не подскажете ли программу, которая может переименовать файл с учетом данных о времени создания (EXIF) и установить время изменения файла равным времени создания? Моя недавняя попытка сделать резервную копию перед очисткой компьютера привела к тому, что даты создания всех файлов оказались замещены датой записи DVD.

А еще я умудрился рассеять по всей коллекции несколько дубликатов изображений (сам не знаю как), все под разными именами. Нельзя ли это все рассортировать (может быть, тоже на основании EXIF) без пересмотра нескольких тысяч фотографий?

Если это имеет значение, то у меня Fedora Core 6 64-bit, командная строка не пугает. NiceBloke, из форумов LXF

Ответ: С данными EXIF работают несколько программ. Я предпочитаю ExifTool (http://www.sno.phy.queensu.ca/~phil/exiftool). ExifTool читает и обрабатывает почти любые данные EXIF, включая извлечение EXIF-тэгов Date/Time Original (первоначальной даты/времени) или Create Data (времени создания). Эту информацию можно использовать для переименования файлов или изменения их временных отметок. Например:

find -name ‘*.jpg’ | while read PIC; do
DATE=$(exiftool -p ‘$DateTimeOriginal’ $PIC | sed ‘s/[:
]//g’)
touch -t $(echo $DATE | sed ‘s/\(..$\)/\.\1/’) $PIC
mv -i $PIC $(dirname $PIC)/$DATE.jpg
done

Первая строка находит все файлы *.jpg в текущем и дочерних каталогах. Следующая стока извлекает тэг Date/Time Original каждого файла (может понадобиться тэг Create Data, смотря какая камера) и удаляет все пробелы и двоеточия. Затем команда touch устанавливает временную отметку согласно полученным данным, – устрашающее регулярное выражение sed всего лишь вставляет точку перед двумя последними символами (touch ожидает, что секунды будут отделены от прочих данных временной строки именно так). Заключительная строка переименовывает файл, используя параметр -i с mv на тот случай, если временные отметки двух файлов одинаковы. Это предотвращает перезапись файлов.

Подобное умеет проделывать большинство программ обработки цифровых фото, обходящихся без командной строки – DigiKam, KPhotoAlbum, F-Spot и GThumb все имеют средства обращения с файлами, основанные на использовании EXIF-данных.

Недостаток этих программ – они работают только в текущей директории, а вышеприведенный скрипт обрабатывает JPEG-файлы во всех вложенных каталогах. Если же у вас несколько гигабайт фотографий в единственной директории, то такую коллекцию вряд ли приведет в порядок одно только переименование файлов!

Решением проблемы дубликатов может стать программа fdupes (http://netdial.caribe.net/~adrian2/fdupes. html, доступная в виде RPM для FC6). Программа сравнивает содержимое файлов, поэтому способна находить дубликаты даже под разными именами и временными метками.

fdupes --recurse ~/photos

выведет все дубликаты в каталоге photos. Можно удалить лишние дубли:

fdupes --recurse --omitfirst --sameline ~/photos | xargs
rm

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

4. ISO: разочарование

Вопрос: Прочитав LXF91, я решил попробовать систему Jigdo, чтобы сделать ISO для Fedora. Можно было бы и поподробнее инструкции в журнале привести. Например, как пользоваться командой mkiso и что делать, если DVD смонтирован с noexec.

Нужно ли копировать файловую систему поверх локальной файловой системы, и нужно ли перемещать файл Jigdo? Не знаю, делал ли так кто-нибудь. Так или иначе, я получил следующие ошибки:

‘sudo ./mkiso Creating FC-6-i386-livecd-1.iso
general: Image file: /home/user//FC-6-i386-livecd-1.iso
general: Jigdo: /home/user//FC-6-i386-livecd-1.iso.Jigdo
general: Template: Jigdo/FC-6-i386-livecd-1.template
Skipping object `../..//.mozilla/Firefox/i4faho56.default/lock’ (No such file or directory)
Found 0 of the 5 files required by the template
Will not create image or temporary file - try again with different input files
general: [exit(1)]
ISO image written to /home/user//FC-6-i386-livecd-1.iso
Verifying MD5 checksums...
md5sum: FC-6-i386-livecd-1.iso: No such file or directory FC-6-i386-livecd-1.iso: FAILED open or read
md5sum: WARNING: 1 of 1 listed file could not be read Verification failed, or you do not have the md5sum program installed.
In the latter case, you probably have nothing to worry about.’

Подскажите, пожалуйста, что делать с непонятной ошибкой md5sum, и как обмануть проверку контрольной суммы, чтобы, наконец, создать ISO. Тодд [Todd]

Ответ: Во-первых, незачем запускать mkiso от имени суперпользователя, ведь единственное место, к которому ей нужен доступ для записи – это ваш домашний каталог. Во-вторых, программу следует запускать из того места, где вы планируете создать образы дисков, или приводить директорию назначения как аргумент скрипта.

Если вы перейдете в каталог Fedora на DVD и запускаете mkiso, то программа все же сработает и запишет ISO-образ(ы) в Вашу домашнюю директорию, но не сможет создать свои кэш-файлы. В данном случае это не так уж важно, так как вы записываете единственный образ, но в случае записи нескольких образов потеря времени будет ощутимой.

Если DVD смонтирован с --noexec, то скрипт все же будет работать с sh, так как sh работает с жесткого диска, а скрипт – всего лишь файл данных, обраба- тываемый ею:

sh /path/to/dvd/Distros/Fedora/mkiso
Ключ к решению Вашей проблемы находится в строке:

‘Found 0 of the 5 files required by the template’

Почему-то Jigdo не смогла найти ни один из нужных ей файлов. Предполагаю, что к этому мог привести запуск mkiso от имени суперпользователя, в результате чего скрипт не нашел место, откуда ему следовало запускаться, и те файлы, с которыми он должен был работать (путь поиска относителен месту запуска скрипта).

Можно было бы предположить, что ваш DVD читается с ошибками – но вряд ли это испортит все пять файлов. Такой диск не работал бы совсем.

Обход проверки контрольной суммы MD5? вы предлагаете исправить проблему низкого давления масла в автомобиле отключением индикаторной лампы! Как видно из сообщения системы, проверка контрольной суммы ISO-файла MD5 не удалась только потому, что проверять было нечего.

Кстати, запуск mkiso с параметром -h выводит подробные сведения о работе программы.

5. Проблема Firefox

Вопрос: Мой Firefox никак не может «увидеть» модемное подключение, которое я с таким трудом настроил. Я совершенно уверен в том, что подключение рабочее, так как запуск pon из командной строки заставляет модем звонить, а poff кладет трубку. А вот запуск Firefox с рабочего стола превращается в проблему. Широкополосное подключение Ethernet работает отлично, но его удаление и установка модемного подключения «по умолчанию» вызывает появление экрана ‘server not found’. Модем Rockwell IQ148, я пользуюсь Ubuntu Dapper 6.06. Я пытаюсь настроить компьютер для того, чтобы мой партнер, у которого нет широкополосного подключения, мог перевести свой компьютер с XP на Linux с помощью моей машины. Ричард Эйрз [Richard Ayres]

Ответ: Я почти уверен, что дело не в Firefox. Похоже на то, что система все же цепляется за Ethernet-подключение. Наберите в терминале вот что:

route -n

Интересующая нас строка – последняя. Она начинаются с 0.0.0.0, так как это шлюз по умолчанию для всех не-локальных подключений. Подозреваю, что она выглядит примерно так:

‘0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0’

Два последних числа во второй строке могут быть другими, но если она заканчивается на eth0 (или что-нибудь другое, но не ppp0), то здесь-то и корень Вашей проблемы. вам необходимо убедиться в том, что любые настройки eth0 вычищены из Вашей системы, особенно если вы больше не собираетесь пользоваться широкополосным подключением к своему провайдеру. Выделите это подключение в окне Network Settings (Сетевые настройки) и нажмите кнопку Delete (Удалить) (одна из трех малозаметных кнопок в верхнем правом углу окна).

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

sudo plog

после очевидно успешного модемного подключения. Просмотрите несколько последних строк протокола подключения: если что-то пойдет не так, вы сразу это поймете. Состояние сетевого интерфейса можно проверить и с помощью

/sbin/ifconfig -a

Если в выводе появился интерфейс eth0, то он не должен быть помечен UP, и у него не должно быть записей inet addr. А вот ppp0 должен быть «поднят» (UP) и снабжен реальным адресом.

А может быть и такое: вы подключаетесь к провайдеру, но не можете разрешать доменные имена. Запустите в терминале следующие команды:

ping -c 5 www.google.com ping -c 5 216.239.59.104

Первая из них – это попытка подключиться к Google по имени, а вторая минует DNS и запрашивает его прямо по IP-адресу. Если работает только вторая команда – значит, неверна Ваша информация о DNS. Необходимо связаться с провайдером и узнать у него адреса DNS-серверов, затем поместить их в /etc/resolv.conf. Это будет выглядеть примерно так:

nameserver 1.2.3.4
nameserver 1.2.4.5

Файл можно редактировать непосредственно либо воспользоваться инструментом Network Settings (Сетевые настройки). Возможно даже, что у вас там до сих пор прописаны имена доменных серверов широкополосного подключения. Их необходимо удалить. Если, проделав все это, вы все-таки не избавитесь от своей проблемы, попробуйте послать более подробные сведения, включая вывод вышеприведенных команд, в раздел Help наших форумов на http://www.linuxformat.co.uk. НВ

6. Установка Joomla

Вопрос: Я ваш давний читатель, у меня двухгодичная подшивка Linux Format и Ubuntu 6.10. Но вот проблема, которую мне никак не решить: не могу устанавливать программы с вашего DVD. Я несколько раз перечел статью об инсталляции из исходных текстов, читал следующие книги: The Official Ubuntu Book, Beginning Ubuntu Linux и Ubuntu Unleashed, но так и не понял своей ошибки. Может быть, вы сможете мне помочь, точно указав, что я должен вводить в терминале для инсталляции, скажем, Joomla 1.0.11 с одного из ваших DVD? Пер Неергорд Малер [Per Neergaard Mahler]

Ответ: вы выбрали весьма необычный пример, ведь Joomla – это web-приложение, которое необходимо устанавливать в каталог, доступный Вашему web-серверу. Кроме того, оно написано на PHP, скриптовом языке, следовательно, не нуждается в компиляции. Однако вот вам последовательность установки.

Сначала необходимо инсталлировать web-сервер. Как правило, это Apache, поэтому запустите диспетчер пакетов Synaptic и убедитесь в том, что apache и libapache2-mod-php2 установлены. Протестируйте Apache вводом ‘http://localhost’ в адресную строку браузера.

Если все прошло гладко, приступайте к инсталляции собственно Joomla. Откройте терминал и наберите

sudo mkdir /var/www/joomla
sudo tar -xf joomla-1.0.11.tar.bz2 -C /var/www/joomla

Первая команда создает каталог для установки Joomla, а вторая распаковывает в него Joomla-архив. Подразумевается, что Joomla-1.0.11.tar.bz2 находится в текущей директории, иначе нужно вводить полный путь к архиву. Теперь наберите в браузере ‘http://localhost/Joomla/’ – начнется процесс инсталляции и настройки.

Как правило, первые шаги инсталляции для любого пакета, поставляемого в tar-архиве, одинаковы – распаковка архива и поиск файла, содержащего инструкции по установке, обычно README, INSTALL или что-нибудь столь же очевидное.

Журнальная статья об установке из исходных кодов применима к тем пакетам, что используют стандартный процесс установки из исходных текстов. Это относится к подавляющему большинству пакетов, но отнюдь не ко всем – что наглядно демонстрирует Joomla. НБ

7. Консольная почта

Вопрос: Я хотел бы пользоваться почтой через оболочку командной строки. Не могли бы вы подсказать мне, как это сделать? Сейчас у меня Ubuntu 6.10. jmullin, из форумов LXF

Ответ: Вы хотите сказать, что вам нужен консольный почтовый клиент, встроенный в оболочку, или требуется отправлять почту с использованием скриптов оболочки? Существует несколько почтовых программ для терминала; наиболее популярная из них – Mutt (http://www.mutt.org). Mutt имеется в основном репозитории Ubuntu, и его можно установить через Synaptic.

Если вы хотите отправлять почту из Bash-скриптов, простейшее решение – команда mailx (и она, вероятно, в Вашей системе уже есть). Эта программа отправляет все, что получает со стандартного ввода, на указанный электронный адрес. Например:

echo “Hello World” | -s “Obvious example” me@example.com

Тема сообщения задается параметром -s (используйте кавычки, если в теме есть пробелы); все, что получено со стандартного ввода, составит тело сообщения. Для почтовой программы этого вполне достаточно.

8. Недо-гонки

Вопрос: У меня Ubuntu 7.04 Feisty Fawn на ноутбуке Sony VAIO VGN-FJ250P. Этот дистрибутив устраивает меня почти полностью, исключая одну-две мелкие проблемы. Одна из них состоит в применении известного OpenGL. Кажется, он не поддерживается моей Linux-системой. Я уверен, что видеочипсет Intel ни при чем, так как у меня двойная загрузка с Windows XP Pro, и там приложения с OpenGL работают прекрасно.

Одно из таких приложений – это Planet Penguin Racer, игра, которая хорошо идет с Live CD, но отказывается работать, будучи установленной на жесткий диск. Попытка запустить ее из меню ни к чему не приводит, а запуск из командной строки вызывает появление следующего сообщения:

‘*** ppracer error: Couldn’t initialize video: Couldn’t find matching GLX visual (Success) Segmentation fault (core dumped)’.

Джим Смит [Jim Smith]

Ответ: Хорошо, что OpenGL работает на Вашем оборудовании с Live CD: это говорит о том, что видеокарта поддерживается, а необходимое ПО присутствует на Live CD.

Почти наверняка это проблема настройки, кроющаяся в xorg.conf. Вызвана она тем, что инсталлятор неверно настроил Вашу видеокарту.

Загрузитесь с Live CD, смонтируйте один из разделов жесткого диска или USB-накопителя и скопируйте туда /etc/X11/xorg.conf. Затем загрузитесь с жесткого диска и сравните «местную» копию xorg.conf с только что сохраненной.

Вероятнее всего, дисковая версия файла использует не тот драйвер (строка Driver в разделе Device) или не загружает GLX-модуль. Прежде чем менять что-либо в этом файле, сделайте резервную копию: вы ведь не хотите усугубить ситуацию.

«Правильный» драйвер для Вашей карты – i810, хотя сработает все, что будет найдено в версии файла с Live CD. Модуль GLX загружается включением следующей строки в секцию Module xorg.conf:

Load “glx”

Если обе эти проблемы устранены, а OpenGL все же не работает, следует пройтись по обеим версиям файла и выяснить, чем они отличаются. А можно просто заменить дисковый вариант версией с Live CD, ведь она рабочая. НВ

9. Непостоянство dev

Вопрос: В одном из ваших прошлых номеров рассказывалось, как настроить GPRS-соединение в Linux. Помимо прочего, там предлагалось создать символьную ссылку вроде ln -s /dev/ttyACM0 /dev/modem. Действительно, это помогает. Но после перезагрузки ссылка исчезает. А недавно я столкнулся еще и с тем, что Nero Linux 3 требует доступа к устройству /dev/sg0. Выставляю права, но после перезагрузки они опять сбрасываются: как я понимаю, это происходит из-за динамической природы /dev. Собственно сам вопрос: а как сделать так, чтобы после перезагрузки не приходилось вновь производить вышеуказанные манипуляции? Евдокимов А.В.

Ответ: Динамическим каталогом /dev в Linux 2.6 заведует программа udev. В Сети доступно обширное руководство по написанию правил udev (правда, на английском языке) - http://reactivated.net/writing_udev_rules.html. Чтобы сделать символьную ссылку /dev/modem постоянной, можно использовать правило:

KERNEL==”ttyACM0”, SYMLINK+=”modem”

Для sg0 можно попробовать следующее:

KERNEL==”sg0”, MODE=”0666”

Правила udev добавляются в специальный файл – обычно он называется /etc/udev/rules.d/10-local.rules. Два последних компонента пути могут зависеть от дистрибутива, но “local” и “rules” в имени файла присутствуют обязательно. Не вносите собственные правила в другие файлы udev – это может привести к проблемам. ВС

10. Гауссу посвящается

Вопрос: У меня возникла следующая задача, которую, как мне кажется, решить довольно легко. Необходимо дать всем файлам в одном каталоге случайные названия (можно и цифровые), но сохранить расширение. Хотелось бы, чтобы это был простенький скрипт на Bash или Perl. Дело в том, что мне подарили MP3-плеер, который умеет либо проигрывать мелодии подряд, либо работать в режиме случайного выбора песни. Оказалось, что датчик случайных чисел в этом плейере плохой и постоянно выдает фактически одну и ту же последовательность песен, и, как следствие, режимы мало отличаются друг от друга. Поэтому вместо встроенного датчика (и вместе с ним) я хочу использовать более качественный компьютерный. Маслий Алексей

Ответ: Вашу задачу можно решить буквально одной командой:

$ for oldname in *.mp3; do mv $oldname $RANDOM.mp3; done

Переменная оболочки RANDOM возвращает случайное число в диапазоне от 0 до 32767, которое генерируется Bash при каждом ее прочтении. Поскольку значения RANDOM, в принципе, могут повторяться, следует учесть этот факт во избежание затирания одного файла другим:

for oldname in *.mp3; do
 while [ -z $newname -o -e $newname ]; do
  newname=”$RANDOM.mp3”
 done
 mv $oldname $newname
done

Цикл while генерирует новое имя для каждого файла до тех пор, пока не найдет свободное (-e $newname проверяет существование файла с именем $newname). Условие -z $newname необходимо, чтобы цикл инициализировал значение переменной newname перед началом работы. Изменив $RANDOM.mp3 на $1$RANDOM.mp3, вы получите возможность указать общий префикс (например, “song_”) в качестве параметра командой строки скрипта

$ ./randomizer.sh song_; ls *.mp3
song_10306.mp3 song_123.mp3 song_20096.mp3

Скрипт несложно обобщить и на случай, когда файлы в каталоге имеют различные расширения: достаточно воспользоваться конструкцией ext=${oldname##*.} для его извлечения и заменить $1$RANDOM.mp3 на $1$RANDOM.$ext. Да, и не забудьте изменить фильтр *.mp3 в первой строке на что-то более подходящее, скажем *.{mp3,wav}. ВС

11. Раздвоение рабочего места

Вопрос: Только что приобрел новый LCD-монитор на замену старому CRT. У моей видеокарты Nvidia есть два видеовыхода – так, значит, можно подключить к карте оба монитора и растянуть мой рабочий стол KDE на них? У меня Gentoo 2006.1, видеокарта Nvidia FX5200. Гарри Лич [Harry Leach]

Ответ: Ответ: да. Существует стандартный метод комбинации двух экранов в один X-дисплей, называемый Xinerama. Обычно он используется с двумя видеокартами, но у Nvidia есть драйверы, обладающие функцией под названием TwinView, которая позволяет отображать два экрана с одной видеокарты, каждый на отдельном выходе, сохраняя при этом совместимость с Xinerama.

Настроить TwinView (и Xinerama) несложно, при условии, что у вас есть фирменные драйверы Nvidia, а не свободный драйвер nv. Сначала убедитесь в том, что X работает с Nvidia-драйвером: самый очевидный показатель этого – появление логотипа Nvidia при запуске X. Затем запустите nvidia-settings из терминала root. В Gentoo это отдельный пакет, поэтому найдите его, если еще этого не сделали. Выберите X Server Display Configuration (Настройка дисплея X-сервера) в списке слева – вы должны увидеть оба дисплея, хотя один из них может быть помечен как отключенный. Если один из дисплеев недоступен, нажмите кнопку Detect Displays (Найти дисплеи), выделите дисплеи по очереди и установите для каждого требуемое разрешение. Лучше выставить одинаковые разрешения экрана, но любой оконный менеджер, понимающий Xinerama, управится и с разными разрешениями.

Теперь настройте Position (Расположение) для каждого экрана. Для максимальной управляемости можно делать это в абсолютных величинах, но лучше бы настроить дисплеи так, чтобы один находился Right Of (Справа) от другого, а второй, соответственно, слева. Нажмите кнопку Save To X Configuration File (Сохранить изменения в файле настройки X), выйдите из учетной записи и перезапустите X.

Вы должны увидеть рабочий стол, растянутый на два монитора, но для окончательной доводки понадобится еще кое-что. Необходимо убедиться, что все приложения скомпилированы с поддержкой Xinerama. Если xinerama еще нет во флагах USE, то отредактируйте /etc/make.conf и добавьте его туда, затем скомпилируйте заново нужные вам программы:

emerge --update --deep --newuse --ask world

Конечно, это долго, но зато по окончании процесса можно перезапустить KDE и приступить к настройке дисплеев по своему вкусу. Так, рабочий стол можно украсить едиными обоями, растянутыми на два экрана – или использовать разные для каждого монитора. Панель задач оставить на одном экране – или растянуть на оба. Раздел Multiple Monitors (Мониторы) в настройках рабочего стола позволяет указать поведение окон и выбрать дисплей по умолчанию для открытия новых окон. Найдите в этом разделе свой LCD-монитор.

Может пригодиться параметр Special Window Settings (Особые оконные настройки) меню Advanced (Дополнительно), доступного по правому щелчку на заголовке окна. Он позволяет изменить стандартный порядок работы с окнами приложений. Удобно и на одном дисплее, но особую актуальность приобретает на двух. Например, я открываю «холст» GIMP на одном экране, а панель инструментов – на другом, чтобы не мешала редактировать изображение. НБ

Безопасная связь

Вопрос-победитель (английская версия)


Пожиратель трафика

Вопрос-победитель (русская версия)


Краткая справка об… X-пробросе

Легкий путь к удаленной работе.

Часто задаваемые вопросы… Что такое LDAP?

Это не просто телефонный справочник!

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию