Benötige gcc, gcc-libs, and gcc-fortran in der 7.xx

Hallo,
seit dem letzten Update läuft bei mir das WSJTX Amateurfunk-Programm nicht mehr. Dies Programm
benötigt die oben genannten Dateien in der 7.3.1 Version. Installiert worden sind die 8.1.0-1. Die 7ner sind auch nicht mehr in dem var/cache/pacman/pkg Verzeichnis. Also habe ich sie aus dem Arch-Achiv in das Verzeichnis rein kopiert. Bei dem Pacman -U gcc7.3.1+20180406-1 Befehl bekomme ich die Fehlermeldung angezeigt:

Warnung: Kann "gcc-libs=7.3.1+20180406-1" nicht auflösen (eine Abhängigkeit von "gcc")
:: Das folgende Paket kann aufgrund nicht auflösbarer Abhängigkeiten nicht aktualisiert werden:
gcc

Wie komme ich an die alte Versionen der drei Dateien?

Meine Version ist die 4.14.40-1-MANJARO mit KDE .

Vielleicht WSTJX neu kompilieren mit gcc 8. https://aur.archlinux.org/packages/?O=0&SeB=nd&K=WSJTX&outdated=&SB=n&SO=a&PP=50&do_Search=Go

Edit: Ich sehe die AUR-Pakete sind schon etwas alt und die Leute beschweren sich schon über gcc 8.

Dann "einfach" mal probieren, die WSJT-X Version 1.9.0-rc4 zu kompilieren.
Im PKGBUILD
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wsjtx
die Zeile
pkgver=1.8.0
durch
pkgver=1.9.0-rc4
ersetzen und md5sums=(SKIP) schreiben oder die MD5 updaten.

Dann bricht die Installation nur mit dem Hinweis :Fehler ab.

Ich würde nicht empfehlen, gcc und andere Compiler zu downgraden, weil es das ganze System instabil machen wird. Entweder, bis WSJT-X mit gcc 8 kompatibel wird, eine ältere Version von Manjaro benutzen, 17.1.10 oder so, oder eine andere Linux Distribution.

Hast du versucht das Programm mit dem gcc54 zu bauen? Ist alles ein wenig umständlich aber es klappt.

Zu erst musst du ggc54 installieren, mach das mit

pacman -S gcc54

Dann musst du die PKGBUILD bearbeiten, füge folgen Zeilen nach cd $srcdir/build hinzu

export CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong"
export CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong"
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
export CC=/usr/bin/gcc-5
export CXX=/usr/bin/g++-5
export FC=/usr/bin/gfortran-5

Dann musst du noch die Zeile

cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release $srcdir/$pkgname-$pkgver

in

cmake -DCMAKE_C_FLAGS:STRING="${CFLAGS}" -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS:STRING="${LDFLAGS}" -DCMAKE_SHARED_LINKER_FLAGS:STRING="${LDFLAGS}" -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release $srcdir/$pkgname-$pkgver

ändern.

Nach dem installieren kannst du das Programm leider nicht wie bisher starten. Du musst im Terminal folgenden Befehl verwenden

LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.1/ wsjtx

Ggf. kann man noch die desktop Datei anpassen damit man das Programm wieder über die Gui starten kann.

Was bedeutet das überhaupt? Was genau läuft nicht, was gibt der Terminal genau aus? Eingabe und Ausgabe posten, bitte!

gestartet mit wsjtx und Fehlerausgabe ist:
fan@Manjaro-PC ~]$ wsjtx
wsjtx: error while loading shared libraries: libgfortran.so.4: cannot open shared object file: No such file or directory

Ich denke das Problem ist die libgfortran.so Bibliothek. Das Progam braucht die Fortran Bibliothek mit der es gebaut wurde.
Das ist auch der Grund warum man LD_LIBRARY_PATH= braucht um das Programm zu starten wenn es mit gcc54gebaut wurde.

Alternativ könnte man natürlich einfach die alte gcc7 Fortran Bibliothek aus dem normalen alten gcc-fortran Paket entpacken und selber in /usr/llib kopieren. Aber natürlich alles auf eigene Gefahr.

Aber natürlich nur libgfortran.so.4 erstellen und nicht die libgfortran.so oder libgfortran.so.5 überschreiben.

1 Like

Man könnte auch einen Symlink von libgfortran.so.4 -> libgfortran.so.5 machen.
sudo ln -s /usr/lib/libgfortran.so.5 /usr/lib/libgfortran.so.4

1 Like

Stimmt das kann man auch versuchen. Vielleicht klappt es. Müsste @Linuxfan einfach ausprobieren.

Wenn sich nicht allzu viel zwischen den Versionen geändert hat, ist es die einfachste Möglichkeit.

Den Symlink habe ich gemacht, keine Fehlermeldung.
Beim Aufruf von wsjtx kommt jetzt:
wsjtx: /usr/lib/libgfortran.so.4: version `GFORTRAN_7' not found (required by wsjtx)

Das it gut, dass es gleich nicht geklappt hat! Ich hatte da mit den Symlinks schonmal für mehrere Dateien machen müssen, um am Ende festzustellen, dass es trotzdem nicht funktionierte.

Dann versuche das

wget https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-7.3.1%2B20180406-1-x86_64.pkg.tar.xz

dann entpacken und kopieren

tar xf gcc-libs-7.3.1+20180406-1-x86_64.pkg.tar.xz usr/lib/libgfortran.so.4.0.0

sudo cp usr/lib/libgfortran.so.4.0.0 /usr/lib
sudo ln -s /usr/lib/libgfortran.so.4.0.0 /usr/lib/libgfortran.so.4 
1 Like

Möglicheweise ist das nicht die einzige Bibliothek, die so installiert werden muss.

Soweit gemacht aber:
ln: die symbolische Verknüpfung '/usr/lib/libgfortran.so.4' konnte nicht angelegt werden: Die Datei existiert bereits

Stimmt du hattest ja schon was probiert, dann halt mit der force

sudo ln -fs /usr/lib/libgfortran.so.4.0.0 /usr/lib/libgfortran.so.4 

wsjtx: error while loading shared libraries: libgfortran.so.4: cannot open shared object file: No such file or directory

Stopp es läuft, man soll nicht alles ohne zu kontrollieren, per drag and drop übernehmen

Sorry ich hatte da einen Tippfehler. Es fehlte ein Schrägstrich.

sudo ln -fs /usr/lib/libgfortran.so.4.0.0 /usr/lib/libgfortran.so.4 

Den Schräger hatte ich entdeckt. Jetzt läuft das Programm.

Super, Danke Euch.

Zur Info, ich habe hier die wsjtx Version 1.9.0rc4 laufen. Dazu musste ich die PKGBUILD umschreiben auf die 1.9.0 und auch die Quelle, nach dem runterladen, nach 1.9.0 umbenennen. Sobald irgendwie rc3 oder rc4 auftaucht, kann man das Programm nicht installieren. Ich weiß nicht ob das auch bei anderen Programmen aus dem AUR so ist.

2 Likes

Forum kindly sponsored by