pkg upgrade und überschreiben von selbst erstellten Paketen

kraekers

Well-Known Member
Moinsen,

ich habe mein FreeBSD 9.2 nun auf das "neue" pkg umgestellt. Alles läuft soweit wunderbar.
Was mich nur stört ist, daß selbst erstellte Pakete über pkg upgrade wieder entfernt werden und mit dem Stand des Paket Repositories ersetzt werden.

Beispiel:

hplip muß ich backen, da nur USB im hplip-Paket aus dem pkg Repository integriert wurde.
Führe ich danach ein pkg upgrade durch, ist mein selbst erstelltest Paket ersetzt worden.

Am liebsten würde ich gar keine Ports mehr nutzen müssen, aber:

1. fehlen eine Menge Pakete die ich benötige (lame, flash, hplip (mit fax und snmp) etc.)
2. gibt es nur unter FreeBSD ein pkg Repository für i386, daß PC-BSD Repo sagt mir mehr zu, gibt es aber halt nur für amd64

Also was tun, hat jemand vielleicht ähnliche Erfahrungen gesammelt.

Vielen Dank im Voraus.

Beste Grüße

kraekers
 
Du kannst einzelne Pakete mite "pkg lock $packetname" sperren. Dann wird "pkg upgrade" sie nicht mehr anfassen. Allerdings sollte man es nicht übertreiben, also nur Pakete sperren, die wirklich gesperrt sein müssen. Denn wenn man zu viele sperrt, funktioniert irgendwann gar nichts mehr.
 
Alternativ halt mit Poudriere selber ein Repo aufsetzen, gibt ja jetzt multirepo support. Ich fahre aber auch mit pkg-lock(8), sind ja meistens ohnehin nur "Leaf"-Ports bei denen man eigene Optionen benötigt. Wie Yamagi anspricht kann es zu Problemen führen bei upgrades, wenn du viele Pakete lockst, die von anderen (nicht gelockten) Ports benötigt werden. Du kannst dir (bei Problemen oder zum nach Upgrades zu schauen) alle gelockten Pakete mit Version anzeigen lassen mit:
Code:
$ pkg query -e %k=1 %n-%v

Und um zu schauen, was die remote version aller gelockten Pakete ist:
Code:
$ pkg rquery -e %o=`pkg query -e %k=1 %o` %o-%v

Solange du die gelockten Pakete aktuell hälst (oder es Pakete ohne reverse dependencies sind), gibt es meiner Erfahrung nach keine Probleme damit.

EDIT: Und noch ein kleiner Tipp wenn du selber baust. Du willst ja nicht alle Dependencies neu bauen....
Code:
# cd /usr/ports/category/zu-bauender-port
# make missing | xargs pkg install -AyU
# make install clean
# pkg autoremove #(optional)
 
Hallo,

ohhh, klasse das werde ich einmal durchtesten.

Vielen Dank für die Tipps.

Beste Grüße

Kraekers
 
Back
Top