Experttips – Python in Ubuntu

About

Experttips – Python in Ubuntu

Python 2 is sinds het begin van dit jaar niet meer ondersteund. Sinds Ubuntu 20.04 wordt het dan ook standaard niet meer geïnstalleerd op nieuwe installaties. Heb je het toch voor een of andere verouderde tool nog nodig, dan dien je eerst de repository universe in te schakelen, waarna je Python 2 kunt installeren:

sudo add-apt-repository universe
sudo apt update
sudo apt install python2

Wil je ook Python-bibliotheken met pip installeren, dan zul je merken dat Ubuntu zelfs de Python 2-versie van pip niet meer in zijn repository’s heeft opgenomen. Dan maar zo:

curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
python2 get-pip.py

En vanaf dan kun je Python 2-bibliotheken installeren met pip2 install foobar.

Er zijn ook nog twee pakketten die het gebruik van Python in Ubuntu soms wat vereenvoudigen. Wil je bijvoorbeeld niet continu python3 intypen, dan kun je een symlink aanmaken van /usr/bin/python naar /usr/bin/python3, zodat je eenvoudigweg python kunt intypen. Dat kan als volgt:

sudo apt install python-is-python3

Let op: alle programma’s die nu Python-code aanroepen met python, voeren deze als python3 uit. Als je nog veel oude Python 2-code hebt draaien, is dit dus niet aan te raden.

Wil je daarentegen dat python voor python2 staat, installeer dan een ander pakket:

sudo apt install python-is-python2

Systemd-scripts aanpassen

Systemd-scripts voor de services die op je Linux-distributie staan, vind je in /lib/systemd/system/. Maar dit zijn de versies die je distributie installeert. Wil je ze aanpassen, dan blijf je daar beter vanaf, zodat ze niet overschreven worden bij een upgrade.

Service-bestanden die in /etc/systemd/system staan, krijgen voorrang. Aanpassingen doe je dus daar. Maar in plaats van het hele service-bestand uit /lib/systemd/system/ naar /etc/systemd/system te kopiëren, gebruik je beter de opdracht systemctl edit. Bijvoorbeeld:

sudo systemctl edit alsa-restore.service

Dit opent je standaardeditor en je krijgt een leeg bestand te zien. Hier vul je in wat je wilt toevoegen aan het bestaande service-bestand. Een vaak voorkomende taak is dat je de parameters wilt aanpassen die het opgestarte programma gebruikt. Dan dien je dus de regel ExecStart in de sectie Service aan te passen. Dat doe je bijvoorbeeld als volgt:

[Service]
ExecStart=
ExecStart=-/usr/sbin/alsactl -E HOME=/run/alsa -f /etc/voicecard/wm8960_asound.state restore

Let op: je dient eerst de huidige opdracht met ExecStart= leeg te maken, voordat je deze vervangt door de opdracht in de volgende regel met ExecStart. Vergeet je die eerste regel, dan blijft de oorspronkelijke opdracht opgestart worden, en wordt je nieuwe opdracht extra opgestart.

Nadat je dit opgeslagen hebt, maakt systemd een bestand /etc/systemd/system/jouwdienst.service.d/override.conf aan met je toevoegingen. Herlaad daarna je systemd-configuratie:

sudo systemctl daemon-reload

Systemd laadt nu eerst het originele bestand in, en laat dit dan in het geheugen overschrijven door je toevoegingen in het bestand override.conf. Het resultaat is de configuratie die systemd toepast.

Wil je meer dan enkele regels aanpassen, dan is het wellicht beter om het hele service-bestand te vervangen. Doe dat als volgt:

sudo systemctl edit alsa-restore.service --full

Je krijgt nu de inhoud van het originele service-bestand in je standaardeditor te zien en kunt het aanpassen. Daarna wordt het opgeslagen in /etc/systemd/system/jouwdienst.service en krijgt het volledig voorrang op het overeenkomende service-bestand in /lib/systemd/system.

Veilig bestanden doorsturen

