Re: Om debian på desktoppen

2024-05-07 Tråd Povl Ole Haarlev Olsen

On Tue, 7 May 2024, Flemming Bjerke wrote:

Den 06.05.2024 kl. 15.18 skrev Povl Ole Haarlev Olsen:

Har du prøvet Debian backports?

Fordi jeg ikke orker at styre det:
It is recommended to pick out single backports which fit your needs, and 
not to use all backports available. 

https://wiki.debian.org/Backports


Jeg er ikke sikker på, at jeg ved hvorfor du mener det er besværligt at 
styre.


Du installer en pakke som normalt. ("dia" er, som sagt, ikke i backports, 
men da du ikke har nævnt andre pakker, bruger jeg alligevel den som 
eksempel.)


Du opdager, at "dia" fra stable af den ene eller anden grund ikke er "god 
nok".


Din løsning har været noget med at køre dia fra en Kubuntu chroot.

Med backports beder du i stedet pakkesystemet om at installere dia fra 
backports. Enten vha.


apt install dia/bookworm-backports

(hvor du kun får "dia" fra backports, men ikke eventuelle dependencies)

eller vha.

apt -t bookworm-backports install dia

(hvor både "dia" og eventuelle dependencies bliver installeret fra 
backports)


Og... Det er vist det.


Nyeste Q2OS er baseret på bookworm med nogle systemændringer.
ls /etc/apt/sources.list.d/
10_q4os.list  20_debian.list  30_debian_backports.list
(backports er ikke aktiveret)


Hint: Hvis man vil disable en fil i /etc/apt/sources.list.d/ uden at pille 
i selve filen, kan man nøjes med at rename filen, så den ikke hedder 
*.list, f.eks. hedder nogle af mine *.list.disabled



chroot /a2 mount /dev/sda4 /home

Hvad er grunden til, at du ikke bind-mounter /home?

Det er vel også det rigtigste at bruge bind. Men gør det nogen forskel?


Med bind-mount burde der kun være een version af filesystem koden i brug 
og derfor også kun een ting, der snakker med /dev/sda4. Mens der med et 
"rigtigt" mount kunne være to versioner filesystem koden i brug, en for 
/home og en for /a2/home, og derfor to ting, der prøver at snakke med 
/dev/sda4 samtidig.


Jeg har ikke checket, om det kunne give problemer. Det var lettere bare at 
bruge et bind-mount og slippe for at tænke over den slags ting.


chroot /a2  #Her kan man udføre alle mulige kommandoer. Skriptet venter 
til man kører: exit.

#chroot --userspec=flem:flem /a2 (fungerer ikke - forstår ikke hvorfor)

Hmm, hvorfor har jeg ikke hørt om --userspec før?!

man chroot


Ja, jeg er godt klar over, at det selvfølgelig står i man siden. Men hvem 
læser man sider, når ens script virker "fint"? :-)



Og nu kan mit skript forenkles ganske meget:
#!/bin/bash
mount --bind /home /a2/home
bash -c "HOME=/home/flem chroot --userspec=flem:flem /a2 $1"


Med "$@" i stedet for "$1" burde du også kunne give din kommando 
argumenter, f.eks. bede dia om at åbne en specifik fil.


Det virker ikke som om man behøver mount --bind /sys osv. Faktisk fik jeg 
lidt problemer når jeg gjorde det fordi alt i /dev/pts/ forsvandt. Hvorfor 
fatter jeg ikke, men det har nok noget at gøre med:
While ‘chroot’ is a powerful tool, it’s not a security measure by itself. 
Processes that are running as root can break out of the chroot jail. 

https://hopeness.medium.com/master-the-linux-chroot-command-a-comprehensive-guide-f2026f913726


Ok, det er ikke noget, jeg selv har oplevet, men det er efterhånden også 
et godt stykke tid siden jeg sidst brugte chroot, så måske er noget blev 
ændret.


Men jeg skal nok ikke opdatere kubuntu via chroot ... Risikerer jeg ikke at 
der kommer ged i kernen og boot ... osv.?


Jeg har ikke haft /boot mountet i mine chroots, så den slags har jeg 
aldrig tænkt nærmere over. Hvis et chroot ville ændrer i hvad det troede 
var /boot, så var det i virkelighed f.eks. /opt/wheezy/boot og ikke det 
rigtige /boot.


--
Povl Ole

Re: Om debian på desktoppen

2024-05-07 Tråd Flemming Bjerke

Den 06.05.2024 kl. 15.18 skrev Povl Ole Haarlev Olsen:

On Mon, 6 May 2024, Flemming Bjerke wrote:
Jeg har adskillige gange opgivet debian på desktoppen fordi jeg 
ustandselig fik problemer med alt muligt der ikke rigtig virkede, 
bl.a. programmer som ikke fungerede og ikke kunne opdateres pga. 
debians restriktioner på hvornår programmer kunne blive stable. (Jeg 
har dog ikke prøvet bookworm af.) Jeg har så valgt at køre med 
kubuntu i årevis.


Har du prøvet Debian backports?


