понедельник, 25 апреля 2011 г.

Gentoo заметка менеджер пакетов

1. Основные утилиты для управления пакетами

gentoolkit # основные утилиты: euse, equery, eclean, quickpkg...
epm # аналог equery
esearch # быстрый индексированный поиск по базе пакетов

2. Полезные утилиты и комманды

revdep-rebuild # Находит неработающие бинарники и устанавливает
# необходимые для их работы пакеты

euses xinerama # Описание USE флага xinerama

epm -qa # список установленных пакетов

equery l # список установленных пакетов
equery list -d # дубликаты
equery l kde-base/ # список установленных пакетов из раздела kde-base
equery b /bin/ls # какому пакету принадлежит файл /bin/ls
equery uses samba # с какими флагами был установлен пакет samba
equery files mc # какие файлы принадлежат пакету mc
equery depgraph mc # показать дерево зависимостей пакета mc
equery -q d gtk+ # какие установленные пакеты зависят от gtk+
equery u mc # посмотреть значения USE флагов для mc

quickpkg mc # собрать бинарный пакет уже установленный в системе

eclean -p distfiles # какие исходные файлы устарели и не будут использоваться
eclean distfiles # удалить устаревшие исходники из /usr/portage/distfiles

emerge depclean # удалить из системы все ненужные пакеты
# может привести к удалению нужных пакетов
emerge info # вывести текущие настройки (в т.ч. USE)
emerge -s foo # поиск пакета по имени
emerge -p -v foo # какие USE флаги влияют на эту программу и
# сколько Kb еще нужно докачать исходников
emerge -p -f bar # вывод url откуда можно тянуть sources
emerge -p -e bar # показать все зависимости программы без glibc
emerge -p -u foo # показать, что будет обновляться
emerge -p depclean # вывести пакеты которых нет в world и от
# которых никто не зависит (для удаления)

emerge sync # обновление portage через rsync://
emerge -f foo # только выкачка sources без установки

emerge -p bar # вывод что нужно для установки программы
emerge -p -t foo # вывод что нужно для установки программы
# (зависимости выводятся в виде дерева)
emerge -a bar # то-же что и -p, но после вывода информации
# спрашивает продолжить ли выполнять emerge
emerge -k foo # установка прекомпилированной программы из
# /usr/portage/package/All/ __ЕСЛИ__ там есть
# нужная версия программы
emerge -K bar # как и -k, но если нужной прекомпилированной
# версии нет, то используется какая есть
emerge foo # установка программы
emerge -u bar # обновить пакет (возможно, на меньшую версию)
emerge -uDN world # полный апгрейд системы
emerge -C foo # удалить пакет (unmerge). зависимости при
# удалении __НЕ__ проверяются!!!

emerge --info # Посмотреть настройки portage

etcat -v bar # вывести все версии пакета ... в портаже
etcat -u ИМЯ # с какими настройками USE (только из влияющих
# на эту программу) была установлена программа

emerge system # Обновить всю систему
emerge -u system # Обновить всю систему

emerge -p --depclean # Показать какие неиспользуемые зависимости будут удалены

emerge -auvDN world # Пересборка всей системы после изменения USE флагов

emerge --depclean # Удалить условные зависимости, присутствующие в «старой»
# системе, но больше не нужные при новом составе USE-флагов.

Изменить USE флаг для одного приложения
echo "category/moo some flags" >> /etc/portage/package.use

emerge -e system # Обновить всю систему включая компилятор (новый компилятор и/или смене CHOST)

etc-update # Обновление конфигурационных файлов (история не сохраняется)
dispatch-conf # Обновление конфигурационных файлов (история изменений сохраняется)

emerge -a depclean # Удалить неиспользуемые зависимости
emerge -auvDN world # Обновить все

пятница, 21 января 2011 г.

Diskless debian clients

Linux debian для загрузки по сети
необходимые пакеты: dhcp3-server atftpd nfs-kernel-server initramfs-tools

server# - команда на сервере
chroot# - команда с chroot'ом в /netboot директорию

адрес сервера: 192.168.0.1

/etc/dhcp/dhcpd.conf
ddns-update-style none;
#
# Сдесь указано доменное имя, DNS сервера и время аренды IP адресов клиентам, по умолчанию неделя, максимум 10 суток.
option domain-name "example.com";
option domain-name-servers 192.168.0.1, 192.168.0.1;
default-lease-time 604800;
max-lease-time 864001;
#
# Логирование работы сервера
log-facility local7;
#
# allow booting;
# allow bootp;
next-server 192.168.0.1;
# option tftp-server-name "192.168.0.1";
# Сдесь указана подсеть адресов для выдачи клиентам, DNS сервера, NETBIOS сервера доменных имен,
# доменное имя, широковещательный адрес, и диапазон выдаваемых адресов.
subnet 192.168.0.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.0.1, 192.168.0.1;
option domain-name "example.com";
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
range 192.168.0.2 192.168.0.250;
deny unknown-clients;
group {
next-server 192.168.0.1;
filename "pxelinux.0";

host virtual {
hardware ethernet 52:54:00:12:34:56;
fixed-address 192.168.0.10;
# filename "pxelinux.0";
# next-server 192.168.0.1;
option host-name "qemu";
}

host virtual_box {
hardware ethernet 08:00:27:08:e2:7d;
fixed-address 192.168.0.11;
option host-name "virtualbox";
}
}
}


