Packager des paquets Linux simplifiés

Avant de commencer, nous assumons quelques hypothèses :

  • vous avez une interface graphique sur votre linux ;

  • vous avez installé le paquet vscode depuis les dépôts officiels de Tranquil IT ;

  • votre utilisateur se nomme « linuxuser » et est membre du groupe des sudoers ;

Crer un modèle de paquet depuis votre poste linux

  • ouvrir une invite de commande;

  • en tant que linuxuser, créer un modèle de paquet WAPT ;

    wapt-get make-template <template_name>
    

    Avertissement

    Ne pas lancer cette commande en tant que root ou avec sudo.

    Lorsque vous créez un modèle, plusieurs fichiers son créés dans le dossier .vscode à l’intérieur de votre dossier du paquet :

    • settings.json ;

    • launch.json ;

    Exemple avec VLC:

    wapt-get make-template "tis-vlc"
    
    Using config file: /opt/wapt/wapt-get.ini
    Template created. You can build the WAPT package by launching
    /opt/wapt//wapt-get.py build-package /home/linuxuser/waptdev/tis-vlc-wapt
    You can build and upload the WAPT package by launching
    /opt/wapt//wapt-get.py build-upload /home/linuxuser/waptdev/tis-vlc-wapt
    

    Indice

    Tous les paquets sont situés dans le dossier personnel de l’utilisateur linuxuser.

VSCode charge et s’ouvre sur le projet du paquet.

VSCode opening with focus on the *setup* file

VSCode s’ouvre en se focalisant sur le fichier setup

  • vérifier le contenu du fichier control ;

    Vous devez donner une description à votre paquet, renseignez l” os_target et la version de votre paquet.

    Indice

    os_target pour unix est linux

    Avertissement

    version dans votre fichier control doit commencer à 0 et non pas la version du logiciel, nous ne savons pas précisément quelle version sera récupérée depuis les dépôts apt/yum.

    Fichier control original

    package           : tis-vlc
    version           : 0-0
    architecture      : all
    section           : base
    priority          : optional
    maintainer        : user
    description       : automatic package for vlc
    

    Fichier control modifié

    package           : tis-vlc
    version           : 0
    architecture      : all
    section           : base
    priority          : optional
    maintainer        : Tranquil-IT Systems
    description       : VLC for linux
    target_os         : linux
    min_wapt_version  : 1.8
    

    Note

    Une sous-version -1 a été ajoutée. C’est la version de packaging du paquet WAPT.

    Cela permet de ne pas modifier la version réelle du logiciel quand on pousse par exemple une nouvelle configuration du même logiciel sur le parc.

  • changer le code du fichier setup.py en conséquence ;

    :emphasize-lines: 8
    # -*- coding: utf-8 -*-
    from setuphelpers import *
    
    uninstallkey = []
    
    def install():
        apt_install('vlc')
    
  • enregistrer le paquet ;

Gérer la désinstallation

  • changer le code du fichier setup.py avec une desinstallation ;

def uninstall():
apt_remove('vlc')
  • lancer un remove du paquet depuis le panneau Run Configurations de VSCode ;

    After uninstallation, the software is correctly removed
  • vérifier que le programme est désinstallé

dpkg -l | grep vlc

Indice

Dans la fonction uninstall(), on ne peut pas appeler des fichiers contenus dans le paquet WAPT. Pour les appeler, il faudra avoir copié les fichiers dans un répertoire local de la machine lors de l’installation du paquet.

Gérer le session-setup

  • changer le code du fichier setup.py avec un session-setup ;

    Dans cet exemple, vous aurez besoin d’un fichier vlcrc dans votre paquet pour le copier dans le dossier personnel de l’utilisateur. La fonction ensure_dir et la fonction filecopyto proviennent de la bibliothèque des setuphelpers, la première va tester si le chemin existe, la seconde va copier votre fichier depuis le paquet WAPT vers sa destination.

    def session-setup():
      vlcdir = os.path.join(os.environ['HOME'], '.config', 'vlc')
      ensure_dir(vlcdir)
      filecopyto('vlcrc',vlcdir)
    
  • lancer un session-setup du paquet depuis le panneau Run Configurations de VSCode ;

    After uninstallation, the software is correctly removed

Construire et charger le paquet WAPT

Une fois l’installation et la désinstallation configurées et testées vous pouvez effectuer un build-upload pour charger votre nouveau paquet WAPT sur votre dépôt.

Si vous avez construit des paquets sur une autre machine (ex : Windows pour construire vos paquets WAPT Windows), vous devez copier vos clés .pem et .crt sur votre machine Linux avec WinSCP ou équivalent. Habituellement, ce paquet de certificats se trouve dans le dossier C:\private de votre ordinateur Windows. Ensuite, indiquez le chemin d’accès aux certificats dans le fichier /opt/wapt/wapt-get.ini.

sudo vim /opt/wapt/wapt-get.ini
  • renseigner le chemin de votre certificat ;

personnal_certificate_path=/opt/wapt/private/mykey.crt
  • Puis lancer un build-upload depuis le panneau VSCode Run Configurations ;

When everything is ready, upload your package
  • renseigner le mot de passe de votre clé privée puis l’identifiant et le mot de passe de passe de votre console WAPT ;

Votre paquet est maintenant téléchargé et disponible dans votre dépôt privé sur votre serveur WAPT.