Maniatux's Blog

Welcome to the internet

L'aventure d'un serveur sous NetBSD #4

Rédigé par Xavier - -

J'ai un problème récurent avec pkgsrc. Pour bien comprendre le fonctionnement il faut savoir que NetBSD lui-même ne fourni que peu de logiciels. Un daemon SSH, FTP, HTTP... et pour le reste il faut aller piocher dans pkgsrc, l'équivalent des ports de FreeBSD ou de emerge sur Gentoo. Un ensemble de scripts qui va chercher les sources d'un logiciel et les compile ainsi que ses dépendances.

L'ennui est que par deux fois déjà j'ai été confronté à des logiciels qui ne marchent pas. Prenons tout d'abord prosody. La compilation et installation fonctionnent mais le logiciel ne se lance pas, l'erreur suivante s'affiche :

# prosodyctl start

**************************
Prosody was unable to find util.encodings
This package can be obtained in the following ways:

        Windows:      Make sure you have encodings.dll from the Prosody distribution in util/
        GNU/Linux:    Run './configure' and 'make' in the Prosody source directory to build util/encodings.so

util.encodings is required for Prosody to run, so we will now exit.
More help can be found on our website, at http://prosody.im/doc/depends
**************************

La solution est d'ajouter le préfixe LD_LIBRARY_PATH indiquant l'emplacement des librairies :

# LD_LIBRARY_PATH="/usr/pkg/lib" prosodyctl start

Et puisqu'il n'y a pas de script rc.d pour lancer Prosody, en voici un. Il n'est sûrement pas très propre ou pas parfait mais il fonctionne. Il est inspiré de celui fourni sur FreeBSD :

#!/bin/sh
#
# Prosody XMPP Server init script
#

# PROVIDE: prosody
# REQUIRE: LOGIN

$_rc_subr_loaded . /etc/rc.subr

name="prosody"
pidfile="/var/run/prosody.pid"
command="/usr/pkg/bin/prosodyctl"
load_rc_config $name
prosody=${prosody_enable-"NO"}
extra_comands="status"
start_cmd="prosody_cmd start"
stop_cmd="prosody_cmd stop"
restart_cmd="$stop_cmd; $start_cmd"
status_cmd="prosody_cmd status"

prosody_cmd()
{
        if !  /var/run/prosody.pid -f
        then
                touch /var/run/prosody.pid && chown prosody:wheel /var/run/prosody.pid
                LD_LIBRARY_PATH="/usr/pkg/lib" /usr/pkg/bin/prosodyctl $1
        else
                LD_LIBRARY_PATH="/usr/pkg/lib" /usr/pkg/bin/prosodyctl $1
        fi
}

run_rc_command "$1"

Puis ensuite :

# /etc/rc.d/prosody start

J'essaie maintenant de compiler Xen 4.1 mais ça ne passe pas. Il y a une petite modification à faire dans le Makefile pour pouvoir y arriver. Mais les étapes suivantes posent aussi des problèmes. Si je trouve la solution j'écrirais un article pour la décrire. Je viens de m'inscrire à la mailing list des bugs de pkgsrc et lorsqu'elle sera validé je soumettrai des rapports de bugs.

pkgsrc n'est donc pas fiable à 100%. Il y a des logiciels qui ne compilent pas ou ne se lancent pas.

Classé dans : BSD - Mots clés : aucun