Установка базовой системы:
server# debootstrap --arch i386 squeeze /netbootdir
chroot# aptitude install linux-image-2.6.32-5-686
server# wget http://www.linuxpoweruser.com/files/pxelinux.0 -o /netbootdir/boot
server# mkdir /netbootdir/boot/pxelinux.cfg


/netbootdir/boot/pxelinux.cfg/default
DEFAULT linux

LABEL linux
KERNEL vmlinuz-2.6.32-5-686
APPEND root=/dev/nfs initrd=initrd.img.netboot nfsroot=192.168.0.1:/netbootdir ip=dhcp rw


/etc/default/atftpd

OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-ttl 1 --maxthread 100 --verbose=5 /netbootdir/boot"


server# cd /etc/initramfs-tools/
server# cp initramfs.conf initramfs.conf.bkp


initramfs.conf
MODULES=netboot
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=nfs
DEVICE=
NFSROOT=auto


server# mkinitramfs -o /netbootdir/boot/initrd.img.netboot
server# cp initramfs.conf.bkp initramfs.conf


/netbootdir/etc/fstab
/dev/nfs / nfs defaults 0 0
tmpfs /etc/network/run tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/log tmpfs defaults,noatime 0 0
tmpfs /var/mail tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/spool/cron tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
tmpfs /etc/udev/rules.d tmpfs defaults,noatime 0 0
192.168.0.1:/nethomefldr /home nfs rw,nolock,auto,_netdev,intr,soft 0 0


/etc/exports
/media/archive/netboot 192.168.0.0/24(ro,no_subtree_check,async)
/media/archive/homefldr 192.168.0.0/24(rw,no_subtree_check,async)


/nrtbootdir/etc/network/interfaces
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo
iface lo inet loopback

iface eth0 inet dhcp


chroot# rm /etc/hostname
chroot# rm /etc/mailname
chroot# rm /etc/mtab
chroot# ln -s /proc/mounts /etc/mtab
chroot# rm -f /etc/blkid.tab*
chroot# ln -s /dev/null /etc/blkid.tab
chroot# rm -rf /etc/resolvconf/run
chroot# ln -s /dev/shm/resolvconf /etc/resolvconf/run

суббота, 20 ноября 2010 г.

Русские теги в Rhythmbox

По умолчанию в Linux Debian используется кодировка utf-8 а большинство тегов mp3 файлов записаны в кодировке cp1251 (windows 1251) и rhythmbox пытается читать их в кодировке юникод (UTF-8) в результате чего теги отобрааются кракозябрами.

Выходов их этой ситуации есть 2 выхода: научить плеер читать в cp1251 или перекодировать теги всей музыкальной коллекции в православную кодировку

я опишу первый способ, он быстрее и проще

cp1251 в rhythmbox для Debian Linux

1. Установим локаль ru_RU.CP1251
sudo dpkg-reconfigure locales
Здесь добавляем к выбранному ru_RU.CP1251
далее по умолчанию оставляем локаль ru_RU.UTF8

Теперь наша система знает вендовою кодировку

2. Теперь для запуска rhythmbox вводим в терминале
LC_ALL=ru_RU.CP1251 rhythmbox

Если не хотите все время вводить в терминале, то правим ярлык запуска на
/bin/bash -c "LC_ALL=ru_RU.CP1251 rhythmbox"

Теперь очищаем плейлист, загружаем в него заново все композиции и наслаждаемся русскими названиями песен

вторник, 29 июня 2010 г.

Настройка VPN соединения в GNU/Linux

Многие провайдеры предоставляют доступ во внешний мир посредствомм VPN.

