From: printman <printman-unix@yandex.ru.>
Newsgroups: email
Date: Mon, 3 May 2006 14:31:37 +0000 (UTC)
Subject: Менеджер программ для установки из исходников
Смысл в том, чтобы контролировать программы, установленные из исходников.
Для установки программы нужно сделать fake-install, т.е.
./configure --prefix=/usr && make && make DESTDIR=/tmp/prgman install
Затем делаем prgman add < PROGRAM >
Менеджер сохранит список файлов, установленных программой, затем перенесёт
её в prefix.
При удалении, prgman del < PROGRAM >, менеджер сперва удалит файлы из списка,
затем пустые директории.
#!/bin/bash
if [ "$1" = "" ]; then
echo 'usage : prgman [ add , del , info ] [ PROGRAM ]'
elif [ "$1" = "add" ]; then
if [ "$2" = "" ]; then
echo "syntax error"
exit
elif ls /var/log/prgman/$2 1> /dev/null 2>&1; then
echo "already installed"
exit
else
for TYPE in b c p f l s ; do
find /tmp/prgman -type $TYPE >> /tmp/prgman.tmp
done
sort /tmp/prgman.tmp | sed s/'^/tmp/prgman'//g | sed s/^/'f '/g > /var/log/prgman/$2
rm -f /tmp/prgman.tmp
find /tmp/prgman -type d | sort | sed s/'^/tmp/prgman'//g | sed s/^/'d '/g >> /var/log/prgman/$2
cp -R /tmp/prgman/* /
rm -r /tmp/prgman/*
fi
elif [ "$1" = "del" ]; then
if [ "$2" = "" ]; then
echo "syntax error"
exit
elif ! ls /var/log/prgman/$2 1> /dev/null 2>&1; then
echo "not installed"
exit
else
cat /var/log/prgman/$2 | sed -n /^f/p | sed s/^'f '//g | xargs rm
tac /var/log/prgman/$2 | sed -n /^d/p | sed s/^'d '//g | xargs rmdir
rm /var/log/prgman/$2
fi
elif [ "$1" = "info" ]; then
if [ "$2" = "" ]; then
ls /var/log/prgman
elif ! ls /var/log/prgman/$2 1> /dev/null 2>&1; then
echo "not installed"
exit
else
cat /var/log/prgman/$2
fi
fi
776 Прочтений • [Менеджер программ для установки из исходников (rpm packet)] [08.05.2012] [Комментариев: 0]