Web-développeur et Administrateur système Freelance au Luxembourg, j'ai mis en place ce blog pour vous permettre de suivre l'évolution de ma société et partager avec vous quelques lignes de code.
Olivier
web 2.0

Migrer des comptes qmail/vpopmail d’un serveur à un autre

J’ai dû déplacer pour un client ses comptes mails géré par vpopmail d’un serveur à un autre. Après avoir installé qmail/vpopmail sur le nouveau serveur, j’ai déplacé le contenu de son répertoire vpopmail/domains, remis les droits corrects, copié le contenu des fichiers /var/qmail/control/rcpthosts /var/qmail/control/morercpthosts /var/qmail/control/virtualdomains et /var/qmail/users/assign (en changeant la valeur des uid:gid dans ce dernier fichier) Rien à faire, vpopmail refuse de voir les domaines ajoutés de cette façon. Je n’ai trouvé nulle part sur l’ancien serveur de database locale contenant éventuellement d’autres informations.J’ai donc utilisé un script trouvé ici qui permet de sauvegarder les mailbox vpopmail de l’ancien serveur et crée un script sh de recréation de compte sur le nouveau serveur. Pratique, mais il faut se taper tous les domaines à la main.

Installer l’extension ssh2 dans PHP Gentoo

Pour installer l’extension Pecl ssh2 sous Gentoo, commencez par télécharger l’archive ssh2-0.10.tgz puis une fois décompressée:

phpize && configure –with-ssh2

Modifiez alors le fichier config.h et ajoutez en haut du fichier:

#define LIBSSH2_APINO 200412301450

puis

make et make install

Plus qu’à ajouter l’extension dans /etc/php/cli-php4/php.ini et /etc/php/apache2-php4/php.ini

extension=ssh2.so

et

/etc/init.d/apache2 restart
ssh2-0.10 # php –info | grep ssh2
Registered PHP Streams => php, http, ftp, https, ftps, compress.bzip2, compress.zlib, ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp
ssh2
libssh2 version => 0.18
banner => SSH-2.0-libssh2_0.18
PWD => /usr/local/src/ssh2-0.10
_SERVER["PWD"] => /usr/local/src/ssh2-0.10
_ENV["PWD"] => /usr/local/src/ssh2-0.10

mindi-busybox-1.2.2 error: asm/page.h: No such file or directory

Sur un serveur Gentoo avec kernel 2.6.16-hardened-r10, mindi-busybox-1.2.2 refuse de compiler et j’obtiens:

/var/tmp/portage/sys-apps/mindi-busybox-1.2.2/work/mindi-busybox-1.2.2/ util-linux/mkswap.c:44:59: error: asm/page.h: No such file or directory make: *** /var/tmp/portage/sys-apps/mindi-busybox-1.2.2/work/mindi-busybox-1.2.2/ util-linux/mkswap.o Error 1

Il suffit de modifier l’ebuild de cette façon:

# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

inherit eutils flag-o-matic

DESCRIPTION=”The rescue part of a program that creates emergency boot disks/CDs using your kernel, tools and modules.”
HOMEPAGE=”http://www.mondorescue.org”
SRC_URI=”ftp://ftp.mondorescue.org/src/${P}.tar.gz”
LICENSE=”GPL-2″
SLOT=”0″
KEYWORDS=”~x86 ia64 -*”
DEPEND=”virtual/libc”
RDEPEND=”>=app-arch/bzip2-0.9
sys-devel/binutils”

src_unpack() {
unpack ${A} || die “Failed to unpack ${A}”
cd ${P}
# create a link to page.h in kernel dir
mkdir include/asm
mkdir include/asm-generic
mkdir include/linux

ln -s /usr/src/linux/include/asm/page.h include/asm/page.h
ln -s /usr/src/linux/include/asm-generic/page.h include/asm-generic/page.h
ln -s /usr/src/linux/include/linux/const.h include/linux/const.h
make oldconfig
}

src_compile() {
# work around broken ass powerpc compilers
emake EXTRA_CFLAGS=”${CFLAGS}” busybox || die “build failed”
}

