#1 Le 20/02/2014, à 00:00
- Vaykadji
[script] ppa-tool : gérer vos PPA en ligne de commande facilement
PPA-tool est un script en BASH que j'avais écrit pour AskUbuntu. Depuis, je l'ai remanié et j'ai ajouté de nombreuses fonctionnalités.
Il permet de gérer les PPA en ligne de commande :
- Vérifier si le PPA est compatible avec sa version d'Ubuntu sans avoir besoin d'installer le PPA et de recharger la liste des paquets
- Ajouter un PPA (vérifie automatiquement avant)
- Retirer un PPA
- Purger un PPA, désinstaller les paquets qui en proviennent, et même les remplacer par ceux d'origine si nécessaire
- Lister les PPA installés
- Faire un backup des PPA installés (pour changer de machine)
- Réinstaller les PPA qu'on a auparavant sauvegardé avec l'outil de backup
- Vérifier un PPA pour une version non-installée (pour un ami, par exemple)
- Vérifier si les PPA installés sur le système sont disponibles pour une autre version d'Ubuntu (pour une mise à niveau, par exemple)
Note : ce script n'est pas compatible avec Mint pour l'instant. Leur `add-apt-repository` a été forké et ne propose pas autant de maniabilité que sur Ubuntu. Compatible avec toute la série des Ubuntu, par contre : Kubuntu, Cubuntu, Lubuntu, Xubuntu et Ubuntu-Gnome.
- Lien repo Github
- Disponible en Anglais et Français.
###Installation :
wget https://raw.githubusercontent.com/vankasteelj/ppa-tool/master/dist-install
bash dist-install
rm dist-install
###Utilisation :
ppa-tool [OPTION]... [[PPA / FICHIER]]...
###Exemple :
1) Je teste le PPA 'ppa:libreoffice/ppa' sur Ubuntu 13.10 Saucy, qui est disponible.
Ensuite, j'essaye un vieux PPA pour Ubuntu 11.04 Natty, qui n'est plus à jour depuis 2012.
Je regarde ensuite si le PPA 'n-muench/burg' est disponible pour ma version (13.10 Saucy) et s'il l'est avec la version suivante (14.04 trusty, que je n'ai pas encore installé)
2) J'ajoute un PPA à mes dépôts
3) Je liste les PPA installés
4) J'utilise les fonctions de backup (j'ai exprès ajouté un faux PPA 'ppa:TESTPPATOOL/ESSAI' pour exemplifier)
5) Il y a même une aide qui s'affiche en cas de mauvaise utilisation du script
6) Je vérifie avant de faire une mise à niveau vers Ubuntu 14.04 Trusty Thar si mes PPA seront encore disponibles, et je désinstalle automatiquement si nécessaire :
7) Il y a également une option pour mettre à jour 'ppa-tool' :
Et tout ça... dans 10ko !
Dernière modification par Vaykadji (Le 24/03/2016, à 12:59)
Hors ligne
#2 Le 20/02/2014, à 01:25
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Changelogs
======
2.1.0
- GIThub repository
- New feature : --update
- Completely rewritten with 'case' and functions
- Translation open to external contributors
2.0.1
- Code cleaned (-200 lines)
- Script too heavy, multilingual feature removed temporarely - back to separate files
1.9.9-beta
- script rewritten
- beta for multilingual (en-fr)
- use of function
1.2.1
- add new option : check-release
- new way to backup files
- translated in English and French
1.1.0
- add new options : add/remove/purge/list/backup
- colorization
1.0.0
- initial version for AskUbuntu : check the validity of a PPA
PS: Pour consulter le code, il est nécessaire de télécharger le fichier, puisqu'il fait 248 lignes à l'heure actuelle. Cliquez sur un des liens ci-dessus pour le télécharger comme un fichier texte brut.
#######
Surtout, n'hésitez pas à proposer des idées, des améliorations (vous savez, moi et le bash... on se connait depuis pas longtemps), ... Tout retour est le bienvenu, même critique (surtout critique?) !
#######
On en parle sur La Vache Libre !
Dernière modification par Vaykadji (Le 29/03/2014, à 20:56)
Hors ligne
#3 Le 25/02/2014, à 23:50
- metalux
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Bonsoir Vaykadji,
Je trouve l'idée plutôt sympa aussi je voulais t'en faire part.
J'ai survolé rapidement ta description et j'ai la flemme de mettre le nez dedans à cette heure mais la réinstallation d'un backup se fait pour la même version si j'ai bien compris. Une suggestion, à moins que j'ai mal vu, est, lors d'un changement de version, de checker les P.P.A., de vérifier si ils existent pour cette nouvelle version, et d'avertir des P.P.A. qui ne sont plus compatibles.
Un choix pourrait alors être proposé (numéroté par ex), pour les P.P.A. a réinstaller. Ça serait utile lors d'une migration ou d'une réinstallation vers une version plus récente.
Hors ligne
#4 Le 28/02/2014, à 14:42
- Gaara
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Bonjour,
Je serais aussi intéressé par un script qui vérifie les ppa en vue d'une migration, et qui les désactiverait pour le cas où ils ne seraient plus disponibles.
Les ppa disponibles pour la migration seraient alors renommés pour la version suivante, pour pouvoir lancer la migration.
Dès lors, elle se ferait sans accroc, avec tous les logiciels prêts à l'emploi.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#5 Le 28/02/2014, à 23:21
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Vos deux idées sont intéressantes, je garde ça en tête pour la prochaine version.
J'ai modifié la façon d'enregistrer le backup afin qu'il effectue automatiquement une vérification avant d'installer le backup. Je vais également ajouter une option pour modifier son nom de version de façon à pouvoir l'effectuer de manière théorique (du genre "ppa-tool -c ppa:foo/bar --release=trusty"), ça, ça devrait être facile à mettre en place. L'étape suivante sera d'inclure le --release dans les options de backup.
Dernière modification par Vaykadji (Le 01/03/2014, à 01:25)
Hors ligne
#6 Le 01/03/2014, à 00:59
- metalux
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Tu peux utiliser la commande suivante lors d'un backup pour déterminer la distribution en cours et stocker la chaîne dans ton fichier de backup
lsb_release -c | awk '{print $2}'
et faire de même lors de la restauration en utilisant sed pour substituer l'ancienne chaîne par la nouvelle dans le fichier de backup avant de réinstaller les ppa. En cas de ppa inexistant pour cette nouvelle version, supprimer le ppa correspondant à l'ancienne version.
Dernière modification par metalux (Le 01/03/2014, à 01:02)
Hors ligne
#7 Le 01/03/2014, à 01:27
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Tu peux utiliser la commande suivante lors d'un backup pour déterminer la distribution en cours et stocker la chaîne dans ton fichier de backup
lsb_release -c | awk '{print $2}'
et faire de même lors de la restauration en utilisant sed pour substituer l'ancienne chaîne par la nouvelle dans le fichier de backup avant de réinstaller les ppa. En cas de ppa inexistant pour cette nouvelle version, supprimer le ppa correspondant à l'ancienne version.
Je préfère " lsb_release -sc", pas besoin de chercher à bidouiller avec awk^^
Sinon, concernant ta proposition : l'installation d'un backup va automatiquement vérifier la compatibilité "ppa/version" dorénavant, donc quand on appliquera un backup de ppa-tool, ne seront installés que ceux qui sont compatibles (avec un message signalant les PPA incompatibles, + également signalés dans le fichier log). Ca te semble bien ?
Bonjour,
Je serais aussi intéressé par un script qui vérifie les ppa en vue d'une migration, et qui les désactiverait pour le cas où ils ne seraient plus disponibles.
Les ppa disponibles pour la migration seraient alors renommés pour la version suivante, pour pouvoir lancer la migration.
Dès lors, elle se ferait sans accroc, avec tous les logiciels prêts à l'emploi.
Dis-moi si je comprends bien l'idée, ça serait quelque chose du genre :
user@ubuntu : $ ppa-tool --check-release=trusty
ppa-tool : vérification de compatibilité avec 'trusty' >
- ppa:libreoffice/ppa est compatible
- ppa:gottcode/ppa est incompatible
Souhaitez-vous désactiver les PPA incompatibles avec 'trusty' (o/n) ? o
... PPA incompatibles désactivés ! Système prêt pour un changement de version.
------------------------------------------------
Dans un tout autre registre : Mint utilise apparemment un add-apt-repository modifié, est-ce quelqu'un sait s'il existe un moyen d'utiliser "add-apt-repository -r" ou "apt-add-repository -r" ? Je n'ai aps d'iso ni de VM sous la main...
Dernière modification par Vaykadji (Le 01/03/2014, à 01:43)
Hors ligne
#8 Le 01/03/2014, à 08:47
- metalux
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Je préfère " lsb_release -sc", pas besoin de chercher à bidouiller avec awk^^
Elle m'avait échappé celle-là! Bien vu.
Sinon, concernant ta proposition : l'installation d'un backup va automatiquement vérifier la compatibilité "ppa/version" dorénavant, donc quand on appliquera un backup de ppa-tool, ne seront installés que ceux qui sont compatibles (avec un message signalant les PPA incompatibles, + également signalés dans le fichier log). Ca te semble bien ?
Ça me semble tout simplement parfait.
Hors ligne
#9 Le 01/03/2014, à 11:42
- Gaara
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
user@ubuntu : $ ppa-tool --check-release=trusty
ppa-tool : vérification de compatibilité avec 'trusty' >
- ppa:libreoffice/ppa est compatible
- ppa:gottcode/ppa est incompatible
Souhaitez-vous désactiver les PPA incompatibles avec 'trusty' (o/n) ? o
... PPA incompatibles désactivés ! Système prêt pour un changement de version.
Oui, ce serait bien !
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#10 Le 01/03/2014, à 16:17
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Version 1.2.1 postée
Hors ligne
#11 Le 01/03/2014, à 16:25
- lynn
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Bonjour,
C'est génial ce petit script Merci Vaykadji.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#12 Le 01/03/2014, à 17:16
- lynn
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Avec
ppa-tool --chk-release=trusty
il y a une option qui serait intéressante, c'est la proposition à la fin de la vérification de la possibilité de passer la version actuelle du ppa à la version de la distribution, si celui ci est disponible.
Un exemple est plus parlant :
ppa-tool --chk-release=trusty
ppa-tool: Procédure de vérification des dépôts en vue d'un changement de version.
Système actuel: trusty
Compatibilité : trusty
- Vérification en cours...
.......
ppa:nemh/gambas3 <-- Pour l'exemple, j'ai changé "trusty" par "saucy" dans mes dépôts.
=> compatible trusty
........
## exemple de message ##
Certains PPA sont compatibles avec votre version d'Ubuntu ( "trusty")
------------- Affichage de la liste de ppa compatibles -----------------
1 - ppa:machin -- actuellement "saucy"
2 - ppa:truc -- actuellement "hardy"
3 - ppa:chose -- actuellement "precise"
Souhaitez-vous actualiser un ou plusieurs ppa pour votre version ? ## Choisir un élément / Tous les ppa / Annuler
Souhaitez-vous désactiver les PPA incompatibles avec 'trusty' (o/n)? n
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#13 Le 05/03/2014, à 12:59
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Ce serait une option intéressante, oui, mais ça pourrait poser des problèmes de dépendance.
Hors ligne
#14 Le 05/03/2014, à 18:58
- lynn
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Ce serait une option intéressante, oui, mais ça pourrait poser des problèmes de dépendance.
Et bien justement, en proposant de mettre le PPA dans la version d'Ubuntu que l'on utilise, si celui ci est disponible, ça pourrait permettre de réduire les problèmes de dépendances et de mises à jour logicielles entre version, après une mise à niveau de la distribution par exemple... non ?
N'oublions pas que l'utilisation des PPA et/ou logiciels installés hors dépôts officiels peut-être dangereux et entraîner la fin du monde.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#15 Le 05/03/2014, à 19:58
- Gaara
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
En fait si je comprend bien le fonctionnement des ppa et de ton script: (je l'ai pas encore essayé, j'attend le mois d'avril)
- La version actuelle de ton script permet de désactiver les ppa non compatibles avec la version suivante d'ubuntu, mais ne renomme pas ceux qui sont disponibles.
- La migration désactive les ppa, donc de toutes façons il faut les renommer après migration.
Donc ma question c'est:
Le script, si on le relance après la migration, permet-t-il de réactiver les ppa initialement trouvés "compatibles", pour ensuite faire un simple apt-get uptade / apt-get upgrade ?
Dernière modification par gaara92 (Le 05/03/2014, à 20:00)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#16 Le 06/03/2014, à 22:41
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
L'utilisation la plus logique en cas de changement de version serait de faire sur la version d'origine :
ppa-tool --bkp-list
Puis une fois la mise à niveau faite et la nouvelle version en train de tourner :
ppa-tool --bkp-install /lien/vers/backup.ppa-tool
En effet, les PPA sont désactivés lors d'une mise à niveau, mais passer par l'option "bkp" de ppa-tool permet de réinstaller tous les PPA qu'on avait lors du backup, exceptés ceux qui ne sont pas disponibles.
Hors ligne
#17 Le 21/03/2014, à 21:19
- Tartampion91
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Salut Vakadji,
Déjà très beau boulot, idée très simpas et utiles
2 petites question me trottent dans la tête :
- J'ai vu que utiliser plusieurs fois le même bout de code dans ton script, pourquoi n'utilises-tu pas les fonctions ?
- Pour gérer tes options et arguments de ton scripts tu devrais utiliser getopts quand penses-tu ?
Je te mes un lien vers de la doc sur getopts
Hors ligne
#18 Le 21/03/2014, à 23:37
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Hello ! Merci du feedback, ça fait plaisir.
Alors, la réponse à ta question est très simple : je suis une quiche en programmation Mais merci pour ton lien, je lirai ça (c'est mon moto: 'chaque jour devenir un peu moins une quiche')
Hors ligne
#19 Le 24/03/2014, à 01:45
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Ok donc j'ai appris à utiliser les fonctions, merci Tartampion91 C'est intégré pour la prochaine version.
Sur ma liste il y a :
- jeter un oeil du côté de getopts.
- se passer de 'add-apt-repository' et d'à la place directement gérer les sources. Ca aidera à la compatibility debian/mint et à la mise à niveau.
- faire un seul script bilingue pour s'adapter au système, éventuellement permettre d'autres traductions
- créer un paquet deb et une man page.
- trouver un autre endroit que ubuntuone pour poser ça, histoire de pas avoir besoin de changer les liens à chaque MAJ.
N'oubliez pas, si vous avez des suggestions (changer X ou Y dans le fichier d'aide, ajouter une fonction, ... quoi que ça soit), n'hésitez pas !
Dernière modification par Vaykadji (Le 24/03/2014, à 02:01)
Hors ligne
#20 Le 29/03/2014, à 18:30
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
MISE A JOUR :
Version 2.1.0 arrivée
- Passage à github pour une maintenance facilitée
- réécriture complète pour un allègement du code
- multilingue EN - FR
Hors ligne
#21 Le 29/03/2014, à 18:36
- nam1962
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
hop ! installé, merci
[ Modéré ]
Hors ligne
#22 Le 30/03/2014, à 21:27
- Gaara
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Déjà 2 restaurations de ppas effectuées, une par ordinateur... Sympa, et nettement plus facile et rapide que Y-Ppa-Manager.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#23 Le 02/05/2015, à 09:55
- Gaara
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Salut Vaykadji,
Je viens de réinstaller proprement 15.04, et pour récupérer mes ppas j'ai dû réinstaller ton script.
J'ai eu cette erreur à l'install:
$ bash dist-install
dist-install: ligne 3: $'\r' : commande introuvable
Getting 'ppa-tool' from gitub sources...
dist-install: ligne 16: erreur de syntaxe : fin de fichier prématurée
Alors j'ai fait le sudo wget en fr à la main, puis une autre erreur est apparue lors du lancement:
$ ppa-tool --help
bash: /usr/bin/ppa-tool : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
Alors j'ai fait un
sudo dos2unix /usr/bin/ppa-tool
Et là ça s'est mis à fonctionner.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#24 Le 19/05/2015, à 19:18
- FalCT60
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
Bonsoir,
Sous 14.04 LTS, lorsque j'arrive à la commande 2 j'obtiens :
jean-luc@E4300:~$ bash dist-install
dist-install: ligne 3: $'\r' : commande introuvable
Getting 'ppa-tool' from gitub sources...
dist-install: ligne 16: Erreur de syntaxe : fin de fichier prématurée
jean-luc@E4300:~$
J'ai un peu de mal à cerner ce qu'il me faut faire - je rajoute que j'ai tenté la manipulation de Gaara, sans succès -.
D'où pourrait provenir le problème ?
J.-L.
Hors ligne
#25 Le 14/06/2015, à 17:41
- Vaykadji
Re : [script] ppa-tool : gérer vos PPA en ligne de commande facilement
C'est un problème de fin de ligne. Tu peux manuellement copier-coller le contenu du fichier et l'enregistrer avec une fin de ligne UNIX, pas MSDOS. J'imagine que j'ai fait une erreur en le mettant en ligne, ou alors je l'ai mis en ligne depuis mon pc windows et il a automatiquement changé les fins de ligne, je ne sais pas.
Hors ligne