Re: Packages erstellen - 2 Zeiler?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 30 Jul 2004 10:34:15 +0200 (CEST)

André Braselmann <bb(at)braisel.com> wrote:
> ich will von den installierten Ports auf einem 4.10er alle Ports auf ein
> nacktes 4.10er kopieren.

Wenn der Zielrechner nicht langsam ist, würde ich einfach
auf dem Quellrechner folgendes ausführen:

pkg_info -ao | grep /

Das ergibt eine Liste der Verzeichnisse unter /usr/ports,
in denen auf dem Zielrechner ein »make install« gemacht
werden muß. Kannst Du z.B. in eine Datei umleiten und
dann wie folgt mit einer sh-Schleife durchnudeln:

for port in `cat Datei`; do
        ( cd /usr/ports/$port; make install BATCH=yes )
done

Wenn es viel ist, kannst Du's ja über Nacht laufen lassen.
Danach solltest Du erneut mit pkg_info nachschauen, ob noch
irgendwas fehlt (z.B. weil etwas schiefgegangen ist, oder
weil ein Port interaktiv war), und die betreffenden Ports
nochmals unter die Lupe nehmen.

Wenn der Zielrechner keinen Netzzugang hat, kannst Du auf
dem Quellrechner jeweis mit »make fetch« die Distfiles ein-
sammeln und auf den Zielrechner rüberkopieren.

Wenn Du auf dem Zielrechner absolut nichts kompilieren
willst, wird's aufwendiger. Das Erzeugen von Packages ist
nämlich nur dann vorgesehen, nachdem Du den Port in der
/usr/ports-Infrastruktur gebaut hast, aber ich nehme an,
Du hast dort bereits »make clean« gemacht.

Ein »Qick and dirty«-Hack wäre es, einfach den kompletten
Inhalt von /usr/X11R6, /usr/local und /var/db/pkg vom einen
Rechner auf den anderen rüberzuziehen. Sicherheitshalber
kannst Du unter /var/db/pkg noch die */+CONTENTS Dateien
abgrasen, ob sie irgendwo etwas außerhalb von /usr/X11R6
und /usr/local installiert haben. Aber es gibt auch zahl-
reiche andere Stellen, wo Ports ihre Spuren hinterlassen,
ein typisches Beispiel ist /etc/shells, oder spezielle
Pseudo-User und -Gruppen, die angelegt werden. Solche
Dinge solltest Du als »@exec«-Zeilen in +CONTENTS finden.
Meines Wissens gibt es keinen einfachen Weg oder 2-Zeiler,
um das alles automatisiert zu machen -- jemand möge mich
bitte korrigieren, wenn ich mich irre. Man könnte aber
sicherlich ein Tool schreiben, das das tut.

Wenn der Quellrechner deutlich schneller ist als der Ziel-
rechner, könntest Du natürlich auch dort unter /usr/ports
jeweils ein »make package« machen.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"FreeBSD is Yoda, Linux is Luke Skywalker"
        -- Daniel C. Sobral
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 30 Jul 2004 - 10:34:40 CEST

search this site