понедельник, 14 декабря 2009 г.

Проблема с NFS, gentoo-sources-2.6.32

После обновления ядра до версии 2.6.32, перестали монтироваться nfs-разделы. Проблема такая же как и тут
Решается добавлением опции nfsvers=3 ( на тот случай если nfs-сервер этой версии)

суббота, 5 декабря 2009 г.

Что такое оверлеи и как ими пользоваться

Несмотря, что выбор программного обеспечения в Gentoo очень велик, довольно часто бывает так, что какого-то пакеты в дереве портежей нету. Приходится иметь дело с ebuild-ами, которые не вошли в официальное дерево.

Проще говоря overlay это дополнительный репозиторий. Оверлеи бывают двух видов. Локальный - тот, который вы обслуживаете сами, закидываете ебилды, создаете digest-файлы и т.д. И еще существуют, так называемые автоматизированные оверлеи. Эти оверлеи обслуживаются утилитой layman, которая все делает сама. У нее есть свой список оверлеев, который время от времени обновляется. Рассмотрим поочердно каждый тип.

Итак, для оверлеев, которые будут обрабатываться вручную, необходимо создать отдельный каталог, допустим /usr/local/portage/ Сюда будут закидываться ebuild-ы. Таким образом официальное дерево и дополнительные ebuild-ы смешиваться не будут. При помещении ebuild файла в этот каталог, необходимо использовать такую же схему иерархии каталогов как и в /usr/portage/
Еще нужно добавить в /etc/make.conf строчку
PORTDIR_OVERLAY="/usr/local/portage"
Пример установки пакетного менеджера pacman из ArchLinux, которого нету в официальном дереве:
mkdir -p /usr/local/portage/app-misc/pacman
cd /usr/local/portage/app-misc/pacman
wget http://gentoo-overlays.zugaina.org/arcon/portage/app-misc/pacman/pacman-3.3.2.ebuild
Теперь когда скачан ebuild-файл, нужно скачать исходники и создать файл Manifest, в котором будут указанны контрольная сумма md5 сборочного файла:
ebuild /usr/local/portage/app-misc/pacman/pacman-3.3.2.ebuild digest

Все. Тут уже можно устанавливать как обычно.

Второй тип оверлеев. Для начала нужно установить утилиту для автоматизации обслуживания оверлеев:
emerge layman

Затем добавить строчку в make.conf
source /usr/local/portage/layman/make.conf
Могут понадобится утилиты git, subversion, mercurial, bzr. Так как большинство оверлей-репозитории обновляются через эти системы контроля версий.

Краткий перечень основных команд:

layman -L - выводит список оверлеев подключаемых оверлеев
layman -a overlay - подключает оверлей
layman -d overlay - удаляет оверлей
layman -S - обновляет все подключенные оверлеи

понедельник, 23 ноября 2009 г.

Как обновить gcc

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

Ничего сложного в этом нету. Просто поэтапно нужно сделать:
# emerge -uva gcc# gcc-config x86_64-pc-linux-gnu-4.4.2 

(вместо x86_64-pc-linux-gnu-4.4.2 ставится своя версия gcc. список доступных gcc можно получить командой gcc-config -l)

Потом:
# source /etc/profile# emerge --oneshot -av libtool

Теперь можно пересобрать систему новым компилятором. Перед этим нужно пересобрать набор программ для компиляции:
# emerge -eav system

А теперь пересоберем мир:
# emerge -eav world

После вышеописанных процедур можно удалить старый gcc:
# emerge -C gcc-x.x

Вместо gcc-x.x пишется старая версия gcc

среда, 11 ноября 2009 г.

Не собирается xorg-server-1.7.1

При обновлении xorg-server-1.7.1 получил ошибку:
rensize.c: В функции ‘__glXImageSize’:
rensize.c:222: ошибка: ‘GL_DEPTH_STENCIL_MESA’ не описан (первое использование в этой функции)
rensize.c:222: ошибка: (Сообщение о неописанном идентификаторе выдается один раз
rensize.c:222: ошибка: для каждой функции, в которой он используется.)
rensize.c:261: ошибка: ‘GL_UNSIGNED_SHORT_15_1_MESA’ не описан (первое использование в этой функции)
rensize.c:262: ошибка: ‘GL_UNSIGNED_SHORT_1_15_REV_MESA’ не описан (первое использование в этой функции)
rensize.c:276: ошибка: ‘GL_UNSIGNED_INT_24_8_MESA’ не описан (первое использование в этой функции)
rensize.c:277: ошибка: ‘GL_UNSIGNED_INT_8_24_REV_MESA’ не описан (первое использование в этой функции)
make[1]: *** [rensize.lo] Ошибка 1
make[1]: *** Ожидание завершения заданий...
make: *** [all-recursive] Ошибка 1
 * ERROR: x11-base/xorg-server-1.7.1 failed:
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line   49:  Called src_compile
 *   environment, line 3743:  Called x-modular_src_compile
 *   environment, line 4667:  Called x-modular_src_make
 *   environment, line 4706:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =x11-base/xorg-server-1.7.1',
 * the complete build log and the output of 'emerge -pqv =x11-base/xorg-server-1.7.1'.
 * The complete build log is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'.
 * The ebuild environment file is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/environment'.
 * S: '/home/tmp2/portage/x11-base/xorg-server-1.7.1/work/xorg-server-1.7.1'

