Tutoriel : Installation des Packages additionnels pour Fun_Plug sur DNS-323

Tutoriel : Installation des Packages additionnels pour Fun_Plug sur DNS-323

Packages Fun-Plug : Ajoutez des fonctionnalités à votre NAS

Après avoir installé fun_plug de Fonz' (voir le tutoriel à ce sujet), vous souhaiterez probablement ajouter d'autres packages ou Daemons comme NFS ou Torrent.

Sommaire :

1. Packages

1.1. Packages pré-installés

Les principaux packages inclus dans l'archive fun_plug.tgz (qui a été téléchargée et installée lors de l'installation de fun_plug de Fonz) sont les suivants:

Les principaux packages inclus dans l'archive fun_plug.tgz (qui a été téléchargée et installée lors de l'installation de fun_plug de Fonz) sont les suivants:

  • Lighttpd - un serveur HTTP léger pour hébergement de pages web sur le NAS
  • OpenSSH - Secure Shell (que vous avez déjà utilisé pour se connecter au NAS)
  • mediatomb - un serveur multimédia UPnP (méthode alternative à celle fournie par Conceptronic)
  • NTP - Network Time Daemon (pour synchroniser l'horloge du NAS avec les serveurs d'heure exacte sur Internet)
  • Unfs3 - Serveur NFS d'espace utilisateur (un protocole de serveur de fichiers qui est souvent utilisé par les ordinateurs fonctionnant sous Linux)
  • NFS-Utils - Serveur NFS (nécessite un support noyau comme sur le CH3SNAS)
  • rsync - Transfert de fichiers efficace et utilitaire de synchronisation

Nous avons déjà utilisé OpenSSH dans le tutoriel d'installation fun_plug pour se connecter au NAS à l'aide de ssh. Nous utiliserons plus tard rsync.

1.2. Téléchargement de packages

Pour faciliter, il existe un script disponible auprès de Uli qui fournit la fonctionnalité de téléchargement des paquets supplémentaires de Fonz et Uli:

Code:
mkdir -p /ffp/pkg/
cd /ffp/pkg/
wget http://wolf-u.li/u/173/ -O /ffp/pkg/updater.sh
chmod a+x /ffp/pkg/updater.sh
sh /ffp/pkg/updater.sh

Ou à faire manuellement dans les sections suivantes:

1.2.1. Téléchargement de packages supplémentaires fournis par Fonz

Vérifiez d'abord, que vous avez inscrits passerelle et serveurs DNS valides dans la configuration du NAS (navigateur -> entrer le nom ou l'adresse IP de votre NAS -> Configuration -> LAN). Votre NAS besoin de ces informations pour accéder à Internet. Vous pouvez renseigner ces valeurs manuellement (par exemple en les copiant sur un autre ordinateur) ou en laissant le NAS les chercher à partir de votre routeur via DHCP.

Connectez-vous à votre NAS en utilisant le protocole SSH (par exemple en utilisant PuTTY). Voir la page tutoriel pour plus de détails.

Téléchargez les packages supplémentaires à partir du site fonz' en utilisant la commande de transfert de fichiers rsync. Le "." à la fin de la 3ème ligne est essentiel (notation abrégée Linux pour le dossier en cours):

Code:
mkdir -p /ffp/pkg/
cd /ffp/pkg/
/ffp/bin/rsync -av --delete inreto.de::dns323/fun-plug/0.5/packages .

Notez que l'ensemble des packages pèse plus de 120 Mo, cela peut donc prendre un certain temps. Après le dernier fichier que vous obtenez des statistiques et revenez à l'invite de commande.
Cette étape résulte à environ 100 paquets étant copiés (comme Tarballs) dans le dossier /ffp/pkg/packages/.

1.2.2. Téléchargement de packages supplémentaires fournis par Uli

Beaucoup de packages utilisés dans les tutoriels ont été créés par Uli et se retrouvent dans son repository. Avant d'exécuter les commandes suivantes, veuillez vous assurer que vous remplissez les conditions requises telles que décrites dans la section précédente.

Téléchargez les packages supplémentaires à partir du site d'Uli à l'aide de la commande de transfert de fichiers rsync. Note: Le "." à la fin de la 3ème ligne est essentiel (notation abrégée Linux pour le dossier en cours):

Code:
mkdir -p /ffp/pkg/
cd /ffp/pkg/
/ffp/bin/rsync -av --delete ffp.wolf-u.li::ffp/additional .

