Je suis en train d’analyser pour comprendre des tutos concernant l’installation d’un serveur lamp.
Linux, Apache, MariaDB, c’est bon pour l’instant.
Sur PHP, je suis censé installer quelques modules en plus (sans trop savoir ce qu’ils font, en voici la liste: php7.3-mysql, php7.3-curl, php7.3-json, php7.3-gd, php7.3-intl, php7.3-sqlite3, php7.3-gmp, php7.3-mbstring, php7.3-xml, php7.3-zip
J’ai remarqué que tous ces paquets sont marqués d’un [default] dans leur description et qu’un bon nombre vient les compléter, 26 au total sur Buster.
Je voudrais donc les installer d’une seule commande pas gigantesque du style:
# apt-get install php- | grep ou sed [afficher *seulement* le nom du paquet si la description contient l'expression [default]
Je ne suis pas familier de grep ou sed (ni même si ce sont ces commandes qu’il faut utiliser pour résoudre mon problème.
Je sais qu’il existe un paquet source « php-defaults » mais je vois pas trop quoi en faire…
Pour un serveur LAMP, il te suffit d’installer Juste le strict minimale :
apt update && apt install apache2 mariadb-server
Pour ce qui est après du PHP au choix ce sera le paquet php7.3 ou php7.3-fpm .
Pour que tu puisse utiliser le SQL de MariaDB avec php il te faudra en dernier lieu le paquet php7.3-mysql.
Le restant dépendra de tes besoins,sachant que les paquets lié à curl, mbstring, gmp, xml et gd sont très souvent sollicité par les projets PHP trouvable sur le net.
Ça c’est fait, apache installé lors de l’install système et mariadb ensuite.
C’est ce qui est recommandé sur ce que j’ai pu lire, tu as raison.
Ma question est cependant autre, elle concerne plus grep et/ou éventuellement sed/awk/autre.
Avec $ apt search ^php- j’obtiens une liste de modules pour PHP. Cette liste est longue, aussi je l’ai enregistrée dans un fichier, rajout de > /home/user/Bureau/phpmods.txt pour plus de facilité d’analyse. J’ai pu donc voir les courtes descriptions sur les paquets et remarquer la présence ou non de la chaîne « [default] » dans les descriptions.
Ce que je cherche c’est une commande probablement chaînée qui:
liste tous les modules php (apt search ^php-)
ne sélectionne que les modules dont la chaîne « [default] » est présente dans la description (apt search ^php- | grep ' [default]', je sais que la partie grep n’est pas bonne)
ne sélectionne ensuite que le nom des paquets, espacés par un espace (comment?)
colle le résultat dans un # apt-get install résultat de la commande chaînée (avec des "|") précédente.
Bon j’avance. Avec la commande $ apt-cache search ^php- | grep 'default' j’obtiens la liste des paquets que je cherche. Mais ce n’est pas tout, il y a pour chaque package listé une chaîne " - blablacourt [default]" que je souhaite éliminer.
En règle générale je fais du ctrl + c et ctrl + v après avoir préparer ma liste de paquets.
APT n’est pour l’instant pas assez stable pour être utilisé dans des scripts ou avec du awk/sed à mon goûts, j’ai déjà rencontré des raté sur de lourds travaux de trie à l’inverse dpkg lui se comporte nickel.
Pour APT c’est pas mal du à ce que ses réponses sont sur deux lignes, avec des indication (installée, stable ou pas etc…), j’ai souvent eu le problème. En CLI j’utilise APT mais en script uniquement apt-get.