>>> Failed to emerge x11-base/xorg-server-1.7.1, Log file:

>>>  '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'

Здесь нужно сообщить X.org, чтобы тот пользовался xorg-x11:
# eselect opengl set xorg-x11
Собрать xorg-server. Потом вернуть как было.

понедельник, 5 октября 2009 г.

Пересборка модулей

После обновления ядра, понадобилось пересобрать модули. Чтобы сделать это махом, поставил module-rebuild. Далее просто:
# module-rebuild rebuild||list
Пересоберет все модули.

четверг, 1 октября 2009 г.

XFCE 4,6 и поведение рабочих столов

Представим, что браузер Firefox у меня расположен на рабочем столе №1, а мессенджер Gajim на рабочем столе №2. Если мне приходит в сообщении по мессенджеру ссылка, я ее естественно открываю. Ссылка открывается в браузере, который расположен на рабочем столе №1, но сам браузер при этом перемещается на активный рабочий стол, то есть на рабочий стол №2. Это не баг, это фича.
Однако, это можно исправить. В файле ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml нужно найти строку
< property name="activate_action" type="string" value="none" />
Параметр bring (помечено красным) нужно исправить на none.

пятница, 18 сентября 2009 г.

Как посмотреть используемый планировщик I/O?

$ cat /sys/block/xxx/queue/scheduler

Вместо hda, имя девайса. В квадратных скобках указывается используемый планировщик

Кодировка под учетной записью root

После недавнего обновления слетела кодировка. Не читались файлы на кириллице. Причем под обычным пользователем все работало нормально.

Решение проблемы с локалью в оболочке root'а.
Добавить в файл /etc/environment следующие строки:

LC_ALL="ru_RU.UTF-8"
LANG="ru_RU.UTF-8"

В файле /etc/login.defs проверить, а при необходимости определить переменную ENVIRON_FILE

grep ENVIRON /etc/login.defs
ENVIRON_FILE=/etc/environment

Источник

среда, 2 сентября 2009 г.

emerge, overlays, missing repo_name entries

При ручном использовании оверлеев (без layman) emerge может давать такое предупреждение:
WARNING: One or more repositories have missing repo_name entries:

/usr/local/portage/profiles/repo_name

NOTE: Each repo_name entry should be a plain text file containing a
unique name for the repository on the first line.
Чтобы избавиться от предупреждения, создается каталог
mkdir -p /usr/portage/local/profiles
...и файл с каким-нибудь именем:
echo "MyLocalOverlayName" > /usr/portage/local/profiles/repo_name

понедельник, 31 августа 2009 г.

Не работают мышь, клавиатура в xorg-server-1.6.3

Из-за перевода системы на тестовую ветвь, также как и тут перестали работать устройства ввода.
Решилось переустановкой драйверов:
emerge xf86-input-keyboard
emerge xf86-input-mouse

понедельник, 20 июля 2009 г.

Ristretto не показывает jpeg

Столкнулся с тем, что ristretto - нативная программа для просмотра изображений не показывает изображения с расширением jpeg, тогда как допустим png показывает нормально.
При попытке открыть программой какое-либо изображение, открывался список изображений в превью виде из текущего каталога, но самого изображения не было:
Проблема решилась перекомпилированием gtk+ cо включенным флагом jpeg

воскресенье, 19 июля 2009 г.

Игра Zuma из под wine

Скачал первую попавшуюся Zuma (15 Мб. кряк не требуется). Запустил в wine (версия wine-1.1.12). Получил ошибку:
NVIDIA: could not open the device file /dev/nvidiactl (Permission denied).
Решилось добавлением пользователя в группу video:
# gpasswd -a %username% video


Осталась проблема со звуком, который не воспроизводится в игре.

суббота, 18 июля 2009 г.

Как найти пакеты, которые зависят от данного пакета?

