Lors de l'exécution de la commande iperf -s, son erreur de lancement
iperf3: erreur de recherche de symbole: iperf3: symbole non défini: iperf_create_pidfile
Cordialement.,
Surendar
+1
Confirmé sur Ubuntu 15.10
Peut-être que la bibliothèque partagée iperf3 (si elle a été construite de cette façon, comme c'est le cas par défaut) n'est pas dans le chemin de recherche du chargeur? Sur certains systèmes de type UNIX, vous pouvez recharger le chemin de recherche du chargeur en exécutant ldconfig
.
Si cela ne vous aide pas, veuillez fournir des informations supplémentaires telles que le système d'exploitation et la distribution que vous utilisez, et comment vous avez installé iperf (par exemple, compilé à partir des sources et make install
, exécutable packagé, etc.) .
Je suis sur Ubuntu 14.04 et j'obtiens la même erreur, j'ai essayé d'exécuter ldconfig
mais cela n'aide pas.
Iperf installé à partir de l'exécutable packagé.
J'ai le même problème lors de l'installation propre de Debian Jessie. Cloné depuis git. ./configure && make && make install
.
Alors, je l'ai réduit. La raison pour laquelle nous ne sommes indéfinis que sur iperf_create_pidfile
, est probablement parce que nous avions installé le package iperf3
d'apt, et lors de la suppression de cela, la bibliothèque a été laissée pour compte (même en faisant dpkg --purge iperf3
). Cela a entraîné l'utilisation d'un ancien libiperf.so.0
. Cela avait quelques indéfinis;
root<strong i="10">@foobar</strong>:~/iperf3-git# ldd -d -r /usr/local/bin/iperf3
linux-vdso.so.1 (0x00007ffec4390000)
libiperf.so.0 => /usr/lib/x86_64-linux-gnu/libiperf.so.0 (0x00007fe7f4e6a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe7f4abf000)
/lib64/ld-linux-x86-64.so.2 (0x000055aa474ef000)
undefined symbol: iperf_delete_pidfile (/usr/local/bin/iperf3)
undefined symbol: iperf_create_pidfile (/usr/local/bin/iperf3)
undefined symbol: iperf_get_test_one_off (/usr/local/bin/iperf3)
La solution était assez simple;
make uninstall
make clean
./configure
make -j20
make install
rm /usr/lib/x86_64-linux-gnu/*iperf*
ldconfig
Et voilá;
root<strong i="17">@foobar</strong>:~/iperf3-git# /usr/local/bin/iperf3 --version
iperf 3.1
Linux foobar 4.2.8-1-pve #1 SMP Fri Feb 26 16:37:36 CET 2016 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy
Le make install
devrait probablement invoquer ldconfig
pour que les bibliothèques soient mises à jour.
Merci @jallakim d' avoir publié une solution de contournement! J'essayais à un moment de comprendre comment faire automatiquement ldconfig
, mais cela s'est compliqué car toutes les plates-formes n'utilisent pas ldconfig (MacOS en particulier fait une autre commande pour une fonction similaire). Il y a probablement encore un problème dans le suivi des problèmes GitHub pour ce problème exact.
la suppression de libiperf0 a résolu ce problème pour moi.
apt-get purge libiperf0
@tingvold , la solution de contournement fonctionne pour ma situation. Donc, fondamentalement, votre méthode consiste d'abord à désinstaller puis à installer. Je suppose que l'option la plus importante est "ldconfig"
Commentaire le plus utile
la suppression de libiperf0 a résolu ce problème pour moi.
apt-get purge libiperf0