Forum Linux.débutant Quel répertoire chosir, installations progs..

Posté par  .
Étiquettes :
0
24
juil.
2004
Bonjour à tous,

Lorsque je dois installer des programmes manuellement(qui ne sont pas des paquetages) en les compilant par make, make install...., dans quel répertoire il est préférable de les installer.

Personnellement je commence toujours par décompresser le programme dans mon répertoire /home/dossier_personnelle, et il me créer un répertoire du nom du programme en question et ensuite je vais dans ce répertoire /home/dossier_personnel/mon_programme, et je tape habituellement :

./configure
make
make install

Avec le temps mon dossier_personnel devient rempli et hier j'ai commis une erreur qui fait que j'ai supprimé mon dossier_personnel mais j'avais partitionné linux en deux partition, une pour "/" et l'autre pour "/home" alors je n'ai pas à tous réinstaller linux, une bonne chose de faire 2 partition.

Même chose lorsque j'installe un programme comme firefox par exemple qui n'a pas besoin d'être compilé. J'ai tout simplement décompressé le fichier dans mon dossier_personnel et je me retrouve avec un dossier firefox et sont exécutable à l'intérieur. Par contre j'ai du réinstaller firefox puisque je l'avais perdu en supprimant mon dossier_personnel.

Finalement si j'installait mes programmes(qui ne sont pas des paquetages) dans "/home/je_ne_sais_quoi" sans déranger Linux alors je ne perdrais rien en cas de mauvaise manip comme hier.

Dans quel répertoir installer ces progs sans déranger Linux et sans alourdir ou ralentir?

Je suis sous Mandrake 10.0 sous l'environnement xfce4