Après le dernier fichier vous obtenez également des statistiques et revenez à l'invite de commande.
Cette étape résulte à quelques packages étant copiés (comme Tarballs) dans le dossier /ffp/pkg/additional/ et ses sous-répertoires. Voir PACKAGES.TXT pour les packages disponibles.

1.2.3. Téléchargement de packages provenant d'autres sources

Assurez-vous que vous faites confiance à la source de tout package que vous téléchargez: un package malicieux (ou simplement buggué) peut causer un dysfonctionnement de votre NAS, la perte de données ou pire!

1.3. Gestion des packages

La gestion des packages est effectuée par un programme de fonz appelé funpkg. En tapant funpkg sur la ligne de commande donne la liste des arguments et des options qu'il prend en charge:

Code:
Copyright (c) 2008 Tobias Poschwatta <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>

Install: funpkg -i <packages...>
Reinstall: funpkg -I <packages...>
Upgrade: funpkg -u <packages...>
Remove: funpkg -r <packages...>

Other options:
-D <path> System root directory (default: /)

Important: une fois que vous commencez à utiliser funpkg pour installer des packages de Fonz', vous devez compléter toute la procédure décrite dans ce tutoriel en une seule session.
En d'autres termes, une fois que vous procédez à l'une des étapes au-delà de ce point, vous devez achever toutes les étapes de la partie de gestion de packages de ce tutoriel:

  • mise à jour initiale des packages
  • installer de nouveaux packages
  • enregistrer toute modification de configuration que vous avez besoin d'enregistrer pour les packages existants qui seront mis à jour
  • mise à niveau des packages existants, et (le plus important de tous)...
  • faire un chmod a+x sur par exemple /ffp/start/sshd.sh

1.3.1. Mise à jour initiale de package

Après l'installation vous devez mettre à jour les packages installés "avant" l'installation de nouveaux packages. Ceci est particulièrement important pour l'outil funpkg lui-même, les nouveaux packages peuvent exiger de nouvelles fonctionnalités dans funpkg. Cela se fait par le paramètre -u pour l'outil funpkg. Cela met à jour tous les packages installés, mais n'en installe pas de nouveaux.

Code:
cd /ffp/pkg/
funpkg -u packages/funpkg*.tgz
funpkg -u packages/*.tgz
funpkg -u additional/*/*.tgz

Vous pouvez maintenant procéder aux étapes suivantes.

1.3.2. Installation de package

Après qu'un package ait été téléchargé (en tant qu'archive ou fichier .tgz), vous pouvez l'installer en changeant le répertoire respectif, par exemple /ffp/pkg/packages :

Code:
cd /ffp/pkg/packages
funpkg -i packagename.tgz

Si vous voulez installer un certain nombre de packages, vous pouvez simplement ajouter une liste de packages à funpkg:

Code:
cd /ffp/pkg/packages
funpkg -i packagename1.tgz packagename2.tgz packagename3.tgz ...

Si vous souhaitez installer tous les packages dans un dossier, vous pouvez utiliser "*" comme un joker (tous les fichiers se terminant par .tgz):

Code:
cd /ffp/pkg/
funpkg -i packages/*.tgz
funpkg -i additional/*/*.tgz

