Créer une interface graphique sous Debian en Python avec Tkinter

J’utilise Debian 10 Buster et Python 3.7.3.

Le but ici est de créer une interface graphique pour une application en Python. Dans mon cas, il s’agit de saisir des données.

Prérequis :

Pour Python 3 , depuis un terminal en administrateur root :

apt-get install python3-tk

Pour importer la bibliothèque dans votre programme :

from tkinter import *


Exemple avec la méthode pack

On a déjà vu comment lire ou enregistrer des variables, depuis ou vers un fichier. Ici, on voit comment créer une interface graphique avec Tkinter pour saisir des valeurs dans des variables.

Mon interface graphique sous Debian

Si votre application est graphique ou que votre code fait une tâche de fond, vous pouvez renommer votre fichier avec l’extension .pyw (plutôt que .py) pour dissimuler le Shell. Si vous nommer mon script Python en .py, vous verrez le résultat de votre saisie dans le Shell.

À noter que l’on peut saisir des valeurs dans des variables sans interface graphique avec la fonction input().

Je débute en Python, si vous avez des idées pour améliorer le code, je suis à votre écoute. Tous les conseils sont les biens venus.

Je pense que l’on pourrait par exemple, améliorer la disposition des widgets.

Voici mon code :

#!/usr/bin/env python3.7
#-*- coding: utf-8 -*-

from tkinter import * #On importe l'ensemble du module Tkinter

def enregister(): #Ma fonction
    serveursmb = Serveur_Entry.get() # lecture du contenu du widget "Serveur_Entry"
    partagesmb = Partage_Entry.get() # lecture du contenu du widget "Partage_Entry"
    utilisateur = Utilisateur_Entry.get() # lecture du contenu du widget "Utilisateur_Entry"
    mot_de_passe = Mot_de_passe_Entry.get() # lecture du contenu du widget "Mot_de_passe_Entry"
    domaine = Domaine_Entry.get() # lecture du contenu du widget "Domaine_Entry"
    fichier_diaporama = Fichier_du_diaporama_Entry.get() # lecture du contenu du widget "Fichier_du_diaporama_Entry"
    print(serveursmb) #Affichage des données saisies dans le terminal
    print(partagesmb)
    print(utilisateur)
    print(mot_de_passe)
    print(domaine)
    print(fichier_diaporama)
    Fenetre.destroy() #Fermeture de la fenêtre

#Mon programme
Fenetre = Tk() #création de la fenêtre, avec un nom de votre choix Fenetre
Fenetre.title('Paramètres Diaporama') #Titre de la fenêtre

Serveur_Label= Label(Fenetre, text = 'Votre serveur :') #Un label pour afficher du texte
Serveur_Entry= Entry(Fenetre) #On définit l'objet Entry (zone de saisie) qui porte le nom Serveur_Entry
Partage_Label= Label(Fenetre, text = 'Votre partage réseau :')
Partage_Entry= Entry(Fenetre) 
Utilisateur_Label= Label(Fenetre, text = 'Votre utilisateur :')
Utilisateur_Entry= Entry(Fenetre)
Mot_de_passe_Label= Label(Fenetre, text = 'Votre mot de passe :')
Mot_de_passe_Entry= Entry(Fenetre)
Domaine_Label= Label(Fenetre, text = 'Votre nom de domaine:')
Domaine_Entry= Entry(Fenetre)
Fichier_du_diaporama_Label= Label(Fenetre, text = 'Votre fichier de diaporama :')
Fichier_du_diaporama_Entry= Entry(Fenetre)
Mon_bouton = Button(Fenetre, text =' Enregistrer', command=enregister) #Mon bouton - Un clic et on lance la fonction enregistrer

Serveur_Label.pack() # insère les Widgets dans la fenêtre
Serveur_Entry.pack()
Partage_Label.pack()
Partage_Entry.pack() 
Utilisateur_Label.pack()
Utilisateur_Entry.pack()
Mot_de_passe_Label.pack()
Mot_de_passe_Entry.pack()
Domaine_Label.pack()
Domaine_Entry.pack()
Fichier_du_diaporama_Label.pack()
Fichier_du_diaporama_Entry.pack()
Mon_bouton.pack()

affichage = Label(Fenetre, width=50)
affichage.pack()

