Записная книжка: Xubuntu, Ubuntu Server. Мелочи жизни

Ubuntu уже давно стала одной из самых популярных Linux-like операционных систем на десктопах. Я долго сопротивлялся тренду, но потом не удержался и, вместо не очень активно развивающейся Мандривы с LXDE в качестве графической оболочки, поставил на свой старенький ноутбук Убунту с XFCE, а, проще говоря, Хубунту.

Справедливости ради, должен отметить, что в Мандриве меня устраивало практически все, кроме ее неспешных обновлений, да и это было не слишком уж для меня критично. Я, быть может, и не решился бы на столь отчаянный поступок, если бы не покупка нового жесткого диска.
Ну да хватит растекаться мыслью по монитору. Данная статья будет иметь вид некой записной книжки и содержать краткое описание проблемы и краткое решение. Сразу оговорюсь, что решения могут быть и не самые правильные и возможно далеко не единственные, но рабочие. Статью буду время от времени пополнять. Статья построена в виде вопросов и ответов.
Исходные данные: ноутбук hp Compaq nx6110; Xubuntu 12.04, Precise Pangolin (LTS).

UPD. Чуть позже я на рабочем компьютере установил Xubuntu 12.10 x64, а на одной из рабочих машинок - Ubuntu Server x64. Но, т.к. ОС сильно схожи, то и проблемы у них тоже схожи. По-этому я решил не создавать отдельную статью, а писать в этой же. Постараюсь помечать, если я обнаружу, что какое-то решение относится только к определенной ОС.

В: В aptitude почему-то все для всех неустановленных пакетов начало выскакивать предупреждение, что он получен из ненадежного источника.
О: "sudo aptitude update"

В: Как включить поддержку спящего режима?
О: Спящий режим был отключен намеренно из-за нестабильной работы. Сначала желательно протестировать возможность "sudo pm-hibernate". Для включения создать файл "/var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla" со следующим содержимым:
"[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes".

В: На ноутбуке есть кнопка выключения WiFi и Bluetooth, если ноутбук был загружен с выключенным WiFi, то после его включения с кнопки, WiFi работать не начинает. При этом при загрузке может выводиться сообщение: "ipw2200: Firmware error detected"
О: "sudo sh -c 'rmmod ipw2200 && modprobe ipw2200'".

В: У меня на ноутбуке нет индикатора ScrollLock и я хочу чтобы о русской раскладке клавиатуры мне сигнализировал индикатор NumLock.
О: В файле /etc/default/keyboard параметр XKBOPTIONS установить в значение "grp:alt_shift_toggle,grp_led:num", где grp - комбинация клавиш для переключения, grp_led - индикатор.

В: Хочу блокировать экран по комбинации клавиш.
О: Команда блокировки экрана с помощью xscreensever: "/usr/bin/xscreensaver-command -lock", повесить вызов этой команды можно при помощи GUI в разделе "Клавиатура" Диспетчера настроек.

В: В Oracle VM VirtualBox 4.1.18, установленном на Xubuntu 12.10 x64 у виртуальных машин не работает DNS при использовании типа сетевого подключения NAT.
О: Это связано с изменениями в механизме трансляции адресов Ubuntu. Решение: для каждой виртуальной машины в терминале хоста выполнить команду: "VBoxManage modifyvm 'VM name' --natdnshostresolver1 on", где "VM name" - имя виртуальной машины. Сама виртуалка при этом должна быть выключена. Решение было найдено здесь: https://forums.virtualbox.org/viewtopic.php?f=7&t=50368#p230224
P.S.: В 4.2.6. такой проблемы не зафиксированно.

В: У меня в домене имя_домена.local почему-то не работают сетевые ресурсы при обращении к ним по имени, а при обращении по IP - все нормально.
О: Возможно виноват сервис avahi - он использует зону .local для построения своей локальной сети. Надо проверить файлик "/etc/default/avahi-daemon", в нем для работы в таких доменах должно быть: "AVAHI_DAEMON_DETECT_LOCAL=1".

В: Как получить список установленных программ?
О: "dpkg --get-selections" или, если надо подробнее, "dpkg -l". Можно с помощью aptitude: " aptitude search '~i'".

В: В консоли вместо русских букв квадратики.
О: В файл /etc/initramfs-tools/initramfs.conf добавить строчку "FRAMEBUFFER=Y". Источник решения: http://help.ubuntu.ru/wiki/russian_font_in_console

В: Сразу после установки Wireshark, программа пишет "There are no interfaces on which a capture can be done." и не ловит пакеты.
О: Не хватает прав у одного из компонентов программы: dumpcap. Решается, например так: "setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap". Ну или с помощью создания группы и раздачи прав. Подробнее: http://wiki.wireshark.org/CaptureSetup/CapturePrivileges

В: Как получить информацию о процессоре?
О: Командой "lscpu" или, более подробно, "cat /proc/cpuinfo". Следует отметить, что в /proc/cpuinfo содержится текущее состояние процессора по-этому, если процессор, например, может понижать свою частоту, то данные двух команд могут отличаться.

