Paket mit angepasstem ISO in ein bestimmtes Verzeichnis kopieren

Paket mit angepasstem ISO in ein bestimmtes Verzeichnis kopieren

Ich habe einindividuellUbuntu ISO, wo ich alle meine benötigten Pakete installiert habe, aus dem /pool/extras/Verzeichnis. Jetzt möchte ich in der Lage sein,Kopiereneines der Pakete ( .deb) aus diesem /pool/extrasVerzeichnis und speichern Sie es unterein anderer Ort, sagen wir zum Home-Verzeichnis eines Benutzers, von dem ich weiß, dass er existiert ( /home/myuser/). Ich habe versucht, dies in dervorbesetzen

d-i   preseed/late_command string if [ -f /media/cdrom/pool/extras/mypkg.deb ]; then cp -f /media/cdrom/pool/extras/mypkg.deb /home/myuser; fi

Aber das hat anscheinend nicht funktioniert! Ist dieser Ansatz richtig? Oder gibt es eine andere Möglichkeit, wie ich das Paket (vielleicht zu einem späteren Zeitpunkt) abrufen kann /pool/extras?

Antwort1

Ich habe zumindest einen Vorschlag für dich. Ich weiß, dass das funktioniert, da ich an einem Projekt mit Ubuntu 14.4 arbeite und dieser Mechanismus bei mir funktioniert.

Zuerst der preesed.cfg preseed-lat Befehl

d-i preseed/late_command string \
cd /target; \
wget http://sub.webserver.domain/directory/script; \
chmod +x ./script; \
chroot ./ ./script; \
rm -f ./script

Die Datei, die wir hier Skript nennen, enthält den Code, der während der
Installation ausgeführt wurde:

etwas wie

wget http://sub.webserver.tdl/dir/run -O /etc/profile.d/run.sh
chmod +x /etc/profile.d/run.sh

wie Sie sehen, erfordert dieser Ansatz einen Webserver. Wenn Sie in Ihrem Fall ein ISO haben, können Sie beide Dateien im Stammverzeichnis Ihres ISO speichern und Folgendes verwenden

  d-i preseed/run string script

In diesem Fall muss das Skript im selben Verzeichnis liegen wie die preseed.cfg

Im obigen Beispiel kopiert die Skriptdatei einfach run.sh in das Verzeichnis profile.d, in dem jede SH-Datei ausgeführt wird, wenn sich ein Benutzer anmeldet.

Je nachdem, was Sie tun möchten, können Sie entweder die Skriptdatei selbst verwenden, um Ihre Dateien mit SH-Shell-Befehlen zu kopieren, oder die SH-Datei in profile.d mit Bash verwenden, nachdem sich der Benutzer angemeldet hat, und sie löschen, wenn die Aktionen abgeschlossen sind.

Antwort2

Letztendlich hat die ISO-Methode bei mir nicht funktioniert, daher habe ich folgende Problemumgehung verwendet dpkg:

In meinem .debPaket, im postinstSkript ( bash), habe ich einen Abschnitt wie den folgenden hinzugefügt:

MYPKG=$(find $PWD -name mypkg.deb)
cp -f $MYPKG /home/myuser

überraschenderweise war der Pfad tatsächlich so, als ich ihn protokollierte /media/cdrom/pool/extras/mypkg.deb (wie in der late_commandZeichenfolge verwendet!) :(

Ich bin mir nicht sicher, warum es nicht funktioniert hat überd-i preseed/late_command

verwandte Informationen