Показаны сообщения с ярлыком update. Показать все сообщения
Показаны сообщения с ярлыком update. Показать все сообщения

суббота, 14 мая 2011 г.

Update? Ports. Install!

Идея быстрого развёртывания рабочей конфигурации FreeBSD весьма далека от пользователей. Предлагаемый сценарий «карты» ПО даёт сравнительно менее затратный способ получения мультимедийного и рабочего окружения на основе графических сред Fluxbox, Xfce4 или GNOME-lite, а также даёт возможность привести поломанное программное окружение к определённому базовому состоянию.

Для управления ПО используется пакет утилит portupgrade (порт ports-mgmt/portupgrade), но можно использовать и portmaster (порт ports-mgmt/portmaster).
Сценарий карты ПО

#!/bin/csh
alias installport 'portinstall -p'
# Или из бинарных пакетов: alias installport 'env PKG_PATH=/store/pckgs64/All/ portinstall -yPP'
# Или с помощью portmaster: alias installport 'portmaster -gD' # --delete-build-only'
set LOG=/var/log/update_ports.log
set TIMESTAMP_BEGIN=`date -u +%Y%m%d%H%M`
echo "${TIMESTAMP_BEGIN}: begin installation ports" >> ${LOG}
installport sysutils/ataidle
installport sysutils/smartmontools
installport archivers/unrar
installport archivers/p7zip
installport ports-mgmt/pkg_cutleaves
installport ports-mgmt/pkg_tree
installport audio/faad
installport audio/faac
installport audio/sox
installport multimedia/libdvdcss
installport net/liveMedia
installport audio/libaacplus
installport multimedia/libquicktime
#-=Xorg=-
installport x11-drivers/xorg-drivers
installport x11-servers/xorg-server
installport x11/xorg-minimal
installport x11/setxkbmap
installport x11/xhost
installport x11/xset
installport x11/xinput
installport x11/xdpyinfo
installport graphics/mesa-demos
installport x11-fonts/dejavu
installport x11-fonts/urwfonts
installport x11-fonts/urwfonts-ttf
installport x11-fonts/isabella
installport x11-wm/fluxbox
installport x11-themes/cursor-jimmac-theme
installport x11-themes/gtk-murrina-fancy-clearlooks
installport misc/gnome-icon-theme
installport x11/xscreensaver
installport audio/grip
installport www/midori
installport x11/slim
installport math/galculator
#-installport net-im/gajim
installport ftp/gftp
installport textproc/meld
#-installport net-p2p/transmission-gtk2
installport net-p2p/deluge
installport audio/deadbeef
#-=printing=-
installport print/hplip
#-=GNOME App=-
installport archivers/file-roller
installport editors/gedit-plugins
installport graphics/eog-plugins
installport graphics/evince
installport multimedia/gnome-mplayer
installport sysutils/gnome-system-monitor
installport net/gnome-nettool
#-=other=-
installport mail/thunderbird
installport mail/thunderbird-i18n
set TIMESTAMP_END=`date -u +%Y%m%d%H%M`
echo "${TIMESTAMP_END}: end installation ports" >> ${LOG}


Инсталляция Xfce 4.6.2 (из отдельного дерева портов)

#!/bin/csh
alias installport 'portinstall -p'
#alias installport 'portmaster -gD' # --delete-build-only'
#-=Xfce4=-
#-installport deskutils/xfce4-notifyd # conflict with xfce4-notification-daemon
installport deskutils/xfce4-notification-daemon # conflict with xfce4-notifyd
#-installport audio/thunar-media-tags-plugin
installport archivers/thunar-archive-plugin
installport x11-wm/xfce4-session
installport x11-wm/xfce4
installport sysutils/xfce4-systemload-plugin
installport x11/xfce4-screenshooter-plugin
installport x11/xfce4-clipman-plugin
installport sysutils/xfce4-netload-plugin
installport misc/xfce4-weather-plugin
installport sysutils/xfburn


Восстановление конфигурации
#!/bin/csh
set CONFIG_DIR=/root/update/config
set LOCALBASE=/usr/local
set TIMESTAMP=`date -u +%Y%m%d%H%M`
cd ${LOCALBASE}/etc/ && mv -v slim.conf slim.conf.${TIMESTAMP} && cp -v ${CONFIG_DIR}/slim.conf ${LOCALBASE}/etc/
cd ${LOCALBASE}/etc/PolicyKit/ && mv -v PolicyKit.conf PolicyKit.conf.${TIMESTAMP} && cp -v ${CONFIG_DIR}/PolicyKit.conf ${LOCALBASE}/etc/PolicyKit/ && chmod 644 ${LOCALBASE}/etc/PolicyKit/PolicyKit.conf
cd ${LOCALBASE}/etc/xdg/xfce4/ && mv -v mount.rc mount.rc.${TIMESTAMP} && cp -v ${CONFIG_DIR}/mount.rc ${LOCALBASE}/etc/xdg/xfce4/ && chmod 644 ${LOCALBASE}/etc/xdg/xfce4/mount.rc


Важные замечания
  • Дерево портов должно быть своевременно обновлено.
  • Обращаю внимание на то, что по умолчанию настройки политик логина пользователей, монтирования сменных носителей от имени непривелегированных пользователей не определены. Поэтому нужно заранее подготовить файлы slim.conf, PolicyKit.conf и mount.rc, описанные в соответствующих статьях, и разместить их в защищённом от записи непривелегированным пользователем каталоге, например, в /root/update/config.
  • Для пакетного режима работы сценария важно наличие сформированного каталога /var/db/ports/ с заданными необходимыми опциями сборки портов. Иначе придётся настраивать установку одельных портов и их зависимостей в процессе исполнения сценария. ;)
  • Команды этого сценария подготавливают графическую среду для работы и развлечения, не уничтожая исходные файлы конфигурации.
Сценарий повседневного обновления ПО

#!/bin/csh
#-alias upgradeports 'pkgdb -vfFu && portsdb -u && portupgrade -aF && portupgrade -ap'
alias upgradeports 'portmaster -agD --delete-build-only'
alias listupdates 'portmaster -L | grep "New"'
set LOG=/var/log/update_ports.log
set DONE="Ports Updating Failed."
set SYSTEMPOOL=selena
set TIMESTAMP=`date -u +%Y%m%d%H%M`
zfs snapshot ${SYSTEMPOOL}/usr/local@${TIMESTAMP}
zfs snapshot ${SYSTEMPOOL}/var/db/pkg@${TIMESTAMP}
cd /usr/ports/ && chflags -R noschg * && portsnap fetch update
listupdates
head -17 /usr/ports/UPDATING
upgradeports && set DONE="Ports Updating Success."
echo "${TIMESTAMP}: ${DONE}" >> ${LOG}
tail -n1 ${LOG}