Veilig, snel en eenvoudig bestanden doorsturen naar iemand anders blijkt een hele uitdaging te zijn. Zackary Scholl heeft met zijn programma croc een oplossing hiervoor. Bekijk voor de installatie de GitHub-pagina: croc is op diverse Linux-distributies en zelfs op macOS en Windows ondersteund. In Ubuntu installeer je het bijvoorbeeld als een snap:

snap install croc

Om een bestand te verzenden, voer je dan gewoon de volgende opdracht uit:

croc send bestand-of-map

Daarna krijg je een wachtwoordzin te zien. De ontvanger voert nu de volgende opdracht uit:

croc wachtwoordzin

Beide programma’s communiceren via een relayserver. Met de wachtwoordzin wordt via password-authenticated key agreement (PAKE) een geheime sleutel aangemaakt die door zender en ontvanger wordt gedeeld om end-to-end-encryptie te leveren. Daardoor kan zelfs de relayserver niet zien welke data je doorstuurt.

Door het gebruik van de publieke relayserver hoef je geen eigen server te draaien of port forwarding in te stellen: elke twee computers overal in de wereld kunnen met croc bestanden uitwisselen. Zelf een relayserver draaien kan ook met croc relay. Voeg dan de optie –relay “relay.example.com:9009” toe bij het gebruik van croc om een bestand te zenden of ontvangen via je eigen relay.

Croc heeft enkele interessante eigenschappen vergeleken met gelijkaardige programma’s. Zo laat het meerdere bestandsoverdrachten tegelijk toe, je kunt een onderbroken bestandsoverdracht eenvoudig hervatten, door multiplexing en compressie werkt het snel, en het programma is volledig IPv6-compatibel.


Opstartbare USB-stick met Ventoy

Als je een USB-stick wilt maken met meerdere besturingssystemen om je computer van op te starten, is dat niet altijd even eenvoudig. Er bestaan diverse tools voor, maar een recente en veelbelovende is Ventoy. Je prepareert de USB-stick één keer met Ventoy, en daarna kun je er gewoon iso-, img-, wim- en efi-bestanden naar kopiëren. Ventoy toont je bij het opstarten automatisch een bootmenu om uit de aanwezige image-bestanden te kiezen om je PC op te starten.

Download de nieuwste versie van het script van GitHub, pak het uit en ga naar de aangemaakte directory. Tijdens de redactiesluiting ging het om versie 1.0.20:

wget https://github.com/ventoy/Ventoy/releases/download/v1.0.20/ventoy-1.0.20-linux.tar.gz
tar xvzf ventoy-1.0.20-linux.tar.gz
cd ventoy-1.0.20/

Daarna voer je het script uit op het apparaatbestand van je usb-stick. Dat moet als root-gebruiker:

sudo ./Ventoy2Disk.sh -i /dev/sdX

Dat hoef je dus maar één keer te doen. Daarna sleep je gewoon je iso-bestanden of andere systeemimages naar de USB-stick, het is gelijk in welke map. Overigens kun je de USB-stick tegelijk ook perfect blijven gebruiken om andere bestanden in op te slaan; Ventoy negeert deze gewoon.

Is dit Ubuntu-pakket nog ondersteund?

Ubuntu heeft een handige opdracht om te zien welke van je pakketten nog beveiligingsupdates krijgen. Onder Ubuntu 20.04 en later is dat:

ubuntu-security-status

In eerdere versies:

ubuntu-support-status

Je krijgt dan iets te zien als:

3172 packages installed, of which:
2073 receive package updates with LTS until 4/2025
1079 could receive security updates with ESM Apps until 4/2030
   1 package is from a third party
  19 packages are no longer available for download

De third-party pakketten zijn er die niet uit Canonicals repository’s komen. Als je die up-to-date wilt houden, moet je dat dus bij de makers daarvan controleren. Met ubuntu-security-status –thirdparty vraag je op om welke pakketten het gaat.

De pakketten die niet langer beschikbaar zijn om te downloaden, vormen uiteraard ook een risico omdat je hier geen updates meer van krijgt. Met ubuntu-security-status –unavailable vraag je op om welke pakketten het gaat. Vaak gaat het om pakketten die je rechtstreeks van een deb-bestand hebt geïnstalleerd.

 

 

Share
December 2024
January 2025
No event found!

Related Topics