Das -r-Problem von xargs kann einfach mit den Backquotes vermieden werden:
fink purge `fink list | perl -lne '/^\s*i\s+(\S+)/ and print $1'`
Ich habe von Fink zu HomeBrew gewechselt und möchte Fink und alle installierten Pakete deinstallieren, um zukünftige Probleme zu vermeiden.
Ich habe dieses Perl-Snippet gefunden, das alle Passagen entfernen soll, aber es funktioniert nicht: fink list | perl -lne '/^s*is+(S+)/ and print $1' | xargs fink purge
Wie kann ich alle Pakete entfernen?
Das -r-Problem von xargs kann einfach mit den Backquotes vermieden werden:
fink purge `fink list | perl -lne '/^\s*i\s+(\S+)/ and print $1'`
Ich bin nicht vertraut mit fink, aber ich gehe davon aus, dass fink list
eine Zeile für jedes Paket löscht und für diejenigen, installiert sie von dem Format sind: i packagename
. Das Problem ist, dass Sie s
und S
(die wörtlichen Zeichen) anstelle von \s
und verwenden \S
: Leerzeichen bzw. Nicht-Leerzeichen.
Die richtige Zeile ist wahrscheinlich:
fink list | perl -lne '/^\s*i\s+(\S+)/ and print $1' | xargs -r fink purge
Ich habe auch ein -r
xargs hinzugefügt, damit fink purge
es nicht läuft, wenn es keine passenden Zeilen (installierte Pakete) gibt.
Aus der Fink-FAQ :
Q5.6: How can I uninstall all of Fink? A: Almost all files installed by Fink are in /sw (or wherever you chose to install it), except for a few exceptions. Thus, in order to get rid of Fink, enter this command: fink remove --recursive daemonic xinitrc sudo rm -rf /sw If you aren't planning to reinstall Fink you also will want to remove the "source /sw/bin/init.csh" line you added to your .cshrc file or the "source /sw/bin/init.sh" line you added to your .bashrc file, whichever is appropriate to your setup, using a text editor. If you had the xinitrc package installed, then you will want to restore the original /usr/X11/lib/X11/xinit/xinitrc, which has been backed up as /usr/X11/lib/X11/xinit/xinitrc.YYYYMMDDhhmm, i.e. the extension has a year, month, date, hour, and minute). If you have more than one of these, the original one normally does not mention sys-xinitrc-fink. Once you've found the right one, you can use sudo mv /usr/X11/lib/X11/xinit/xinitrc.YYYYMMDDhhmm \ /usr/X11/lib/X11/xinit/xinitrc replacing YYMMDDhhmm with the actual extension on your system.