Я расскажу о том как настроить pptp соединение в операционной системе Linux.


  1. Все действия мы будем выполнять с привилегиями суперпользователя, зайдем в рутову консоль
    $ sudo bash
  2. Теперь нам необходимо установить клиент pptp-linux
    Для Ubuntu/Debian
    # apt-get install pptp-linux
  3. От провайдера получаем следующую информацию:
       YOUR_IP - твой айпишник
       YOUR_GATEWAY - твой шлюз
       YOUR_LOGIN_NAME - имя пользователя
       YOUR_PASSWORD - пароль
       YOUR_DNS_1 и YOUR_DNS_2 адреса DNS серверов
       Метод авторизации, в моем случае это CHAP
  4. Настраиваем локальную сеть:
    Открываем файл /etc/network/interfaces
    и вставляем туда текст:
    auto lo
    iface lo inet loopback
    auto eth0

    iface eth0 inet static
    address YOUR_IP
    netmask 255.255.255.192 # вместо 255.255.255.192 маска подсети которую указал провайдер
    gateway YOUR_GATEWAY

    up route add -net 10.0.0.0 netmask 255.0.0.0 gw YOUR_GATEWAY
    up route add -host 195.98.64.65 gw YOUR_GATEWAY
    up route add -host 195.98.64.66 gw YOUR_GATEWAY
    up route add -net 192.168.149.0/24 gw YOUR_GATEWAY # вместо 192.168.149.0/24 имя pptp сервера

  5. Открываем файл /etc/resolv.conf и прописываем туда DNS:
    nameserver YOUR_DNS_1
    nameserver YOUR_DNS_2



  6. Настраиваем VPN соединение:
  7. Открываем файл /etc/ppp/options.pptp и вставляем туда текст:
    lock
    noauth
    nobsdcomp
    nodeflate



  8. Открываем файл /etc/ppp/chap-secrets и вставляем туда
    YOUR_LOGIN_NAME PPTP YOUR_PASSWORD

  9. Создаем файл /etc/ppp/peers/vpn и вставляем туда текст
    pty '/usr/sbin/pptp pptp.server --nolaunchpppd' # вместо pptp.server имя своего pptp сервера
    name YOUR_LOGIN_NAME
    remotename PPTP
    # debug
    lock
    require-chap
    noauth
    # nodetach
    noproxyarp
    defaultroute
    replacedefaultroute
    mtu 1400
    # Чтобы восстанавливалась связь после обрывов
    persist
    holdoff 10
    maxfail 0


  10. Пробуем!
    # pon vpn debug dump logfd 2 nodetach
    Если в конце вы увидите следующие строки

    Script /etc/ppp/ip-up started (pid 9658)
    Script /etc/ppp/ip-up finished (pid 9658), status = 0x0

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

    Для запуска в штатном режиме вводите
    $ sudo pon vpn
    Для остановки:
    $ sudo poff vpn

  11. И чтобы соединение запускалось автоматически при загрузке операционной системы, добавим его в файл сетевых интерфейсов /etc/network/interfaces
    auto ppp0
    iface ppp0 inet ppp
    provider vpn



понедельник, 28 июня 2010 г.

Установка принтера Canon LBP2900 в Debian linux

  1. Принтер отключен, включить компьютер.
  2. Подготавливаем для установки принтера пакеты.
  3. $ sudo apt-get install libxml1 libpng12-0 libpng12-dev libgtk1.2 libgtk1.2-common
  4. Драйвера скачать, распаковать, установить http://software.canon-europe.com/products/0010177.asp (если есть в локальном репозитарии, то уже, скорее всего установлены):
    cndrvcups-common_1.80-1_i386.deb
    cndrvcups-capt_1.80-1_i386.deb
  5. Разрешаем доступ всем
    $ sudo chmod 777 /var/ccpd/fifo0
  6. Переходим в /usr/share/ppd/ и создаём ссылки
    $ cd /usr/share/ppd/
    $ sudo ln -s /usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd
  7. Регистрируем принтер в системе
    $ sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
  8. Регистрируем принтер в cppd
    $ sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
  9. Включаем принтер и делаем доступным
    $ sudo chmod 777 /dev/usb/lp0
  10. Если просто добавить скрипт запуска в автозагрузку, то ccpd оказывается зависшим и приходится перезагружать вручную, вместо этого создадим файл /etc/udev/rules.d/10-canon_LBP2900.rules и запишем в него:
    KERNEL=="lp*", SUBSYSTEM=="usb", ACTION=="add", RUN+="/etc/init.d/ccpd restart"
    KERNEL=="lp*", SUBSYSTEM=="usb", ACTION=="remove", RUN+="/etc/init.d/ccpd stop"

    Теперь служба ccpd будет запускаться при каждом включении принтера и останавливаться при его выключении


Для debian squeeze
aptitude install cups cupsys cupsys-client gs-esp libstdc++5
качаем свежие дрова http://software.canon-europe.com/products/0010177.asp
переходим в папку где лежат .deb и выполняем следующие команды:
  1. aptitude install cups cupsys cupsys-client gs-esp libstdc++5
  2. dpkg-deb -x cndrvcups-common_1.90-1_i386.deb common
  3. dpkg-deb --control cndrvcups-common_1.90-1_i386.deb
  4. Появились две папки - DEBIAN и common.
    Заходим в папку DEBIAN и редактируем файл control - заменяем libcupsys2 на libcups2 и cupsys на cups. Копируем всю папку DEBIAN в common
  5. dpkg -b common new_cndrvcups-common_1.90-1_i386.deb
  6. dpkg -i new_cndrvcups-common_1.90-1_i386.deb
  7. dpkg -i cndrvcups-capt_1.90-1_i386.deb

Далее все также