logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
01. März 2024, 07:29:02
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: Ein Paket in einer chroot - Umgebung bauen « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: Ein Paket in einer chroot - Umgebung bauen  (Gelesen 5842 mal)
Andreas
Administrator
*****

Offline

Einträge: 1126



Linux von Innen

Profil anzeigen
Ein Paket in einer chroot - Umgebung bauen
« am: 03. August 2019, 12:30:51 »

"Möge die Macht mit Dir sein" - trifft für Arch Linux zu 100% zu...

Ich habe aktuell ein Paket aus den AURs, das auf dem "normalen Wege" nicht bauen will - es findet irgendwelche Deklarationen nicht und das ist natürlich ein fataler Fehler der zum Abbruch führt.

Das ist im Moment das Paket "qt4" - einige, die eine Installation von mir haben haben dieses Paket. Das Update hakt bei diesem Paket.

Eine Recherche im Internet ergab, dass es manchmal hilft, das Paket in einer "chroot-Umgebung" zu bauen. OK: Versuch macht kluch 

Was habe ich getan? (alles als normaler User!!)

1) Als erstes die devtools installieren mit dem Befehl: sudo pacman -S devtools
2) Einen geeigneten Ordner erstellen mit: mkdir ~/chroot
3) Diesen Ordner in eine Environment-Variable packen mit: CHROOT=~/chroot/
4) Das chroot vorbereiten mit: mkarchroot $CHROOT/root base-devel
5) Dafür sorgen dass auch im chroot alles up2date ist mit: arch-nspawn $CHROOT/root pacman -Syu
6) In das Verzeichnis des Paketes wechseln da nicht baut (in diesem Fall qt4) mit: cd ~/.cache/yay/qt4/
7) Das Paket nun in der chroot-Umgebung bauen mit: makechrootpkg -c -r $CHROOT
...und siehe da: nach etlichen Minuten ein Abschluss OHNE FEHLERMELDUNG!!
...Also nur noch das fertige Paket installieren mit: sudo pacman -U qt4-4.8.7-31-x86_64.pkg.tar.xz

EDIT:
Beim letzten Befehl ist es sinnvoll nur die ersten Buchstaben des Paketnamens einzugeben und dann mit <TAB> ergänzen zu lassen - niemand kennt die volle Bezeichnung incl. aller Nummern und Bide-/Unterstriche...

Das wars - "ich habe fertig"

Braucht man das nochmal wieder, müssen nicht alle Schritte wiederholt werden, weil die Ordner ja jetzt schon da sind. Es müssen dann nur noch:
CHROOT=~/chroot/
arch-nspawn $CHROOT/root pacman -Syu
cd ~/.cache/yay/paketname/
makechrootpkg -c -r $CHROOT
sudo pacman -U paketname.pkg.tar.xz


EDIT:
Heute (4.09.2019) kam das Problem beim Bau des "gcc6" bei mir. Der gcc6 besteht aus mehreren verschiedenen Einzelpaketen, die alle gemeinsam installiert werden müssen - sonst schlägt die Installation wegen fehlender Abhängigkeiten fehl. Man kann den gcc6 nach den Anweisungen von oben bauen - beim Installieren muss man alle gcc6-* - Pakete aus dem Ordner IN EINE ZEILE zum Installieren schreiben. Also z.B. sudo pacman -U gcc6-blablabla.pkg.tar.xz gg6-blublu.pkg.tar.xz gcc6-bufbuf.pkg.tar.xz

EDIT:
(15.06.2022) Das Bauen in einer chroot-Umgebung geht mit Hilfe eines kleinen Helper-Programmes noch einfacher. Installier paru. Dann könnt ihr jedes AUR-Paket mit dieser Syntax in einer chroot-Umgebung bauen und installieren:
Code:
paru --chroot -S <Name_des_Paketes>
Die oben beschriebenen Schritte sind damit allesamt überflüssig geworden.

LG
Andreas
« Letzte Änderung: 15. Juni 2022, 10:21:04 von Andreas » Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Sebastian
Sr. Member
****

Offline

Einträge: 353





Profil anzeigen
Re:Ein Paket in einer chroot - Umgebung bauen
« Antwort #1 am: 11. August 2022, 19:51:42 »

Vielen dank Andreas, die Tools mkarchroot, arch-nspawn und makechrootpkg kannte ich noch nicht.

Ich war erst am Rätseln warum du in deinem /chroot/ Ordner einen weiteren Ordner /chroot/root erstellt hast, und nicht einfach im /choot/ Verzeichnis die Sachen baust. Nach kurzer Recherche über die drei Tools, was die so können habe ich schnell die Antwort dazu gefunden.

Zitat:
The chroot dir consists of the following directories: <chrootdir>/{root, copy} but only "root" is required by default. The working copy will be created as needed

The chroot "root" directory must be created via the following command: mkarchroot <chrootdir>/root base-devel

An den Spruch ist also wirklich was dran: "Read the Manual" 
Gespeichert

Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: Ein Paket in einer chroot - Umgebung bauen « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!