Installer et désinstaller des logiciels (méthode obsolète)

Dans cette section est proposée une procédure d'installation des logiciels sur les Clients Linux qui repose sur des scripts lancés sur les clinux à chaque démarrage.

Remarque

Cette procédure ne freine pas l'ouverture de session car le script se déroule en arrière plan. Elle garantie une ouverture de session optimale.

Conseil

Ci-dessous est donné en exemple l'installation des logiciels freecad, scratch et mLink dont les paquets sont soit disponibles dans les dépôts debian ou à télécharger depuis les sites des développeurs de ces logiciels.

Pour la structure de vos scripts, vous pouvez vous inspirer du script ci-dessous qui sert d'exemple. Quelques commentaires de ce script vous donneront les indications nécessaires.

Procédure

  1. Se connecter sur le SE4FS en root

  2. Créer le répertoire /etc/sambaedu/applications/progs/.

    La commande pour créer ce répertoire progs est la suivante :

    mkdir -p /etc/sambaedu/applications/progs/

  3. Déposer le script startup.linux fourni ci-après dans le répertoire /etc/sambaedu/applications/progs/.

    script startup.linux pour installer les logiciel freecad, scratch et mLink.

    1
    # Installation de programmes
    2
    # Préalable :
    3
    # freecad → dans les dépôts debian
    4
    # scratch → version vintage dans les dépôts debian
    5
    #         → version desktop
    6
    #         voir le site https://github.com/redshaderobotics/scratch3.0-linux/releases
    7
    #         l'archive https://github.com/redshaderobotics/scratch3.0-linux/releases/download/3.3.0/scratch-desktop_3.3.0_amd64.deb
    8
    #         est à mettre dans le répertoire /var/sambaedu/unattended/install/clinux/fichiers/scratch/ du se4fs
    9
    #         sur les clinux, il est accessible par /opt/install/clinux/divers/fichiers/scratch/
    10
    # mLink   → pour la version web de mblock
    11
    #         voir le site https://mblock.makeblock.com/en-us/download/mlink/
    12
    #         l'archive https://dl.makeblock.com/mblock5/linux/mLink-1.2.0-amd64.deb
    13
    #         est à mettre dans le répertoire /var/sambaedu/unattended/install/clinux/fichiers/mblock/ du se4fs
    14
    #         sur les clinux, il est accessible par /opt/install/clinux/divers/fichiers/mblock/
    15
    # version du 20220221
    16
    17
    ladate="$(date +%Y_%m_%d_%Hh%Mmin%Ss)"
    18
    texte_temoin_creation="création du répertoire /root/temoins le ${ladate}"
    19
    texte_temoin_passage="on a utilisé startup.linux pour installer des programmes le ${ladate}"
    20
    temoin=/root/temoins/temoin.freecad
    21
    DEPOT_debian="deb.debian.org"
    22
    NOMCODE=$(lsb_release --codename | cut -f2)
    23
    version="bullseye"
    24
    DEPOT_sambaedu="deb.sambaedu.org"
    25
    archive_scratch="scratch-desktop_3.3.0_amd64"
    26
    version_desktop="scratch desktop 3.3.0"
    27
    archive_mlink="mLink-1.2.0-amd64"
    28
    version_mlink="mLink-1.2.0"
    29
    30
    tester_se4()
    31
    {
    32
        # pour éviter de lancer le script sur le se4fs
    33
        # On rend le script "crétin-résistant"
    34
        [ -e /var/sambaedu/clinux ] && echo "Malheureux... Ce script est à exécuter sur les clients-Linux, pas sur le serveur !" && exit 1
    35
    }
    36
    37
    repertoire_root_temoins()
    38
    {
    39
        # le répertoire /root/temoins servira éventuellement pour un script unefois ou chaquefois
    40
        if [ ! -e "/root/temoins" ]
    41
        then
    42
            # il n'existe pas : on le crée
    43
            mkdir -p /root/temoins
    44
            # on pose un témoin de création
    45
            echo "${texte_temoin_creation}" > ${temoin}
    46
            echo "${texte_temoin_passage}" >> ${temoin}
    47
        else
    48
            # il existe : on pose un témoin de passage
    49
            echo "${texte_temoin_passage}" > ${temoin}
    50
        fi
    51
    }
    52
    53
    test_version()
    54
    {
    55
        # tester si on est sur la bonne version de Debian
    56
        if [ "$NOMCODE" != "$version" ]
    57
        then
    58
            echo "on n'est pas sur une Debian/$version !" >> ${temoin}
    59
        else
    60
            echo "on est sur une Debian/$version" >> ${temoin}
    61
        fi
    62
    }
    63
    64
    recharger_paquets()
    65
    {
    66
        # on recharge la liste des paquets
    67
        apt-get update
    68
        if [ "$?" != "0" ]
    69
        then
    70
            echo "le rechargement de la liste des paquets ne s'est pas fait correctement" >> ${temoin}
    71
        else
    72
            echo "on a rechargé la liste des paquets" >> ${temoin}
    73
        fi
    74
    }
    75
    76
    installer_freecad()
    77
    {
    78
        # Installation du logiciel freecad du dépôt Debian
    79
        apt-get -y install freecad
    80
        if [ "$?" != "0" ]
    81
        then
    82
            echo "l'installation de freecad ne s'est pas faite correctement" >> ${temoin}
    83
        else
    84
            echo "on a installé freecad" >> ${temoin}
    85
        fi
    86
    }
    87
    88
    installer_scratch()
    89
    {
    90
        # Installation du logiciel scratch version 1.4 du dépôt Debian
    91
        apt-get -y install scratch
    92
        if [ "$?" != "0" ]
    93
        then
    94
            echo "l'installation de scratch 1.4 ne s'est pas faite correctement" >> ${temoin}
    95
        else
    96
            echo "on a installé scratch 1.4" >> ${temoin}
    97
        fi
    98
        # Installation de la version desktop
    99
        # on teste si l'archive est en place (voir le préalable)
    100
        if [ -e /opt/install/clinux/fichiers/scratch/ ]
    101
        then
    102
            # On installe scratch-desktop sur le clinux
    103
            dpkg -i /opt/install/clinux/fichiers/scratch/${archive_scratch}.deb
    104
            if [ "$?" != "0" ]
    105
            then
    106
                echo "l'installation de ${version_desktop} ne s'est pas faite correctement" >> ${temoin}
    107
            else
    108
                echo "on a installé ${version_desktop}" >> ${temoin}
    109
            fi
    110
        else
    111
            echo "le répertoire /opt/install/clinux/fichiers/scratch/ n'est pas en place" >> ${temoin}
    112
        fi
    113
    }
    114
    115
    installer_mlink()
    116
    {
    117
        # Installation de mLink
    118
        # on teste si l'archive est en place (voir le préalable)
    119
        if [ -e /opt/install/clinux/fichiers/mblock/ ]
    120
        then
    121
            # On installe mlink sur le clinux
    122
            dpkg -i /opt/install/clinux/fichiers/mblock/${archive_mlink}.deb
    123
            if [ "$?" != "0" ]
    124
            then
    125
                echo "l'installation de ${version_mLink} ne s'est pas faite correctement" >> ${temoin}
    126
            else
    127
                echo "on a installé ${version_mLink}" >> ${temoin}
    128
            fi
    129
        else
    130
            echo "le répertoire /opt/install/clinux/fichiers/mblock/ n'est pas en place" >> ${temoin}
    131
        fi
    132
    }
    133
    134
    # Programme
    135
    tester_se4
    136
    repertoire_root_temoins
    137
    # test_version
    138
    if [ "$NOMCODE" = "$version" ]
    139
    then
    140
        echo "on est sur une Debian/$version" >> ${temoin}
    141
        recharger_paquets
    142
        installer_freecad
    143
        installer_scratch
    144
        installer_mlink
    145
    else
    146
        echo "on n'est pas sur une Debian/$version !" >> ${temoin}
    147
    fi
  4. Télécharger l'archive scratch-desktop_3.3.0_amd64.deb

    Créez le répertoire /var/sambaedu/unattended/install/clinux/fichiers/scratch/ sur le se4fs :

    mkdir -p /var/sambaedu/unattended/install/clinux/fichiers/scratch/

    Lancez la commande suivante pour télécharger et mettre l'archive dans le répertoire /var/sambaedu/unattended/install/clinux/fichiers/scratch/ du se4fs

    wget -P /var/sambaedu/unattended/install/clinux/fichiers/scratch https://github.com/redshaderobotics/scratch3.0-linux/releases/download/3.3.0/scratch-desktop_3.3.0_amd64.deb

  5. Télécharger l'archive mLink-1.2.0-amd64.deb

    Créez le répertoire /var/sambaedu/unattended/install/clinux/fichiers/mblock/ sur le se4fs :

    mkdir -p /var/sambaedu/unattended/install/clinux/fichiers/mblock/

    Lancez la commande suivante pour télécharger et mettre l'archive dans le répertoire /var/sambaedu/unattended/install/clinux/fichiers/mblock/ du se4fs

    wget -P /var/sambaedu/unattended/install/clinux/fichiers/mblock https://dl.makeblock.com/mblock5/linux/mLink-1.2.0-amd64.deb

  6. Résultat

    Et c'est tout ! Les logiciels freecad, scratch et mLink seront installés lors du (re-)démarrage de l'ensemble des clinux.

    Conseil

    Pour désinstaller un logiciel, il suffit de modifier le script en remplaçant la commande d'installation par une commande de désinstallation.