LXF133:Ответы
|
|
|
Ответы
- Есть вопрос по открытому ПО? Пишите нам по адресу [mailto: answers@linuxformat.ru answers@linuxformat.ru]
1 Управление неучтенкой
В Я работаю с Mepis Linux и хотел бы вести учет всех программных пакетов, установленных на моем компьютере. Для готовых сборок все просто, потому что по команде dpkg -l можно получить их список и сохранить его в текстовом файле. Но если программа компилировалась и устанавливалась из исходного кода, то в список, создаваемый командой dpkg, она не попадет. Нет ли еще какого-нибудь способа создания списка программ, установленных и скомпилированных из исходного кода, помимо трудоемкого просмотра каталогов /usr/local/bin и share?
С SUSE или другими дистрибутивами на базе RPM я не работал, но предполагаю, что аналогичная проблема существует и там. А как насчет Gentoo?
Питер Лонсдейл [Peter Lonsdale]
О Короткий ответ будет «нет». Ваш менеджер управления пакетами не имеет никакой информации о программах, установленных из исходных текстов, поскольку в этой ситуации менеджером пакетов является сам пользователь. Так что самым надежным методом решить Вашу задачу является ведение заметок во время установки. Как вариант, можно при каждой установке из исходного кода, упакованного в tar-архив, копировать архив в каталог, отведенный для установленных пакетов. Благодаря этому Вы по-прежнему будете иметь в своем распоряжении архив, если впоследствии захотите удалить программу с помощью команды make uninstall. Правда, учтите, что не все программы имеют опцию деинсталляции для make.
Существует еще один способ решения этой проблемы, который работает с любым дистрибутивом, использующим пакеты Debian, RPM или Slackware. Скачайте CheckInstall либо из репозиториев Вашего дистрибутива, либо со следующего сайта: http://www.asic-linux.com.mx/~izto/checkinstall. CheckInstall заменяет собой стандартный вызов make install из традиционного «триумвирата» ./configure && make && make install, так что теперь эта последовательность вызовов станет такой:
./configure && make && checkinstall
Программа будет, как обычно, собрана и установлена, а заодно и сохранена и зарегистрирована Вашим менеджером пакетов. Если Вы не укажете тип пакета, выведется соответствующий запрос, так что, вполне возможно, Вы предпочтете указывать тип пакета сразу же, например:
checkinstall --type=debian
Если устанавливаемая Вами программа использует для своей инсталляции команду, отличную от make install, ее можно указать в командной строке после всех остальных опций, например:
checkinstall –type=debian install.sh
Теперь команда dpkg -l будет отображать Вашу программу в списке пакетов, и Вы сможете выполнять ее деинсталляцию с помощью apt-get или Synaptic, даже если пакет не имеет опции make uninstall.
Сказанное относится ко всем упомянутым Вами дистрибутивам, за исключением Gentoo, который использует принципиально иную систему сборки. Пользователям Gentoo, желающим установить нечто отсутствующее в главном дереве Portage, рекомендуется заглянуть на сайт http://bugs.gentoo.org/, где они, скорее всего, найдут соответствующую сборку в формате .ebuild. НБ
2 Пересборка модулей
В У меня Ubuntu Karmic Netbook Remix на нетбуке Samsung N140, и, к сожалению, там нет поддержки беспроводной сетевой карты Realtek RTL8102e. Поэтому я воспользовался драйвером Windows (через NdisWrapper). В течение многих месяцев все получалось без сучка и задоринки. Однако затем я заметил, что при закачке больших файлов соединение стало разрываться, после чего требовался сброс настроек драйвера. После продолжительных поисков мне удалось найти драйвер Linux для карты Realtek, и с тех пор все работает хорошо.
Однако после того, как Ubuntu обновляет ядро, мне требуется вручную пересобирать и устанавливать этот драйвер ядра из исходного кода. Можно ли заставить менеджер обновлений автоматически компилировать и устанавливать этот драйвер после обновлений ядра?
Кевин Кларк [Kevin Clark]
О Механизм, позволяющий добиться поставленной цели в Ubuntu, называется динамической поддержкой модулей ядра (Dynamic Kernel Module Support, DKMS); он был разработан Dell специально для обхода проблем, подобных Вашей. Но чтобы эта система работала, модуль должен быть соответствующим образом упакован, так что в Вашей ситуации она вряд ли поможет. Дополнительную информацию о DKMS можно найти здесь: http://linux.dell.com/projects.shtml#dkms.
Поэтому Вы и оказались в ситуации, когда при каждом обновлении ядра приходится пересобирать и вручную переустанавливать драйвер. Эту процедуру можно упростить, предприняв некоторые шаги. При установке нового ядра и исходного кода старое ядро не удаляется. Откажитесь от перезагрузки, потому что большая часть ПО, перекомпилируемого с учетом нового исходного кода ядра, использует символьную ссылку на его исходники – /usr/scr/linux. Это позволит Вам переустановить драйверы после установки нового ядра, но до перезагрузки с его использованием.
Таким образом, Вы сможете воспользоваться старым ядром и драйверами беспроводной сетевой карты для загрузки всего необходимого для пересборки. Ubuntu устанавливает исходный код ядра в виде упакованного файла (tarball) без его распаковки и создания символической ссылки, так что позаботьтесь об этом сами, скомандовав (от имени root):
cd /usr/src tar xf linux-source-2.6.x.tar.bz2 ln -sf linux-source-2.6.x linux
Перезагрузитесь как можно скорее после пересборки драйверов, чтобы убедиться, что все работает. А если нет, у Вас останется альтернативный метод.
Ядра устанавливаются параллельно друг с другом: старый исходный код по-прежнему доступен в каталоге /usr/src, и даже старое ядро сохранится в каталоге /boot, а загрузочное меню будет содержать пункты для загрузки обоих ядер. И если после обновления ядра что-то пойдет не так (а иногда драйвер нельзя пересобрать с учетом нового ядра до тех пор, пока он тоже не обновлен), Вы всегда сможете загрузиться в старую систему, где этот драйвер работал.
Если Вы хотите поступить еще умнее, запускайте из /etc/rc.local скрипт, который попытается загрузить модуль с помощью modprobe и в случае неудачи переключится на каталог с исходным кодом драйвера и выполнит шаги по его установке. При стандартной последовательности шагов Autotools скрипт должен сначала выполнить команду make clean, чтобы удалить файлы, собранные с учетом старого ядра. Тогда основной скрипт, без отчетности об ошибках, будет выглядеть так:
#!/bin/sh modprobe ИМЯ_ЯДРА || exit cd /путь/к/исходникам/драйвера make clean && ./configure && make && make install
3 Односторонний трафик
В Можно ли на машине SmoothWall 3 (Polar) дать хостам из «оранжевой» сети (DMZ) доступ к сервисам в «зеленой»? Я пытаюсь разрешить «оранжевым» хостам доступ к серверу bind9, установленному мной в локалке. Недавно я прочитал (к своему вящему недовольству), что хосты DMZ не могут использовать шлюз как сервер DNS, и я сейчас настраиваю выделенный сервер DNS (так как я настраиваю LDAP, я подумал, что службу каталогов и сервисы DNS можно разместить на одной машине).
Я могу разрешить «зеленым» хостам доступ к «оранжевым» через порты, открытые для контролируемого доступа [pinholes] через SSH и т. п., поэтому я могу удаленно управлять серверами из локальной сети. Когда я открываю эти порты из «оранжевой» в «зеленую», я не могу установить соединение: 'Source 192.168.1.0 Destination 192.168.2.0 Service SSH' работает, а 'Source 192.168.2.0 192.168.1.0 Service DNS' — нет. Помогите!
Nerdmaster, с форумов
О «Оранжевая» сеть в SmoothWall – это демилитаризованная зона (DMZ, DeMilitarized Zone). Она предназначена для предоставления доступа извне к части Вашей сети, например, к web или почтовым серверам, при одновременной защите остальной («зеленой») части Вашей сети. Основная идея здесь в том, что если Ваш web-сервер будет взломан, через него нельзя будет попасть в защищенную часть Вашей сети: под удар попадут только компьютеры из DMZ. Поэтому в DMZ должен быть минимум машин (что Вы и пытаетесь обеспечить). Это также означает, что ни один из компьютеров, находящихся в «оранжевой» сети, не должен иметь доступа к «зеленой». Если Вы хотите, чтобы сервер DNS был доступен с компьютеров из «оранжевой» зоны, он тоже должен быть в DMZ.
Так как Вы не хотите размещать этот компьютер в «оранжевой» сети, лучшим выходом для Вас будет установка службы DNS на одном из компьютеров, которые уже находятся в демилитаризованной зоне. Чтобы повысить безопасность, Вы можете продолжить использовать существующий сервер Bind на одном из компьютеров, находящихся в «зеленой» зоне, чтобы в случае взлома DMZ это не повлияло на сервер DNS в защищаемой сети. МС
4 Запись звука
В По части Linux я новичок. Сейчас на моем компьютере установлен дистрибутив Ubuntu 9.10. Я пытаюсь записывать потоковое аудио с помощью встроенного звукового рекордера, но безуспешно. Пытался использовать все возможные комбинации ввода и вывода на панели управления громкостью, но ни одна из них не работает. Я знаю, что в Windows можно захватывать все, что проходит через звуковую карту. Можно ли делать это в Linux?
Шон Диксон [Sean Dixon]
О Все зависит от Вашей звуковой карты: если она поддерживает запись через петлю обратной связи, захват аудио может выполняться несколькими способами. Работая с Gnome Sound Recorder, нужно использовать вход Mix. Возможно, лучше будет использовать программу Audacity – ее можно установить через Synaptic. В Настройках, выберите Vol как входное устройство, или установите вход в микшере на Mix, после чего нажимайте кнопку Record при воспроизводящемся звуке. Audacity предлагает намного больше возможностей, чем банальная звукозапись – в частности, возможность редактирования начальной и конечной точек Вашей записи.
Еще одна опция – RecordMyDesktop. Хотя основное назначение этой программы – запись демо-роликов [screencasts], на что указывает ее «говорящее» название, ее можно использовать и для записи звука. У нее есть версии интерфейса для GTK и Qt, а можно управлять ею из командной строки. При запуске записи с помощью этой программы ее окно исчезает, чтобы оно не попало в демо-ролик. Двойной щелчок мышью по значку в системном лотке снова развернет окно, а запись прекратится. RecordMyDesktop генерирует аудио-файл OGV с именем out.ogv, в формате Ogg Vorbis. Извлечь из этого файла аудиоданные можно с помощью MPlayer:
mplayer -novideo -dumpaudio -dumpfile audio.off out.ogv
Есть и еще один вариант: захват потокового аудио. Щелкните правой кнопкой мыши по ссылке на потоковое аудио, чтобы скопировать ее в буфер, а затем откройте его из универсального медиа-проигрывателя VLC. В VLC есть опция сохранения аудиоптока прямо на диск – воспользуйтесь опцией RAW Input, и запись будет вестись напрямую, без перекодирования. Варианты приведены в порядке возрастания их сложности, поэтому идите с начала и остановитесь на первой из них, которая заработает с Вашим оборудованием. ГМ
5 Cлежение снаружи
В В LXF115 было опубликовано руководство по применению web-камеры как датчика движения. Меня недавно обокрали, и я решил записывать при помощи USB-камеры всех входящих и уходящих, пока меня нет дома. Я хочу сохранять видео или изображения в Интернете, вне дома, на случай, если в ходе кражи со взломом утащат и сам компьютер.
Neiji, с форумов
О Motion предоставляет возможности запуска команды при каждом сохранении фотографии или видеофайла: это on_picture_save и on_movie_end. Установка этих параметров делается в файле настройки Motion, motion.conf. Команды могут быть произвольными строками, а путь к файлу, только что сохраненному Motion, представляется опцией %f. Так, Вы сможете закачивать файлы под своей учетной записью на FTP-сервере при помощи curl, например:
on_picture_save curl -- upload-file %f \ ftp://имя:пароль/ftp.example.com/motion/pictures/on_movie_end \ curl --upload-file %f ftp://имя:пароль/ftp.example.com/motion/videos/
Альтернатива – использовать Mailx из пакета Nail для отправки файлов на свой адрес электронной почты:
on_picture_save echo “Снимок от %F” | mailx -s “picture from motion” -a %f you@example.com
Команда echo определяет текст сообщения, отсылаемого по почте, а %F замещается полной датой, когда был отснят снимок. Если у Вас не локальный почтовый сервер, надо будет настроить Nail на использование SMTP-сервера Вашего провайдера. Для этого отредактируйте файл /etc/nail.rc, добавив в него строки
set smtp=smtp.example.com set smtp-auth-user=имя set smtp-auth-password=пароль
Последние две строки нужны только в том случае,если Ваш ISP или почтовый провайдер требует аутентификации при отправке почты.
Стандартная программа Mailx не работает с почтовыми вложениями, и Вам необходимо установить пакет Nail, чтобы получить расширенную версию. НБ
6 Нахальный щенок
В У меня проблемы с Puppy Linux v 4.3.3. Я создал систему с двойной загрузкой (вторая ОС — Windows XP) с помощью Universal Installer, но возникли две проблемы. Первая — когда я даю команды выйти в консоль, перезагрузиться и перезапустить X или выключить компьютер, ничего не происходит. Мне приходится нажать и держать кнопку Power, чтобы перезагрузиться вручную (потому что на моей машине Dell OptiPlex GX260 нет кнопки Reboot), затем выбрать Puppy из меню Grub, и тогда выполняются все те действия, которые я затребовал в прошлый раз. В обычных дистрибутивах Linux я бы дал команду shutdown -r now. В Puppy это приводит к ошибке.
Вторая проблема состоит в том, что я собирался написать скрипт Bash с использованием wget для установки Joomla и ненайденных зависимостей. Одним из этих файлов должен быть файл devx_xxx.sfs, который необходимо загрузить. А это требует перезагрузки, и инсталлятор должен продолжить свою работу при загрузке. Но как инициировать перезагрузку из скрипта оболочки?
Dex
О Проблема с остановом системы почти наверняка вызвана интерфейсом ACPI (Advanced Configuration and Power Interface), через который управляется электропитание. Некоторые BIOS, особенно старые, неверно понимают спецификации ACPI – вот и не выполняют команды выключения или перезагрузки компьютера. Решение – отключить ACPI, что в Puppy выполняется командой
puppy acpi=off
в ответ на приглашение к загрузке системы. Если Вы установили Puppy на жестком диске, Вам предложат добавить строки в файл настройки Grub – grub/menu.lst. Добавьте туда строку acpi=off, в конец добавленной Вами строки ядра. Тогда Puppy по умолчанию будет загружаться без ACPI. Но это лишь обход проблемы. Радикально ее решит обновление прошивки BIOS.
В Puppy Linux нет команды выключения компьютера (shutdown). Потеря, впрочем, невелика: эта команда предназначена для многопользовательских систем, а Puppy таковой не является. Команды halt и reboot – чересчур силовые: они не инициируют стандартной последовательности останова, а просто все вырубают. Вместо них пользуйтесь скриптами wmpoweroff и wmreboot, поставляемыми с Puppy. Они закроют оконный менеджер, а затем компьютер будет остановлен или перезагружен. МС
7 С памятью моей...
В Я сам себе создал серьезную проблему. Я много лет пытаюсь освоить Linux, но безуспешно. Обзавелся ПК и попытался установить Ubuntu 9.10. Но у меня были проблемы с активизацией разделов, и пришлось вернуть Windows XP на жесткий диск — после этого все вроде заработало. К сожалению, я думал, что запомнил пароли, использованные при запуска Ubuntu 9.04. Но на них я все время получаю сообщение ‘password incorrect’. Что тут можно сделать?
Д.Ф. Грин [DF Green]
О Выход есть: Вам понадобятся Live CD и командная строка. Сгодится любой Live CD, причем можно взять и диск, использованный для установки Ubuntu. Загрузитесь с CD и при появлении рабочего стола выберите опции Переходы > Компьютер. Вы увидите список дисков и разделов. Возможно, Вы угадаете нужный по его размеру – дважды щелкните на нем мышью, чтобы он открылся. Если это тот самый диск, на нем будут каталоги bin, boot, etc и т. д. Ubuntu примонтирует его как /media/disk, хотя, если Вы сперва обращались не к нему, диск может превратиться в /media/disk-1 или 2. Для просмотра содержимого каталога /media нажмите кнопку Up.
Выяснив, куда примонтирован диск, откройте окно терминала (Приложения > Служебные > Терминал) и дайте следующую команду:
sudo chroot /media/disk /bin/bash
Команда Chroot (change root) сменит корневой каталог на указанный Вами и запустит команду, приведенную следующей. Команда sudo не потребует ввода пароля, потому что при запуске с Live CD пользователи паролей не имеют, и Вы переключитесь на режим пользователя root в установленной системе и запустите оболочку Bash. Итак, Вы вошли в свою систему Ubuntu 9.04 с правами root – теперь измените свой пароль с помощью команды
passwd ваш_пользователь
Она запросит у Вас новый пароль и попросит его подтвердить, после чего новый пароль запишется на диск. Если Вы вдобавок забыли, какое у вас было имя пользователя, его можно найти командой
grep :1000: /etc/passwd
Ubuntu присваивает первому пользователю идентификатор (ID), равный 1000, а команда grep (о ней есть статья в этом номере) ищет его в файле паролей. Имя пользователя – это первый элемент строки, который она возвратит. Выйдите из chroot нажатием клавиш Ctrl+D, перезагрузитесь и извлеките CD. Теперь Вы сможете войти в систему с только что заданным паролем. НБ
На самом деле Нейл не совсем прав - приведенный метод хорошо сработает только если взять именно (а не "можно и") диск с той же версией дистрибутива, что и установлена ранее, в противном случае с программой chroot могут быть проблемы, точнее не с самой программой, которая, безусловно, отработает, а с несоответствием установленных версий ядра (обязательно), и системных библиотек (возможно) загруженной и установленной версий дистрибутива. Возможно более простым будет загружиться в single user режиме и изменить пароль. Сделать это очень просто - в меню Grub нажать E на пункте с Вашим дистрибутивом, найти строку начинающуюся с kernel и еще раз нажать E, и в конце длинной строки параметров дописать init=/bin/bash, эффект будет точно такой же как и от использования chroot.
8 Привилегии в Unison
В Моя система состоит из ноутбука с Ubuntu 9.10, сетевого диска (разделяемый ресурс Samba в формате FAT32 — иначе нельзя было) и настольного ПК с Windows XP. Я несколько недель пытался настроить Unison для синхронизации файлов ноутбука и сетевого диска, но добился успеха только частично. Я монтирую сетевой диск так:
sudo mount -t cifs //netdrive/store /home/gm/NAS -o \ guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
Затем в Unison (графический интерфейс) root 1 устанавливается в /home/gm/Shard_Docs, а root 2 — в /home/gm/NAS/HomeBackup/Shared_Docs_Backup.
Я нажимаю кнопку OK, Unison ищет измененные файлы, затем я нажимаю кнопку Go. После этого для каждого файла появляется сообщение об ошибке — вот его пример:
Error in renaming /home/gm/NAS/HomeBackup/Ubuntu_setup_Backup/.unison. Add new printer to Netdrive Ubuntu.rtf.6a2088 701a35e914ad06d18aa5d4778f.unison.tmp to /home/gm/NAS/HomeBackup/Ubuntu_setup_Backup/Add new printer to Netdrive Ubuntu.rtf: Input/output error
Если все файлы в root 2 удалены, все копируется без ошибок, и я думаю, что проблема может быть вызвана правами доступа к файлам, поверх которых Unison не имеет права перезаписывать. Я понимаю, что форматирование сетевого диска под FAT32, вероятно, еще ухудшило ситуацию, но другого варианта нет. Очень похожая проблема возникала и при использовании Grsync. Можно ли как-нибудь обойти эту проблему?
Джефф Мэншип [Geoff Manship]
О Да, проблема вызвана правами доступа, но FAT32 тут ни при чем. Хотя файл-сервер и использует FAT32 для хранения файлов, доступ к ним предоставляется из CIFS, где имеются средства управления правами пользователей. Похоже, Вы можете создавать файлы, но не удалять их – отсюда и ошибки при попытке перезаписи файлов новыми версиями. Вы можете протестировать ситуацию из терминала: в нем выведутся более подробные сообщения об ошибках, чем в графических утилитах наподобие Unison. Команда
cp somefile /home/gm/NAS/HomeBackup/
должна сработать при первом запуске, но завершиться неудачей при попытке перезаписи уже созданного файла. Если это так, то команда
rm /home/gm/NAS/HomeBackup/somefile
должна завершиться точно таким же сообщением об ошибке.
Частично причина возникновения проблемы состоит в том, что права на удаление файлов слегка противоречат интуиции. При удалении файла он убирается из индекса каталога, поэтому к каталогу, содержащему файлы, нужен доступ с правом записи. Чтобы понять, как это работает, воспользуйтесь sudo: создайте в своем каталоге файл, принадлежащий root, а потом попробуйте его удалить. Поскольку владельцем каталога являетесь Вы, удаление пройдет успешно, хотя файл принадлежит не Вам, причем Вы можете даже не иметь прав на чтение данного файла.
Есть еще один фактор, который следует учитывать: при соединении с сервером Вы используете гостевую учетную запись. Она имеет ограниченные права доступа, и хотя NAS и позволяет гостям создавать файлы, их удаление (видимо) блокируется. Если сервер не позволяет гостям удалять файлы, опций rw при монтировании ресурса недостаточно. Файлы и каталоги, создаваемые гостями, обычно принадлежат пользователю nobody, и их удаление вызовет проблемы у всех, кроме root.
Решение – создать в NAS пользователя для Samba. Вы можете взять то же самое имя пользователя, что и в Linux, задать пароль и применять эту учетную запись при соединении с NAS. Можно либо указывать имя пользователя и пароль Виртуальные частные сети в команде mount, либо пользоваться файлом с реквизитами [credentials]. Следующие две команды выполняют одно и то же:
mount -t cifs //netdrive/store /home/gm/NAS -o user=имя,password=пароль,uid=пользователь,rw, iocharset=utf8,file_mode=0644,dir_mode=0755
mount -t cifs //netdrive/store /home/gm/NAS -o credentials=/etc/samba/credentials.имя, uid=пользователь,rw,iocharset=utf8, file_mode=0644,dir_mode=0755
Но вторая команда безопаснее, потому что пароль не будет появляться в списке процессов. Запишите учетную информацию в файл следующим образом:
username=имя password=пароль
и ограничьте доступ к нему чтением:
sudo chown root: /etc/samba/credentials.имя sudo chmod 600 /etc/samba/credentials.имя
9 Установил бы, но как?
В Я подумываю об установке компактного дистрибутива на моем старом ноутбуке Toshiba Porte´ge´ 3410 (Celeron 400, 128 MБ ОЗУ, жесткий диск 64 ГБ). Беда в том, что у ноутбука нет загрузочных устройств: CD-ROM и сетевая карта добавляются через карту PCMCIA, плюс имеется порт USB, но BIOS не поддерживает загрузку с этих устройств. Сейчас на ноутбуке Windows 2000. Нет ли способа установить Linux с жесткого диска? У меня еще есть интерфейсный адаптер-переходник с 2,5‑дюймового на 3,5‑дюймовый диск IDE, так что я могу снять жесткий диск и выполнить установку с настольного компьютера.
Джордж Хьюз [George Hughes]
О Я бы сказал, что простейший способ установки – это вариант со снятием диска и его подключением к ПК, способного загружаться с CD или устройства USB. Проведя установку, диск можно затем снова установить на место. Но сперва отключите от настольного ПК все остальные жесткие диски. Тогда дистрибутив будет ожидать увидеть только один диск и избежит разочарования, попав на ноутбук.
Снова подключив диск к ноутбуку, Вы можете обнаружить, что некоторые функции (например, X или сеть) не работают – поскольку установщик настроит дистрибутив для работы с аппаратными средствами Вашего настольного ПК. Чтобы заставить заработать X, обычно достаточно удалить файл /etc/X11/xorg.conf. Если это не поможет, запустите команду:
X -configure
Она протестирует Ваше оборудования и создаст в каталоге /root файл /etc/X11/xorg/new. Скопируйте его поверх /etc/X11/xorg.conf. Когда X заработает, все остальные проблемы обычно решаются с помощью соответствующих утилит настройки рабочего стола.
Есть и еще один возможный вариант, но мы сами не тестировали его по причине отсутствия компьютера с оптическим приводом PCMCIA. Попробуйте Smart Boot Manager – загрузочный менеджер для дискеты, созданный как раз для старта компьютера с не предназначенных для этого устройств. Флоппи-дисковод в Вашем ноутбуке должен быть; запишите на дискету образ из каталога Essentials/SBM на LXFDVD, следуя инструкциям, имеющимся в том же каталоге. Затем вставьте дискету в дисковод ноутбука, а CD, с которого Вы хотите загрузиться – в привод CD-ROM на ноутбуке. Запустите ноутбук и найдите в появившемся загрузочном меню опцию загрузки с CD. НБ
10 Пропингуй мне это!
В Хочу научить свой домашний мини-сервер понимать простые звуковые команды. Распознавание речи не требуется — достаточно программы, которая «слушает» микрофон и сверяет запись с известными образцами. Если схожесть выше заданного порога — следует реакция.
Постановка задачи вроде бы несложная, но решения я нигде не нашёл. Подскажите, что можно сделать? Программировать не боюсь, но с обработкой звука ранее не работал...
Сергей
О Можем порекомендовать несколько проектов, но для начала загляните в LXF116 – там есть обзор программ для распознавания речи; возможно, они все же будут Вам полезны. Кроме них, есть Pocketsphinx – лёгкая библиотека-распознаватель, часть проекта CMU Sphinx Toolkit (http://cmusphinx.sourceforge.net), написанная на С. Hidden Markov Model Toolkit (HTK, http://htk.eng.cam.ac.uk/) – инструментарий для построения и обработки скрытых марковских моделей; в первую очередь применяется для исследований в области распознавания речи, синтеза речи и распознавания знаков и символов, а также последовательностей ДНК. HTK состоит из набора библиотечных модулей и утилит, доступных в исходных кодах на языке С.
В качестве сетевых ресурсов по обработке звука, где наверняка можно найти и интересующие Вас библиотеки, приведем следующие: http://www.voxforge.org – сборки речевых аудиофайлов (лицензия GPL) и http://www.avios.com/resources.htm – здесь собрано огромное количество информации по всем аспектам речевого синтеза, кодирования, распознавания. Конкретные примеры реализаций и использования ищите на http://www.cstr.ed.ac.uk. По адресу http://www.music.helsinki.fi/research/spkit/documentation/SPKit.html находится объектно-ориентированная (C++) библиотека для обработки аудиосигналов SPKit, а хорошую подборку лекций и материалов по цифровой обработке сигналов и речевому кодированию можно найти на http://aprodeus.narod.ru/teaching.htm.
Наконец, на http://maxwell.me.gu.edu.au/spl/ есть материалы по общим вопросам обработки сигналов, включая примеры на Java и Matlab. ЮД
11 Самоорганизация
В Моя смешанная коллекция медиа-файлов постоянно растет: это CD, DVD, Blu-Ray, файлы MP3/Ogg и видео. Систематизировать все это «по памяти» мне уже не под силу. Нельзя ли поместить эту информацию в какую-нибудь базу данных? Я читал ваши статьи об OpenOffice.org и базе данных из этого пакета, но предпочел бы что-нибудь попроще.
Мартин Лич [Martin Leach]
О Тут пригодится OpenOffice.org или какая-нибудь система на базе MySQL, и вовсе не сложно создать базу данных с возможностями поиска Ваших медиа-файлов, но ведь нужно сперва забить в эту базу данных информацию о файлах. Что и «гасит» Ваш энтузиазм. К счастью, есть реально простое решение специально для таких целей – это Tellico (http://tellico-project.org), база данных, задуманная как «менеджер коллекций» для ведения каталогов коллекций однотипных элементов, будь то DVD, книги или музыкальные файлы. Полезнейшая функция Tellico – заполнение полей базы данных за счет поиска по Интернет-ресурсам. Для CD с музыкой поиск может быть автоматическим, а для книг и фильмов часть информации – скажем, названия – вводится вручную.
Установив и запустив программу, создайте базу данных. В программе есть масса готовых шаблонов. Для CD и аудиофайлов выберите команды File > New > New Music Collection [Файл > Создать > Новая музыкальная коллекция]. Вставьте CD в привод и выберите из меню команды File > Import > Import Audio CD Data [Файл > Импорт > Импортировать данные аудио-CD]. Ваш CD добавится в список; извлеките его и повторите операцию для другого CD. Так как сперва Вам придется добавить в базу изрядное количество дисков, есть смысл добавить эту функцию на панель инструментов через меню Settings [Настройки] или назначить ей комбинацию клавиш.
Занеся все CD, приступайте к добавлению аудиофайлов (MP3, Ogg Vorbis, FLAC – в любом поддерживаемом формате). Выберите в меню команды File > Import > Import Audio File Metadata [Файл > Импорт > Импортировать данные аудио-файла] и укажите каталог с Вашей коллекцией. По тэгам файлов Tellico определит,какую информацию вводить в каждое поле; через пару минут у Вас будет систематизированная база данных со всей Вашей музыкой.
Для расширения охвата своей базы данных, выберите одну или несколько записей, перейдите в меню Collection > Update Entry [Коллекция > Обновить запись] и отметьте один или все источники данных. Tellico пошарит по ним и соберет всякие подробности, в т. ч. обложки альбомов.
На создание базы данных DVD уйдет больше труда, но носителей DVD у Вас, скорее всего, поменьше, чем звуковых дорожек. Создайте новую базу данных Video Collection [Видеоколлекция], выберите в меню Edit > Internet Search [Правка > Интернет-поиск] и введите название своего первого DVD. По умолчанию поиск делается на сайте imdb.com, но можно указать и другой. Нажатие кнопки Search [Поиск] выдаст список возможных совпадений, причем обычно искомая информация находится вверху списка. Выберите этот пункт, проверьте детали, приведенные ниже, нажмите кнопку Add Entry [Добавить запись] – и все. База данных может содержать видео в любом формате, так что, добавив в нее все свои DVD, выделите их, перейдите в Collect > Edit Entries [Коллекция > Править записи] и в поле Medium [Носитель] выберите опцию DVD. Теперь Вы сможете добавить в базу данных любые другие типы своих видео. НБ
Шаг за шагом: Организуем медиа-коллекцию в Tellico
- 1 Создание базы данных
- Tellico имеет набор стандартных шаблонов, готовых к использованию. Их можно модифицировать под ваши нужды.
- 2 Импорт данных
- Опций импорта несколько. Можно брать данные из других баз, а можно прямо с CD или из файла.
- 3 Добавка информации
- Инструмент Update Sources [Источники обновления] добавит информацию о выбранных элементах из Web, включая картинки с обложек альбомов.
- 4 Добавление DVD или видео
- При поиске в Интернете информация извлекается с различных сайтов прямо в базу данных – только укажите заголовок.
- 5 Подробные листинги
- Используя онлайн-источники, база данных автоматически заполнит поля информацией, и вам не надо будет вводить ее вручную.
- 6 Поиск в базе данных
- Информация в базе данных – не мертвый груз. Tellico сумеет легко и быстро отыскать нужные вам элементы.
Часто задаваемые вопросы: Виртуальные частные сети
- Название любопытное, но что это?
- Виртуальная частная сеть [Virtual Private Network или VPN] – это сеть, туннелируемая через другую сеть.
- Это не прибавило мне ясности…
- Основное применение VPN – перенос приватных данных через публичные сети типа Интернета. Соединение проходит через зашифрованный туннель в сети общег одоступа, безjoпасность которой никак не гарантируется, так как нельзя проконтролировать, кто имеет доступ к промежуточным устройствам; а шифрованные данные непонятны всем, кроме вас.
- А почему нельзя обойтись SSH или HTTPS?
- Эти два типа шифрованного соединения применяются для конкретной цели: запуск оболочки или защищенный доступ к web-сайтам. VPN работает на более низком уровне, шифруя все передаваемое.
- Зачем все это нужно?
- Подсказка – в названии: для поддержания работы частной сети через общедоступную. Скажем, у вас в офисе внутренняя сеть прикрыта брандмауэром, чтобы секреты вашей фирмы не утекли в Интернет, но нужен доступ к ней из дома или с дороги. VPN установит связь между вашим компьютером и сетью офиса, и вы работаете в сети точно так же, как сидя за столом в офисе; перед выходом из реальной сети данные шифруются и проходят Интернет в целости и сохранности.
- Нужно ли для VPN специальное оборудование?
- Для этого потребуется сервер VPN, запущенный в сети, соответствующая настройка брандмауэра плюс клиентское ПО для VPN, которое запускается локально. Это может быть ПО вашего компьютера (для работы в дороге другого варианта и нет) или отдельный маршрутизатор VPN.
- Наверное, это будет стоить очень дорого…
- Нет, не очень: ведь VPN поддерживается немалым количеством маршрутизаторов, стоимость которых не намного выше, чем у самых элементарных, без VPN. Однако остерегайтесь маршрутизаторов, заявляющих о поддержке VPN в режиме pass-through: они всего лишь обеспечивают использование VPN-соединения, но не способны управлять им, и вам все равно потребуется держать клиентское ПО VPN на своем компьютере.
- Что это за ПО?
- Клиентское ПО и ядро соответствующей конфигурации (в большинстве дистрибутивов оно имеется по умолчанию). ПО зависит от вида VPN на другом конце соединения, но проекты OpenVPN (http://openvpn.net) и Openswan (http://www.openswan.org) охватывают почти все варианты соединений.
Коротко про... /proc
Вы когда-нибудь просматривали свою файловую систему, исследуя, куда девалось место на жестком диске, который вы считали бездонным? Тогда вы могли наткнуться на каталог /proc в корне вашей фай ловой системы, занимающий больше гигабайта и содержащий тысячи файлов, многие из которых на вид пусты, и задуматься: а не удалить ли их?
Ответ на этот вопрос – «нет», но хорошая новость в том, что они вообще не занимают места на вашем диске, поскольку /proc – виртуальная файловая система. Это не набор реальных файлов на диске, а скорее снимок состояния вашей системы, как оно воспринимается ядром, представленный в виде файловой системы, чтобы с ним было удобно работать.
В /proc находится огромное количество «файлов» (на моем компьютере их 20595), и каждый из них содержит толику информации. Например, команда cat /proc/version расскажет о вашем дистрибутиве и ядре, а команда cat /proc/cpuinfo выведет сведения о вашем процессоре. Каталоги типа ide, scsi, bus/usb, bus/pci и bluetooth содержат информацию о подключенных устройствах.
Вы заметите и массу каталогов с числовыми именами. Они соответствуют работающим процессам – имя каталога совпадает с идентификатором процесса [ID]. Каждый каталог содержит информацию о процессе, включая данные об использовании памяти, аргументы командной строки, запустившей процесс, и т. п.
Большая часть содержимого /proc доступна только для чтения, хотя есть и файлы, в которые можно писать. Например, содержимое /proc/sys/wm/swappiness управляет агрессивностью подкачки – чем выше значения, тем интенсивнее система вытесняет программы из памяти на диск. Эту ситуацию можно изменить командой echo:
Echo 30 >/proc/sys/vm/swappinness
Документация о /proc находится в файле /usr/src/linux/Documentation/filesystems/proc.txt.