Fordi jeg ikke orker at styre det:

It is recommended to pick out single backports which fit your needs, 
and not to use all backports available. 

https://wiki.debian.org/Backports




"dia" er, så vidt jeg kan se, ikke i backports, men måske kunne det 
bruges med nogle af de andre programmer, hvor du ønsker en nyere version.


Jeg er meget tilfreds med at køre et debian system (sources er 
primært debian stable), for jeg har normalt ikke brug for de nyeste 
versioner af forskelligt software. Derimod er stabiliteten vigtig for 
mig. Men ind i mellem får man brug for en nyere version af et 
program. F.eks. er bookworm's version af  dia håbløst buggy. Så fandt 
jeg på at chroot til min kubuntu som ligger (passivt)


Hvordan ved du, at bookworms dia er buggy, hvis du ikke har prøvet 
bookworm?


Nyeste Q2OS er baseret på bookworm med nogle systemændringer.

ls /etc/apt/sources.list.d/
10_q4os.list  20_debian.list  30_debian_backports.list
(backports er ikke aktiveret)



chroot /a2 mount /dev/sda4 /home


Hvad er grunden til, at du ikke bind-mounter /home?


Det er vel også det rigtigste at bruge bind. Men gør det nogen forskel?




chroot /a2  #Her kan man udføre alle mulige kommandoer. Skriptet 
venter til man kører: exit.

#chroot --userspec=flem:flem /a2 (fungerer ikke - forstår ikke hvorfor)


Hmm, hvorfor har jeg ikke hørt om --userspec før?!


man chroot




Hvilken fejlbesked får du?


chroot --userspec=flem:flem /a2
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

bash: /root/.bashrc: Adgang nægtet

Som det fremgår, virker det ikke som at bruge: "su bruger" idet man ikke 
får adgang til det brugeren normalt har adgang til. Så uanset man er 
bruger (og altså ikke root), kan man f.eks. ikke køre dia:




flem@baren:/$ whoami
flem
flem@baren:/$ dia

** (dia:102168): CRITICAL **: 08:48:13.495: Could not create per-user 
Dia configuration directory

--

På nettet fandt Jeg en måde at omgå dette på:

bash -c "HOME= chroot --userspec=: 
 /bin/bash -i"


Og nu kan mit skript forenkles ganske meget:

#!/bin/bash
mount --bind /home /a2/home
bash -c "HOME=/home/flem chroot --userspec=flem:flem /a2 $1"
umount /a2/home

Med dette skript kan jeg afvikle et program på min ubuntu-partition. F.eks.

./chroot-program.sh dia

Og hvis man ikke angiver et program, startes en kommandoprompt. 
Overordentlig nyttigt.


Det virker ikke som om man behøver mount --bind /sys osv. Faktisk fik 
jeg lidt problemer når jeg gjorde det fordi alt i /dev/pts/ forsvandt. 
Hvorfor fatter jeg ikke, men det har nok noget at gøre med:


While ‘chroot’ is a powerful tool, it’s not a security measure by 
itself. Processes that are running as root can break out of the chroot 
jail. 
https://hopeness.medium.com/master-the-linux-chroot-command-a-comprehensive-guide-f2026f913726 



Men jeg skal nok ikke opdatere kubuntu via chroot ... Risikerer jeg ikke 
at der kommer ged i kernen og boot ... osv.?







Nu kan jeg starte f.eks. kubuntus dia (og libreoffice) fra en 
terminal, og hvis jeg gør det med et & efter, fungerer fungerer 
programmet videre selv efter exit fra chroot.


Hvad synes I om min løsning?


Jeg har haft noget i samme stil (med /home bind-mounted) for at kunne 
bruge en ældre version af bl.a. xpra.


Jeg havde alle mine bind-mounts i /etc/fstab og en desktop launcher, 
der "run in terminal" kørte


su -c "chroot /opt/wheezy /bin/su - stderr -c /usr/bin/xfce4-terminal 
& bg"


(Med --userspec ville den linie sikkert kunne skæres kraftigt ned.)

Launcher'en startede en terminal og alt startet i den terminal blev 
kørte fra en wheezy installation, jeg havde debootstrap'et i /opt/wheezy.


Det virkede fint til mit formål.


Sejt!



Det er selvfølgelig ikke uproblematisk at køre to forskellige 
systemer på samme home-partition, men hvis man ikke bruger samme 
programmer på dem, burde det vel ikke skabe de store problemer?


Hvis programmer opførte sig nogenlunde pænt, ville det heller ikke 
være noget problem, at køre de samme programmer på samme homedir.


Da jeg var studerende var vores homedirs mountet på Linux, HP-UX, 
IRIX, Solaris, ... og jeg tænkte ikke ret meget over, om jeg kunne 
tillade mig, at starte et program på en given platform eller ej.


Men jeg ved godt, at der er nogle programmer, der meget gerne vil lave 
en "upgrade" af deres config i ~/.config uden at tænke over, at man 
måske deler sit homedir mellem mange forskellige installationer. Det 
er eet af