Pagina 2 di 2

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 21:49
da conraid
Perdonate se mi intrometto, non uso lxc ma chroot. E uso tranquillamente slackpkg dentro il chroot. È simile la situazione?
Quelle modifiche servirebbero per usarlo fuori ma che aggiorni il container?

Re: @ponce fix lxc template per slackware 15

Inviato: mar 25 feb 2020, 23:58
da ZeroUno
sono andato ad approfondire e questa è la parte che rompe lxc

Codice: Seleziona tutto

@@ -66,8 +66,8 @@
        \@^cdrom://@p
        \@^local://@p
        \@^https\{0,1\}://@p
-       \@^ftps\{0,1\}://@p' $CONF/mirrors)
-. $CONF/slackpkg.conf
+       \@^ftps\{0,1\}://@p' ${ROOT}/$CONF/mirrors)
+. ${ROOT}/$CONF/slackpkg.conf
 ERROR=""
 
 # Set temporary directory
prima: . $CONF/slackpkg.conf

Codice: Seleziona tutto

 . /var/cache/lxc/slackware/slackpkg-conf/slackpkg.conf
dopo: . ${ROOT}/$CONF/slackpkg.conf

Codice: Seleziona tutto

 . /var/cache/lxc/slackware/rootfs-current-x86_64//var/cache/lxc/slackware/slackpkg-conf/slackpkg.conf
Ho usato la beta6 e il template da http://ponce.cc/slackware/testing/new_l ... 6_64-4.txz

funziona ma durante l'installazione la cache dei pacchetti è
Saving to: '/var/cache/lxc/slackware/rootfs-current-x86_64//var/cache/lxc/slackware/cache-current-x86_64/./slackware64/a/bash-5.0.016-x86_64-1.txz'
e il database dei pacchetti
root@beelink:/var/cache/lxc/slackware/rootfs-current-x86_64/var/cache/lxc/slackware/slackpkg-current-x86_64# ls
CHECKSUMS.md5 CHECKSUMS.md5.asc ChangeLog.txt LASTUPDATE PACKAGES.TXT current extra-filelist.gz pasture-filelist.gz patches-filelist.gz pkglist slackware64-filelist.gz testing-filelist.gz

al termine della installazione, dopo la copia in /var/lib/lxc/test1/rootfs
i txz sono ancora tutti presenti non nella cache ma /var/lib/lxc/test1/rootfs/var/cache/lxc/slackware/cache-current-x86_64

ROOT=/var/lib/lxc/test1/rootfs slackpkg update
prende la configurazione dal sistema padre (in verità un pezzo da una parte e un pezzo da un'altra)
ma scrive il db nel sistema guest
Files /var/lib/lxc/test1/rootfs//var/lib/slackpkg/CHECKSUMS.md5.asc and /var/lib/lxc/test1/rootfs/tmp/slackpkg.xXAQ5E/CHECKSUMS.md5.asc differ
e quindi si dovrebbe lanciare con
CONF=/var/lib/lxc/test1/rootfs/etc/slackpkg ROOT=/var/lib/lxc/test1/rootfs slackpkg update
oppure
chroot /var/lib/lxc/test1/rootfs slackpkg update

tornando alla 2.82.2 (slackware 14.2) invece cambia tutto, ed è l'ottimale per lxc in quanto consente il riciclo della cache
Ora la 2.84 è ancora in beta, ma questo problema è presente già dalla 2.83 che è l'attuale in slackware current.


Quelle modifiche servirebbero per usarlo fuori ma che aggiorni il container?
tu cosa fai ora?

la 2.84_beta7 in quest'ottica è migliore:
ROOT=/mnt/mychroot slackpkg update
e ti dimentichi che esiste uno slackpkg (ed eventuale slackpkg+) fuori del chroot oltre ai binari.
mentre la 2.82.2 mi sa che con questa sintassi è un po' buggata.

Re: @ponce fix lxc template per slackware 15

Inviato: mer 26 feb 2020, 0:34
da conraid
Io lo uso da dentro il chroot, come lo userei in una installazione normale.
E anche nel container del repository (che mi ha creato ponce) lo uso da dentro normalmente. Non mi è mai capitato di usarlo da fuori.
Mentre invece uso molto installpkg --root (upgrade no che non supporta ---root purtroppo). È comodo però da fuori se qualcosa non va. Ma sinceramente non avevo mai provato.

Re: @ponce fix lxc template per slackware 15

Inviato: mer 26 feb 2020, 0:36
da ZeroUno
upgradepkg supporta la variabile d'ambiente ROOT=

Re: @ponce fix lxc template per slackware 15

Inviato: mer 26 feb 2020, 6:32
da ponce
io non vedo particolare utilita' nell'usare slackpkg fuori dai container: anche se uno non ci vuole entrare, con lxc-attach, ad esempio, non ci sono problemi a lanciare comandi da fuori dentro i container.
quello che continuo a chiedermi, comunque, e' l'utilita' di *forzare* $CONF sotto $ROOT e sinceramente ancora non riesco a vederla.

P.S. ZeroUno, usi mica qualche sorta di cache per accedere al web? lo chiedo perche' hai messo un link a un file che non e' piu' li' da un po' e credo che tu stia vedendo una directory vecchia (lxc e' alla versione 3.0.4 e va pacchettizzato con lo SlackBuild).

