J'ai eu un problème avec ce passage-là
* $ cp -R /usr/local/moz/dist /usr/local/mozilla/dist (Explanation: copying without the option -d doesn't preserve links. So you get copies of those originals into your dist-directory which originally only are denoted by the links.)
En effet, dans le répertoire final, ( mozilla/dist/ ), on n'a que des liens relatifs (du genre mozilla@ -> ../../xfce/bin/mozilla, donc si on fait une copie avec -d, ça ne fait que copier le lien dans le répertoire final, donc, c'est foireux, le lien pointe toujours vers ../../<etc>. Quand on fait le "cp" tout simple d'un lien (sans le -d), il copie réellement le fichier physiquement, et pas le lien. Ça tombe bien, c'est justement ce qu'on veut. Ce qui est logique, je n'ai d'aileurs pas compris pourquoi il précise ça. Mais j'ai eu un problème sur ma version de cp : quand je fais un -R comme c'est expliqué, alors, il met par défaut un -d, donc il ne fait que copier les liens. Bug dans mes binutils? Je n'ai pas trouvé comment résoudre le problème, donc j'ai du copier les fichiers un à un.
Bon, en fait, j'ai fait un script pour faire ça, tiens, le voilà, au cas où tu serais confronté au problème :
#!/bin/sh
# Ce script sert à copier l'arborescence d'un mozilla fraichement compilé
# vers une autre destination.
# Le mozilla compilé se trouve dans .../mozilla/dist , mais il contient
# en majorité des liens RELATIFS vers différents fichiers
# En théorie, un simple cp -R .../mozilla/dist .../<destination>/dist
# devrait copier ces liens en dur, et non pas garder des liens (ça,
# c'est l'option -d (no-deference) qui le fait.
# Pourtant, cp -R se comporte comme cp -dR, je comprends pas pourquoi,
# alors que cp <lien> fich.dest copie bien le fichier pointé par <lien>
# dans fich.dest.
#
# Donc ce script recrée l'arborescence de mozilla/dist en créant les
# répertoires un par un, et en copiant les fichiers un par un également
LISTE=`find /usr/src/mozilla/dist -name "*" -print`
INSTALL_DIR=/home/jak/docs/test/moz
for i in $LISTE ; do
if [ -d $i ] ; then
REP_I=`ls -d $i | cut -d / -f 5- -`
mkdir $INSTALL_DIR/$REP_I
elif [ -L $i ] ; then
FICHL_I=`ls -d $i | cut -d / -f 5- -`
cp $i $INSTALL_DIR/$FICHL_I
elif [ -f $i ] ; then
FICH_I=`ls -d $i | cut -d / -f 5- -`
cp $i $INSTALL_DIR/$FICH_I
else
echo Qu'est-ce que c'est que ce truc ? : $i
fi
done