Am Donnerstag, 8. August 2024, 10:25:43 CEST schrieb Martin Burnicki:
Am 08.08.24 um 06:52 schrieb Manfred Haertel, DB3HM:
Herbert Albert schrieb:
Sollte ich dann auch libclang-cpp13, libclang7-13 und libLLVM7-13 deinstallieren?
Wie gesagt, ich gehe genau so vor, dass ich alle alten Versionen von allem was mit clang und llvm zu tun hat, deinstalliere und mir sind noch keine Nachteile dadurch aufgefallen. Dafür der Vorteil, dass danach immer so schön viel Platz auf der Root-Partition ist. :-)
Und ich wüsste auch nicht, wofür man die alten Pakete brauchen sollte.
Wenn diese im Einzelfall doch für ein "exotisches" anderes Paket benötigt werden sollten, sagt einem das ja yast beim Deinstallieren und will dieses Paket mit deinstallieren. Dann kann man immer noch abbrechen.
Ich habe ebenfalls mehrere Versionen von gcc und clang installiert.
Wenn man ein Extra-Kernelmodul out-of-tree compiliert, sollte man die gleiche Compiler-Version verwenden, die auch zum Bau des Kernels verwendet werden. Manche Distros setzen das sogar zwingend voraus.
Auf der anderen Seite, wenn man Software entwickelt, kann es sinnvoll sein, das Projekt mit unterschiedlichen Compilern zu übersetzen, da diese manchmal unterschiedliche Warnungen oder Fehler ausgeben.
make CC=gcc-13 make CC=clang-15
Bei mir (Leap 15.5) ist gcc ein Link auf eine bestimmte Version, und das gleiche gilt für die zugehörigen Hilfsprogramme, z.B.:
$ ls -l /usr/bin/gcc* /usr/bin/gcc -> gcc-7 /usr/bin/gcc-13 /usr/bin/gcc-7 /usr/bin/gcc-ar -> gcc-ar-7 /usr/bin/gcc-ar-13 /usr/bin/gcc-ar-7 /usr/bin/gcc-nm -> gcc-nm-7 /usr/bin/gcc-nm-13 /usr/bin/gcc-nm-7 /usr/bin/gcc-ranlib -> gcc-ranlib-7 /usr/bin/gcc-ranlib-13 /usr/bin/gcc-ranlib-7
Keine Ahnung wodurch die Links gesetzt wurden, aber dadurch wird wohl gcc-Version festgelegt, die standardmäßig verwendet wird.
Ähnliches gilt für clang, wobei man dort die Default-Version wohl durch update-alternatives o.ä. festlegen kann.
/usr/bin/clang -> /etc/alternatives/clang*
Mein Leap war eine Neu-Installation. Wenn man ein älteres System immer aktualisiert hat, könnte ich mir vorstellen, dass /usr/bin/gcc nicht ein Link, sondern direkt eine ausführbare Datei ist, und es dadurch zu Namenskonflikten bei einem Update kommen kann.
Martin
Hallo Martin, jetzt muss ich aufpassen, dass es vor lauter deinstallieren kein Durcheinander gibt. Nachdem ich nun einige clang deinstalliert habe, ist noch vorhanden: *:~ #* ls -l /usr/bin/gcc* lrwxrwxrwx 1 root root 5 Aug 23 2021 /usr/bin/gcc -> gcc-7 -rwxr-xr-x 1 root root 1026488 Feb 7 2024 /usr/bin/gcc-7 lrwxrwxrwx 1 root root 8 Aug 23 2021 /usr/bin/gcc-ar -> gcc-ar-7 -rwxr-xr-x 1 root root 31168 Feb 7 2024 /usr/bin/gcc-ar-7 lrwxrwxrwx 1 root root 8 Aug 23 2021 /usr/bin/gcc-nm -> gcc-nm-7 -rwxr-xr-x 1 root root 31168 Feb 7 2024 /usr/bin/gcc-nm-7 lrwxrwxrwx 1 root root 12 Aug 23 2021 /usr/bin/gcc-ranlib -> gcc-ranlib-7 -rwxr-xr-x 1 root root 31168 Feb 7 2024 /usr/bin/gcc-ranlib-7 -rwxr-xr-x 1 root root 2189 May 25 2018 /usr/bin/gccmakedep *:~ #* zypper se -si llvm Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository ---+----------------------+---------+----------------------+--------+-------------------------------------------- i+ | libLLVM7 | package | 7.0.1-150100.3.22.2 | x86_64 | openSUSE-Leap-15.5-Oss i+ | libLLVM7-32bit | package | 7.0.1-150100.3.22.2 | x86_64 | openSUSE-Leap-15.5-Oss i+ | libLLVM9 | package | 9.0.1-150200.3.6.1 | x86_64 | openSUSE-Leap-15.5-Oss i+ | libLLVM9-32bit | package | 9.0.1-150200.3.6.1 | x86_64 | openSUSE-Leap-15.5-Oss i+ | libLLVM11 | package | 11.0.1-150300.3.8.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | libLLVM11-32bit | package | 11.0.1-150300.3.8.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i | libLLVM13 | package | 13.0.1-bp155.6.38 | x86_64 | openSUSE-Leap-15.5-Oss i+ | libLLVM15 | package | 15.0.7-150500.4.11.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | libLLVM15-32bit | package | 15.0.7-150500.4.11.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | llvm15-gold | package | 15.0.7-150500.4.11.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | postgresql-llvmjit | package | 16-150500.10.6.1 | noarch | Online updates for openSUSE Leap 15.5 (SLE) i+ | postgresql12-llvmjit | package | 12.19-150200.8.60.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | postgresql13-llvmjit | package | 13.15-150200.5.58.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE) i+ | postgresql14-llvmjit | package | 14.12-150200.5.44.1 | x86_64 | Online updates for openSUSE Leap 15.5 (SLE)