Re: @ponce fix lxc template per slackware 15

Inviato: gio 27 feb 2020, 7:53
da ZeroUno
Ha rollbackato.
Giustamente se èvero che potrebbero esserci più use cases per $ROOT, solo lxc è quello in mainline.
Però a parte 'blacklist' che gli ho segnalato qualche post prima, a questo punto rimane la gestione della cache dei pacchetti e la workdir.

WORKDIR=$cache/slackpkg-$release-$arch

visto che lo crei from scratch e serve solo a install time potrebbe diventare

WORKDIR=../slackpkg-$release-$arch

idem per TEMP

Altrimenti si dovrebbe rollbackare parte di slackpkg a 2.82.2 e verrebbe chiusa la strada ad altri usi.

Non so. Comunque non consideri la beta8 come candidata a stabile

Re: @ponce fix lxc template per slackware 15

Inviato: dom 1 mar 2020, 23:47
da ZeroUno
La riorganizzazione di $ROOT credo sia cominciata quì:
https://www.linuxquestions.org/question ... 175600630/
che ha fatto aggiungere $ROOT a WORKDIR e TEMP creando quindi var/cache/lxc/slackware dentro il container

ma da nessuna parte ho trovato informazioni riguardo " Fixup blacklist checking and appending when using alt $ROOT Thanks to dive for the report. "


comunque ho provato su lxc 3.0.4 (quello linkato prima era un aborto di copia incolla) questa modifica

Codice: Seleziona tutto

@@ -199,8 +197,8 @@ touch $CONF/blacklist
 cat <<EOF > $CONF/slackpkg.conf
 # v2.8
 ARCH=$arch
-TEMP=$cache/cache-$release-$arch
-WORKDIR=$cache/slackpkg-$release-$arch
+TEMP=../cache-$release-$arch
+WORKDIR=../slackpkg-$release-$arch
 DELALL=off
 CHECKMD5=on
 CHECKGPG=on
e con la beta8 riesce tranquillamente a riciclare la cache per più di un container (ed è anche più pulito il rootfs)

L'aggiunta di CONF=$ROOT/etc/slackpkg se ROOT è specificato e CONF no, mi è venuta in mente come via per salvare capra e cavoli :). lxc funziona e ROOT=... slackpkg funziona uguale. Altrimenti se specifichi ROOT= e non specifichi CONF= si prenderebbe /etc/slackpkg del sistema padre che non è tanto bello.

Avevo trovato un altro che usava $ROOT ma non riesco più a ritrovarlo.