Installation de paquets php

Bonjour,

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…

Un petit coup de main svp?

Un grand merci d’avance :wink:

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.

Comment je peux faire svp?

J’avance encore! :smiley:

Avec la commande $ apt-cache search ^php- | grep 'default' | cut -d' ' -f1 j’obtiens la liste des paquets que je veux à raison d’un par ligne.

Je souhaite maintenant concaténer toutes ces lignes avec un seul espace entre les noms de paquets.

Là il est tard et je pêche, une idée svp?

Merci d’avance

edit: trouvé:

$ apt-cache search ^php- | grep 'default' | cut -d' ' -f1 | paste -s -d' '

Me reste plus qu’à mettre ça dans un apt-get mais là dodo!

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.

Et voici la commande finale que je cherchais:

apt-get install php $(apt-cache search ^php- | grep 'default' | cut -d' ' -f1 | paste -s -d' ')

la réponse du terminal (j’ai mis en gras les modules souvent recommandés, ils y sont tous, voir mon 1er post):

[quote]Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
Les paquets supplémentaires suivants seront installés :
firebird3.0-common firebird3.0-common-doc freetds-common libc-client2007e
libfbclient2 libodbc1 libpq5 librecode0 libsybdb5 libtidy5deb1 libtommath1
libxmlrpc-epi0 libzip4 mlock php-common php7.3 php7.3-bcmath php7.3-bz2
php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-enchant php7.3-gd
php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap
php7.3-mbstring php7.3-mysql php7.3-odbc php7.3-opcache php7.3-pgsql
php7.3-pspell php7.3-readline php7.3-recode php7.3-snmp php7.3-soap
php7.3-sqlite3 php7.3-sybase php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-zip
snmp
Paquets suggérés :
uw-mailutils libmyodbc odbc-postgresql tdsodbc unixodbc-bin php-pear
Les NOUVEAUX paquets suivants seront installés :
firebird3.0-common firebird3.0-common-doc freetds-common libc-client2007e
libfbclient2 libodbc1 libpq5 librecode0 libsybdb5 libtidy5deb1 libtommath1
libxmlrpc-epi0 libzip4 mlock php php-bcmath php-bz2 php-cgi php-cli
php-common php-curl php-enchant php-gd php-gmp php-imap php-interbase
php-intl php-json php-ldap php-mbstring php-mysql php-odbc php-pgsql
php-pspell php-readline php-recode php-snmp php-soap php-sqlite3 php-sybase
php-tidy php-xml php-xmlrpc php-zip php7.3 php7.3-bcmath php7.3-bz2
php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-enchant php7.3-gd
php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap
php7.3-mbstring php7.3-mysql php7.3-odbc php7.3-opcache php7.3-pgsql
php7.3-pspell php7.3-readline php7.3-recode php7.3-snmp php7.3-soap
php7.3-sqlite3 php7.3-sybase php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-zip
snmp
0 mis à jour, 76 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 8 499 ko dans les archives.
Après cette opération, 37,4 Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
[/quote]

APT existe depuis longtemps mais est considéré comme pas assez stable??

Pour ma manip d’une 30aine de paquets ça a fonctionné, peut-être que pour (beaucoup) plus il a du mal mais je n’ai pas encore rencontré ce problème.

Merci pour tes remarques constructives en tous cas :wink:

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.