В: Запустил dd. Как узнать о его успехах?
О: "kill -USR1 ddPID", где ddPID - PID процесса dd.

В: Перестал запускаться OpenOffice: "see ./1.xls
Unknown option -no-oosplash".
О: Надо поправить настройки mailcap (/etc/mailcap или ~/.mailcap) и заменить параметр вызова приложений OO с "-no-oosplash" на "--nologo".

В: Как посмотреть S.M.A.R.T. жесткого диска?
О: Поможет консольная утилита smartctl из пакета smartmontools.

В: Как посмотреть/изменить пути к библиотекам?
О: "/etc/ld.so.conf.d" - директория, содержащая файлы с путями к библиотекам. После изменения в файлах, для применения: "ldconfig". Просмотр путей: "ldconfig -v".

В: Как посмотреть информацию в openssl-сертификатах?
О: "openssl x509 -noout -text -in server.crt" - для сертификата, "openssl rsa -noout -text -in server.key" - для ключа.

В: Как сделать так, чтобы служба avahi не запускалась при загрузке компьютера?
О: В имени файла /etc/init/avahi-daemon.conf необходимо изменить расширение, например на avahi-daemon.conf~.
Так же в Ubuntu 13.04 от avahi зависит и запуск CUPS - надо проверить соответствующие конфиги и заккоментировать проверку на запуск avahi.

В: Как получить список сервисов, запускаемых с помощью Upstart, и посмотреть их текущее состояние?
О: "initctl list".

В: Как в zsh переиндексировать список команд не перезапуская шелл (например, после установки нового приложения)?
О: "rehash".

В: Решил обновить xubuntu с 13.04 до 13.10, через менеджер обновлений не получается, а команда do-release-upgrade выдает ошибку:
File "/usr/bin/do-release-upgrade", line 123, in <module>
"%(url)s\n") % { 'url' : url })
ValueError: unsupported format character '?' (0xa) at index 55
О: "/usr/bin/do-release-upgrade" - это скрипт, написаный на питоне. Ищем строчку, номер которой содержится в ошибке (в примере 123) и исправляем ее. В моем случае, я объединил 122-ую с 123-ей и получил:
"print(_("For upgrade information, please visit:\n %(url)s\n") % { 'url' : url })" (без кавычек разумеется).
После этого запустил обновление.

В: После обновления с 13.04 на 13.10 возникла проблема: не выключается/не перезагружается компьютер из сеанса пользователя. Вместо этого происходит logout, и только с экрана входа пользователя можно выключить компьютер.
О: Да, эта проблема известна: https://bugs.launchpad.net/ubuntu/+source/xfce4-session/+bug/1221809. Если коротко, то нужно установить пакет "systemd-shim".

В: Как установить предыдущую версию пакета с помощью aptitude?
О: "aptitude versions prog_pkg", где prog_pkg - имя пакета. Может случиться, что нужной версии пакета нет в данной версии Ubuntu, тогда нужно подключить репозитории предыдущей версии, добавив в файл /etc/apt/sources.list нужные репозитории, после чего попробовать снова: "aptitude update && aptitude versions prog_pkg". На экране должен появится список найденных пакетов вида: "status v_pkg release num", где нас интересует prog_pkg - имя пакета, release - выпуск в котором найден пакет, v_pkg - версия пакета. Если нужная версия нашлась, то установить ее: "aptitude install -t release prog_pkg" или "aptitude install prog_pkg=v_pkg".

В: Как удалить старые ядра, кроме последнего и предпоследнего?
О: "sudo apt-get autoremove"

В: Выскакивает ошибка "Error! Could not locate dkms.conf file."
О: Проверить наличие файлов dkms.conf:
"locate dkms.conf"
Проверить статус dkms:
"sudo dkms status"
Удалить лишнее из каталога /var/lib/dkms/.

В: Как сделать так, чтобы mysql по-умолчанию работал с кодировкой UTF-8?
О: Добавить строчки в файл /etc/mysql/my.cnf:
[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
character-set-server = utf8
collation-server = utf8_general_ci
[client]
default-character-set = utf8

Подробное описание можно почитать тут: http://gahcep.github.io/blog/2013/01/05/mysql-utf8/

В: На маршрутизаторе в логах ошибка: "kernel: Neighbour table overflow."
О: В /etc/sysctl.conf указать:
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh1 = 1024

После этого выполнить:
sysctl -p
Подробное описание можно почитать тут: http://www.cyberciti.biz/faq/centos-redhat-debian-linux-neighbor-table-overflow/

В: Не резолвятся адреса при поднятии VPN-соединения.
О: Возможно проблема в dnsmasq. На это может указывать сообщение:
connection timed out; no servers could be reached
при том, что запрос к DNS-серверам дает верный ответ.
Отключение dnsmasq:
1) в /etc/NetworkManager/NetworkManager.conf закомментировать:
#dns=dnsmasq
2) перезапустить NetworkManager:
service network-manager restart
Еще как вариант может не обновляться resolveconf, решается добавлением в openvpn-конфиг клиента:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf