Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gros probleme compilation FreeBSD 4.9 !!

14 réponses
Avatar
Thierry
Bonsoir,
je dirais la chose suivante, au secours, je suis à sec au niveau idées ...
Voilà, j'ai un serveur web tournant correctement depuis quelques années
... et oui depuis la 4.5 ... :-)
J'ai voulu, aujourd'hui faire une mise à jour de mes sources et en
profiter pour être à jour au niveau sécu ... comme je fais
habituellement depuis assez longtemps :

-cvsup -g -L 2 cvs-sources (all sources) ...
-make -j15 buildworld
-make buildkernel
reboot single user
-make installkernel
-make installworld

avec un peu de mergemaster .....
Sauf que là, ben big probleme, j'ai mis un "-j15" au niveau de la
compile, et j'aurai pas dû .... :

<===============================================================>

bash-2.05b$ sudo make -j15 installworld
mkdir -p /tmp/install.58207
for prog in [ awk cap_mkdb cat chflags chmod chown date echo egrep find grep ln make makewhatis mkdir mtree mv perl pwd_mkdb rm sed sh sysctl test true uname wc zic; do cp `which $prog` /tmp/install.58207; done
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 OBJFORMAT_PATH=/usr/obj/usr/src/i386/usr/libexec PERL5LIB=/usr/obj/usr/src/i386/usr/libdata/perl/5.00503 GROFF_BIN_PATH=/usr/obj/usr/src/i386/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/i386/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/i386/usr/share/tmac PATH=/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/tmp/install.58207 make -f Makefile.inc1 reinstall
--------------------------------------------------------------
>>> Making hierarchy
--------------------------------------------------------------
cd /usr/src; make -f Makefile.inc1 hierarchy
cd /usr/src/etc; make distrib-dirs
`grep "^[a-zA-Z]" /usr/src/etc/locale.deprecated`; while [ $# -gt 0 ] ; do for dir in /usr/share/locale /usr/share/nls /usr/local/share/nls; do test -d /${dir} && cd /${dir}; test -L "$2" && rm -rf "$2"; test \! -L "$1" && test -d "$1" && mv "$1" "$2"; done; shift; shift; done
mtree -deU -f /usr/src/etc/mtree/BSD.root.dist -p /
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in mtree
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 2
1 error
-bash-2.05b$

<===============================================================>

Ensuite, pour reparer ma betise (pour rester poli) j'ai fait un "make
clean" ... resultat identique ... je ne peux plus utiliser la commande
"vi" je ne peux donc plus modifier un quelconque fichier, ou installer un
packages à partir d'un port (ex vim) :

<===========================================================>
bash-2.05b$ sudo make
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in /usr/bin/sed
"/usr/ports/Mk/bsd.port.mk", line 910: warning: "/usr/bin/uname -r | /usr/bin/sed -e 's/[-(].*//'" returned non-zero status
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in /usr/bin/sed
"/usr/ports/Mk/bsd.port.mk", line 1918: warning: "/usr/sbin/pkg_info -P 2>/dev/null | /usr/bin/sed -e 's/.*: //'" returned non-zero status
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in /usr/bin/sed
"/usr/ports/Mk/bsd.port.mk", line 2476: warning: "echo 'vim.1 rvim.1 vim.1 rview.1 vim.1 gvim.1 vim.1 gview.1 vim.1 rgvim.1 vim.1 rgview.1 eview.1 gvimdiff.1' | /usr/bin/awk '{ if (NF % 2 != 0) { print "broken"; exit; } for (i=1; i<=NF; i++) { if ($i ~ /^-$/ && i != 1 && i % 2 != 0) { $i = $(i-2); printf " " $i " "; } else if ($i ~ /^[^ ]+\.[1-9ln][^. ]*$/ || $i ~ /^\//) printf " " $i " "; else { print "broken"; exit; } } }' | /usr/bin/sed -e ' \([^/ ][^ ]*\.\(.\)[^. ]*\ ${MAN\2PREFIX}/man/$$$${__lang}/man\2/\1.gg' -e 's/ /g' -e 's/MANlPREFIX/MANLPREFIX/g' -e 's/MANnPREFIX/MANNPREFIX/g'" returned non-zero status
"/usr/ports/Mk/bsd.port.mk", line 1: Malformed conditional (${_TMLINKS:M/usr/local*}x != x)
"/usr/ports/Mk/bsd.port.mk", line 4: Malformed conditional (${_TMLINKS:N/usr/local*}x != x)
"/usr/ports/Mk/bsd.port.mk", line 4487: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 4487: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 4632: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 4632: Need an operator
make: fatal errors encountered -- cannot continue

<============================================================>
J'utilise le ftp pour changer la composition d'un fichier, tel que mon
cvs-sources ou mon make.conf par exemple ... enfin bref c'est un peu le
bordel en ce moment ....

le truc assez marrant, c'est que toutes mes applis fonctionnent, sauf la
base mysql, c'est un peu embetant lorsque l'on heberge quelques forums .... :

<==============================================================>
Fichier localhost.err se situant dans /var/db/mysql :

Opened tables: 6
Open tables: 0
Open files: 0
Open streams: 0
031215 18:35:14 /usr/local/libexec/mysqld: Normal shutdown

031215 18:35:15 /usr/local/libexec/mysqld: Shutdown Complete

031215 18:35:15 mysqld ended

031215 20:48:26 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 20:48:26 mysqld ended

031215 21:36:40 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:36:40 mysqld ended

031215 21:38:58 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:38:58 mysqld ended

031215 21:40:35 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:40:35 mysqld ended

031215 21:42:53 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:42:53 mysqld ended

031215 21:50:43 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:50:43 mysqld ended

031215 21:53:43 mysqld started
/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced from COPY relocation in nohup
031215 21:53:43 mysqld ended

-bash-2.05b$ sudo /usr/local/libexec/mysqld &
[1] 389
-bash-2.05b$ 031215 21:56:43 Warning: setrlimit returned ok, but didn't change limits. Max open files is 128
031215 21:56:43 Warning: Changed limits: max_connections: 100 table_cache: 64
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
031215 21:56:43 Aborting
031215 21:56:43 /usr/local/libexec/mysqld: Shutdown Complete
[1]+ Exit 1 sudo /usr/local/libexec/mysqld

Voilà, plus de solutions, et c'est valable en 4.9 et 4.8 ....
Merci pour vos infos et votre aide.

Thierry

10 réponses

1 2
Avatar
Thierry
Bonjour,
Et oui, j'ai pas pensé à cela, avant de le faire, mais si je bouge le
/etc, je perds tous mes fichiers de config, la config ssh, fstab, passwd
etc ...
Je pense qu'il n'a pas fait tout ce qui se trouve en dessous du : mv /etc
/my-etc ...
Je suis incapable de switcher en su -, je ne peux travailler qu'en sudo,
et si là, par exemple, je ferme ma fenetre ssh, je n'ai plus acces à la
machine ... je suis mal, tres mal là ...Le ftp ne fonctionne bien sur
plus ... Se serait trop simple ;-)



--
-bash-2.05b$ sudo mount -uw /
-bash-2.05b$ sudo mount -a
-bash-2.05b$ sudo mv /etc /my-etc
-bash-2.05b$ cd /tmp/bin/
-bash-2.05b$ sudo DESTDIR=/ ./install.sh
sudo: uid 1001 does not exist in the passwd file!

/etc/mail/sendmail.cf: line 0: cannot open: No such file or directory
-bash-2.05b$
-bash-2.05b$ sudo rm -rf /etc
sudo: uid 1001 does not exist in the passwd file!
/etc/mail/sendmail.cf: line 0: cannot open: No such file or directory
-bash-2.05b$ sudo mv /my-etc/ /etc
sudo: uid 1001 does not exist in the passwd file!
/etc/mail/sendmail.cf: line 0: cannot open: No such file or directory

Je vais continuer à creuser ... si tu as une idée, je suis preneur ....

Merci
Avatar
Thierry
Tu n'as pas rebooté en single user.
Ben je commence à avoir un doute ... c'est bien le falg "-s" au boot non

? Si c'est bien ça, je l'ai normallement fait ...


Si il continue à couiner, laisse temporairement ton /etc en place, en
Oui mais /etc n'existe plus, il a été renomé en /my-etc ....Et je ne

sais pas comment faire marche arriere ...
remplaçant # mv par # cp -Rp.

XAv
merci


Avatar
Olivier Tharan
* Thierry (Tue, 16 Dec 2003 00:04:37 +0100):
... et oui depuis la 4.5 ... :-)
J'ai voulu, aujourd'hui faire une mise à jour de mes sources et en
profiter pour être à jour au niveau sécu ... comme je fais
habituellement depuis assez longtemps :

-cvsup -g -L 2 cvs-sources (all sources) ...
-make -j15 buildworld
-make buildkernel
reboot single user
-make installkernel
-make installworld


. oubliez le -j 15, vous n'êtes pas pressé.

. faites le make installkernel *avant* de redémarrer, comme ça vous êtes
sûr que le noyau fonctionne, et lors du make installworld vous aurez
un userland conforme au noyau qui tourne. C'est d'autant plus
important que vous sautez pas mal de versions.

. juste après la compilation, faites :

/usr/src/usr.sbin/mergemaster/mergemaster.sh -p

ceci fait le mergemaster minimum vous permettant le make installworld
ultérieur sans message d'erreur du genre "utilisateur inconnu".

--
olive

Avatar
Thierry
On Tue, 16 Dec 2003 08:03:12 +0000, Olivier Tharan wrote:



. juste après la compilation, faites :

/usr/src/usr.sbin/mergemaster/mergemaster.sh -p

ceci fait le mergemaster minimum vous permettant le make installworld
ultérieur sans message d'erreur du genre "utilisateur inconnu".
merci pour vos infos ... je saurais quoi si jamais mon système d'origine

se remet à fonctionner ....parce que là, c'est pas gagné ....

Avatar
Thierry
je suis en train d'essayer de recuperer ce qui est recuperable, au ou
...xavier me laisse tomber ;-) Par contre, vu que le vi, more, less ne
fonctionne plus et que cat est tres limité, existe t'il un moyen pouvant
me permettre de de retrouver les fonctions d'un vi ou d'un less, j'entends
par là, au niveau du defilement du contenu du fichier ....

Merci ...
Avatar
Thierry
Oui mais /etc n'existe plus, il a été renomé en /my-etc ....Et je ne
sais pas comment faire marche arriere ...


Ben..... en le renommant /etc !


Bon, je ne peux pas me logger en tant que root sur la machine en direct
because :

/usr/libexec/ld-elf.so.1: Undefined symbol "__guard" referenced
from COPY relocation in root.

Je ne peux pas faire un "su" à partir de ma fenetre ssh deja ouverte sous
un autre user because:

bash-2.05b$ su /usr/libexec/ld-elf.so.1: Undefined
symbol "__guard" referenced from COPY relocation in su

Voilà mon probleme actuel ... Je suis actuellement connecté sous un user
"x" en ssh à partir d'une machine distante ... Si je ferme cette fenetre,
je ne peux plus rien faire ...

Merci


Avatar
Olivier Tharan
* Xavier (Tue, 16 Dec 2003 17:19:09 +0100):
Reboote en single user, bon sang !


Mieux, depuis un CD.

--
olive

Avatar
Thierry
On Tue, 16 Dec 2003 17:19:09 +0100, Xavier wrote:

Thierry wrote:

Je suis actuellement connecté sous un user
"x" en ssh à partir d'une machine distante ... Si je ferme cette fenetre,
je ne peux plus rien faire ...


Reboote en single user, bon sang !
C'est fait, cette fois ci ...

Je suis arrivé au DESTDIR=/ ./install.sh sauf que là, j'ai un
./install.sh permission denied ..?
XAv



Avatar
Thierry
On Tue, 16 Dec 2003 18:52:09 +0100, Thierry wrote:

On Tue, 16 Dec 2003 17:19:09 +0100, Xavier wrote:

Thierry wrote:

Je suis actuellement connecté sous un user
"x" en ssh à partir d'une machine distante ... Si je ferme cette fenetre,
je ne peux plus rien faire ...


Reboote en single user, bon sang !
C'est fait, cette fois ci ...

Je suis arrivé au DESTDIR=/ ./install.sh sauf que là, j'ai un
./install.sh permission denied ..?
tous le contenu du repertoire bin est en rw_r__r__ 1 0 0 install.sh

XAv





Avatar
Thierry
Je suis arrivé au DESTDIR=/ ./install.sh sauf que là, j'ai un
./install.sh permission denied ..?
tous le contenu du repertoire bin est en rw_r__r__ 1 0 0 install.sh

Il faut que j'arrete de boire ou que je commence ... ;-)

J'ai fait un chmod 755 dans tout le rep bin
j'ai pu lancer le script install.sh
par contre, j'ai les erreurs suivantes : tar: ./usr/bin/login,passwd etc ...
donc j'ai verifié les schg flags, j'ai donc du faire un chflags noschg *
dans /usr/bin et /bin
J'en suis là, donc ça bosse ....

merci


1 2