Merci de votre aide.
  • # /usr/local

    Posté par  . Évalué à 1.

    Dans la plupart des distros, le répertoire /usr/local est fait pour ça.
    • [^] # Re: /usr/local

      Posté par  (site web personnel) . Évalué à 3.

      D'ailleurs, il est utile dans ce cas d'utiliser stow pour pouvoir désinstaller facilement ces mêmes logiciels.

      Avec stow, tu installe ton logiciel dans disons, /usr/local/stow/bidule, en passant un --prefix=/usr/local/stow/bidule au ./configure. Ensuite, tu demandes a stow de l'"activer", en fesant des liens vers /usr/local/, histoire d'avoir les executables dans le path, et la doc facile a trouver.
      Pour désinstaller, il suffit de demander à stow de supprimer ces liens, et de faire rm -rf bidule, et tu as l'assurance d'avoir fait une désinstallation propre
      • [^] # Re: /usr/local

        Posté par  . Évalué à 1.

        Ok merci Antoine pour ces infos et se programme stow que je ne connaissais pas.

        Merci
  • # Installer à partir des sources.

    Posté par  . Évalué à 2.

    Il est très rare que les programmes sources n'est pas par défaut les variables d'installation calé sur /usr/local

    Habituellement, on procède ainsi :

    Il existe un répertoire /usr/local

    On doit trouver un /usr/local/src (sinon le creer)


    Generalement les installation de programme se font sous le compte root
    Aller dans le repertoire d'installation
    cd /usr/local/src

    Vérifier le contenu de l'archive "foo"
    tar -ztvf foo.tar.gz
    tar -jtvf foo.tar.bz2
    si l'archive contient une arborescence ( foo-v.r.n version release etc ..)
    alors la decompacter
    tar -zxvf foo.tar.gz tar -jxvf foo.tar.bz2


    cd foo*
    lire README et INSTALL
    ensuite ./configure
    make
    make install

    Par défaut la variable PREFIX contient alors le chemin /usr/local

    L'installation se fera dans l'arborescence /usr/local qui contient les répertoires bin, lib, share et autre
    • [^] # Re: Installer à partir des sources.

      Posté par  . Évalué à 2.

      Merci à vous deux,

      Mais si j'installer mes programmes dans le répertoire /usr/local/, il faut être en root par la suite pour pouvoir les exécuter non? J'ai essayé et il faut que je me log en root pour exécuter un prog installé dans /usr/local. Comment faire pour ne pas avoir à me loguer en root à chaque fois que je veux exécuter un prog?

      Pourquoi le répertoire /usr/local/src, c'est quoi le répertoire /src/. J'installe dans /usr/local/ ou dans /usr/local/src? Je suis pas certain de comprendre ce que tu veux dire pour le répertoire /src/.

      Merci de votre aide.
      • [^] # Re: Installer à partir des sources.

        Posté par  . Évalué à 1.

        /usr/local/src.
        C'est un répertoire dans lequel on décompacte les sources de chaque programme.
        Et c'est dans le répertoire propre à chaque programme qu'on compile.
        la commande configure crée un fichier Makefile, c'est dans ce fichier qu'on trouve toutes les indications nécessaires à la compilation et à l'installation.
        Par défaut, la variable PREFIX contient le répertoire à partir duquel seront distribué tous les fichiers produits par la compilation.
        Et presque à chaque fois, PREFIX = /usr/local
        Sinon on tape
        ./configure --prefix=/usr/local
        Ainsi au moment de l'installation, les exécutable seront installés dans $PREFIX/bin
        les librairies dynamiques dans $PREFIX/lib
        etc...
        Normalement, make install doit donner les droits d'éxecution aux programmes à d'autres utilisateurs que root.
        La commande ls -l /usr/local/bin/programme donne quelque chose comme :
        -rwxr-xr-x 1 root root 35624 oct 12 2003 programme

        le dernier x indique que les utilisateurs autres que le créateur de programme peuvent l'utiliser.
      • [^] # Re: Installer à partir des sources.

        Posté par  . Évalué à 1.

        Il faudrait savoir quel programme tu as compilé et comment pour comprendre pourquoi tu ne peux pas l'utiliser sans te logger root.(à éviter absolument).
        • [^] # Re: Installer à partir des sources.

          Posté par  . Évalué à 2.

          Merci Egidius pour toutes ces infos maintenant c'est plus clair. J'avais déjà vue ça quelque part le --prefix alors la prochaine fois que j'aurrais un programme à compiler je saurais quoi faire pour ne pas encombrer mon répertoire_personnel. C'est peut être pour ça d'ailleur que certains et même plusieurs programme que je compilais ne fonctionnais pas...

          En ce moment je ne compilais pas de programme. Comme j'ai supprimer mon dossier_personnel hier avec plusieurs programmes que j'avais compilé à l'intérieur alors il me faut recommencer.

          Pour l'instant j'installais seulement Firefox et Thunderbird et c'est deux programme ne se compile pas, il suffit simplement de décompresser le fichier firefox.tar par exemple et j'ai le répertoire par le suite "firefox" et l'exécutable dans ce répertoire, pas besoin de compiler. C'est pour cela que je ne peut le mettre dans le répertoire /usr/local sinon je dois être en root après pour l'exécuter.

          Bon je vient d'installer le jeux Foobillard-3a dans le /usr/local.

          J'ai décompacter dans /usr/local/src et j'ai compiller dans /usr/local/src/foobillard/ avec la commande :

          ./configure --prefix=/usr/local/
          make
          make install (en root)

          Tous fonctionne à merveille contrairement à lorsque je l'installais dans mon dossier_personnel par la simple commande ./configure, make et make install.

          De plus je vois que le peut aussi supprimer le répertoire foobillard par la suite et le programme fonctionne quande même, je vais éviter de surgarger mon dd de tous ces répertoire que je gardais toujours.

          Petite question, une fois terminé l'installation d'un programme(make install), si je supprime le répertoire, est ce que je dois tou de même taper la commande "make clean" après l'installation fait avec "make install" ?

          Si je n'utilise pas le prog stow comme le mentionne Antoine, comment faire pour désintaller ou supprimer un programme installe comme mentionné dans ce message?

          Encore merci car là je vient d'apprendre quelques chose de vraiment bien pour moi:0)
          • [^] # Désinstaller

            Posté par  . Évalué à 1.

            Si tu supprimes le répertoire décompacté dans /usr/local/src et qui contient les sources du logiciel que tu as installé, alors la commande make clean ne sert à rien, de plus tu auras un message d'erreur du genre "No target rule for make clean".

            make clean permet d'enlever tous les fichiers générés par la compilation (commande make). On l'utilise généralement pour recommencer une compilation qui s'est terminée en erreur. C'est souvent "plus propre" de tout recompiler.

            Attention !!! La destruction du répertoire des sources d'un programme ne désinstalle pas le programme.

            Pour désinstaller vraiment le programme, il faut détruire tous les fichiers installés dans les différents répertoires de /usr/local par la commande make install. Encore faut-il les connaître et bien savoir ce que l'on fait !
            La lecture des fichiers log d'installation donne l'information mais c'est assez austère !

            Là, le conseil d'Antoire d'utiliser stow est excellent parce que cet utilitaire permettra de désinstaller sans erreur un programme que tu ne veut plus utiliser.
            • [^] # Re: Désinstaller

              Posté par  . Évalué à 1.

              Ok j'ai installé Stow et trouvé cette ces instructions sur le net :

              ********
              * STOW *
              ********
              L'UTILITAIRE QU'IL VOUS FAUT

              Voila le principe:

              ** on cree un repertoire /usr/local/stow.

              ** Quand on veut installer (mettons) vim 5.3 a partir d'un tgz,
              on cree un repertoire /usr/local/stow/vim_5.3.
              on decompresse l'archive vim_5.3.tgz dans /tmp,
              on fait le ./configure avec le prefix '--prefix=/usr/local/stow/vim_5.3'
              on fait le make; make install.

              Et oh miracle, vim5.3 s'installe dans /usr/local/stow/vim_5.3.

              En fait, les binaires sont (automatiquement) dans
              /usr/local/stow/vim_5.3/bin,
              les doc (automatiquement) dans /usr/local/stow/vim_5.3/doc/vim, les man
              dans /usr/local/stow/vim_5.3/man/man1, les fichiers share dans
              /usr/local/stow/vim_5.3/share/vim.

              ** Et la, l'utilitaire stow rentre en jeu:
              en allant dans /usr/local/stow, et en tapant 'stow vim_5.3', le
              programme va automatiquement faire des liens symboliques des fichiers de
              /usr/local/stow/vim_5.3/bin dans /usr/local/bin, de ceux de
              /usr/local/stow/vim_5.3/doc/vim dans /usr/local/doc/vim etc.

              On se retrouve donc avec tous les fichiers de vim 5.3 ranges dans un
              seul repertoire mais accessible via /usr/local.

              ** Quand le vim 5.4 va sortir, j'effacerai le 5.3
              en allant dans /usr/local/stow et en faisant 'stow -D vim_5.3'.
              A partir de la, tous les liens symboliques sont effaces,

              et apres un petit 'rm -Rf /usr/local/stow/vim_5.3', je serai sur que le
              programme aura ete efface COMPLETEMENT de mon disque!





              ** Voici comme exemple mon /usr/local/stow actuel:

              acroread_3 fpc_0.99.8 nedit_5.0.2 wxxt_1.66
              amp_0.7.6 gd_1.3 rar_2.0 xanim_2.70.7.0
              candleweb_1.1 kermit_6.0.192 snes9x xfractint_3.04
              demos klyx_0.9.3 staroffice_4.0 xmame_0.34b3.1
              dosemu_0.98.2 l3enc_2.72 tkdesk_1.0b5 xmp_1.1.2
              dozer-0.7.2b libtermcap_1.3 tkfont_1.1 xpinguin
              dumb-games linuxconf_1.13r4 vim_5.3 xpostit+_2.3
              dumb_0.13.2 mp3 wine

              c'est assez clean, et chaque programme est dans son sous-repertoire
              propre.
              Et meme si le /usr/local est un peu "bordelique", je garde toujours un
              controle absolu des .tgz que j'ai installe :)


              ** Quand on a une distrib style RedHat ou Debian, on peut ainsi separer
              l'abre /usr ou les packages rpm ou deb sont installes, de l'arbre
              /usr/local ou on installe les .tgz venus du net.
              Et quand j'aurai vim 5.3 dispo en package pour ma Debian, je n'aurai
              qu'a desinstaller le tgz avec la manip citee plus haut et a installer le
              .deb pour me retrouver avec une distrib absolument propre.

              En ce moment je n'ai pas de programme à installer mais j'en trouverais un d'ici peu.

              Merci
              • [^] # Re: Désinstaller

                Posté par  . Évalué à 1.

                Roulez !
                • [^] # Re: Désinstaller

                  Posté par  . Évalué à 1.

                  Quoi Roulez?

                  Je comprend pas ce que tu veux dire Egidius!
                  • [^] # Re: Désinstaller

                    Posté par  . Évalué à 1.

                    C'est simplement l'expression très synthétisée quand je constate que tu as pris les choses en main !
                    Roulez : expression populaire en vogue à la fin du XIX eme, au moment de l'apparition de la bicyclette., signifiant que ça fonctionne bien, dynamiquement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.