Допустим, если нужно узнать, какие пакеты зависят от bash, нужно писать:
# equery d bash
Выведется список всех пакетов, зависящих от bash
Утилита входит в пакет gentoo-bashcomp

Проблема с fuse. You need to build the FUSE module from the kernel source, because your kernel is too new

При установке usermode-utilities получил ошибку установки sys-fs/fuse-2.7.4, от которой зависит usermode-utilities:
>>> Messages generated by process 10971 on 2009-07-18 20:38:43 ALMT for package sys-fs/fuse-2.7.4:

ERROR: setup
You need to build the FUSE module from the kernel source, because your kernel is too new
Please check to make sure these options are set correctly.
Failure to do so may cause unexpected problems.
Once you have satisfied these options, please try merging
this package again.

ERROR: sys-fs/fuse-2.7.4 failed.
Call stack:
ebuild.sh, line 49: Called pkg_setup
fuse-2.7.4.ebuild, line 29: Called linux-mod_pkg_setup
linux-mod.eclass, line 578: Called linux-info_pkg_setup
linux-info.eclass, line 720: Called check_extra_config
linux-info.eclass, line 615: Called die
The specific snippet of code:
die "Incorrect kernel configuration options"
The die message:
Incorrect kernel configuration options

If you need support, post the topmost build error, and the call stack if relevant.
A complete build log is located at '/var/tmp/portage/sys-fs/fuse-2.7.4/temp/build.log'.
The ebuild environment file is located at '/var/tmp/portage/sys-fs/fuse-2.7.4/temp/die.env'.
Решается эта проблема включением в ядро опции File Systems -> FUSE (Filesystem in Userspace) support

пятница, 17 июля 2009 г.

Nvidia

Памятка: после установки драйвера, нужно сделать:
# eselect opengl set nvidia
X-сервер таким образом использует GLX-библиотеки nVidia

Сброс подсветки выделенных слов в vim

Если каким-нибудь образом в обычном режиме в vim нажались кнопки "Shift+#", то сбросить подсветку можно командой :honl

Компиляция из командной строки в vim

Чтобы скомпилировать foo.c не выходя из vim достаточно написать :make имя_файла_как_вы_его_хотите_назвать

Выход из vim

Выйти с сохранением из vim кроме :wq можно одной буквой :x Либо ZZ в нормальном (ESC) режиме.

Запуск программ из vim

Чтобы запустить что-либо не выходя из vim, нужно сделать так :!./a.out То есть, если скомпилировалось из foo.c в foo, то запускается она :!./foo

splitvt

В поиске плагина, встраивающий консоль в vim нашел патч vimshell, но он актуален для vim старых версий.
Нашел некоторую замену - splitvt. Делит экран пополам. Переключение между половинками "Crtl+W"

Проблемы с kdm

Почему-то не поднимался kdm. Посмотрел логи /var/log/kdm/log:
process 3895: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": Нет такого файла или каталога
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not built with -rdynamic so unable to print a backtrace
KCrash: Application 'kdmgreet' crashing...
process 3896: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": Нет такого файла или каталога
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not built with -rdynamic so unable to print a backtrace
Решилось так:
# dbus-uuidgen --ensure=/var/lib/dbus/machine-id
Что это было?
с помощью утилиты dbus-uuidgen был установлен файл идентификации машины (machine identification file), позволяющий автоматически запускать D-Bus одновременно с сессией рабочего стола

понедельник, 13 июля 2009 г.

Конвертация и iconv

Понадобилось перекодировать txt файл из cp1251 в utf-8. Делается так:
polatov@localhost ~ $ iconv -f cp1251 -t utf8 Report.txt > Report.txt.new
Естественно, что конвертировать можно не только из cp1251 в utf-8, и естественно, что не только txt файлы.

grep и незакомментированные строки

Иногда бывает нужно вытащить конфигурационный файл на обозрение (например, выложить на paste.org.ru), но из-за того, что в в файле присутствуют комментарии, длинные файлы получаются нечитабельными. Чтобы облегчить чтение, нужно вытащить незакомментированные строчки. Делается так:
polatov@localhost ~ $ grep -P "^\s*#" squid.conf -v

вторник, 7 июля 2009 г.

"Masked" пакеты

Появились какие-то проблемы с обновлением. Из-за блокировки какого-то пакета, не обновлялся мир. Прочитал в интернете, что мол, portage-2.2 может решать такие проблемы. Решил поставить себе этот portage-2.2.

