Installer imap sur une machine Linux

Bonjour,

J'aimerais installer imap-2004g sur mon serveur Linux (CentOS 5.1)

J'ai essayé de suivre la procédure ci-dessous :
-> cd /root/install
-> wget -r -np -k 'http://www.ibiblio.org/pub/packages/solaris/freeware/SOURCES/imap-2004g.tar.gz'
-> tar -zxvf imap-2004g.tar.gz
-> cd imap-2004g
-> make slx SSLTYPE=none ou make ldb SSLTYPE=none


Mais voici l'erreur qu'il m'affiche :

ln -s crx_nfs.c crexcl.c
ln -s ip4_unix.c ip_unix.c
ln: `ip_unix.c': File exists
make[3]: *** [onceenv] Error 1
make[3]: Leaving directory `/home/.milton/essaymonster/source/imap-2004g/c-client'
->make[2]: *** [lnp] Error 2
make[2]: Leaving directory `/home/.milton/essaymonster/source/imap-2004g/c-client'
make[1]: *** [OSTYPE] Error 2
make[1]: Leaving directory `/home/.milton/essaymonster/source/imap-2004g'
make: *** [ldb] Error 2


Qu'est que je dois faire pour resoudre cete erreur ?

Normalement si je n'ai pas de bug, la suite de la procédure d'installation est :
-> mkdir /usr/local/imap-2004g
-> mkdir /usr/local/imap-2004g/include
-> mkdir /usr/local/imap-2004g/lib
-> cp c-client/*.h /usr/local/imap-2004g/include/
-> cp c-client/*.c /usr/local/imap-2004g/lib/
-> mv c-client/c-client.a /usr/local/imap-2004g/lib/libc-client.a


J'ai aussi essayé une autre méthode pour installer imap-2004g:

-> cd /root
-> mkdir packages
-> cd /root/packages
-> mkdir imap-2004g
-> wget http://files.directadmin.com/service...p-2004g.tar.gz
-> tar xvzf da_imap-2004g.tar.gz
-> cd imap-2004g.tar.gz
-> ./buildit
-> cd imapd
-> cp imapd /usr/sbin/imapd
-> chmod 755 /usr/sbin/imapd


Mais ça ne marche pas non plus

Avez vous deja installer imap sur votre machine Linux ? Ou savez vous comment on fait pour l'installer ?
Car c'est assez compliqué et il n'y a pas de documentation sur Internet

Merci de votre aide
Configuration: CentOS 5.1
Firefox 2.0.0.12

33 réponses

Résumé de la discussion

L’installation de imap-2004g sur CentOS 5.1 échoue lors de la compilation, notamment avec une erreur ln: ip_unix.c existant et des messages OSTYPE et lnp dans le répertoire c-client. Des solutions proposées incluent la configuration d’inetd/xinetd et PAM selon BUILD, l’étude de la doc imap-2007, et l’éventualité d’utiliser des paquets UW-IMAP ou yum pour simplifier l’installation. Certaines réponses recommandent aussi de vérifier les services et fichiers de configuration (/etc/xinetd.d, /etc/services, /etc/pam.d) et de tester le serveur avec un client IMAP ou Telnet. En parallèle, des échanges évoquent que l’approche la plus fiable consiste à partir d’une version UW-imap récente et à installer via un paquet prénoté, plutôt que d’assembler les sources obsolètes.

Bobot (l’IA à votre service)
  1. Contributeur
    Salut BenJ,

    L'installation n'est pas achevée.

    Vois les procédures dans imap-2007\docs\BUILD, pour l'utilisation de inetd ou xinetd afin que le serveur que tu as compilé soit à l'écoute. Le document traite aussi /etc/services et /etc/pam.d/

    Cela sera inetd ou xinetd qui se chargeront de solliciter le serveur imap s'ils reçoivent des requêtes. L'un ou l'autre doit donc tourner sur ton système.

    Pour tester le serveur imap, tu peux utiliser un client imap ou le tester avec telnet, comme cela :

    http://documents.made-it.com/imapcmd.html

    Dal
    1. Contributeur
      Salut,

      Ton xinetd a l'air correct (c'est une copie fidèle de la doc UW-IMAP). Pour le reste, c'est à tester :-)

      Pour pam, voilà ce que j'ai sur une Debian pas trop ancienne dans /etc/pam.d/imap :
      auth            required       pam_unix.so      nullok
      account         required       pam_unix.so
      password        required       pam_unix.so
      session         required       pam_unix.so

      En toute logique, cela devrait ressembler à cela,.. mais c'est un peu du bricolage, c'est pourquoi je te conseillais de voir la doc CentOS (où on voit cependant que le module semble porter le même nom, ce qui est déjà bien :P), sinon, tu pourrais attendre qu'un utilisateur de CentOS se manifeste sur le forum ou poser la question sur un forum CentOS.

      Dal
      1. Contributeur
        Salut,

        Juste un petit mot sur xinetd.

        Pour tout te dire, le fait que UW-IMAP soit géré par inetd a été un motif additionnel pour lequel j'ai fui ce serveur IMAP, inetd n'ayant pas eu, par le passé, une bonne réputation de sécurité. xinetd est sensé être mieux sécurisé, mais c'est toujours la même idée à la base d'utiliser un démon en tant que super serveur. Donc, je ne suis pas une référence en xinietd (ni en rien d'autre d'ailleurs, mais en xinetd encore moins !), quand je vois inetd ou xinetd sur une machine, je préfère le désinstaller et faire autrement. Tu devrais peut être consulter une documentation, pour vérifier si tu n'a pas besoin de gérer des contrôles d'accès de générer des logs, etc. http://xinetd.org/
    2. Contributeur
      Si j'ai bien compris, c'est le serveur IMAP de l'Université de Washington que tu essayes d'installer à partir de sources.

      Le site officiel est là http://www.washington.edu/imap/ et si tu dois récupérer des sources, fait le à partir de là et avec la dernière version.

      Sinon, un yum install uw-imap ne ferait pas l'affaire ?

      Il y a des années que je n'ai pas utilisé uw-imap, que j'avais trouvé très lent.

      J'utilise Courier IMAP, qui gère les boites au format Maildir.

      Dal
      1. Merci d'avoir répondu :)

        Je suis obligé d'installer imap-2004g sur mon serveur Linux. Je ne peux pas installer une autre version :(
        Et il faut que je l'installe dans le repertoire /root/packages/imap-2004g
        Donc le yum install uw-imap ne fera pas l'affaire :s

        Mais j'ai quand meme essayer d'installer la derniere version d'imap, j'ai suivi la demarche de ces liens : http://www.directadmin.com/forum/showthread.php?s=&threadid=12430&highlight=imap2004g
        http://www.directadmin.com/forum/showthread.php?s=&postid=9992#post9992

        yum install pam
        yum install pam-devel
        yum install map-devel
        yum install pcre-devel
        yum install aspell-devel
        yum install libtool
        yum install libtool-devel
        yum install libc-client-devel.i386
        yum install libc-client.i386

        wget ftp://ftp.cac.washington.edu/imap/c-client.tar.Z
        tar -zxvf c-client.tar.Z

        cd imap-2007
        nano Makefile (read inside which format you need to use, pour Centos c'est "lrh")
        make lrh EXTRACFLAGS=-I/usr/kerberos/include EXTRALDFLAGS=-I/usr/kerberos/lib
        mkdir /root/packages/imap-2004g
        mkdir /root/packages/imap-2004g/lib
        mkdir/root/packages/imap-2004g/include

        cd c-client/
        cp *.h /usr/local/imap-2004d/include/
        cp *.c /usr/local/imap-2004d/lib/
        cp c-client.a /usr/local/imap-2004d/lib/libc-client.a


        Mais quand je fais la commande make lrh EXTRACFLAGS=-I/usr/kerberos/include EXTRALDFLAGS=-I/usr/kerberos/lib

        J'ai l'erreur ci dessous :
        make[3]: *** [osdep.o] Error 1
        make[3]: Leaving directory `/usr/local/imap-2004g/c-client'
        make[2]: *** [lnp] Error 2
        make[2]: Leaving directory `/usr/local/imap-2004g/c-client'
        make[1]: *** [OSTYPE] Error 2
        make[1]: Leaving directory `/usr/local/imap-2004g'
        make: *** [lrh] Error 2


        Qu'est ce qu'il faut que j'installe ou que je configure pour que l'installation d'Imap fonctionne ?

        Merci pour ton aide
        1. Contributeur
          Salut,

          L'origine précise de l'erreur doit être indiquée par make dans l'output de make que tu n'as pas copié ci-dessus (tu n'as donné que les derniers messages d'erreur, pas celui/ceux qui les ont causés).

          Dal
          1. Contributeur
            Re,

            Notre ami a précisé dans son message ci-dessus #2 qu'il a fait :

            yum install pam
            yum install pam-devel


            Le problème devrait se situer ailleurs, mais tant qu'on n'a pas les erreurs de compilation précises, on en est réduits aux suppositions.

            Dal
            1. Salut,

              >Dal

              L'origine précise de l'erreur est :
              osdep.c:984: error: 'SSLSTREAM' has no member named 'iptr'
              osdep.c:984: error: 'SSLSTREAM' has no member named 'ibuf'
              osdep.c:985: error: 'SSLSTREAM' has no member named 'ictr'
              ...


              > vil_coyote

              Mes paquetages "pam" et "pam-devel" sont bien installés (cf mon post 2 ci dessus).

              J'ai essaye 36 facons pour intaller imap-20004g.tar et aucune ne marche j'ai pleins d'erreur quand je fait le buildit ou le make . Donc j'ai decide d'intaller la derniere version (imap-2007)

              Donc voila ce que j'ai fait :
              wget ftp://ftp.cac.washington.edu/imap/imap-2007.tar.Z
              tar zxvf imap-2007.tar.Z
              cd imap-2007
              make slx SSLTYPE=none
              mkdir /root/packages/imap-2004g
              mkdir /root/packages/imap-2004g/lib
              mkdir/root/packages/imap-2004g/include
              cd c-client/
              cp *.h /usr/local/imap-2004d/include/
              cp *.c /usr/local/imap-2004d/lib/
              cp c-client.a /usr/local/imap-2004d/lib/libc-client.a


              Et ca marche, je n'ai pu d'erreur!!

              Je vais reinstaller PHP 5.2 en le configurant avec imap :
              ./configure
              --prefix=/opt/apache2/php
              --with-apxs2=/opt/apache2/bin/apxs
              .................................................
              --with-imap=/root/packages/imap-2007


              Et je vous dirai si ca marche!!!

              Comment vérifier que imap est bien installé ?

              Merci pour votre aide
              1. désolé pour "pam" j'avais pas vu !

                un truc étrange : tu as installé imap-2007 et pourtant tu créé un dossier /root/packages/imap-2004.
                Ensuite tu vas installer php avec l'option : --with-imap=/root/packages/imap-2007

                ...c'est logique ?
                1. Non c'est pas logique!! J'ai fait un mauvais copier/coller :s

                  Voici la bonne démarche:
                  cd /root/ packages
                  wget ftp://ftp.cac.washington.edu/imap/imap-2007.tar.Z
                  tar zxvf imap-2007.tar.Z
                  cd imap-2007
                  make slx SSLTYPE=none
                  mkdir /root/packages/imap-2007/lib
                  mkdir/root/packages/imap-2007/include
                  cd c-client/
                  cp *.h /usr/local/imap-2007/include/
                  cp *.c /usr/local/imap-2007/lib/
                  cp c-client.a /usr/local/imap-2007/lib/libc-client.a


                  C'est mieux la ?

                  Y a t-il une commande pour vérifier que imap est bien installé ?

                  Merci d'avance
                  1. Salut Dal,

                    Je me disais aussi que c'était un peu trop facile!
                    J'ai été voir le fichier imap-2007\docs\BUILD et j'ai plusieurs questions :

                    Je configure que pour imap ou bien aussi pour pop et pop3 ?

                    Comment savoir si mon système utilise inetd ou xinetd ?
                    J'ai fait un find -name inetd.d mais j'ai rien trouve
                    J'ai fait un find -name xinetd.d et j'ai un repertoire /etc/xinetd.d sur mon systeme donc a mon avis il faut que j'utilise
                    xinetd.d pour que le serveur que j'ai compilé soit à l'écoute. C'est ca?

                    Je n'ai pas de fichier /etc/services, est ce que je dois le créer et mettre dedans:
                    imap 143/tcp

                    Le repertoire /etc/pam.d/ exsite mais je n'ai pas de /etc/pam.d/imap :s
                    Je dois le creer ? Qu'est ce que je dois mettre dedans ?


                    Pour tester le serveur imap, tu peux utiliser un client imap ou le tester avec telnet, comme cela :
                    http://documents.made-it.com/imapcmd.html


                    Ok je testerai mon serveur imap a la fin

                    Merci d'avance pour ton aide et tes explications
                    1. Voici ce que j'ai fait :
                      -> cd /etc/xinetd.d
                      -> echo > imap
                      -> vi /etc/xinetd.d/imap

                      service imap
                      {
                      disable = no
                      socket_type = stream
                      wait = no
                      user = root
                      server = /root/packages/imap-2007/imapd
                      groups = yes
                      flags = REUSE IPv6
                      }


                      J'ai bien un fichier /etc/services qui contient beaucoup de ligne dont :
                      pop2 109/tcp
                      pop2 109/udp
                      pop3 110/tcp
                      pop3 110/udp
                      imap 143/tcp
                      imap 143/udp


                      Dans la documentation imap-2007\docs\BUILD, ils disent de mettre
                      pop 109/tcp
                      pop3 110/tcp
                      imap 143/tcp


                      Est ce que j'enleve tout ce qui concerne le protocole UDP ? Ou je laisse comme ça ?
                      NB: Dans mon fichier /etc/services, c'est pop2 au lieu de pop ? Est ce que je change pop2 en pop?

                      En revanche pour le PAM, je ne sais pas comment faire. Le repertoire /etc/pam.d/
                      Est ce que je cree les 2 fichiers ci dessous ?
                      /etc/pam.d/imap
                      /etc/pam.d/pop


                      Merci pour ton aide

                      BenJ
                      1. Contributeur
                        Je configure que pour imap ou bien aussi pour pop et pop3 ?

                        C'est à toi de voir :-)

                        Comment savoir si mon système utilise inetd ou xinetd ?
                        J'ai fait un find -name inetd.d mais j'ai rien trouve
                        J'ai fait un find -name xinetd.d et j'ai un repertoire /etc/xinetd.d sur mon systeme donc a mon avis il faut que j'utilise
                        xinetd.d pour que le serveur que j'ai compilé soit à l'écoute. C'est ca?


                        Oui, c'est probablement xinetd qui est sur ton système. Tu peux vérifier ce qui tourne

                        ps aux | grep -i inetd

                        Je n'ai pas de fichier /etc/services, est ce que je dois le créer et mettre dedans:
                        imap 143/tcp


                        C'est très étrange que tu n'aient pas déjà ce fichier. Ne connaissant pas CentOS, je ne sais pas s'ils utilisent une base de donnée alternative au lieu de ce fichier.. Tu devrais peut être te renseigner.

                        Un fichier /etc/services fait habituellement environ 2000 lignes, peut-être devrait tu en récupérer un pour ta version de CentOS, s'il est anormal qu'il n'y soit pas.

                        Pour information, chez moi (sur FreeBSD) pour imap, j'ai cela :

                        imap 143/tcp imap2 imap4 #Interim Mail Access Protocol v2
                        imap 143/udp imap2 imap4 #Interim Mail Access Protocol v2
                        ...
                        imaps 993/tcp # imap4 protocol over TLS/SSL
                        imaps 993/udp


                        Le fichier est possédé par root et a des permissions 644.

                        Le repertoire /etc/pam.d/ exsite mais je n'ai pas de /etc/pam.d/imap :s
                        Je dois le creer ? Qu'est ce que je dois mettre dedans ?


                        Dans la doc (que je n'ai plus à portée de la main), ils disent que tu peux faire une copie d'un fichier existant (ftpd, je crois), le nommer "imap", et que cela devrait suffire.

                        Tu pourrais aussi jeter un oeil à la documentation CentOS pour pam :

                        http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-pam.html

                        Dal
                        1. Contributeur
                          Désolé, je n'ai pas vu ton post précédent.

                          Non, garde ton /etc/services, il est parfait (y compris les lignes udp).

                          Dal
                          1. Ok pour mon fichier /etc/services, je l'ai laisse comme il était

                            Est ce que mon fichier /etc/xinetd.d/imap est bien configure ? (cf ci-dessous):
                            service imap
                            {
                            disable = no
                            socket_type = stream
                            wait = no
                            user = root
                            server = /root/packages/imap-2007/imapd
                            groups = yes
                            flags = REUSE IPv6
                            }


                            Oui dans la doc /imap-2007/docs/BUILD, ils disent qu'on peut faire une copie d'un fichier "ftpd" et le nommer "imap".Le problème c'est que ce fichier est vide dans le répertoire /etc/pam.d/

                            As tu le fichier /etc/pam.d/imap ou /etc/pam.d/ftpd sur ta machine Linux ?

                            Merci pour ton aide

                            BenJ
                            1. Salut Dal,

                              Merci quand même pour ton aide et tes explications. Je pense que je vais galérer pour configurer imap!!

                              Je cherche sur internet des tutoriels ou des explications pour installer et surtout configurer imap mais je ne trouve pas grand chose :(

                              J'ai juste la documentation du /imap-2007/docs/BUILD

                              Est ce que tu connais des liens qui explique comment configurer imap sous Linux ?

                              Merci d'avance
                              1. Bon comme on dit "qui ne tente rien n'a rien"

                                Alors je vais tenter!! J'ai mis un post sur le forum CentOS mais personne ne répond :(

                                J'ai aussi fait un copier/coller de ton fichier /etc/pam.d/imap:
                                auth required pam_unix.so nullok
                                account required pam_unix.so
                                password required pam_unix.so
                                session required pam_unix.so


                                Mais apres je ne sais pas trop quoi faire...

                                J'ai fait un /etc/init.d/xinetd start

                                Puis j'ai tente de tester mon serveur imap :
                                telnet localhost 143

                                Mais j'ai le message :
                                Trying 127.0.0.1.....
                                telnet: connect to address 127.0.0.1: Connection refused
                                telnet: Unable to connect to remote host Connection refused

                                Alors que par exemple telnet localhost 80 fonctionne !!1

                                Merci pour votre aide
                                1. Contributeur
                                  Salut,

                                  Ce n'est pas "imap" sous Linux, c'est le serveur UW-IMAP que tu veux configurer.

                                  Désolé, je n'ai pas de liens.

                                  Ce n'est pas la "mer à boire" si tu veux faire des choses simples. UW-IMAP va utiliser les MBOX créées et gérées par défaut par UNIX dans les répertoires .Mail du /home de chaque user, les users sont ceux du système Unix, avec les mêmes mots de passe,...

                                  Vu que c'est un format MBOX standard sur Unix, Tu pourras accéder localement aux MBOX sur le serveur avec des clients de messagerie comme pine en ligne de commande pour accéder à la MBOX sans passer par le serveur IMAP (tu installes "pine", tu le lances et çà marche), ou utiliser des clients IMAP distants pour accéder aux mêmes boites.

                                  Lances toi, tu verras :-)

                                  Sinon, tu as çà https://www.oreilly.com/library/view/managing-imap/059600012X/ qui est cité par la FAQ. C'est en anglais, et on dirait qu'il n'est pas traduit en français par l'éditeur, mais il traite UW-IMAP et Cyrus et ses lecteurs ont l'air contents (d'après les commentaires, je n'ai pas cet ouvrage). Si je devais acheter cet ouvrage, cela serait plus pour Cyrus, qui m'a vraiment donné du fil à retordre. UW est très simple, en comparaison.

                                  Lis la FAQ aussi.

                                  Dal
                                  1. Contributeur
                                    Vérifie si xinetd est bien lancé :

                                    ps aux | grep -i inetd

                                    Vérifie les logs de xinetd (à l'emplacement indiqué dans /etc/xinetd.conf)

                                    Dal
                                    1. Je ne comprends pu rien du tout!

                                      Je suis complètement perdu!

                                      Qu'est ce que je dois faire ?
                                      • 1
                                      • 2