View previous topic :: View next topic |
Author |
Message |
Beforegod Bodhisattva
Joined: 10 Apr 2002 Posts: 1495 Location: Würzburg
|
Posted: Tue Nov 11, 2003 11:21 am Post subject: [PORTAGE] Skript um größere Pakete zu (de)installieren |
|
|
Hallo,
nachdem es mir ziemlich auf den NErv ging die ganzen Abhängigkeiten (für z.B. GNOME) zu merken um sie später wieder sauber zu deinstallieren habe ich mir ein einfaches(!!) Skript geschrieben.
Es protokolliert alle Pakete die installiert werden und kann sie bei Bedarf auch wieder deinstallieren (auch wenn es dazwischen neuere Updates gab).
Allerdings gilt : Wenn bei einem Update neue Software dazu kam, wird diese nicht mit auf genommen. Daran arbeite ich noch!
Wie gesagt das Skript ist sehr simpel :
pkg-emerge l
für eine Liste aller installieren Applikationen (mit pkg-emerge)
pkg-emerge u $paket
für die Deinstallation
pkg-emerge i $paket
für die Installation
Bitte ändert die Variabel $UNINSTALL_LOG damit sie in ein gültiges Verzeichnis verweist!
Cheers,
BeforeGod
Code: |
#!/bin/sh
#emerge (un) installer
#Protocolls which packages will be installed by a big project (like gnome and kd
e) and simply uninstall it if you want
UNINSTALL_LOG=/pub/uninstall
if [ "$1" = "u" ]; then
echo "Uninstalling Package $2"
emerge unmerge `grep -i ebuild $UNINSTALL_LOG/$2 | gawk '{print ">="$4}'
`
echo "Package uninstalled"
rm -f $UNINSTALL_LOG/$2
exit 1
fi
if [ "$1" = "i" ]; then
echo "Installing Package $2"
emerge -p $2 > $UNINSTALL_LOG/$2
echo "Fetching all the Packages"
emerge -f $2
echo "Get Ready for emerge..."
emerge $2
exit 1
fi
if [ "$1" = "l" ]; then
echo "List Packages allready installed"
ls -1 $UNINSTALL_LOG
exit 1
fi
if [ !$1 ]; then
echo "Usage"
echo "pkg-emerge Option Package"
echo "Options : u - UnInstall"
echo " : i - Install"
echo " : l - List Installed Packages"
exit 0
fi
|
|
|
Back to top |
|
|
Beforegod Bodhisattva
Joined: 10 Apr 2002 Posts: 1495 Location: Würzburg
|
Posted: Thu May 13, 2004 6:19 am Post subject: |
|
|
Hier mal ein Update wo auch Updates von Software möglich ist.
Code: |
#!/bin/sh
#emerge (un) installer
#Protocolls which packages will be installed by a big project (like gnome and kde) and simply uninstall it if you want
UNINSTALL_LOG=/pub/uninstall
if [ "$1" = "u" ]; then
echo "Uninstalling Package $2"
emerge unmerge `grep -i ebuild $UNINSTALL_LOG/$2 | gawk '{print ">="$4}'`
echo "Package uninstalled"
rm -f $UNINSTALL_LOG/$2
exit 1
fi
if [ "$1" = "i" ]; then
echo "Installing Package $2"
emerge -p $2 > $UNINSTALL_LOG/$2
echo "Fetching all the Packages"
emerge -f $2
echo "Get Ready for emerge..."
emerge $2
exit 1
fi
if [ "$1" = "l" ]; then
echo "List Packages allready installed"
ls -1 $UNINSTALL_LOG
exit 1
fi
if [ "$1" = "pkg" ]; then
echo "Erstelle Pakete"
emerge --buildpkgonly $2
exit 1
fi
if [ "$1" = "pkg-i" ]; then
echo "Installiere Pakete"
emerge -p $2 > $UNINSTALL_LOG/$2
emerge --usepkgonly $2
exit 1
fi
if [ "$1" = "update" ]; then
echo "Update mit Pakete"
emerge -p $2 >> $UNINSTALL_LOG/$2
echo "Fetching Update"
emerge -Uf $2
echo "Installing Update"
emerge -U $2
exit 1
fi
if [ !$1 ]; then
echo "Usage"
echo "pkg-emerge Option Package"
echo "Options : u - UnInstall"
echo " : i - Install"
echo " : l - List Installed Packages"
echo " : pkg - Pakete erstellen"
echo " : pkg-i - Pakete installieren"
echo " : update - Programme updaten"
exit 0
fi
|
Viel Spass! |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Thu May 13, 2004 6:45 am Post subject: |
|
|
Ich habe meine eigene Taktik:
0) /etc/portage/packages.use pflegen und nie mit "USE=foo emerge pkg-cat/pkg-name" installieren
1) software normal mit emerge pkg-cat/pkg-name installieren
2) updates nur mit emerge --oneshot -u pkg-cat/pkg-name damit die Pakete nicht im worldfile landen (keine Ahnung warum es das bei einem "emerge -u world" macht)
3) software normal mit emerge -C pkg-cat/pkg-name entfernen
4) mit emerge -p depclean aufräumen
Das Problem ist, dass man bei updates immer an das --oneshot denken muss, dafür hab ich mir ein alias definiert. Ein regelmäßiger Blick ins worldfile erledigt den Rest. (alles was man nicht installiert hat müsste dann raus da).
Nur als Anregung für andere, diese Vorgehensweise hat bei mir immer sehr gut funktioniert und berücksichtigt im Prinzip alle Abhängigkeiten, auch bei kleinen Paketen... |
|
Back to top |
|
|
|