Но вот незадача:
localhost polatov # eix -s portage
[...]
[I] sys-apps/portage Available versions: 2.1.4.5 2.1.6.7 2.1.6.13 [M]~2.2_rc33 {build doc epydoc linguas_pl selinux} Installed versions: 2.1.6.13(15:50:22 11.06.2009)(-build -doc -epydoc -linguas_pl -selinux) Homepage: http://www.gentoo.org/proj/en/portage/index.xml Description: Portage is the package management and distribution system for Gentoo

Замаскировано двумя параметрами - тильдой ~ и знаком [M].

Сначала размаскируем от тильды. Маскировка по тильде означает, что пакет относится к тестовой ветви ПО. Размаскировывается так:
echo =sys-apps/portage-2.2_rc33 ~amd64 >> /etc/portage/package.keywords

Второй случай маскировки - [M]. Он означает, что пакет вообще заблокирован от использования до некоторых пор. Размаскировывается так:
echo sys-apps/portage >> /etc/portage/package.unmask

Теперь можно ставить.

Это всего лишь малая часть описания размаскировки пакетов. Позже будет еще.

понедельник, 6 июля 2009 г.

Firefox в KDE

Обратил внимание, что Firefox в KDE выглядит плохо.
Сделал так:
# emerge gtk-engines-qtcurve gtk-chtheme
Потом в консоли запустить gtk-chtheme и выбрать тему.
Кроме gtk-engines-qtcurve, можно поставить еще smooth-themes. Тем будет больше, но у меня при попытке выбора какой-либо темы вываливатся ошибка "Segmentation fault"

пятница, 3 июля 2009 г.

CUPS

Ставим:
# emerge -avt cups
Добавляем загрузочный скрипт:
# rc-update add cupsd default
Запускаем:
# /etc/init.d/cupsd start

вторник, 30 июня 2009 г.

OpenOffice и /tmp

Собирал OpenOffice 3.0.0. В каком-то месте он останавливался и ругался, на что ему мало места для сборки в /tmp. Он у меня отдельным разделом. Для сборки в /tmp ему нужно от 4 до 6 гигов.
Решилось так: создал каталог /usr/tmp2 (именно tmp2, а не просто tmp, так как там уже имеется ссылка c таким именем); а потом просто PORTAGE_TMPDIR="/usr/tmp2" emerge -avt openoffice
При желании можно прописать эту переменную в make.conf

суббота, 30 мая 2009 г.

Как создать образ в Linux?

Чтобы записать что-либо с помощью утилиты cdrecord, предварительно создается образ с помощью mkisofs:
$ mkisofs -vJRl -o dvd.iso /path/to/files
-v - подробный вывод работы программы
-R - еще одно расширение файловой системы ISO 9660
-l - разрешает полные имена файлов длиной 31 символ
-o - файл ISO-образа, который хотим получить

К прошлым способам обнаружения привода нашелся новый, чуть измененный старый.
$ cdrecord -scanbus dev=ATAPI
Внимание: варианты cdrecord -scanbus dev=ATAPI и cdrecord -scanbus дадут разные относительно друга друга параметры, которые потом нужно указывать при записи в параметре dev=

UPD: Добавил в опции "Rock Ridge"
UPD#2: Добавил в опции -l

пятница, 15 мая 2009 г.

четверг, 14 мая 2009 г.

Русификация Midnight Commander

Указываю локальные флаги для mc:
# echo "app-misc/mc slang -ncurses" >> /etc/portage/package.use
Затем:
# emerge mc 
Чтобы показывались подсказки в utf-8 надо:
# cd /usr/share/mc/
# cp mc.hint.ru mc.hint.ru.koi8r
# iconv -f koi8-r -t utf8 mc.hint.ru.koi8r > mc.hint.ru
# cp mc.hlp.ru mc.hlp.ru.koi8r
# iconv -f koi8-r -t utf8 mc.hlp.ru.koi8r > mc.hlp.ru

Поддержка русского языка в терминале

Поставил пакеты:
# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts kbd
Создал файл /etc/env.d/02locale. Туда вписал:
LC_ALL=""
LANG="ru_RU.UTF-8"
В файле /etc/rc.conf должно быть:
UNICODE="yes"
В файле /etc/conf.d/consolefont я поставил:
CONSOLEFONT="ter-k14n"
В файле /etc/conf.d/keymaps должно быть:
KEYMAP="-u ru"
SET_WINDOWKEYS="yes" #Опционально
DUMPKEYS_CHARSET="koi8-r"
Затем при включенном флаге unicode в файле /etc/make.conf, выполнить:
# emerge --oneshot --verbose sys-libs/ncurses sys-libs/slang
Перегрузился. Все.

Дальнейшая русификация описывается тут.

среда, 13 мая 2009 г.