Cette solution est recommandée, même si cela doit être fait avec soin (voir ci-dessous). La raison pour laquelle Fonz recommande cette solution, plutôt que de laisser vous installer uniquement ce que vous voulez, c'est que certains packages ont besoin d'autres packages ou des versions mises à jour de ces packages afin de fonctionner correctement. Ces dépendances ne sont pas automatiquement résolues par funpkg. Ainsi, par exemple, vous pouvez avoir des problèmes si vous mettez à jour vers la dernière version de OpenSSH sans mettre à jour le package uclibc (une bibliothèque d'utilitaires utilisés par OpenSSH): si le daemon SSH ne se lance pas correctement la prochaine fois que vous redémarrez le NAS, vous serez «bloqués». Ce qui signifie que vous ne pouvez plus utiliser PuTTY pour se connecter et corriger le problème (Astuce: Activez Telnet avant la mise à jour SSH).

Le fichier /ffp/pkg/packages/MANIFEST.TXT contient une liste de tous les fichiers installés par package. Vous pouvez le regarder pour avoir une idée sur la localisation de près de 20000 fichiers.

1.3.3. Configuration de package

Lors de l'installation, certains packages ont tendance à ajouter un fichier ASCII avec les paramètres de configuration dans le dossier /ffp/etc/. Ceci peut être vu à partir de Windows à l'aide de WordPad ou un éditeur de programmation tel que NotePad++. Ceux-ci peuvent modifier les fichiers ASCII au format Linux. Alternativement, vous pouvez utiliser l'éditeur Joe fourni dans les packages. Toute modification peut évidemment conduire à un "intéressant" résultat, soyez donc prudent surtout avec des daemons importants.

Certains fichiers de configuration des packages place par exemple dans le dossier /ffp/etc/examples/ plutôt que /ffp/etc/. Ces fichiers sont ignorés par l'application: ceux-ci sont à lire et à copier (éventuellement après avoir été renommé ou même édité) dans le dossier /ffp/etc/ vous-même. Exemple pour un package appelé PHP comme indiqué dans le MANIFEST.TXT:

Code:
drwxr-xr-x root/root 00000 2008-05-29 13:00 ./ffp/etc/examples/
-rw-r--r-- root/root 45030 2008-05-29 13:00 ./ffp/etc/examples/php.ini-dist
-rw-r--r-- root/root 48619 2008-05-29 13:00 ./ffp/etc/examples/php.ini-recommended

1.3.4. Mise à jour de package

Notez que les noms des fichiers packages Tarball (souvent complexes) possèdent un numéro de version à la fin. Lorsque vous utilisez funpkg -i packagename.tgz pour installer un paquet, au lieu de la normale

Code:
Installing package lighttpd-1.4.19-4.tgz ...

vous pouvez donc obtenir une réponse comme

Code:
Skipping lighttpd-1.4.19-4.tgz (already installed)

si cette version exacte de Lighttpd est déjà installé. Ou vous pouvez obtenir

Code:
Skipping lighttpd-1.4.19-4.tgz (installed: lighttpd-1.2.3-4.tgz )

si une version plus ancienne (ou plus récente) est déjà installée.

Vous pouvez forcer funpkg à installer une version différente (plus récente ou plus ancienne) avec l'option -u:

Code:
root@NAS:/mnt/HD_a2/ffp/pkg/packages# funpkg -u rsync-3.0.3-1.tgz
Installing package rsync-3.0.3-1 ...
Removing package rsync-3.0.2-2 ...

Vous voudrez probablement mettre à jour manuellement tous les packages qui ont été ignorés pendant funpkg -i *.tgz. Encore une fois, cela peut être important parce que d'autres packages installés peuvent nécessiter cette mise à jour.

Mais méfiez-vous d'un bon nombre de pièges:

  1. Cela peut remplacer toutes les modifications apportées aux fichiers de configuration (probablement dans le dossier /ffp/etc/). Ainsi, vous pouvez au préalable créer une copie de ceux-ci.
  2. Cela peut remplacer les privilèges d'accès que vous avez fait à des fichiers (en particulier pour les scripts qui démarrent les daemons dans le dossier /ffp/start/).

Nous allons voir le rôle de l'option -x ci-dessous (en voyant comment activer/désactiver les daemons) et maintenant se concentrer uniquement sur comment éviter un véritable piège qui se produit lorsque vous exécutez

Code:
funpkg -u OpenSSH-versionnumber.tgz

Si vous regardez dans MANIFEST.TXT vous trouverez que cela crée (ou plus précisément - remplacé) un fichier appelé sshd.sh:

Code:
-rw-r--r-- root/root 971 2008-07-29 16:30 ./ffp/start/sshd.sh

Cela serait bien si vous n'aviez pas besoin de lancer le serveur SSH pour l'instant. Le problème est qu'après l'exécution de funpkg -u pour OpenSSH, le prochain redémarrage ne lancera pas le daemon SSH (serveur) et vous serez bloqués sur funplug: par exemple PuTTY ne peut pas se connecter en utilisant le protocole SSH tant qu'il n'y a pas de serveur SSH de lancé. Ce serveur ne peut démarrer qu'avec l'option -x (execute) configurée dans les permissions de fichiers. souvenez-vous que cette permission a été configurée dans le tutorial fun_plug. Donc nous avons maintenant besoin de le faire à nouveau une fois que vous avez mis à jour tout les packages nécessaires, mais AVANT de quitter ssh (ou redémarrage du NAS).

Donc, pour s'assurer que le fichier sshd.sh sera bien exécuté lors des prochains redémarrages du NAS:

Code:
chmod a+x /ffp/start/sshd.sh
ls -l /ffp/start/*.sh

Cela donne à tous les utilisateurs (a) le droit d'exécuter (x) le fichier /ffp/start/sshd.sh (plus particulièrement, cela permet au script fun_plug de l'exécuter au démarrage). La liste des dossiers comprendra

Code:
-rw-r--r-- 1 root root 432 Jul 15 14:44 samba.sh
-rw-r--r-- 1 root root 229 Apr 24 20:16 smartd.sh
-rwxr-xr-x 1 root root 971 Jul 29 16:30 sshd.sh
-rw-r--r-- 1 root root 383 Aug 12 22:17 syslogd.sh
-rw-r--r-- 1 root root 169 Aug 12 22:17 telnetd.sh

Si sshd.sh possède 3 bits "x", vous avez réussi.

1.3.5. Suppression de package

Si vous voulez désactiver (temporairement par exemple) l'exécution d'un package du serveur, voir la discussion sur les daemons. Pour supprimer complètement un package, utilisez:

Code:
funpkg -r packagename.tgz

Encore une fois, certains packages (comme uclibc) peuvent être nécessaires pour exécuter d'autres packages, donc supprimer les packages en utilisant funpkg n'est pas infaillible. Heureusement, les packages d'applications sont peu susceptibles d'être utilisés par d'autres packages (par exemple les serveurs/daemons).

Notez que les informations de dépendance se trouvent en haut des fichiers /ffp/start/somedaemon.sh. L'exemple (à partir du fichier /ffp/start/sshd.sh)

Code:
# PROVIDE: sshd
# REQUIRE: LOGIN

suggère que vous ne devez pas supprimer le package LOGIN parce qu'il est requis pour exécuter le pasckage sshd (=OpenSSH).

2. Daemons

2.1 Qu'est-ce qu'un Daemon?

De nombreux packages peuvent être utilisés comme "Daemons", qui sont essentiellement les programmes exécutés en arrière-plan. Par exemple, lighttpd (un serveur web léger) ne montre aucune sortie dans le shell (par exemple dans PuTTY) pendant son fonctionnement et doit être lancé lors du démarrage de processus.

Note que bon nombre de nom de daemons se terminent avec d. Ainsi lighttpd n'est pas un léger (bien que ça le soit), mais un léger http (protocole) d(aemon) avec quelques lettres mélangées ensembles.

Chaque daemon capable de fonctionner en arrière-plan fournit un "fichier de démarrage" qui se trouve dans /ffp/start/. Ces fichiers de démarrage sont encore de simples scripts qui contrôlent le démarrage et l'arrêt des daemons correspondants.

Certains fichiers de démarrage fournissent des possibilités supplémentaires et options, qui sont affichables en invoquant tout simplement le fichier de démarrage sans aucun paramètre. Copiez et collez le texte suivant une ligne à la fois, et essayer un peu plus:

Code:
cd /ffp/start
sh telnetd.sh
sh telnetd.sh status
sh sshd.sh
sh sshd.sh status

Cela fonctionne parce que les fichiers de démarrage s'attendent normalement à un paramètre "start" ou "stop". Ne pas essayer cette astuce avec n'importe quel script shell: cela peut faire quelque chose, parce que c'est là pour ça.

2.2 Démarrer un Daemon manuellement

Vous pouvez démarrer chaque daemon manuellement en exécutant

Code:
sh /ffp/start/desired_daemon.sh start

2.3 Arrêter un Daemon manuellement

Vous pouvez arrêter chaque daemon manuellement en exécutant

Code:
sh /ffp/start/desired_daemon.sh stop

2.4 Activation permanente de Daemons

Si vous voulez activer un daemon de façon permanente de sorte qu'il soit exécuté lors du démarrage du NAS, il suffit de définir les droits d'exécution:

Code:
chmod a+x desired_daemon.sh

Pour voir quels daemons sont vraiment lancés au cours du dernier démarrage du NAS, voir la fin du fichier ffp.log (dans le dossier du Volume_1). Il contiendra des lignes comme

Code:
* /ffp/start/sshd.sh ...
Starting /ffp/sbin/sshd

pour les daemons qui ont été lancés

2.5 Désactivation permanente de Daemons

La désactivation d'un daemon (pas d'exécution automatique au démarrage) se fait comme cela:

Code:
chmod a-x desired_daemon.sh

Pour voir quels daemons sont vraiment lancés au cours du dernier démarrage du NAS, voir la fin du fichier ffp.log (dans le dossier du Volume_1). Il contiendra des lignes comme

Code:
* /ffp/start/telnetd.sh inactive
* /ffp/start/sshd.sh ...
Starting /ffp/sbin/sshd

indiquant quels daemons n'ont pas été lancés (comme le daemon telnet) et quels daemons ont bien été lancés (comme le daemon ssh).

Source (en Anglais) : NAS-Tweaks.net

Commentaires  
Ok, là alors je pencherais pour plusieurs hypothèses :
1. problème de droits dans les dossiers (l'installation est bien faite en tant que root ?)
2. les fichiers tgz sont corrompus: il faudrait en tester un et le décompresser sous win avec winrar par exemple, retélécharger les packages le cas échéant.
3. fun_plug mal installé :
Attention, je sais qu'il y a plusieurs versions de fun_plug, mon tuto concerne uniquement les modèles 323, je ne connais pas les différences avec le 320.
Il est évident, pardon si je n'ai pas été clair, que je n'ai pas mis "package.tgz". Ce n'était qu'un exemple et j'ai donc mis des noms de packages existants, par exemple pour PHP, je tape "funpkg -i php-5.2.9-1.tgz" et j'obtiens donc le message "Skipping php-5.2.9-1.tgz:Invalid package filename" alors que le package est bien présent dans le répertoire courant et qu'il se nomme bien comme cela puisque j'utilise la touche TAB pour la completion. J'ai la version 0.5, mon NAS est un DNS320 en version 2.02.

Citation : phaphane:

[..]par exemple pour le paquet package.tgz, j'obtiens le message "Skipping package.tgz: Invalid package filename".


Cette erreur est normale car il n'existe aucun package nommé "package.tgz".
Il n'est pas nécessaire d'installer tous les packages !! En fait il faut mieux installer les packages que l'on a besoin uniquement.
Par exemple dans le tuto d'installation PHP on installe que les packages nécessaires à PHP: https://www.sil51.com/informatique/dns-323/tutoriel-installation-et-configuration-de-php-sur-dns-323.html
Idem dans le tuto Transmission, on install que curl et transmission
https://www.sil51.com/informatique/dns-323/tutoriel-installation-de-transmission-sur-dns-323.html
Bon courage :)
Bonjour, merci pour ce tuto.
J'ai bien installé fun-plug. J'ai bien téléchargé tous les packages. Maintenant je bloque sur la mise à jour initiale et sur l'installation. Lorsque je tente une mise à jour ou une installation, par exemple pour le paquet package.tgz, j'obtiens le message "Skipping package.tgz: Invalid package filename". Je ne comprends pas pourquoi. MErci d'avance
Salut bio,
Non, c'est bien plus simple que cela.
Quand tu installe un package (dans notre exemple, php), des fichiers de configurations d'exemple sont installés dans le dossier /ffp/etc/examples/.
Ces fichiers peuvent êtres multiples selon le type de configuration par defaut proposé par l'application.
Il suffit de recopier le fichier d'exemple dans le répertoire que l'application l'attend.
Pour l'exemple, php ( plus de détails ici : https://www.sil51.com/informatique/dns-323/tutoriel-installation-et-configuration-de-php-sur-dns-323.html#5-2-editer-php-ini) attend un fichier de configuration ici : /ffp/etc/php.ini
Il faut donc recopier (et renommer) le fichier d'exemple selon le nom attendu par l'application.
Libre après à toi d'éditer le fichier de configuration pour l'adapter à tes besoins.

C'est une "base" du fonctionnement des packages et de leur fichier de configuration.

Si cela peut t'aider... bon courage !
pour l'étape 1.3.3. Configuration de package
j'ai pas bien saisie la manœuvre a faire
faut-il simplement déplacer les fichier présent dans /ffp/etc/examples/ et les mettre dans /ffp/etc/ ? il y a t'il d'autres fichier qui se trouve ailleurs à déplacer ?

ou il y a t'il des fichiers a modifier ? par exemple le "MANIFEST.TXT" si je déplace un fichier "A" faut-il que je modifie le chemin inscrit dans le "manifest.txt"?

merci
Bonjour,
Il est clair que pour utiliser ce tutoriel il faut avoir un minimum de base à l'usage des commandes shell unix (base de Linux).
Je n'ai pas de version plus simple pour ce tutoriel.
Bon coruurage
Salut,
J'aimerais savoir en premier temps s'est-ce le plus ressent et pour un noob comme moi qui veux pas faire d'erreur. Pourais-tu le refaire plus lisible. et cest peut-etre moi, mais malheureusement tes code parfois se melanger et moi je me perds

Merci beaucoup.

Donne moi des news sur ca.

ps: on peut tout faire comme si on serait sur linux?...
appartir du dns?

Les commentaires sont clos.