понедельник, 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