Не работают мышь, клавиатура в xorg-server-1.5.3

После обновления X-сервера до версии 1.5.3 отказались работать мышь и клавиатура.
Мимоходом прочел о другом подходе X-сервера к оборудованию. Не очень понял.
Решилось редактированием файла xorg.conf .  В секцию Section "ServerLayout" добавил строку Option "AutoAddDevices" "False"
Все заработало.

вторник, 31 марта 2009 г.

Установка клиента VMware Client в Ubuntu

Опять про Ubuntu.
В репозиториях отсутствует VMware-клиент. Поэтому скачал:
wget http://download3.vmware.com/software/vmserver/VMware-server-linux-client-1.0.6-91891.zip

Потом распаковал:
unzip VMware-server-linux-client-1.0.6-91891.zip 

Распакуем то, что распаковал:
tar xzf VMware-server-console-1.0.6-91891.tar.gz

Заходим в распакованное, запускаем:
sudo ./vmware-install.pl
Соглашаемся со всем что предложит

Еще вот это:
sudo vmware-config-server-console.pl

Запускается:
vmware-server-console

PS.
Ubuntu 8.10

понедельник, 30 марта 2009 г.

Безоконный вид Firefox в Ubuntu

Немного про Ubuntu.
Firefox 3.0 распахивается в Ubuntu (про другие дистрибутивы не знаю) очень широко, что аж не видно рамок окна. Думал, что скорее всего это баг в Compiz. Так и есть.
Нужно установить compizconfig-settings-manager. Потом "Система" -> "Параметры" -> "Менеджер настройки CompizConfig" -> "Утилиты" -> "Workarounds" -> и убрать галку с пункта Legacy Fullscreen Support
Глюк устранен.

среда, 25 марта 2009 г.

Запись образа на компакт-диск

Захотелось записать LiveCD Gentoo болванку. Захотелось сделать это как обычно: быстро и просто.
Сначала сканируем шину, на котором расположен наш привод:
polatov@polatov-desktop:~$ cdrecord -scanbus
scsibus3:
3,0,0 300) *
3,1,0 301) 'Optiarc ' 'DVD RW AD-7200S ' '1.06' Removable CD-ROM
3,2,0 302) *
3,3,0 303) *
3,4,0 304) *
3,5,0 305) *
3,6,0 306) *
3,7,0 307) *
Теперь пишем образ:
cdrecord -v speed=0 dev=3,1,0 /path/to/file.iso
-v - выводит подробную информацию о процесее записи
speed=0 позволит программе самой подобрать подходящую скорость записи.
dev= - имя устройства. В мануалах я видел запись вида ATAPI:X,Y,Z , но у меня так ничего не получилось, опустив ATAPI, все прекрасно записалось.
Еще видел где-то, что вместо ATAPI использовалась аббревиатура ATA. Еще можно вместо шины указать сразу привод из /dev/ (dev=/dev/scd0) Адрес привода можно узнать так:
polatov@polatov-desktop:~$ wodim --devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0 dev='/dev/scd0' rwrw-- : 'Optiarc' 'DVD RW AD-7200S'
-------------------------------------------------------------------------
Естественно, для проделывания всего этого, необходимо иметь соответствующие утилиты, найти которые можно в разных линуксах (wodim, cdrtools и т.п.)
P.S.: Может быть нужно использовать два тире перед dev - "--dev="? Болванок нет, проверить не могу.

UPD: Насчет недоразумения по поводу ATAPI прочесть здесь

воскресенье, 22 марта 2009 г.

Как настроить часы

Заметил, что сбивается время после перезагрузки. Чтобы этого не было, подправил файл /etc/conf.d/clock
Параметров мало. Первый параметр нужно исправить на CLOCK="local". И параметр CLOCK_SYSTOHC= должен иметь значение "yes".
Если понадобится изменить TIMEZONE=, то доступные часовые пояса можно посмотреть в /usr/share/zoneinfo/
Время во всех линуксах устаналивается так:
#date ММДДЧЧмм[ПП][ГГ][.СС]
ММ - месяц, ДД - число дня, ЧЧ - часы, мм - минуты, ПП - первые две цифры года, ГГ - вторые цифры года, .СС - секунды. Последние три аргумента необязательные

понедельник, 16 марта 2009 г.

Быстро и просто добавить пользователя

# useradd -m -G users,audio,wheel test -p 123456
-m - создать домашний каталог
-G - сделать членом нескольких групп. Группа audio позволит работать с звуковыми платами, группа wheel позволит выполнять команду su
test - тут любое имя пользователя.
-p 123456 - это пароль

