Iperf: Iperf -s

Créé le 3 févr. 2016  ·  9Commentaires  ·  Source: esnet/iperf

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

question

Commentaire le plus utile

la suppression de libiperf0 a résolu ce problème pour moi.

apt-get purge libiperf0

Tous les 9 commentaires

+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"

Cette page vous a été utile?
0 / 5 - 0 notes