src_install() {
# bundle up the symlink files for use later
emake PREFIX=”${D}/usr/lib/mindi/rootfs” install || die
}

puis

aloyse mindi-busybox # ebuild mindi-busybox-1.2.2.ebuild digest

>>> Creating Manifest for /usr/local/portage/sys-apps/mindi-busybox

et enfin:

emerge =mindi-busybox-1.2.2

et vous pouvez continuer avec l’installation de mindi puis mondoarchive.

PAM unable to dlopen(/lib/security/pam_unix.so)

La version stable de pam sous Gento (sys-libs/pam-0.99) nécessite de recompiler certains outils qui ne sont pas identifiables avec revdep-rebuild (shadow, vixie-cron, openssh, courier-authlib, cyrus-sasl etc.). Ce genre de problème se manifeste dans vos logs systèmes par ce genre de message:

Dec 9 00:00:01 aloyse cron[8986]: PAM unable to dlopen(/lib/security/pam_unix.so)
Dec 9 00:00:01 aloyse cron[8986]: PAM [dlerror: /lib/security/pam_unix.so: symbol pam_modutil_getlogin, version LIBPAM_MODUTIL_1.0 not defined in file libpam.so.0 with link time reference]
Dec 9 00:00:01 aloyse cron[8986]: PAM adding faulty module: /lib/security/pam_unix.so
Dec 9 00:00:01 aloyse cron[8986]: PAM unable to dlopen(/lib/security/pam_limits.so)
Dec 9 00:00:01 aloyse cron[8986]: PAM [dlerror: /lib/security/pam_limits.so: symbol pam_syslog, version LIBPAM_EXTENSION_1.0 not defined in file libpam.so.0 with link time reference]
Dec 9 00:00:01 aloyse cron[8986]: PAM adding faulty module: /lib/security/pam_limits.so

Dec 9 00:00:01 aloyse cron[8986]: Module is unknown

Utilisez qdepends pour trouver les packages à ré-émerger :

aloyse ~ # qdepends -Q pam
app-misc/screen-4.0.3
sys-process/vixie-cron-4.1-r9
sys-apps/shadow-4.0.18.1-r1
net-misc/openssh-4.7_p1-r1
net-dialup/ppp-2.4.4-r13
Note: qpedends se toruve dans le package portage-utils

Réinstaller Python sur un serveur Gentoo.

Si par mégarde vous avez tapé la commande “emerge -C python”, vous vous êtes rendu compte que emerge est écrit en python:

emerge -av python -/bin/bash: /usr/bin/emerge: /usr/bin/python: bad interpreter: No such file or directory

La solution, réinstaller Python à la main.

cd /root
wget http://distfiles.gentoo.org/distfiles/Python-2.5.1.tar.bz2
tar xjf Python-2.5.1.tar.bz2
cd Python-2.5.1
./configure –prefix=/usr –host=i686-pc-linux-gnu –mandir=/usr/share/man –infodir=/usr/share/info –datadir=/usr/share –sysconfdir=/etc –localstatedir=/var/lib –with-fpectl –enable-shared –infodir=${prefix}/share/info –mandir=${prefix}/share/man –with-libc= –enable-unicode=ucs4 –with-threads –build=i686-pc-linux-gnu
make
make install

et voilà ! Merci à Human Bomb pour m’avoir donné l’opportunité de trouver cette solution ;)

Nouveau MX secondaire

Depuis le temps que ça trainait, il fallait bien le faire un jour. Et bien ca y est, j’ai enfin eu le temps d’insérer la ligne magique “oxeron.com” dans le fichier /var/qmail/control/rcpthosts de mon serveur dedibox.oxeron.com et voilà !

Une ligne de plus dans le serveur dns :

1D IN MX 10 mail.oxeron.com.
1D IN MX 20 dedibox.oxeron.com.

et le tour est joué, le serveur MX secondaire garde les emails tant que le primaire ne répond pas, c’est magique, c’est rapide, et surtout, c’est fait !

Messages suivants »