суббота, 7 марта 2009 г.

Обновление системы в Gentoo

Для начала нужно обновить локальное дерево портежей. В дереве имеются ebuild-ы, которые отвечают за правильную сборку пакета. Это аналогично обновлению сорс-листа aptitude update в debian-based системах. Собственно:
# emerge --sync

Теперь обновляется сама система:
# emerge --update --ask world
Параметр --ask выведет сначала на экран список пакетов, которые будут обновлены и спросит нужно ли обновляться. C --update и world понятно.

Еще можно делать так:
# emerge --update --deep world
Параметр --deep дает указание обновиться полностью, с зависимостями, когда просто --update обновляет пакеты, которые явно установлены мною.
Второй пример стоит делать изредко. Первый - хоть каждый день.
Столкнулся с тем, что emerge уведомил о том, что нужно обновить еще конфигурационные файлы *.conf, которые находятся в /etc:
* IMPORTANT: 2 config files in '/etc' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files.
Обновляется с помощью etc-update либо update-etc, что по сути одно и тоже, которые покажут примерно такое:
polatov-desktop / # etc-update
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/locale.gen (1)
Please select a file to edit by entering the corresponding number.
(don't use -3, -5, -7 or -9 if you're unsure what to do)
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i')
(-7 to discard all updates)
(-9 to discard all updates AND not use 'rm -i'):
Можно выбирать каждый пакет по его порядковому номеру, просматривать, обновлять, отменять и прочее. А можно набрать -1, чтобы просто выйти. -3 - обновит все автоматически, но будет задавать вопросы про каждый конфиг отдельно, отвечать на вопросы с помощью букв y и n (да и нет соответственно). -5 обновит без вопросов. -7 удалит все, но будет спрашивать, -9 удалит предложенные обновления конфигурационных файлов без вопросов.
Если выбирать по порядковому номеру, то появится вывод, который покажет разницу между тем, что есть в данный момент и тем что будет установленно в случае принятия обновленного конфига. Подробно и по-английски об этом написано тут.

среда, 25 февраля 2009 г.

Сеть в Gentoo

Сеть у меня настроенна таким образом:
  1. В модеме прописан локальный адрес 192.168.1.1, при маске 255.255.255.0
  2. Также в модеме прописан DNS
  3. Интернет модем получает по DHCP
  4. В настройках интерфейса, модем у меня стоит гейтом (шлюзом)
Теперь вопрос: Почему Ubuntu c DNS работает без проблем, то есть забирает его с модема? Почему этого не может сделать Gentoo? В обоих системах файлы resolv.conf пустые.
Ответ: Потому что в Ubuntu по умолчанию чтоит dhcp-клиент (не знаю как он называется), а в Gentoo его нет. Модем работает в двух режимах: по статике - отдает\принимает пакеты, по DHCP раздает DNS.
DHCP-клиент входит в состав минимального установочного диска Gentoo, но в установленную систему не входит. Этим объясняется, почему при установке не обязательно вписывать адреса DNS-серверов в resolv.conf в данном случае.
Сеть настраивается в /etc/conf.d/net. Мой файл выглядит так:
config_eth0=( "192.168.1.4 netmask 255.255.255.0 brd 192.168.1.255")
routes_eth0=( "default gw 192.168.1.1" )
Вообще широковещательный адрес тут не нужен. Но оставлю.
DNS-серверы вписываются в /etc/resolv.conf. У меня выглядит так:
nameserver 82.200.130.232
nameserver 212.19.128.4
Все.

вторник, 24 февраля 2009 г.

Порядок монтирования и смены корневого каталога из под существующей системы

Из под существующей (установленной) системы делается так:
1) Монтируем раздел с Gentoo.
# mount /dev/sda3 /mnt/gentoo/
2) Монтируем каталог /proc, чтобы ядро могло общаться с системой и наоборот.
# mount -t proc none /mnt/gentoo/proc
3) Монтируем каталог /dev, для определения системой устройств.
# mount -o bind /dev /mnt/gentoo/dev
4)Здесь указывается, что при создании переменных сред, нужно игнорировать все, кроме $HOME и $TERM Вторая часть, начиная  с /usr меняет корневой каталог. То есть происходит тот самый chroot
# env -i HOME=$HOME TERM=$TERM /usr/sbin/chroot /mnt/gentoo /bin/bash
5) Создадим новые перменные среды. Без этого система может не найти путь к какому-нибудь бинарнику.
# /usr/sbin/env-update
6) Собственно загрузим только что созданные перменные среды.
# source /etc/profile
7) Можно добавить слово chroot слева от приглашения. Чтобы иметь в виду, что вы находитесь в chroot. Можно, но не обязательно.
# export PS1="(chroot) $PS1"
Выпишу команды без комментариев, чтобы выглядело нагляднее.
# mount /dev/sda3 /mnt/gentoo/
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# env -i HOME=$HOME TERM=$TERM /usr/sbin/chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

