automatischer download von einem package und dessen dependencies

sewin schrieb:
Hallo,

ich schreib hier gerade ein windows-tool, das die packages und deren abhängikeiten herunterlädt (auch mit proxy). wenns fertig ist, sag ich bescheid. unter bsd kannste das ganz einfach mit nem script machen (pkg_info -r ist dein freund).

mfg sewin

Wäre sehr daran interessiert :)

Wäre fein, wenn das auch für Ports geht und nicht nur für packages.

Nur hätte ich da noch paar fragen zu, wie machst du das genau ?
Lässt du immer die aktuellste version von den depencies saugen, oder woher weiss dann dein tool, welche version er saugen muss, z.b. bei phyton oder java.
Da gibts ja end viele versionen.

oder hardcore wirds wenn man kde oder sowas lädt, da gibts ja hunderte depends.

Würde mich echt ma interessieren wie das später aufgebaut ist, wirds Open- oder Closed-Source ?

Wenn du hilfe brauchst, dann kannst mich ja per PE anlabern, helfe immer gerne :)
Kann Delphi, PHP und bissel C/C++ und als betatester stell ich mich auch gern zur verfügung ;)

matane,
Final
 
Wohl das einfachste Vorgehen ohne jegliche Hilfsmittel (cygwin, Lehmann-BSD-CD's..):

1.) Von der FreeBSD-Installations-CD mit Hilfe von sysinstall alle benötigten Programme installieren, welche auf der CD vorhanden sind (Xorg, KDE, Gnome..).

2.) Auf dem Firmen-Rechner die gewünschten fehlenden Packages von:
ftp://ftp.freebsd.ch/pub/FreeBSD/ports/i386/packages-5.3-release/
herunterladen.

3.) Die auf dem Firmen-Rechner heruntergeladen Packages mit:
# pkg_add <Packagename>
auf der FreeBSD-Kiste installieren. Oft kann pkg_add das Package nicht installieren, da zur Installation des angegebenen Packages noch weitere Packages benötigt werden. Den Namen der fehlenden Packages aufschreiben und am nächsten Tag in der Firma herunterladen => Mühsam aber es geht..
 
CAMISOLITE schrieb:
Bei pkgsrc kann ich noch einige Kommandozeilenoptionen mitgeben, z.B. welches Fetch-Programm ich benutzen möchte (ich glaube es war FETCH-METHOD oder so) und in welches Verzeichnis die Dateien (auf der Fetch-Maschine) gespeichert werden sollen (z.B. DISTDIR=/tmp/distfiles ). Schau mal nach ob es vergleichbares für die ports gibt.

Ach so bei pkgsrc landen die Ausgaben auf der Konsole. Ich muß also den make-Aufruf in eine Datei lenken. Insgesamt könnte es für Dich so aussehen:



Mit der myFetchList.sh geht's dann ab nach cygwin (wo natürlich das Fetch-Programm installiert sein muß; ich bevorzuge hier wget).

Wie gesagt pkgsrc != ports , aber pkgsrc ist aus ports entstanden und grundsätzlich ähnlich aufgebaut.

hi CAMISOLITE & pnoom,
langsam komme ich der sache näher.

make fetch-recursive-list funktioniert ausgezeichnet!

leider habe ich das mit den parametern für wget und /tmp/distfiles nicht verstanden.
man make hilft mir auch nicht.
edit: btw. ist make fetch-recursive-list irgendwo dokumentiert?

wenn du mir einfach mal den genauen befehl hier posten könntest, wie ich dem make fetch-recursive-list noch beibringe, dass er wget benutzt und dass er die sachen in /tmp/distfiles speichert, dann wäre alles perfekt! :cool:
 
Zuletzt bearbeitet:
AndreasMeyer schrieb:
Wohl das einfachste Vorgehen ohne jegliche Hilfsmittel (cygwin, Lehmann-BSD-CD's..):

1.) Von der FreeBSD-Installations-CD mit Hilfe von sysinstall alle benötigten Programme installieren, welche auf der CD vorhanden sind (Xorg, KDE, Gnome..).

2.) Auf dem Firmen-Rechner die gewünschten fehlenden Packages von:
ftp://ftp.freebsd.ch/pub/FreeBSD/ports/i386/packages-5.3-release/
herunterladen.

3.) Die auf dem Firmen-Rechner heruntergeladen Packages mit:
# pkg_add <Packagename>
auf der FreeBSD-Kiste installieren. Oft kann pkg_add das Package nicht installieren, da zur Installation des angegebenen Packages noch weitere Packages benötigt werden. Den Namen der fehlenden Packages aufschreiben und am nächsten Tag in der Firma herunterladen => Mühsam aber es geht..

1+2 funktioniert.
3 -> so wie's aussieht geht es auch ohne aufschreiben, dass macht make fetch-recursive-list automatisch! jetzt wird's interessant... :D
 
cd /usr/ports/www/firefox
make fetch-recursive-list > myflist
cat myflist | awk '{print $6}' | grep "" -n | cut -d : -f2-100 > myflist

nun hat man eine liste mit http/ftp adressen die zur firefox-source und dessen dependencies zeigen. habe gestern auf die schnelle ein tool für win geschrieben, das diese liste (myflist) einliest und überall ein "wget " davorschreibt und das ganze in eine andere datei schreibt (flist-ready). wenn interesse besteht, kann ich euch dieses tool geben, fragt sich nur, ob jemand bereit ist, es zu hosten. derweil ist es ein vb.net proggi. wenn interesse besteht, werde ich das ganze auch mal in vb6 schreiben, damit man kein framework braucht. diese flist-ready einfach in das gewünschte cygwin verzeichnis auf dem fetch-pc kopieren und starten

$ cd /tmp/distfiles
$ sh flist-ready

muss halt noch am abend testen, ob sich der firefox so installieren lässt.

edit: man muss auch eine http_proxy bzw die ftp_proxy variable setzen!
 
Zuletzt bearbeitet:
Jetzt hab ich's

Hallo,

die Lösung für das Problem ist eigentlich ganz einfach und sieht folgendermaßen aus:
Als erstes muss man festlegen, welche Pakete zum "Lieferumfang" eines FBSD-Systems gehören. Das ist einfach, denn da kann man z.B. einfach die 1. CD, genannt "standard install", annehmen.
Dann müsste man beim Bauen der Pakete nur noch darauf achten, dass man nur Sachen dynamisch reinlinkt, die auf der 1. CD liegen, somit von jedermann leicht (und ohne Internetverbindung) nachzuinstallieren sind.

So geht's :)
Tschüss

thorsten1
 
Zurück
Oben