Installer des applications: les logiciels pré-compilés
et les logiciels portés
&trans.a.fonvieille;
Synopsislogiciels portéslogiciels pré-compilésFreeBSD est livré avec une riche collection d'outils en tant
que partie du système de base. Cependant, beaucoup de choses
peuvent être faites avant d'avoir besoin de recourir à
l'installation d'une application tiers pour effectuer un travail
précis. FreeBSD fournit deux technologies complémentaires
pour installer des logiciels tiers sur votre système:
le Catalogue des logiciels portés de FreeBSD, et les logiciels
pré-compilés. L'un ou l'autre des systèmes peut
être utilisé pour installer les nouvelles versions de vos
applications favorites à partir d'un
support local ou directement depuis le réseau.Après la lecture de ce chapitre, vous saurez:Comment installer des logiciels tiers
pré-compilés.Comment compiler des logiciels tiers à partir du catalogue
de logiciels portés.Comment effacer les logiciels pré-compilés ou
portés précédemment installés.Généralités sur l'installation de logicielsSi vous avez utilisé auparavant un système Unix vous
saurez que la procédure typique pour installer les logiciels
tiers ressemble à ceci:Télécharger le logiciel, qui peut être
distribué sous forme de code source, ou sous forme d'un
binaire.Extraire le logiciel de son format de distribution
(généralement une archive tar compressée
soit avec &man.compress.1; soit avec &man.gzip.1;).Recherchez la documentation (peut être un fichier
README, ou des fichiers dans un sous
répertoire doc/) et lisez les
informations sur comment installer le logiciel.Si le logiciel était distribué sous forme de
sources, compilez-le. Cela peut impliquer l'édition d'un
Makefile, ou l'exécution d'une
procédure configure, et d'autres
activités.Tester et installer le logiciel.Et cela si seulement tout ce passe bien. Si vous installez un
logiciel qui n'a pas été spécialement porté
pour FreeBSD, il se peut que vous deviez éditer le code source
pour le faire fonctionner correctement.Si vous le voulez, vous pouvez continuer d'installer des
logiciels suivant la méthode “traditionnelle” sous
FreeBSD. Cependant, FreeBSD fournit deux technologies avec
lesquelles vous pouvez vous économiser beaucoup d'efforts: les
logiciels pré-compilés et le catalogue des logiciels
portés. A l'heure de l'écriture de ces lignes, plus de
&os.numports; applications tiers ont été mises à
disposition de cette façon.Pour n'importe quelle application donnée, le logiciel
pré-compilé FreeBSD pour cette application est un unique
fichier à télécharger. Il contient les copies
pré-compilées de toutes les
commandes de l'application, ainsi que tous fichiers de
configuration et documentation. Un logiciel pré-compilé
téléchargé peut être manipulé avec
les commandes FreeBSD de gestion des logiciels
pré-compilés, comme &man.pkg.add.1;,
&man.pkg.delete.1;, &man.pkg.info.1;, et ainsi de suite.L'installation d'une nouvelle application peut être
effectuée grâce à une unique commande.Un logiciel porté pour FreeBSD est un ensemble de fichiers
conçus pour automatiser le processus de compilation d'une
application à partir du code source.Rappelez-vous qu'il y a un certain nombre d'étapes que vous
effectueriez si vous compiliez un programme vous-même (extraction,
application de correctifs, compilation, installation). Les
fichiers qui composent un logiciel porté contiennent toute
l'information nécessaire pour permettre au système de faire
cela pour vous. Vous lancez une poignée de commandes simples et
le code source de l'application est automatiquement
téléchargé, extrait, corrigé, compilé,
et installé pour vous.En fait, le catalogue des logiciels portés peut être
utilisé pour générer ce qui pourra plus tard
être manipulé avec pkg_add et d'autres
commandes de gestion des logiciels pré-compilés qui
seront présentés sous peu.Les logiciels pré-compilés et le catalogue des
logiciels portés comprennent la notion de
dépendances.
Supposez que vous voulez installer une application qui dépend
de l'installation d'une bibliothèque particulière.
L'application et la bibliothèque ont été toutes
deux rendues disponibles sous forme de logiciel porté pour
FreeBSD ou de logiciel pré-compilé.
Si vous utilisez la commande pkg_add ou le
catalogue des logiciels portés pour ajouter l'application, tous
les deux remarqueront que la bibliothèque n'a pas été
installée, et ces commandes installeront en premier la
bibliothèque.Etant donné que les deux technologies sont presque semblables,
vous pourriez vous demander pourquoi FreeBSD s'ennuie avec les
deux. Les logiciels pré-compilés et le catalogue de
logiciels portés ont chacun leurs propres forces, et celle que vous
emploierez dépendra de votre préférence.Avantages des logiciels pré-compilésL'archive compressée d'un logiciel
pré-compilé est généralement plus
petite que l'archive compressée contenant le
code source de l'application.Les logiciels pré-compilés ne
nécessitent pas de compilation supplémentaire.
Pour les grosses applications, comme
Mozilla,
KDE, ou GNOME
cela peut s'avérer important, particulièrement si
vous êtes sur un système lent.Les logiciels pré-compilés ne demandent pas que vous
compreniez le processus impliqué dans la compilation de
logiciels sous FreeBSD.Avantages du catalogue des logiciels portésLes logiciels pré-compilés sont normalement
compilés avec des options conservatrices, parce qu'ils
doivent pouvoir tourner sur le plus grand nombre de systèmes.
En installant à partir du catalogue des logiciels
portés, vous pouvez ajuster les options de compilation pour
(par exemple) générer du code
spécifique au Pentium III ou à l'Athlon.Certaines applications ont des options de compilation
concernant ce qu'elles peuvent faire et ne pas faire. Par
exemple, Apache peut être
configuré avec une très large variété
d'options intégrées différentes.
En compilant à partir du catalogue des logiciels
portés vous n'avez pas à accepter les options par
défaut, et vous pouvez
les configurez vous-même.Dans certains cas, de multiples logiciels
pré-compilés existeront pour la même
application pour spécifier certaines configurations.
Par exemple, Ghostscript est
disponible comme logiciel pré-compilé
ghostscript et
ghostscript-nox11 , en fonction de si
vous avez installé ou non un serveur X11. Ce type
d'arrangement est possible avec les logiciels
pré-compilés, mais devient rapidement impossible
si une application a plus d'une ou deux options de
compilation.Les licences de certains logiciels interdisent les
distributions binaires. Ils doivent être distribués sous
forme de code source.Certaines personnes ne font pas confiance aux
distributions binaires. Au moins avec le code source, vous
pouvez (en théorie) le parcourir et chercher les
problèmes
potentiels par vous-même.Si vous avez des correctifs locaux, vous aurez besoin du
code source afin de les appliquer.Certaines personnes aiment avoir le code source à
portée de main, ainsi elles peuvent le lire si elles
s'ennuient, le
modifier, y faire des emprunts (si la licence le permet bien
sûr), etc...Pour suivre les mises à jour du catalogue des logiciels
portés, inscrivez-vous à la &a.ports;.Le reste de ce chapitre expliquera comment utiliser les
logiciels pré-compilés et le catalogue des logiciels
portés et la
gestion des logiciels tiers sous FreeBSD.Trouver votre applicationAvant que vous puissiez installer des applications
vous devez savoir ce que vous voulez, et comment se nomment les
applications.La liste des applications disponibles pour FreeBSD augmente de
jours en jours. Heureusement, il y a plusieurs façons de trouver
ce que vous désirez:Le site web de FreeBSD maintient à jour une liste, dans
laquelle on peut effectuer des recherches, de toutes les
applications disponibles à l'adresse
http://www.FreeBSD.org/ports/.
La liste est divisée en catégories, et vous pouvez soit
chercher une application par son nom (si vous le connaissez),
soit lister toutes les applications disponibles dans une
catégorie.FreshPortsDan Langille maintient FreshPorts, à l'adresse
http://www.FreshPorts.org/.
FreshPorts suit les modifications des applications dans le
catalogue des logiciels portés, et vous permet de
“surveiller” un ou plusieurs logiciels portés, et
il vous enverra un courrier électronique quand ils sont mis
à jour.FreshMeatSi vous ne connaissez pas le nom de l'application que vous
voulez, essayez d'utiliser un site comme FreshMeat
(http://www.freshmeat.net/)
pour trouver une application, ensuite vérifiez sur le site de
FreeBSD si l'application a déjà été
portée.ChernLeeContribution de Utiliser le système des logiciels
pré-compilésInstallation d'un logiciel pré-compilélogiciels pré-compilésinstallationpkg_addVous pouvez utiliser l'utilitaire &man.pkg.add.1; pour
installer un logiciel pré-compilé FreeBSD à
partir d'un fichier
local ou d'un serveur sur le réseau.Télécharger un logiciel pré-compilé
puis l'installer localement&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzSi vous n'avez pas une source locale de logiciels
pré-compilés (comme l'ensemble de CDROM de FreeBSD)
alors il sera probablement plus facile d'utiliser l'option
de &man.pkg.add.1;. Cela fera déterminer
automatiquement à l'utilitaire le format objet et la version
corrects et ensuite récupérer et installer le logiciel
pré-compilé à partir d'un site FTP.pkg_add&prompt.root; pkg_add -r lsofL'exemple ci-dessus téléchargera le logiciel
pré-compilé
correct sans plus d'intervention de l'utilisateur.
&man.pkg.add.1; utilise &man.fetch.3; pour télécharger les
fichiers, qui respecte diverses variables d'environnement, dont
FTP_PASSIVE_MODE, FTP_PROXY, et
FTP_PASSWORD. Il se peut que vous ayez besoin de
configurer une ou plusieurs de ces dernières si vous êtes
derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP.
Consultez la page de manuel &man.fetch.3; pour la liste complète
des variables. Vous pouvez également remarquer que dans
l'exemple ci-dessus lsof est utilisé au lieu
de lsof-4.56.4. Quand la fonction de
récupération à distance est utilisée,
le numéro de version doit être retiré.
&man.pkg.add.1; téléchargera automatiquement la
toute dernière version de l'application.Les logiciels pré-compilés sont distribués
dans le format .tgz. Vous pouvez les trouver
sur
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ou
sur le CDROM de distribution de FreeBSD. Chaque CD de
l'ensemble de 4-CD de FreeBSD (et le PowerPak, etc...) contient
des logiciels pré-compilés dans le répertoire
/packages. L'organisation des logiciels
pré-compilés est semblable à celle de
l'arborescence /usr/ports. Chaque
catégorie possède son propre répertoire, et
chaque logiciel pré-compilé peut être
trouvé dans le répertoire All.La structure de répertoires du système de logiciels
pré-compilés est identique à celle du catalogue
des logiciels portés; ils travaillent ensemble pour former
l'intégralité du système de logiciels
pré-compilés/portés.Effacer un logiciel pré-compilépkg_deletelogiciels pré-compiléseffacerPour désinstaller un logiciel pré-compilé
précédemment installé, utilisez l'utilitaire
&man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1Gestion des logiciels pré-compiléslogiciels pré-compilésgestion&man.pkg.info.1; est un utilitaire qui liste et décrit les
divers logiciels pré-compilés installés.
pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; est un utilitaire qui récapitule les
versions de tous les logiciels pré-compilés
installés. Il compare la version du logiciel
pré-compilé avec la version
actuelle trouvée dans le catalogue des logiciels portés.
pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Les symboles dans la seconde colonne indiquent l'âge relatif
de la version installée et de la version disponible dans le
catalogue des logiciels portés local.SymboleSignification=La version du logiciel
pré-compilé installée est équivalente
à celle de celui trouvé dans le
catalogue des logiciels portés local.<La version installée est plus ancienne que celle
disponible dans le catalogue des logiciels portés.>La version installée est plus
récente que celle trouvée dans le catalogue local des
logiciels portés. (le catalogue local des logiciels
portés est probablement ancien)?Le logiciel pré-compilé
ne peut être
trouvé dans l'index du catalogue des logiciels
portés.*Il y a de multiples versions de ce
logiciel pré-compilé.DiversToute l'information sur les logiciels pré-compilés
est stockée dans le répertoire
/var/db/pkg. La liste des fichiers
installés pour chaque logiciel pré-compilé
peut être trouvée dans des fichiers de ce
répertoire.Utiliser le catalogue des logiciels portésLes sections suivantes fournissent des instructions de base
sur l'utilisation du catalogue des logiciels portés pour installer
et désinstaller des programmes sur votre système.Obtenir le catalogue des logiciels portésAvant que vous puissiez installer des logiciels portés, vous
devez d'abord récupérer le catalogue des logiciels
portés— qui est essentiellement un ensemble de
Makefiles, de correctifs, et de fichiers de
description habituellement placés dans
/usr/ports.Quand vous avez installé votre système FreeBSD,
Sysinstall vous a demandé si vous
aimeriez installer le catalogue des logiciels portés. Si vous
avez choisi non, vous pouvez suivre ces instructions pour
obtenir le catalogue des logiciels portés:La méthode SysinstallCette méthode implique l'utilisation à nouveau de
sysinstall pour installer
manuellement le catalogue des logiciels portés.En tant que root, lancez
/stand/sysinstall comme montré
ci-dessous:&prompt.root; /stand/sysinstallFaites défiler l'écran vers le bas et
sélectionnez Configure,
appuyez sur Entrée.Faites défiler l'écran vers le bas et
sélectionnez Distributions,
appuyez sur Entrée.Faites défiler l'écran vers le bas jusqu'à
ports, appuyez sur
Espace.Remontez jusqu'à Exit,
appuyez sur Entrée.Choisissez le support d'installation désiré,
comme un CDROM, par FTP, etc...Suivez les menus pour quitter
sysinstall.Une autre alternative pour obtenir et garder à jour votre
catalogue des logiciels portés est d'utiliser
CVSup. Jetez un coup d'oeil au
fichier CVSup du catalogue des
logiciels portés,
/usr/share/examples/cvsup/ports-supfile.
Consultez Utiliser CVSup () pour plus d'information sur l'utilisation de
CVSup et le fichier
mentionné.La méthode CVSupC'est une méthode rapide pour récupérer
le catalogue des
logiciels portés en utilisant CVSup.
Si vous voulez garder à jour votre catalogue, ou apprendre
plus au sujet de CVSup, lisez les
sections mentionnées précédemment.Installer le logiciel porté
net/cvsup. Voir Installation de CVSup () pour plus de details.En tant que root, copier
/usr/share/examples/cvsup/ports-supfile
à un nouvel emplacement, comme /root ou
votre répertoire d'utilisateur.Editez ports-supfile.Remplacez CHANGE_THIS.FreeBSD.org
avec un serveur CVSup proche de
vous. Voir Sites CVSup
() pour une liste complète des
sites miroirs.Lancez cvsup:&prompt.root; cvsup -g -L 2 /root/ports-supfileExécuter cela plusieurs fois consécutivement
à des dates ultérieures téléchargera
tous les changements récents pour
votre catalogue des logiciels portés.Installation de logiciels portéslogiciels portésinstallationLa première chose qui devrait être expliquée
quand on aborde le catalogue des logiciels portés est ce que
l'on entend par “squelette”. En bref, un squelette
est un ensemble minimal de fichiers qui indique à votre
système FreeBSD comment compiler et installer proprement un
programme. Chaque squelette contient:Un fichier Makefile. Le fichier
Makefile contient les diverses
déclarations qui indiquent comment l'application devrait
être compilée et où elle devrait être
installée sur votre système.Un fichier distinfo. Ce fichier
contient l'information à propos des fichiers qui doivent
être téléchargés pour compiler le
logiciel, et les sommes de contrôle, pour s'assurer que
ces fichiers n'ont pas été
corrompus durant le téléchargement.Un répertoire files.
Ce répertoire
contient les correctifs pour permettre la compilation et
l'installation du programme sur votre système FreeBSD. Les
correctifs sont à la base de petits fichiers qui indiquent
des modifications sur des fichiers particuliers. Ils sont
sous forme de fichiers texte, qui disent “Effacer la
ligne 10” ou “Modifier la ligne 26
par...”. Les correctifs sont également connus sous le
nom de “diffs” car ils sont
générés par le programme &man.diff.1;.Ce répertoire peut également contenir d'autres
fichiers utilisés dans la compilation du logiciel
porté.Un fichier pkg-comment. C'est une
description du programme sur une ligne.Un fichier pkg-descr. C'est une
description plus détaillée du programme, souvent en
plusieurs lignes.Un fichier pkg-plist. C'est une
liste de tous les fichiers qui seront installés par le
logiciel porté. Il indique également au
système des logiciels portés quels fichiers
sont à effacer lors d'une désinstallation.Certains logiciels portés utilisent d'autres fichiers,
comme pkg-message. Le catalogue des
logiciels portés utilise ces fichiers pour faire face à
certaines situations spéciales. Si vous désirez plus
de détails
au sujet de ces fichiers, et sur les logiciels portés en
général, consultez le Manuel du développeur de
logiciels portés.Maintenant que vous avez suffisamment d'information de fond
au sujet du rôle du catalogue des logiciels portés,
vous êtes fin prêt à installer votre premier logiciel
porté. Cela peut être fait de deux façons
différentes, et chacune sera expliquée ci-dessous.Avant que nous entrions dans le vif du sujet, vous devez
sélectionner le logiciel porté à installer.
Il existe quelques manières de le faire, la manière
la plus simple étant d'utiliser
la liste des logiciels
portés sur le site de FreeBSD. Vous pouvez passer en
revue les listes de logiciels ou utiliser la fonction de
recherche sur le site. Chaque logiciel porté inclut
également une description donc vous pouvez lire un peu
plus au sujet de chaque logiciel avant de décider de
l'installer.Une autre méthode consiste à utiliser la commande
&man.whereis.1;. Tapez simplement whereis
file où
file est le programme que vous voulez
installer. S'il est trouvé sur le système, on
vous indiquera où
il se trouve, comme par exemple:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofCela nous indique que lsof (un utilitaire
système) peut être trouvé dans le répertoire
/usr/ports/sysutils/lsof.Encore une autre façon de trouver un logiciel porté
particulier est d'utiliser le mécanisme de recherche
interne du catalogue des logiciels portés. Pour utiliser la
fonction de recherche, vous devrez vous trouver dans le
répertoire /usr/ports. Une fois dans ce
répertoire, lancez make search
name=program-name où
program-name représente le nom du
programme que vous voulez localiser. Par exemple, si vous
recherchiez lsof:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: La partie du message de sortie à laquelle vous devez
prêter attention est la ligne “Path:”, car cela vous
indique où trouver le logiciel porté. Les autres
informations ne sont pas nécessaires afin d'installer
directement le logiciel
porté, aussi on en parlera pas ici.Pour une recherche plus en profondeur vous pouvez également
utiliser make search
key=string où
string est le texte à rechercher.
Cela recherche les noms de logiciels portés, les commentaires,
les descriptions et les dépendances et peut être
utilisé pour
trouver des logiciels portés se rapportant à un sujet
particulier si vous ne connaissez pas le nom du programme que
vous cherchez.Dans les deux cas, la chaîne de caractère de
recherche n'est pas sensible à la casse des caractères.
Rechercher “LSOF” mènera aux même
résultats que la recherche de “lsof”.Vous devez être sous l'utilisateur
root pour installer des logiciels
portés.Maintenant que vous avez trouvé le logiciel porté
que vous désirez installer, vous êtes prêt pour
l'installation en tant
que telle. Le logiciel porté contient les instructions pour
compiler le code source, mais ne contient pas le code source.
Vous pouvez obtenir le code source à partie d'un CDROM ou de
l'Internet. Le code source est distribué de la façon dont
l'auteur le désire. Fréquemment c'est une archive tar
compressée avec gzip, mais elle pourra être
compressée avec un
autre outil ou même non compressée. Le code source d'un
programme, peu importe la forme sous laquelle il est distribué,
est appelé un fichier “distfile”. Vous pouvez
obtenir le “distfile” depuis un CDROM ou depuis
l'Internet.Installer des logiciels portés à partir d'un
CDROMlogiciels portésinstallation à partir d'un CDROMLes images des CDROM officiels du Projet FreeBSD ne
contiennent plus les distfiles. Ils prennent beaucoup
d'espace qui est bien mieux utilisé par les logiciels
pré-compilés. Les CDROMs comme ceux du FreeBSD PowerPak
inclus les distfiles, et vous pouvez les commander
auprès d'un vendeur comme FreeBSD Mall. Cette
section suppose que vous disposez d'un tel jeu de
CDROM.Placez votre CDROM FreeBSD dans le lecteur. Montez-le sur
/cdrom (Si vous utilisez un point de
montage différent, l'installation ne fonctionnera pas). Pour
commencer, rendez-vous dans le répertoire du logiciel
porté que vous voulez installer:&prompt.root; cd /usr/ports/sysutils/lsofUne fois à l'intérieur du répertoire
lsof vous verrez le squelette du logiciel
porté. L'étape suivante est de compiler
(également appelé la
construction) le logiciel porté. Cela est fait en tapant
simplement make à l'invite. Une fois que
c'est fait, vous devriez voir quelque chose comme ceci:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;Notez qu'une fois la compilation terminée, vous vous
retrouvez face à l'invite. L'étape suivante est
d'installer
le logiciel porté. Afin de l'installer, vous devez juste
ajouter un mot à la commande make, et ce
mot est install:&prompt.root; make install
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Une fois de retour à l'invite, vous devriez être
en mesure d'exécuter l'application que vous venez juste
d'installer.
Comme lsof est un programme qui tourne avec
des privilèges accrus, un avertissement sur la
sécurité est affiché. Durant la compilation
et l'installation de logiciels portés, vous devriez faire
attention à tout avertissement qui
pourrait apparaître.Vous pouvez vous économiser une étape
supplémentaire en lançant juste
make install à la place de
make et make install
sous forme de deux étapes séparées.Certains interpréteurs de commandes maintiennent un
cache des commandes qui sont disponibles dans les
répertoires listés dans la variable d'environnement
PATH, pour accélérer les
opérations de
recherche des fichiers exécutables de ces commandes. Si
vous utilisez un de ces interpréteurs de commandes, vous
pourrez avoir à utiliser la commande
rehash après l'installation d'un logiciel
porté, avant que la commande fraîchement
installée ne puisse être utilisée.
Cela est vrai pour les interpréteurs de
commandes faisant partie du système de base
(comme tcsh) et les interpréteurs de
commandes qui sont disponibles en tant que logiciels portés
(par exemple, shells/zsh).Soyez conscient que les licences de quelques logiciels
portés ne permettent pas leur présence sur le CDROM.
Cela peut être dû à la nécessité
de remplir un formulaire
d'enregistrement avant le téléchargement, ou que la
redistribution n'est pas permise, etc... Si vous désirez
installer un logiciel porté qui n'est pas disponible sur le
CDROM, vous devrez vous connecter afin d'effectuer cela
(voir la section
suivante).Installer des logiciels portés à partir
d'InternetComme pour la section précédente, cette section
suppose que vous avez une connexion internet qui fonctionne. Si ce
n'est pas le cas, vous devrez effectuer l'installation par CDROM.L'installation d'un logiciel porté à partir
d'Internet est effectuée de la même manière
que si vous installiez à partir
d'un CDROM. La seule différence entre les deux est que le
distfile est téléchargé sur Internet
plutôt qu'obtenu sur le CDROM.Les étapes impliquées sont identiques:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Comme vous pouvez le voir, la seule différence est la
ligne qui indique où le système a
récupéré les sources du
logiciel porté.Le catalogue des logiciels portés utilise &man.fetch.1;
pour télécharger les fichiers, qui respecte diverses
variables d'environnement, dont FTP_PASSIVE_MODE,
FTP_PROXY, et FTP_PASSWORD. Il
se peut que vous ayez besoin de configurer une ou plusieurs
de ces dernières si vous êtes derrière un
coupe-feu, ou devez utiliser un proxy FTP/HTTP.
Consultez la page de manuel &man.fetch.3; pour la liste
complète des variables.Supprimer des logiciels portés installéslogiciels portésdésinstallationMaintenant que vous savez comment installer des logiciels
portés, vous vous demandez probablement comment les effacer,
juste au cas où vous en installez un et plus tard vous vous
apercevez que vous n'avez pas installé le bon logiciel
porté. Nous désinstallerons notre exemple
précédent (qui était
lsof pour ceux d'entre vous qui n'ont pas
suivi). Comme pour l'installation de logiciels portés, la
première chose que vous devez faire et de vous rendre dans le
répertoire du logiciel porté,
/usr/ports/sysutils/lsof. Après avoir
changé de répertoire, vous êtes prêt pour
désinstaller
lsof. C'est fait grâce à la commande
make deinstall:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57C'était relativement facile. Vous avez retiré
lsof de votre système.
Si vous désirez le
réinstaller, vous pouvez le faire en lançant make
reinstall depuis le répertoire
/usr/ports/sysutils/lsof.La séquence make deinstall et
make reinstall ne fonctionnera pas une fois
que vous avez lancé make clean. Si vous
voulez déinstaller un logiciel porté après
le nettoyage,
utilisez &man.pkg.delete.1; comme décrit dans la
section Utiliser le système
des logiciels pré-compilés du Manuel.Activités de post-installationAprès l'installation d'une nouvelle application vous voudrez
normalement lire la documentation qui a pu être également
installée, éditer les fichiers de configuration
nécessaires, vérifier que l'application est
lancée au démarrage (si c'est un
daemon), et ainsi de suite.Les étapes que vous devez suivre pour configurer
chaque application seront bien évidemment différentes.
Cependant, si vous venez juste d'installer une nouvelle application
et que vous vous demandez “Et maintenant?” les astuces
suivantes pourront vous aider:Utilisez &man.pkg.info.1; pour déterminer quels fichiers
ont été installés et à quel endroit.
Par exemple, si vous
venez juste d'installer FooPackage version 1.0.0, alors la
commande&prompt.root; pkg_info -L foopackage-1.0.0 | lessaffichera tous les fichiers installés par le logiciel
pré-compilé. Portez une attention toute
particulière aux
fichiers dans les répertoires man/, qui
seront des pages de manuel, dans les répertoires
etc/ , qui seront des fichiers de
configuration, et dans doc/ qui seront de
la documentation plus complète.Si vous n'êtes pas sûr de la version de
l'application qui vient juste d'être installée,
une commande comme&prompt.root; pkg_info | grep foopackagedéterminera tous les logiciels
pré-compilés installés qui
ont foopackage dans leur nom.
Remplacez foopackage dans votre
ligne de commande par ce qui convient.Une fois que vous avez identifié où les
pages de manuel de l'application ont été
installées, consultez-les en utilisant
la commande &man.man.1;. De même, jetez un coup d'oeil
aux exemples de fichiers de configuration, et toute autre
documentation additionnelle qui peut avoir été
fournie.Si l'application a un site web, consultez-le pour de la
documentation supplémentaire, des listes de questions
fréquemment posées, etc... Si vous n'êtes
pas sûr de
l'adresse du site web, elle peut être affichée dans le
résultat de la commande:&prompt.root; pkg_info foopackage-1.0.0qui souvent contiendra une ligne WWW:
avec l'URL du site web de l'application.DépannageLes sections suivantes couvrent certaines des questions les
plus fréquemment posées à propos du catalogue des
logiciels portés et certaines techniques de dépannage
de base, et
que faire si le portage d'un logiciel
ne fonctionne pas.Quelques questions et leurs réponsesJe pensais que cela allait être une discussion sur les
modems??!Ah. Vous pensiez peut-être aux “ports”
série sur la face arrière de votre ordinateur. Nous
utilisons ici le terme “port” - logiciels
portés - pour parler du résultat du
“portage” d'un logiciel d'une version d'Unix
à une autre.Qu'est-ce qu'un “patch” -
correctif?Un correctif (“patch”) est un petit fichier
qui précise comment passer d'une version à une autre.
Il contient du texte, qui dit des choses comme
“effacer la ligne 23”, “ajouter ces deux
lignes après la ligne 468”, ou “modifier la
ligne 197 comme ceci”. Ils sont aussi connus sont le
nom de “diff” parce qu'ils sont
générés par le
programme &man.diff.1;.archive tarQue sont les archives
tar?C'est un fichier dont l'extension est
.tar, ou avec des variantes du style
.tar.gz, .tar.Z,
.tar.bz2, et même
.tgz.C'est essentiellement une arborescence de répertoires
qui a été archivée en un seul fichier
(.tar) et éventuellement
compressé (.gz). Cette technique
était à l'origine utilisée pour les
“Tape” - bande -
“ARchives” (d'où le nom de
tar), mais c'est une méthode très
utilisée pour distribuer du code source sur
l'Internet.Vous pouvez obtenir la liste des fichiers qu'elles
contiennent, ou même les extraire vous-même en
utilisant le programme Unix standard &man.tar.1;, qui fait
partie du système de base de FreeBSD, comme ceci:&prompt.user; tar tvzf foobar.tar.gz
&prompt.user; tar xzvf foobar.tar.gz
&prompt.user; tar tvf foobar.tar
&prompt.user; tar xvf foobar.tarsomme de contrôleEt une somme de contrôle?C'est un nombre généré en additionnant
toutes les données que contient le fichier que vous voulez
contrôler. Si un caractère change, la somme de
contrôle ne
sera plus la même, et une simple comparaison vous permettra
de repérer la différence.J'ai suivi vos indications pour compiler des logiciels
portés à partir d'un CDROM et cela a marché
sans problème
jusqu'à ce que j'essaye d'installer le logiciel porté
Kermit.&prompt.root; make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.Pourquoi ne le trouve-t-il pas? Ai-je un CDROM
endommagé?Comme expliqué dans la section Installer des logiciels portés à
partir d'un CDROM, certains logiciels portés ne
peuvent être mis sur l'ensemble des CDROMs en raison des
restrictions de la licence. Kermit
en est un exemple. Les termes de la licence de
Kermit ne nous permettent pas
d'inclure l'archive sur le CDROM, vous devrez donc la
récupérer par
vous-même—désolé!Vous avez obtenu tous ces messages d'erreur parce que
vous n'étiez alors pas connecté à l'Internet.
Une fois que
vous l'avez téléchargé à partir d'un des
MASTER_SITES - sites principaux (listés
dans le fichier Makefile), vous pouvez
relancer le processus d'installation.Je l'ai fait, mais quand j'ai essayé de la mettre dans
/usr/ports/distfiles, j'ai eu des erreurs
à propos de permissions que je n'avais pas.Le mécanisme des logiciels portés
téléchargera les archives dans
/usr/ports/distfiles, mais de nombreux
administrateurs système créeront un lien
symbolique entre ce répertoire et un serveur de fichiers
distant ou un CDROM local sur lequel on ne peut que lire.
Dans ce cas, vous devrez alors spécifier un répertoire
différent pour stocker les “distfiles” avec la
commande suivante:&prompt.root; make DISTDIR=/local/dir/with/write/permission installLe système des logiciels portés ne fonctionne-t-il
qu'avec /usr/ports? Mon administrateur
système veut que je mette tout dans
/u/people/guests/wurzburger, mais cela
ne semble pas fonctionner.Vous pouvez utiliser les variables
PORTSDIR et PREFIX
pour dire au mécanisme des logiciels portés
d'utiliser des
répertoires différents. Par exemple:&prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports installcompilera le logiciel dans
/u/people/guests/wurzburger/ports et
installera tout dans /usr/local.&prompt.root; make PREFIX=/u/people/guests/wurzburger/local installle compilera dans /usr/ports et
l'installera dans
/u/people/guests/wurzburger/local.Et bien sûr:&prompt.root; make PORTSDIR=../ports PREFIX=../local installcombinera les deux (c'est trop long pour tenir
entièrement sur la page, mais cela devrait vous donner
l'idée générale).imakeCertains logiciels portés qui utilisent &man.imake.1;
(une partie du système X Window) ne fonctionnent pas bien
avec la variable PREFIX, et insisteront
pour s'installer sous /usr/X11R6. De
façon similaire, certain logiciels Perl ignorent
PREFIX et s'installent dans
l'arborescence Perl. Faire en sorte que ces logiciels
portés respectent PREFIX est une
tâche difficile voire impossible.Si vous ne voulez pas avoir à retaper tout cela à
chaque fois que vous installez un logiciel porté, c'est une
bonne idée de définir ces deux variables dans votre
environnement par défaut. Lisez la page de manuel de votre
interpréteur de commandes pour des instructions sur la
manière de le faire.Je n'ai pas de CDROM FreeBSD, mais j'aimerais avoir
toutes les archives sous la main sur mon système pour ne pas
avoir à attendre la fin d'un téléchargement
à chaque fois que j'installe un logiciel porté.
Y-a-t-il une façon de les
récupérer d'un coup?Pour récupérer toutes les archives du
catalogue des logiciels, tapez:&prompt.root; cd /usr/ports
&prompt.root; make fetchPour toutes les archives d'un sous-répertoire du
catalogue, tapez:&prompt.root; cd /usr/ports/directory
&prompt.root; make fetchet pour juste un seule logiciel porté—bon, vous
avez probablement déjà deviné.Je sais qu'il est probablement plus rapide de
récupérer les archives à partir de sites
miroir FreeBSD proches. Existe-il un moyen de dire au logiciel
porté de s'adresser à
d'autres serveurs qu'à ceux listés dans la variable
MASTER_SITES?Oui. Si vous savez que, par exemple, ftp.FreeBSD.org est plus près de vous
que les sites listés dans MASTER_SITES,
faites comme dans ce qui suit:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchJe veux savoir de quels fichiers make
aura besoin avant de le laisser essayer de les
télécharger.make fetch-list affichera une liste
des fichiers nécessaires à un logiciel
porté.Y-a-t-il un moyen d'empêcher un logiciel porté
d'être compilé? Je veux faire quelques
modifications sur le code
source avant de l'installer, mais c'est fastidieux de
surveiller ce qui se passe et taper à chaque fois
CtrlC.make extract ne fera que
récupérer et extraire le code source.J'essaye de faire mon propre portage et je voudrais
qu'il ne soit pas compilé avant que j'ai pu vérifier
que les correctifs aient été correctement
appliqués. Y-a-t-il un équivalent à
make extract, pour les correctifs?Oui, make patch est ce qu'il vous
faut. Vous trouverez probablement l'option
PATCH_DEBUG également utile. Et, au
passage, merci de vos efforts!J'ai entendu dire que certaines options du compilateur
pouvaient être à l'origine de bogue. Est-ce exact?
Comment puis-je être sûr que je compile les logiciels
portés avec les bonnes options?Oui, avec la version 2.6.3 de gcc (la
version livrée avec FreeBSD 2.1.0 et 2.1.5), l'option
pouvait générer du code
bogué à moins que vous n'utilisiez également
l'option . (La plupart des
logiciels portés n'utilisent pas l'option
). Vous devriez
pouvoir spécifiez au compilateur les options à
utiliser avec quelque chose comme:&prompt.root; make CFLAGS='-O2 -fno-strength-reduce' installou en éditant /etc/make.conf,
mais malheureusement tous les ports n'en tiennent pas
compte. La méthode la plus sure est d'utiliser
make configure, puis d'aller dans le
répertoire des sources et de vérifier les
fichiers Makefiles
à la main, mais cela peut devenir fastidieux s'il y a de
nombreux sous-répertoires, chacun avec leur propre
Makefiles.Les options par défaut du compilateur de FreeBSD sont
assez conservatrices, donc si vous ne les avez pas
modifiées vous ne devriez pas avoir de
problème.Il y a tellement de logiciels portés qu'il est difficile
de trouver celui que je veux. Y-a-t-il quelque part une
liste des logiciels portés disponibles?
Regardez dans le fichier INDEX dans
/usr/ports. Si vous désirez chercher
dans le catalogue des logiciels portés un mot-clé,
vous pouvez également le faire.
Par exemple, vous pouvez trouver
les logiciels portés concernant le langage de programmation
LISP en utilisant:&prompt.user; cd /usr/ports
&prompt.user; make search key=lispJ'ai lancé l'installation du logiciel
foo mais le système a soudainement
interrompu sa compilation et a commencé à compiler le
logiciel bar. Que se passe-t-il?Le logiciel porté foo a besoin de
quelque chose faisant partie de bar
— par exemple, si foo utilise des
graphiques, bar peut avoir une
bibliothèque avec des sous-programmes graphiques utiles.
Ou bien bar peut être un outil
nécessaire à la compilation du logiciel porté
foo.J'ai installé le programme
grizzle à partir du catalogue et c'est
franchement du gaspillage d'espace disque. Je veux
l'effacer mais je ne sais pas où il a mis tous les fichiers.
Des indications?Aucun problème, tapez simplement:&prompt.root; pkg_delete grizzle-6.5Une autre alternative est de taper:&prompt.root; cd /usr/ports/somewhere/grizzle
&prompt.root; make deinstallUne minute, il faut connaître le numéro de
version pour utiliser cette commande. Vous ne vous attendez pas
sérieusement à ce que je l'ai retenu,
n'est-ce pas?Absolument pas, vous pouvez le retrouver en faisant:&prompt.root; pkg_info -I 'grizzle*'
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
arcade game.Le numéro de version peut être soit
trouvé en utilisant pkg_info soit en
tapant: ls /var/db/pkgEn parlant d'espace disque, le catalogue des logiciels
portés semble occuper énormément de place.
Est-il prudent d'y faire un peu de ménage?Oui, si vous avez installé un programme et que vous
êtes à peu près certain que vous n'aurez
plus besoin des
sources à nouveau, il n'y a aucune raison de les conserver.
La meilleure façon de faire est:&prompt.root; cd /usr/ports
&prompt.root; make cleanqui parcourra tous les sous-répertoires et effacera
tout excepté les squelettes et cela pour chaque logiciel
porté.Il est possible d'obtenir le même effet sans
appeler récursivement chaque Makefile.
Par exemple, vous pouvez effacer tous les sous-répertoires
work/ directement avec la commande
suivante:
&prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \;J'ai essayé cela et il reste toujours ces archives,
quelque soit le nom que vous leur donniez, dans le
répertoire distfiles. Puis-je
également les effacer?Oui, si vous êtes sûr d'en avoir terminé
avec elles, vous pouvez aussi les supprimer. Elles peuvent
être effacer manuellement, ou en utilisant make
distclean.J'aime avoir quantité de logiciels pour les tester.
Y-a-t-il un moyen d'installer tous les logiciels portés d'un
seul coup?Faites juste:&prompt.root; cd /usr/ports
&prompt.root; make installFaites attention, car certains logiciels portés
peuvent installer des fichiers avec les même noms. Si
vous installez deux logiciels graphiques et qu'ils
installent tous les deux
/usr/local/bin/plot alors vous aurez
évidemment des ennuis.OK, j'ai essayé, mais comme j'ai pensé que cela
allait prendre beaucoup de temps j'ai laissé travailler la
machine et je suis allé me coucher. Ce matin quand j'ai
jeté un coup d'oeil à l'ordinateur, il n'avait
installé que
trois logiciels et demi. Quelque chose s'est-il mal
passé?Non, le problème est que certains logiciels portés
doivent vous poser des questions auxquelles ils ne peuvent
répondre à votre place (e.g., “Voulez-vous
imprimer au
format A4 ou au format légal US?”) et il faut donc que
quelqu'un y réponde sur le moment.Je ne veux vraiment pas passer la journée planté
devant l'écran. Une meilleure idée?OK, tapez ceci avant d'aller au lit/travail/jardin
public:&prompt.root; cd /usr/ports
&prompt.root; make -DBATCH installCela installera tous les logiciels qui ne demandent
pas d'intéraction avec l'utilisateur.
Ensuite, à votre retour, faites:&prompt.root; cd /usr/ports
&prompt.root; make -DINTERACTIVE installpour terminer le travail.Au bureau, nous utilisons frobble,
qui se trouve dans votre catalogue des logiciels portés,
mais nous l'avons quelque peu modifié pour nos propres
besoins. Y-a-t-il un moyen de générer notre propre
version pré-compilées, pour le distribuer plus
facilement sur nos sites?Pas de problème, en supposant que vous savez comment
générer les correctifs pour vos modifications:&prompt.root; cd /usr/ports/somewhere/frobble
&prompt.root; make extract
&prompt.root; cd work/frobble-2.8
[Apply your patches]
&prompt.root; cd ../..
&prompt.root; make packageCe système de logiciel est vraiment génial. Je
désespère de comprendre comment vous avez fait. Quel
est le secret?Il n'y a absolument aucun secret, jetez juste un coup
d'oeil aux fichiers bsd.port.mk et
bsd.port.subdir.mk dans le répertoire
/usr/ports/Mk/.(Cette lecture est déconseillée à ceux
que les procédures de commandes compliquées
rebutent.)A l'aide! Le portage d'un logiciel ne fonctionne
pas!Si vous rencontrez un portage qui ne fonctionne pas, il y a
certaines choses que vous pouvez faire:Corrigez le problème! Le Manuel du développeur
de logiciels portés inclut des informations
détaillées sur l'infrastructure des logiciels
portés vous permettant de corriger le portage
éventuellement défectueux
ou même soumettre le votre!Rouspétez—par courrier
électronique
uniquement! Envoyez un courrier électronique au
responsable du logiciel porté tout d'abord. Tapez la
commande make maintainer ou lisez le
fichier Makefile pour trouver l'adresse
électronique du responsable. Pensez à
préciser le nom et la
version du logiciel porté (envoyer la ligne
$FreeBSD: du fichier
Makefile) et les messages d'erreurs
quand vous écrivez au responsable. Si vous n'obtenez pas de
réponse du responsable vous pouvez utiliser
&man.send-pr.1; pour soumettre un rapport de
bogue.Récupérez la version pré-compilée
sur un serveur FTP proche de vous. Le catalogue de
“référence” des logiciels
pré-compilés se trouve
sur ftp.FreeBSD.org dans le
répertoire
packages,
mais vérifiez d'abord votre miroir
local! Il y a globalement plus de chances que cela marche,
que d'essayez de compiler à partir des sources, et cela va
également beaucoup plus vite. Utilisez le programme
&man.pkg.add.1; pour installer le logiciel
pré-compilé sur votre système.