суббота, 21 февраля 2009 г.

Параметры grub

Так как я выбрал нестандартный путь установки - установка из под существующей основной системы Ubuntu, были сложности с правкой menu.lst
На заметку самому себе:
строка типа root (hd0,2) должна указывать тот раздел, где лежит ядро системы, которое я хочу загрузить
Например так:
title Gentoo
root (hd0,2)
kernel /boot/kernel-2.6.27-gentoo-r7 root=/dev/sda3 ro

пятница, 20 февраля 2009 г.

Как проверить архитектуру процессора? (2-ая часть)

Сегодня столкнулся с тем, что вывод uname -m не всегда (а может даже редко) показывает правду.
Для определения архитектуры лучше использовать
$ lshw
или обычный
$ cat /proc/cpuinfo
В последнем случае битность выведется в строке clflush

четверг, 5 февраля 2009 г.

ssh и разные локали

Использую на десктопном Ubuntu utf-8, на серверном OpenBSD KOI8-R. Не получается читать каталоги и файлы созданные на кириллице если захожу по ssh с рабочей машины на сервер.
Проблема решается так
$ luit -encoding "KOI8-R" ssh xxxxxxx

четверг, 29 января 2009 г.

lame. скрипт

Бухгалтерша озадачила меня просьбой сконвертировать wav файлы в mp3.
Нашел lame, который работает так:
$ lame -h --mp3input pesnya.wav
Выйдет файл с сжатием mp3, без уничтожения wav файла. Но lame упорно не хотел работать с кучей файлов за раз.
Написался скрипт:
#!/bin/sh
do lame -h --mp3input ${i%};
done
Это первый мой скрипт. Поэтому есть некоторая издержка. При выходе выдает файлы вида pesnya.wav.mp3. Это будет происходить и без скрипта, если не указывать явное имя файла.
Скрипт сделать исполняемым, переложить в /bin

smbclient

Войти на расшаренный ресурс на самбе
$ smbclient //Serv/obmen -U user password

Сканер Epson 1670 в Ubuntu

По работе пришлось срочно поставить сканер. Сделал это по англоязычным описаниям.
Скачал какой-то бинарник по адресу http://leroybrown.glassmelter.com/binaries/ESFW30.BIN
Потом закинул его в /ets/sane.d
Открыл файл /etc/sane.d/snapscan.conf и поменял в начале строку firmware /path/to/your/firmware/file.bin на /etc/sane.d/ESFW30.BIN
Немного подумал, на всякий случай права 777. Нужно ли было?
Все. Xsane заработал.
Думаю, что бинарник виндовый. Хотя могу ошибаться.

вторник, 20 января 2009 г.

Автодополнение по таб в bash

В Ubuntu не работало автодополнение по tab. Оказывается отсутствовал файл ~/.bashrc со следующим содержимым:
if [ -f /etc/bash_completion ]; then
./etc/bash_completionfi
Кроме этого в системе должен присутствовать пакет bash-completion

пятница, 16 января 2009 г.

Proxy-сервер в терминале

Часто приходится что-либо делать через прокси-сервер (emerge, aptitude для дебианов). В гуевых настройках все ясно.
А в терминале делается так
$ export http_proxy="http://10.0.0.5:8080"
Это для http трафика. Для ftp трафика
$ export ftp_proxy="ftp://10.0.0.5:8080"
Работает под OpenBSD, Gentoo, Debian. Думаю для всех.

пятница, 9 января 2009 г.

Что такое initrd?

Гуглил, спрашивал в чатах, потом гуглил еще и для закрепления получившегося результата погуглил еще раз.
Значит, вкратце, что я понял об initrd. Это такой виртуальный образ диска, который необходим на некоторое время во время загрузки ядра, как связующее звено между ядром и файловой системой, расположенной на диске. Это в том случае, если ядро не умеет это делать само.
Не все еще ясно. Надо погуглить еще.

uuid или root?

В grub лучше прописывать пути разделов по uuid, чем по root, так как при добавлении еще одного винчестера все может полететь. Каким образом? Допустим я указал путь /dev/sda1 как раздел для /boot. Если я вставлю еще один диск и он определится в системе как sda, а мой старый диск естественно сдвинется, став каким-нибудь sdb, то раздел с /boot у меня окажется на разделе sdb1. Система, таким образом, перестанет грузиться.

