alle Pakete löschen und neu installieren mit pkg

peterle

Forenkasper
Die Frage ist eher theoretischer Natur, aber mit ports-mgmt/portmaster gab es da ein nettes Beispiel:
Code:
Using portmaster to do a complete reinstallation of all your ports:
   1. portmaster --list-origins> ~/installed-port-list
   2. Update your portstree
   3. portmaster -ty --clean-distfiles
   4. portmaster --check-port-dbdir
   5. portmaster -Faf
   6. pkg_delete -a
   7. rm -rf /usr/local/lib/compat/pkg
   8. Back up any filesin /usr/local you wish to save,
      such as configuration files in /usr/local/etc
   9. Manually check /usr/localand /var/db/pkg
      to make sure thatthey are reallyempty
   10. Re-install portmaster
   11. portmaster `cat ~/installed-port-list`

Wie setze ich denn Punkt 1 mit pkg um? :o
 

medV2

Well-Known Member
pkg info -aq sollte dir alle installierten pakete anzeigen.

Aber was du vorhast lässt sich einfach mit pkg upgrade -f realisieren.
 

peterle

Forenkasper
Danke, geht das auch ohne Versionsnummern oder als Port?

Ich finde zwar in "man pkg" die Zeile:
Code:
pkg info [-AbBDdefIklOpqRrs] [-Cgix] pkg-name

aber keine Erklärung was die Optionen machen. Vermutlich übersehe ich ja wieder mal was, aber ich weiß nicht wo.

Es geht mir gar nicht darum, das alles 1:1 wiederherzustellen, sondern /usr platt zu machen und nachher nur die Pakete installieren, die das neue System braucht. Mit einer Liste aller installierten Ports kann ich im Zweifel aber den alten userspace wiederherstellen.
 

pit234a

Well-Known Member
pkg info -aoq zeigt es ohne Versionsnummern und in einem Text, der wiederverwendet werden kann.
Ich mache das immer so und übergebe dann diesen Text über xargs dem neuen System zum pkg install.
Aus dem Gedächtnis etwa: cat diesen.txt | xargs -o pkg install
Oder so ähnlich.
 

medV2

Well-Known Member
Die man von pkg ist etwas dürftig, dafür gibt es den help Befehl, also z.b. pkg help info - um dir die Optionen erklären zu lassen.
 

Yamagi

Possessed With Psi Powers
Teammitglied
Ich würde es so machen:

Code:
# Paketliste erstellen, gibt alle explizit installierten Pakete aus.
% pkg query -e "%a==0" "%o" > paketliste

# Dann aufräumen (löscht die Configs!)
% rm -Rf /usr/local/* /var/db/pkg/* /var/cache/pkg/*

# Und wieder installieren
%  xargs pkg install < paketliste
 

xcvb

Well-Known Member
Ich würde es so machen:

Code:
# Paketliste erstellen, gibt alle explizit installierten Pakete aus.
% pkg query -e "%a==0" "%o" > paketliste

# Dann aufräumen (löscht die Configs!)
% rm -Rf /usr/local/* /var/db/pkg/* /var/cache/pkg/*

# Und wieder installieren
%  xargs pkg install < paketliste

Ist das /usr/local löschen optional? Warum sollte man seine configs löschen?
 

Yamagi

Possessed With Psi Powers
Teammitglied
/usr/local löschen ist bei meinem Weg notwendig, da kein pkg delete ausgeführt wird und man daher die durch die Pakete installierten Dateien manuell löschen muss. Aber auch wenn man alle Pakete korrekt deinstalliert, bleibt gerne Mal Müll unter /usr/local liegen. Wenn man die Configs aufbewahren will, weil man sie nicht andersweitig hat, kann man vorher ja /usr/local/etc rauskopieren.
 
Oben