Il vous arrive souvent de lancer "make" et de vous dire qu'il aurait fallu faire "make && make install" ?
Premiere solution, tapez "make install" pendant l'execution de "make", c'est pas très beau, vous ne voyez rien de ce que vous tapez, et ca marche pas a tous les coups.
Deuxième solution, faites Ctrl-Z puis tapez "fg && make install" et voila, juste après l'execution de "make", "make install" sera lancé.
Quelques restrictions tout de même: si vous voulez utiliser cette méthode sur des cas plus évolués, vous pouvez avoir des resultats non désirés (man sh section jobs controls pour plus d'infos).
# Re: Mettre des commandes en queue
Posté par Djoul . Évalué à 1.
[^] # Re: Mettre des commandes en queue
Posté par Gyro Gearllose . Évalué à 1.
Par contre, si tu fais (en suivant l'astuce ou non) la suite de commandes make ; make install, si le premier make échoue, le make install est exécuté quand même... pour rien.
La connerie, c'est peut être maintenant qu'elle va venir :
- Est-ce que du point de vue exécution la suite make ; make install ne revient pas au même que make || make install ?
- Après tout, vu que l'install du deuxième make ne sera exécutée que si les objets sont construits, pourquoi ne pas faire un make install direct, sans passer par le make initial ?
J'avoue que je n'ai jamais vraiment compris le pourquoi de ce premier make ?
Autrement, pour en revenir à l'astuce, c'est bien koules. Je tapais en aveugle ce qui manque, sans passer par le Ctrl-Z + fg.... Royal cette astuce !
[^] # Re: Mettre des commandes en queue
Posté par tinou . Évalué à 1.
Pire: en fait, le "make install" est exécuté, mais commence par tenter de construire les objets, chose qui a précédemment échoué avec "make", et qui échoue de nouveau.
> - Est-ce que du point de vue exécution la suite make ; make install ne revient pas au même que make || make install ?
Non, le "||" signifie qu'on execute "make install" si et seulement si "make" a échoué, alors que "make; make install" execute "make" puis "make install", quel que soit le code retour de la commande "make".
> J'avoue que je n'ai jamais vraiment compris le pourquoi de ce premier make ?
Parce que la plupart du temps, l'installation demande d'être root, et pas la compilation.
--
Tinou
[^] # Re: Mettre des commandes en queue
Posté par tinou . Évalué à 1.
$ cdrecord -dummy dev=0,0 image.iso && cdrecord dev=0,0 image.iso
ne gravera l'image que si le test d'écriture en "dummy" a réussi. En plus complet:
$ mkisofs -r -V "Mes sauvegardes" -o image.iso ~/Sauvegardes/* && cdrecord -dummy dev=0,0 image.iso && cdrecord dev=0,0 image.iso && mount /cdrw && rm -f image.iso
Propre, net, et sans bavure.
--
Tinou
[^] # Re: Mettre des commandes en queue
Posté par Damien Pobel (site web personnel) . Évalué à 1.
https://damien.pobel.fr
[^] # Re: Mettre des commandes en queue
Posté par rhizome . Évalué à 0.
>le resultat du make avant de faire make install. Mais sinon, on ne pourrait
>pas se contenter de taper:"make; make install" ?
L'astuce ne s'appelle pas "Faire make puis make install" mais "Mettre des commandes en queue". L'histoire du make install n'est qu'un exemple.
Je trouve que c'est une très bonne astuce, simple, mettant en jeu des commandes quotidiennes, il suffisait d'y penser ! Merci.
# Re: Mettre des commandes en queue
Posté par LaBienPensanceMaTuer . Évalué à 1.
$ make all install
Et oui, on peut spécifier plusieurs cibles à notre ami make
Et si le all échoue, il n'y aura pas d'install
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.