Подробно про uuid можно прочитать в википедии

среда, 7 января 2009 г.

Gentoo и VirtualBox

В конце-концов установить полностью и правильно мне не удалось. Не могу припомнить причину. Но помню что ошибка шла уже после загрузки GRUB. Не думаю, что причина в VirtualBox, скорее, я сам чего-то не доглядел.
Несмотря на неудачу, я много что понял в установке Gentoo. Решил ставить уже непосредственно на жесткий диск.

суббота, 3 января 2009 г.

Как проверить архитектуру своего процессора?

Просто пишем
$ uname -m
Полезно при заполнении make.conf

Откудого брать stage3?

Вся моя вчерашняя работа коту под хвост. Дело в том, что на зеркале fido.online.kz/gentoo не было последнего стейджа. А я установил, имеющийся последний 2007.0, вместо вышедшего 2008.0 Из-за этого у меня были проблемы с Portage.
Сейчас использую mirror.yandex.ru

четверг, 1 января 2009 г.

Конфигурирование make.conf

Важный момент при установке Gentoo. Хотя можно все оставить как есть. Но мой пытливый ум просил разъяснений.

По сути, редактирование этого файла, есть настройка параметров компиляции в дальнейшем, влияющие на поведение Portage.

CHOST="i686-pc-linux-gnu" Эта строчка не подлежит редактированию. В handbook говорится, что если вы обнаружили тут ошибку, то это означает что вы используете не тот stage3

CFLAGS="-march=prescott -O2 -pipe" Здесь мы указываем параметры для оптимизации компиляции программ на Си."-march" - это тип процессора, архитектура. Под каждый процессор своя переменная. Посмотреть разные варианты оптимизации для разных процессоров Intel можно по ссылке. Там же, можно найти для AMD. Буква -O определяет класс оптимизации. Есть оптимизация по размеру "s", а есть по скоростям (если я правильно понял). В данном случае, под мой процессор оптимально ставить 2. -pipe - очень сложная для "непрограммисткого" понимания вещь. Попробую понять и объяснить. Есть разные этапы компиляции. И вот эти разные этапы в процессе должны общаться между собой. Обычно, этапы создают временные файлы, к которым могут обращаться уже другие этапы. А с указанием этой опции, скорость увеличивается за счет использования специальных "труб-каналов".

CXXFLAGS="${CFLAGS}" Здесь все просто. Это парамерты для C++. Параметры импортируются с CFLAGS=

MAKEOPTS="-j2" Тут указывается сколько процессов компиляции можно запустить при установке пакета. Чаще всего (рекомендуется) ставить значение равное количеству процессоров+1.

Есть еще опция -fomit-frame-pointer. Ее ставить не рекомендуется в большинстве случаев, хоть это увеличит скорость на несколько процентов и меньший размер файла. Эта опция означает не создавать пролог функции (?), там где это не требуется. Не рекомендуется ставить эту опцию для x86 архитектуры. На x86_64 эта опция включается автоматически. Хорошо и более подробно об этом написанно здесь

Сложновато. Но приятно, что хоть что-то начало проясняться.

Проверка целостности файла с md5sum

Теперь я знаю как проверить целостность файла с помощью MD5. По мне, это удобнее чем с помощью GnuPG ключа.

Качается файлик с окончанием *.DIGESTS. В моем случае, это stage3-x86-2007.0.tar.bz2.DIGESTS Думаю, что он должен лежать в том же месте, куда я положил stage3-x86-2007.0.tar.bz2
Потом проверяем
$ md5sum -c stage3-x86-2007.0.tar.bz2.DIGESTS

Выйдет сообщение, что все ОК.

UPD: Оказывается можно проверять еще с помощью файлов *.md5sum. И такой вид как бы более популярнее чем *.DIGESTS

Сеть в Virtualbox

Я два дня мучался с настройками сети в виртуальной машине. По ходу дела, снес дебиан. Думал что по каким-то причинам перестала работать сеть. Второпях поставил убунту, на него Virtualbox.

Ужасная приблудина Network Manager 0.7.0 очень сильно глючила. При перезагрузке сбрасывала мои настройки для статики на DHCP. Снес, настроил все руками. Подозреваю что в дебиане была такая же проблема. Некогда было разбираться.

Итак о сети в Virtualbox. Ее оказывается настраивать и не нужно. Я имею в виду для доступа в интернет. Все подхватывается по DHCP. При этом не будет работать ping, и еще что-то. Не помню.

В данный момент качается stage3 с виртуальной машины, с links-браузера. Пока все просто.

Настроение посленовогоднее.