Fenetre.mainloop() # lance la boucle principale

Exemple avec la méthode grid

Un nouvel exemple où l’on utilise la méthode grid ce qui permet de mieux disposer les widgets.

Mon interface graphique sous Debian

Voici mon code :

#!/usr/bin/env python3.7
#-*- coding: utf-8 -*-
from tkinter import *
Fenetre = Tk() #création de la fenêtre, avec un nom de votre choix Fenetre
Fenetre.title('Paramètres Diaporama') #Titre de la fenêtre
Fenetre.geometry("420x170") # On définit la taille de la fenêtre
#Création d'un interface graphique avec grid
#Remplacer les méthodes pack() par les méthodes grid() 
Serveur_Label= Label(Fenetre, text = 'Votre serveur :') #Un label pour afficher du texte
Serveur_Label.grid(row=0)
Serveur_Entry= Entry(Fenetre) #On définit l'objet Entry (zone de saisie) qui porte le nom Serveur_Entry
Serveur_Entry.grid(row=0,column=1,ipadx=30) # ipadx=30 pour créer 10 pixels de plus horizontalement
Partage_Label= Label(Fenetre, text = 'Votre partage réseau :')
Partage_Label.grid(row=1,column=0)
Partage_Entry= Entry(Fenetre) 
Partage_Entry.grid(row=1,column=1,ipadx=30)
Utilisateur_Label= Label(Fenetre, text = 'Votre utilisateur :')
Utilisateur_Label.grid(row=2,column=0)
Utilisateur_Entry= Entry(Fenetre)
Utilisateur_Entry.grid(row=2,column=1,ipadx=30)
Mot_de_passe_Label= Label(Fenetre, text = 'Votre mot de passe :')
Mot_de_passe_Label.grid(row=3,column=0)
Mot_de_passe_Entry= Entry(Fenetre)
Mot_de_passe_Entry.grid(row=3,column=1,ipadx=30)
Domaine_Label= Label(Fenetre, text = 'Votre nom de domaine:')
Domaine_Label.grid(row=4,column=0)
Domaine_Entry= Entry(Fenetre)
Domaine_Entry.grid(row=4,column=1,ipadx=30)
Fichier_du_diaporama_Label= Label(Fenetre, text = 'Votre fichier de diaporama :')
Fichier_du_diaporama_Label.grid(row=5,column=0)
Fichier_du_diaporama_Entry= Entry(Fenetre)
Fichier_du_diaporama_Entry.grid(row=5,column=1,ipadx=30)
Mon_bouton = Button(Fenetre, text =' Enregistrer')
Mon_bouton.grid(row=6,column=1,ipadx=40)
Fenetre.mainloop() # lance la boucle principale

Exemple avec la méthode place

La méthode place permet de placer les widgets sur les axes de coordonnées.

En exemple, je me suis inspiré de l’interface du programme Lexibar espagnol très apprécié de nos professeurs de collège.

Mon interface graphique sous Debian

Voici mon code :

#!/usr/bin/env python3.7
#-*- coding: utf-8 -*-
from tkinter import *

