Gentoo tips

Давно хотел написать об одном разделе форума а именно Documentation, Tips & Tricks. Сказать что это бесценный источник информации считайте что промолчать вовсе.

TIP: Compressing portage using squashfs: initscript method Вы ведь не каждый день занимаетесь пересборкой мира и программ? Почему бы тогда не сжать /usr/portage ? Для работы нужно sys-fs/unionfs либо sys-fs/aufs и sys-fs/squashfs-tools
Файл конфигурации

# /etc/conf.d/squash_portage

# SQFS_DIRNAME points to the directory that will contain the sqfs
# images, recommended value is /var/tmp
SQFS_DIRNAME="/var/portage"

# Leave PORTAGE_RW empty for use with tmpfs, a ram-based filesystem,
# This is recommended unless you are short of RAM
PORTAGE_RW=""

Сам дополненный init скрипт только обратите внимание что в данном виде
настроено для связки unionfs+squashfs.

#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# /etc/init.d/squash_portage allows efficient compression of
# Gentoo portage arborescence
#
# It requires support for the loop device and squashfs enabled in the kernel,
# module autoloading is also *highly* recommended.
# sys-fs/squashfs and sys-fs/unionfs are necessary for read-write support.
#
# Author: Mathias Laurin
# 2006-11-28, v.0.1.5(4)

source /etc/make.globals
SQFS_CUR="$SQFS_DIRNAME/portage.sqfs"
SQFS_NEW="$SQFS_DIRNAME/portage-current.sqfs"
SQFS_OLD="$SQFS_DIRNAME/portage-old.sqfs"
DEF_RW="/dev/shm/.portage-rw"

depend() {
    need localmount
}

start() {
    ebegin "Mounting read-only squashfs image"
    mount -rt squashfs -o loop $SQFS_CUR $PORTDIR
    retval=$?
    eend $retval
    [ $retval -ne 0 ] && return $retval

    #ebegin "Mounting read-write with aufs"
    ebegin "Mounting read-write with unionfs"
    if [ ! $PORTAGE_RW ]
    then einfo " mounted in tmpfs (RAM)"
    PORTAGE_RW="${DEF_RW}"
    fi
    [ -d $PORTAGE_RW ] || mkdir -p $PORTAGE_RW
    chmod 0750 $PORTAGE_RW
    chown portage:portage $PORTAGE_RW
    #mount -t aufs -o nodev,noexec,dirs=$PORTAGE_RW=rw:$PORTDIR=ro aufs $PORTDIR
    mount -t unionfs -o nodev,noexec,dirs=$PORTAGE_RW=rw:$PORTDIR=ro unionfs $PORTDIR
    eend $?
}

stop() {
   ebegin "Updating portage tree"
   rm -rf /dev/shm/.portage-rw/.wh..wh.plink
   rm     /dev/shm/.portage-rw/.wh..wh.aufs

   [ ! $PORTAGE_RW ] && PORTAGE_RW="${DEF_RW}"
   if [ ! -z `ls -A $PORTAGE_RW | head -n1` ]
   then
      einfo "  Syncing the tree"
      mv -f $SQFS_NEW $SQFS_OLD
      mksquashfs $PORTDIR $SQFS_NEW -no-duplicates 2>/dev/null
      retval=$?
      ln -sf $SQFS_NEW $SQFS_CUR
   else
      einfo "  Nothing to do"
      retval=0
   fi
   eend $retval

   ebegin "Unmounting the tree"
   #umount -t aufs  $PORTDIR
   umount -t unionfs  $PORTDIR
   umount -t squashfs $PORTDIR
   rm -rf $PORTAGE_RW
   eend 0
}

Единственное о чем еще надо позаботится так это переопределить положение каталогов distfiles, local и packages например в /var просто для того чтобы время не тратилось на архивирование не нужного…

Отличная идея [HOWTO] lvm2 for root, swap and software suspend2 (edit) На домашнем десктопе долгое время пользовался и лично мне очень нравилось. Да а вот собственно так удаляются LVM разделы из группы томов [HOWTO] Removing disks from an LVM volume

После этого Encrypted Root File System, Swap, etc… потенциальный враг не узнает ваших секретов.

Опять же просто отличная идея [Script] Analyse iptables logs as spreadsheet - Log viewer Преобразует лог iptables к виду comma-separated-values (.csv) файла который затем можно обрабатывать например в OpenOffice.org Calc

Automatically delete information from unused locales при современных обьемах жестких дисков уже не так актуально но порядок нужен во всем.

Тоже интересно adsl-start init script но с появлением NetworkManager уже не так актуально…

Есть такой интересный сервис dyndns так вот а это [dyndns|statdns|custom] Without external program… собственно init скрипт для тех кому интересно пользоватся dyndns на своей gentoo.

Тут тоже все понятно bash-logger logging to separate file with syslog-ng и без обьяснений понятно что идея хорошая.

Вот это тоже рекомендую Colorize your /dev/tty12 syslog-ng logs выхлоп syslog на /dev/tty12 становится разноцветным и более читаемым.

Банальный совет Using the the new gtk-update-icon-cache program но немногие знают что он помогает ускорять отрисовку иконок.

Кстати это

for i in `find -type d -maxdepth 1`; do gtk-update-icon-cache $i; done;

полезно делать не только в /usr/share/icons/ но и в ~/.icons

Тоже полезно знать Speed up recompilation with ccache

Все уже было изобретено до нас вот конкреный пример [TOOL] Init Script to automagically renice processes at boot захотелось человеку автоматически при старте менять приоритеты процессам он написал init скрипт.

Интересная идея emerge progress without turning on monitor (LED cpu load) но я не пробовал.

Кому лень посмотреть в настройках вот вам все клавиатурные сочетания гнома GNOME Keyboard Shortcuts

Владельцам ноутбуков и прочих мобильных устройств будет полезно Displaying your laptops battery state in the bash prompt.

Мне помогло многое из раздела советов… Вспомню что то еще допишу сюда.

Comments