Pages:
Actions
  • #1 par vivien le 23 Feb 2021
  • Lignes de commande pour installer iPerf 3.9 sur Ubuntu / Debian

    - Ubuntu 64 bits / Debian 64 bits / Mint 64 bits (AMD64) :

    sudo apt remove iperf3 libiperf0
    sudo apt install libsctp1
    wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_amd64.deb
    wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_amd64.deb
    sudo dpkg -i libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb
    rm libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb



    - Ubuntu 32 bits / Debian 32 bits / Mint 32 bits (i386) :

    sudo apt remove iperf3 libiperf0
    sudo apt install libsctp1
    wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_i386.deb
    wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_i386.deb
    sudo dpkg -i libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
    rm libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
  • #2 par vivien le 23 Feb 2021
  • iPerf 3.9 est mis en place sur les serveurs Bouygues Telecom 10 G/s suivants :

    - bouygues.testdebit.info (Paris) : Il écoute du port 9200 au port 9240
    - lyon.testdebit.info (Lyon) : Il écoute du port 9200 au port 9240
    - aix-marseille.testdebit.info (Aix) : Il écoute du port 9200 au port 9240
    - bordeaux.testdebit.info (Bordeaux) : Il écoute du port 9200 au port 9240
    - lille.testdebit.info (Lille) : Il écoute du port 9200 au port 9240
  • #3 par kgersen le 23 Feb 2021
  • pourquoi pas utiliser les repos officiels ?

    https://packages.debian.org/sid/iperf3
    https://launchpad.net/ubuntu/+source/iperf3

    pour Debian il faut utiliser "testing" (ou unstable mais testing est plus sur):

    # ajout des sources testing en gardant 'stable' comme defaut
    echo 'APT::Default-Release "stable";' | sudo tee /etc/apt/apt.conf.d/99defaultrelease
    echo 'deb http://deb.debian.org/debian/ testing main' | sudo tee /etc/apt/sources.list.d/testing.list
    sudo apt update
    cette modif permet d'installer des packages testing (n+1) sur une version stable (n) sans pertuber la version stable.


    pour voir les versions dispo d'un package:

    sudo apt show iperf3 -a

    pour installer la version testing:
    sudo apt install iperf3/testing
    ou
    sudo apt install -t testing iperf3

    une fois cette version installée, ses mises a jour futures le seront automatiquement avec "apt upgrade".

    Pour Ubuntu: voir la doc , j'ai banni Ubuntu de mes environnements et tout le monde devrait faire pareil.
  • #4 par vivien le 03 Mar 2021
  • Je vais suite ton conseil et proposer les repos officiels.

    Par contre, on prend le risque que cela ne fonctionne plus suite à une mise à jour à cause des dépendances comme la version minimum de libc6.

    Par exemple Ubuntu 18.04 est livré avec avec libc6 2.27.

    Ce qui est assez étonnant, c'est que les versions de libc6 demandées par libiperf0 varie selon les architectures de la version 2.17 à la version 2.31.cf https://packages.debian.org/fr/sid/libiperf0

    AMD64 : il faut la version libc6 2.17
    i386: il faut la version libc6 2.28

    Donc iPerf3.9 refuse de s'installer avec les paquets fournis sur Ubuntu 18.04 LTS en version 32bits :
    $ sudo dpkg -i libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
    Sélection du paquet libiperf0:i386 précédemment désélectionné.
    (Lecture de la base de données... 209060 fichiers et répertoires déjà installés.)
    Préparation du dépaquetage de libiperf0_3.9-1_i386.deb ...
    Dépaquetage de libiperf0:i386 (3.9-1) ...
    Sélection du paquet iperf3 précédemment désélectionné.
    Préparation du dépaquetage de iperf3_3.9-1_i386.deb ...
    Dépaquetage de iperf3 (3.9-1) ...
    dpkg: des problèmes de dépendances empêchent la configuration de libiperf0:i386 :
     libiperf0:i386 dépend de libc6 (>= 2.28) ; cependant :
      La version de libc6:i386 sur le système est 2.27-3ubuntu1.4.

    dpkg: erreur de traitement du paquet libiperf0:i386 (--install) :
     problèmes de dépendances - laissé non configuré
    dpkg: des problèmes de dépendances empêchent la configuration de iperf3 :
     iperf3 dépend de libiperf0 (>= 3.1.3) ; cependant :
     Le paquet libiperf0:i386 n'est pas encore configuré.

    dpkg: erreur de traitement du paquet iperf3 (--install) :
     problèmes de dépendances - laissé non configuré
    Traitement des actions différées (« triggers ») pour libc-bin (2.27-3ubuntu1.4) ...
    Traitement des actions différées (« triggers ») pour man-db (2.8.3-2ubuntu0.1) ...
    Des erreurs ont été rencontrées pendant l'exécution :
     libiperf0:i386
     iperf3

  • #5 par kgersen le 03 Mar 2021
  • c'est tout le  probleme des apt/repo et des binaires crée a "l'ancienne" avec des libs externes au binaire. C'est aussi le job du "maintener" de faire cela.

    on doit pouvoir compiler iperf3 en 'static':

    ./configure "LDFLAGS=--static" --disable-shared --without-sctp
    make

    on peut ensuite check les dépendences d'un binaire avec la commande 'ldd':

    ldd /path/to/iperf3(ajouter -v pour voir plus de détails)

    Idéalement il faudrait contacter le 'maintainer' d'iperf3 pour les différentes distros.
    Pour debian/ubuntu: https://qa.debian.org/developer.php?email=rover%40debian.org et lui demander de mettre une version "static" (genre sudo apt install iperf3-static) qui serait toujours a jour...

    Apres les repos/package managers c'est pour 'démocratiser' Linux, les puristes compilent tout eux même ;) c'est le principe des "./configure & make" ,pour adapter a son cas d'usage.
  • #6 par Hugues le 03 Mar 2021
  • les puristes compilent tout eux même ;)
    C'est vrai ça, pourquoi utiliser un package manager qui gère (entre autre) les MAJ pour toi quand tu peux être abonné a une mailing list par package pour savoir quand faire une MAJ de sécu sur chaque paquet ?

    Je trouve ce genre de discours de "ma vérité est la vérité" tout a fait néfaste.
  • #7 par kgersen le 03 Mar 2021
  • Je trouve ce genre de discours de "ma vérité est la vérité" tout a fait néfaste.

    Ce n'est pas ma vérité c'est celle des "puristes" qui sont minoritaires de nos jours.

    Je ne préconise pas de tout compiler soi-même.

    Le souci d'iperf3 c'est que sont auteur ne s'intéresse pas a sa distribution sous forme de binaire, il laisse faire les autres ( https://software.es.net/iperf/obtaining.html#binary-distributions )
    Les 3 OS officiellement supportés par l'auteur sont: CentOS ,FreeBSD et  macOS.Du coup y'a même pas Debian/Ubuntu...

    Ce sont des informations  importantes a prendre en compte pour comprendre la situation particulière d'IPerf3.
  • #8 par kgersen le 04 Mar 2021
  • petit dockerfile & script pour générer un binaire d'IPerf3 sans dépendances à partir de ses sources : https://github.com/kgersen/build-iperf3

    pré-requis: git et docker (ou podman):
    git clone https://github.com/kgersen/build-iperf3
    cd build-iperf3
    sh build.sh

    Le fichier "iperf3" sera généré dans le répertoire courant.
    "ldd iperf" pour voir qu'il n'a aucune dépendance.
  • #9 par vivien le 04 Mar 2021
  • C'est pour répondre à cette problématique que Appimage et Snap ont été inventés.

    (Je n'ai pas mis Flatpak, car il ne semble par fait pour des logiciels serveur : https://flatpak.org/faq/#Can_Flatpak_be_used_on_servers_too_ )
  • #10 par kgersen le 04 Mar 2021
  • C'est pour répondre à cette problématique que Appimage et Snap ont été inventés.

    (Je n'ai pas mis Flatpak, car il ne semble par fait pour des logiciels serveur : https://flatpak.org/faq/#Can_Flatpak_be_used_on_servers_too_ )

    parce que le dev ou le "maintenair" du package ne fait pas l'effort de build avec une version minimum de libc il faut inventer un truc aussi alambiquer que Snap ... et si personne ne fait un package Snap pour iperf3 ca ne résout pas le problème.

    ton problème avec la 3.9 d'iperf3 est de savoir pourquoi libiperf0 (3.9-1) dépend de:

    dep: libc6 (>= 2.17) [not armel, armhf, i386, mipsel]
    dep: libc6 (>= 2.28) [armel, armhf, i386, mipsel]
    donc de la 2.28 pour 32 bits.

    Soit le "maintenair" n'a fait aucun effort pour résoudre cette contrainte (build automatique) soit y'a une raison précise (sécu?) a cette contrainte.
    Il faudrait lui demander, des fois c'est juste qu'il n'a pas eu de retour.
Pages:
Actions