Fenetre = Tk() #Création de la fenêtre, avec un nom de votre choix Fenetre
Fenetre.title('Lexidom') #Titre de la fenêtre
Fenetre.geometry("340x60") #On définit la taille de la fenêtre
#Création et affichage des boutons
Mon_bouton1 = Button(Fenetre, text = 'á', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton1.place (x = 0, y = 3)
Mon_bouton2 = Button(Fenetre, text = 'é', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton2.place (x = 30, y = 3)
Mon_bouton3 = Button(Fenetre, text = 'í', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton3.place (x = 60, y = 3)

Mon_bouton4 = Button(Fenetre, text = 'ó', width = 2, height = 2, bg = 'yellow', font = 'bold')
Mon_bouton4.place (x = 90, y = 3)
Mon_bouton5 = Button(Fenetre, text = 'ú', width = 2, height = 2, bg = 'yellow', font = 'bold')
Mon_bouton5.place (x = 120, y = 3)
Mon_bouton6 = Button(Fenetre, text = 'ü', width = 2, height = 2, bg = 'yellow', font = 'bold')
Mon_bouton6.place (x = 150, y = 3)

Mon_bouton7 = Button(Fenetre, text = 'ñ', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton7.place (x = 180, y = 3)
Mon_bouton8 = Button(Fenetre, text = '¿', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton8.place (x = 210, y = 3)
Mon_bouton9 = Button(Fenetre, text = '¡', width = 2, height = 2, bg = "red", fg = 'white', font = 'bold')
Mon_bouton9.place (x = 240, y = 3)

Mon_bouton10 = Button(Fenetre, text ='Maj/Min', width = 8, height = 3)
Mon_bouton10.place (x = 270, y = 3)

Fenetre.mainloop() # lance la boucle principale

Plus d’informations sur la programmation Python/Tkinter :

https://fr.wikibooks.org/wiki/Programmation_Python/Tkinter

Sauvegarder vos variables dans un fichier avec Python

J’utilise Debian 10 Buster et Python 3.7.3

Pour sauvegarder mes variables dans un fichier, j’utilise ici le module pickle. L’ordre de sauvegarde et de restauration doit être identique.

Le fichier peut être ouvert de différentes façons :

‘r’ Ouvrir le fichier en lecture seule (défaut).

‘w’ Ouvrir en écriture. Écrase le fichier existant.

‘x’ Ouvrir en écriture si et seulement si le fichier n’existe pas déjà.

‘a’ Ouvrir en écriture. Ajoute au fichier existant.

‘b’ Mode binaire.

‘t’ Mode texte (défaut).

Dans mes exemples, j’utilise ‘wb’ et ‘rb’

Exemple de sauvegarde des variables dans un fichier :

#!/usr/bin/env python3.7
#-*- coding: utf-8 -*-

import pickle
#Enregistrer mes variables sous forme d'une liste dans un fichier
#Initialisation des variables
serveursmb = "PC-DOM"
partagesmb = "Partage-Diaporama"
utilisateur = "dominique"
mot_de_passe = "motdepasse"
domaine = "WORKGROUP"
fichier_diaporama = "Diaporama.odp"

#Enregistrement des variables dans le fichier
variables = [serveursmb, partagesmb, utilisateur, mot_de_passe, domaine, fichier_diaporama]
fichierSauvegarde = open("diaporamaini","wb")
pickle.dump(variables, fichierSauvegarde)
fichierSauvegarde.close()

Exemple de récupération de mes variables depuis un fichier. Au préalable, je teste que le fichier existe bien :

#!/usr/bin/env python3.7
#-*- coding: utf-8 -*-

import pickle
import os.path

fichierini = "diaporamaini"

#Ouverture du fichier si il existe et récupération de la liste
if os.path.isfile(fichierini):
    fichierSauvegarde = open(fichierini,"rb")
    variables = pickle.load(fichierSauvegarde)
    fichierSauvegarde.close()

    #Affichage de la liste
    print(variables)

    #récupération des données dans les variables
    serveursmb = variables[0]
    partagesmb = variables[1]
    utilisateur = variables[2]
    mot_de_passe = variables[3]
    domaine = variables[4]
    fichier_diaporama = variables[5]

    #Affichage des variables
    print("Serveur : ", serveursmb)
    print("Partage : ", partagesmb) 
    print("Utilisateur : ",utilisateur)
    print("Mot de passe : ", mot_de_passe)
    print("Domaine : ", domaine)
    print("Fichier du diaporama : ", fichier_diaporama)
else:
    #Le fichier n'existe pas
    print("Fichier " + fichierini + " non trouvé")

Plus d’informations sur le WEB :

https://python.antoinepernot.fr/cours.php?course=chap5

Visualiser le contenu d’un fichier avec la commande cat

J’utilise souvent la commande cat pour vérifier que les modifications que j’ai effectuées dans un fichier (avec Nano par exemple) ont bien été prises en compte.

Pour visualiser le contenu d’un fichier :

cat nomdufichier

Pour visualiser deux fichiers à la suite l’un de l’autre :

cat nomdefichier1 nomdefichier2

Pour concaténer (fusionner) deux fichiers dans un troisième :

cat nomdefichier1 nomdefichier2 > nomdefichier3

Pour numéroter les lignes

cat -n nomdufichier

Exemples d’options :

 -b numéroter ou seulement les lignes qui contiennent effectivement du texte.

-s Supprimer les lignes vides successives pour n’en laisser qu’une seule.

-A Afficher tous les caractères non imprimables, tabulations et fins de lignes.

Pour afficher numéros de lignes et de colonnes d’un fichier ouvert avec l’éditeur de texte Nano :

nano -c nomdufichier

L’éditeur de texte Nano

Nano est un éditeur de texte pour Linux simple à utiliser depuis le terminal (utile quand on n’a pas d’interface graphique d’installée). Je l’utilise pour modifier des fichiers de configuration ou des scripts Shell.

Pour Ubuntu, normalement, Nano est déjà installé sur votre système.

Si Nano n’est pas présent sur votre système (par exemple pour Ubuntu, Debian), il suffit d’installer le paquet nano :

Pour Ubuntu avec sudo

sudo apt-get install nano

Pour Debian en administrateur (root)

apt-get install nano

Pour ouvrir un fichier avec nano :

nano nomdufichier

Si vous ne vous trouvez pas dans le dossier contenant le fichier, vous pouvez utiliser un chemin relatif ou absolu.

Après avoir modifier votre fichier vous pouvez enregistrer les modifications et quitter Nano :

[Ctrl] + [X]

[O]

[Entrée]

Pour vérifier le contenu votre fichier vous pouvez utiliser la commande cat qui permet de visualiser son contenu :

cat nomdufichier

 

Installer des paquets sous Ubuntu ou Debian

Si vous avez besoin de mettre à jour les dépôts (en cas de modification du fichier /etc/apt/sources.list par exemple) :

Pour Ubuntu avec sudo

sudo apt-get update

Pour Debian en administrateur (root)

apt-get update

Pour installer des paquets sous Ubuntu ou Debian:

Pour Ubuntu avec sudo

sudo apt-get install nomdupaquet1 nomdupaquet2

Pour Debian en administrateur (root)

apt-get install nomdupaquet1 nomdupaquet2

Pour vérifier que les paquets sont bien installés sur votre système, cela peut être utile lorsque l’on suit une procédure où de nombreux paquets sont prérequis :

dpkg –l nomdupaquet1 nomdupaquet2

 

Installation de Shotcut sous Linux

Shotcut est un éditeur de vidéos libre, open source et gratuit. Cette application est également disponible pour Windows et Mac OS.

Installation de Shotcut sous Linux Mint 18.1 Serena Cinnamon 64-bit depuis un PPA

Pour la version 64 bits, on peut réaliser l’installation depuis un PPA.

Pour ajouter le PPA :

sudo add-apt-repository ppa:haraldhv/shotcut

Dans le dossier /etc/apt/sources.list.d/ j’ai un fichier haraldhv-shotcut-xenial.list qui a été créé.

Pour recharger la liste des paquets en prenant en compte le nouveau PPA :

sudo apt-get update

Pour installer le paquet shotcut :

sudo apt-get install shotcut

Il manquait ensuite la librairie SDL2, pour l’installer :

sudo apt-get install libsdl2-2.0-0

Le raccourci présent dans le menu Autre n’étant pas fonctionnel, je l’ai ajouté au bureau ce qui a fonctionné.

Installation de Shotcut sous Debian 9 64 bits avec AppImage

Une autre méthode d’installation sous Debian.

Depuis le site : https://www.shotcut.org/download/

Téléchargez 64-bit Linux AppImage

Cliquez sur [Enregistrer le fichier]

Le fichier obtenu Shotcut-180602.glibc2.14-x86_64.AppImage

Dans un terminal, depuis le dossier où se trouve le fichier, le rendre le fichier exécutable :

chmod +x Shotcut-180602.glibc2.14-x86_64.AppImage

Lancez l’application :

./Shotcut-180602.glibc2.14-x86_64.AppImage

Pour intégrer l’application à votre système cliquez sur [YES]

Premiers pas avec Shotcut :

https://shotcut.org/howtos/getting-started/Premier_pas_avec_Shotcut.pdf

Pour avoir plus d’informations :

https://doc.ubuntu-fr.org/shotcut

Le site officiel :

https://www.shotcut.org/

Installation de Net Billetterie sous Debian 8

Net Billetterie est un logiciel de gestion de salles de spectacles ou de saisons culturelles.

Plus d’informations :

https://framasoft.org/logiciels/article5173.html

J’ai réalisé cette installation dans une machine virtuelle sous VirtualBox. L’OS utilisé est Debian 8.10 sans interface graphique avec MySQL et PHP5. Le serveur sous Debian et le poste client pour les tests (avec un navigateur WEB) doivent être sur le même réseau IP. Dans mon cas, le client est la machine sous Windows hébergeant le serveur virtualisé.

Procédure à réaliser en tant que root (su).

Installation de LAMP à partir des dépôts :

apt-get install apache2 mysql-server php5 php5-mysql libapache2-mod-php5

Lors de l’installation du paquet mysql-server, vous devez saisir le mot de passe superutilisateur de votre base mysql ( pensez à le noter).

On peut vérifier que les paquets sont bien installés :

dpkg -l apache2 mysql-server php5 php5-mysql libapache2-mod-php5

Avant de poursuivre l’installation, vous devez créer votre base de données avec son utilisateur et le mot de passe de ce dernier.

Création de la base de données, de l’utilisateur et de son mot de passe :

mysql -u root -p

CREATE DATABASE netbilletterie;

CREATE USER billetterie@localhost;

SET PASSWORD FOR billetterie@localhost= PASSWORD("motdepasse");

GRANT ALL PRIVILEGES ON netbilletterie.* TO billetterie@localhost IDENTIFIED BY 'motdepasse';

FLUSH PRIVILEGES;

Exit

En résumé :

Le mot de passe superutilisateur MySQL vous est demandé (Il a été défini lors de l’installation de MySQL). Ce mot de passe et celui de votre base de données Net Billetterie peuvent être différents.

Nom de la base de données : netbilletterie

Utilisateur : billetterie

Mot de passe : motdepasse

Installation de phpMyAdmin :

phpMyAdmin (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL réalisée principalement en PHP et distribuée sous licence GNU.

apt-get install phpmyadmin

On coche la case apache2 (avec la barre espace) si vous utilisez ce serveur WEB.

On crée la base de données de phpMyAdmin avec dbconfig-common.

On saisit le mot de passe superutilisateurr de MySQL défini précédemment.

On crée un mot de passe de connexion pour phpMyAdmin (on peut laisser le champ vide, il sera généré automatiquement).

On peut se connecte depuis un poste client sur le réseau local en utilisant un navigateur WEB et l’adresse IP du serveur, http://adresse-ip/phpmyadmin/

Si l’on veut désinstaller phpMyAdmin du serveur par la suite :

apt-get purge phpmyadmin

Téléchargement du .zip (Netbilletterie2.9.zip dans notre cas)

On décompresse le fichier dans un répertoire accessible par apache.

cd /var/www/html/

wget https://sourceforge.net/projects/netbilletterie/files/Netbilletterie2.9.zip

apt-get install unzip

unzip Netbilletterie2.9.zip

Vérifiez les droits en écriture des fichiers et dossiers se trouvant dans le dossier installeur (chmod 777 )

/include/config/common.php (A l’installation net-Billetterie va créer les variables de connections à la base de donnée)

/dump (dossier de stock des sauvegardes sql)

/ckeditor/config.js (fichier de configuration de ckeditor)

/ kcfinder/upload (dossier des images uploadées)

/fpdf (dossier des créations des fichiers pdf)

/nbr.php (fichier de comptabilisation de l’ordre de passages des spectateurs affichés sur vidéoprojecteur le jour des enregistrements des abonnements)

Exemples :

chmod 777 fichier

chmod -R 777 dossier

On peut lancer la commande chmod récursivement sur un répertoire. C’est-à-dire que l’action sera effectuée sur le répertoire désigné et sur tous les fichiers ou répertoires qu’il contient. Ceci se fait en ajoutant l’option -R

Pointez votre navigateur sur http://adresse-ip /Netbilletterie2.9/installeur/

L’adresse IP est celle de votre serveur.

Suivez ensuite les instructions à l’écran.

Vous aurez besoin de l’adresse de votre base de données (localhost),

du mot de passe de l’utilisateur de votre base mysql (motdepasse),

du login de votre utilisateur mysql (billetterie),

du nom de la base de donnée (netbilletterie).

Après l’installation la finalisation

Accès à Net Billetterie : http://adresse-ip/Netbilletterie2.9/

Il faut effacer le répertoire « installeur » de l’arborescence de Net Billetterie (si vous ne le faites pas, un message vous le rappellera). Pour des raisons de sécurité, il est important de le supprimer.

rm -r /var/www/html/Netbilletterie2.9/installeur

Réduire les droits en écriture du fichier :

/include/config/common.php celui-ci ne doit être accessible qu’en lecture par apache.

Configuration des droits initiale :

ls -l /var/www/html/Netbilletterie2.9/include/config/common.php

-rwxrwxrwx 1 root root 844 mai   21 11:05 /var/www/html/Netbilletterie2.9/include/config/common.php

Pour que le fichier appartienne au groupe et à l’utilisateur Apache (www-data) :

chown www-data:www-data /var/www/html/Netbilletterie2.9/include/config/common.php

Droits en lecture pour l’utilisateur et le groupe :

chmod 440 /var/www/html/Netbilletterie2.9/include/config/common.php

Sources :

http://net-billetterie.tuxfamily.org/Installation-de-Net-Billetterie

J’ai testé l’installation sous Debian 9 avec PHP7 et MariaDB. Cela n’a pas fonctionné, je pense que cela est dû à la version de PHP. J’ai donc ensuite décidé de tenter l’installation sous Debian 8, PHP5 et MySQL étant présents dans les dépôts.

Putty

Le prise en main avec Putty sous Windows en SSH vous permet de réaliser des copier-coller ce qui peut être utile durant l’installation de Net Billetterie. Si vous n’avez pas coché l’option durant l’installation de Debian, vous devez installer le paquet openssh-server :

apt-get install openssh-server

Arrêt du serveur

Pour arrêter le serveur, vous pouvez utiliser la commande init 0.

Installation de Wireshark sous Debian 9 Stretch

Versions utilisées :

Debian GNU/Linux 9.0 (stretch)

Wireshark 2.2.6

Wireshark est présent dans les dépôts.

Depuis un terminal en administrateur :

apt-get install wireshark

Pour utiliser Wireshark avec un autre utilisateur que root.

À la question : Autoriser les utilisateurs non privilégiés à capturer des paquets ?

Répondre <oui>

Ajouter mon utilisateur (dominique pour moi) au groupe wireshark :

sudo addgroup dominique wireshark

Ajout de l’utilisateur « dominique » au groupe « wireshark »…

Fait.

Après cette modification, on doit fermer la session et en redémarrer une nouvelle pour qu’elle soit prise en compte. Je peux ensuite utiliser Wireshark avec mon utilisateur dominique.


Voir également les articles :

Installer Wireshark 1.10.5 sous Debian 7 Wheezy depuis les backports

Installation de Wireshark 2.0.2 sous Linux Mint 18 Sarah

Changer son noyau Linux sous Ubuntu, Mint, Debian

On me signale qu’Ukuu ne fonctionne plus. En fait, le logiciel est maintenant payant. Vous trouverez une alternative libre (Mainline) et plus d’informations à l’adresse suivante :

https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility


La suite n’est plus à jour depuis que le logiciel est payant.

Pour changer de noyau Linux sous Ubuntu, Mint, Debian, on peut utiliser le logiciel Ukuu qui propose une interface graphique.

Installation pour les distributions (Ubuntu, Linux Mint, etc)

Les paquets sont disponibles dans le PPA pour les versions d’Ubuntu prises en charge. Exécutez les commandes suivantes dans une fenêtre de terminal:

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install ukuu

Pour les anciennes versions d’Ubuntu qui ont atteint leur fin de vie ainsi que pour Debian, vous trouverez les liens pour télécharger les fichiers .DEB sur le site :

http://www.teejeetech.in/p/ukuu-kernel-upgrade-utility.html

Exemple pour installer un paquet depuis un terminal en administrateur sous Debian :

dpkg -i ukuu-latest-amd64.deb

En cas de « problèmes de dépendances – laissé non configuré » :

apt-get -f install

Pour lancer ukuu depuis un terminal :

ukuu-gtk

Ou, sous Linux Mint/Cinnamon, depuis le menu Administration ==> Ukuu Kernel Update Utility

Pour supprimer l’application depuis un terminal :

sudo apt-get purge ukuu

Tutoriel au format PDF :

Changer son noyau Linux sous Ubuntu, Mint, Debian