Arch aktualisiert die C++ ABI, diverse AUR-Pakete müssen neu gebaut werden

Avatar von Christoph Langner

3 Min. Lesezeit

32 Aufrufe

Mal eine kleine Ankündigung für alle Nutzer von Arch Linux oder Arch-Derivaten wie Antergos oder Manjaro, die nicht die Arch Linux News lesen oder die Arch Linux Announcements als Mailingliste abonniert haben und daher nicht mitbekommen, dass viele Arch-Nutzer eventuell ein wenig Hand ans System anlegen müssen. Der Hintergrund ist das Update von GCC 5.2…

Berlin Alexanderplatz

Mal eine kleine Ankündigung für alle Nutzer von Arch Linux oder Arch-Derivaten wie Antergos oder Manjaro, die nicht die Arch Linux News lesen oder die Arch Linux Announcements als Mailingliste abonniert haben und daher nicht mitbekommen, dass viele Arch-Nutzer eventuell ein wenig Hand ans System anlegen müssen. Der Hintergrund ist das Update von GCC 5.2 auf die Version 5.3. Dieses Update macht es aufgrund der Umstellung auf eine „Dual-ABI“ erforderlich, dass sämtliche C++-Anwendung neu gebaut werden müssen. Bei aus den normalen Paketquellen installierten Programmen und Bibliotheken erledigen dies die Arch-Entwickler, sodass aktuell viele Updates bei Arch anstehen. Habt ihr allerdings Programme aus dem AUR oder manuell installiert, dann müsst ihr diese nochmal neu bauen.

Wer aktuell auf seinem Arch- oder Antergos-System anstehenden Updates installiert, dem wird mit Sicherheit auffallen, dass derzeit die Pakete zahlreicher Anwendungen ein Update bekommen, auch wenn diese Upstream gar keine Aktualisierung erfahren haben. Der Grund dafür liegt in dem eingangs angesprochenen Update auf GCC-5.3.0 mitsamt einer Dual-ABI libstdc++, das das Rekompilieren sämtlicher C++-Anwendungen erforderlich macht. Auf diesen Umstand weisen die Arch Linux News sowie aber auch das Antergos-Blog hin, entsprechende Arbeiten stehen auch bei anderen Arch-Derivaten wie etwa Manjaro an.

https://antergos.com/blog/c-abi-rebuild/

$ sudo pacman -Syyu
[...]
            frei0r-plugins-1.4-3  gcc-libs-multilib-5.3.0-2
            gcc-multilib-5.3.0-2  gimp-ufraw-0.22-4  git-2.6.4-1
[...]
            wireshark-gtk-2.0.0-2  zeromq-4.1.3-4

Gesamtgröße des Downloads:                 303,05 MiB
Gesamtgröße der zu installierenden Pakete:  1102,65 MiB
Größendifferenz der Aktualisierung:          1,19 MiB

Üblicherweise reicht die Installation der ganz normalen Arch-Updates aus, um das System auf die neue ABI umzustellen — Ihr müsst also keine Angst haben, euer System kaputtzumachen. Allerdings gibt es viele Arch-Nutzer, die auf Pakete aus den Arch-User-Repositories (kurz AUR) zurückgreifen. Damit diese weiter ohne Komplikationen funktionieren, müsst ihr diejenigen AUR-Pakete, die aus den C++-Quellcode gebaut wurden, noch einmal neu kompilieren. Nun könntet ihr sämtliche AUR-Pakete identifizieren und neu einspielen, mit folgendem Skript erspart ihr euch allerdings etwas Arbeit.

#!/bin/bash

while read pkg; do
    mapfile -t files < <(pacman -Qlq $pkg | grep -v /$) grep -Fq libstdc++.so.6 "${files[@]}" 2>/dev/null && echo $pkg
done < <(pacman -Qmq)

Übertragt den Inhalt des Skripts in einen Editor und speichert die Datei beispielsweise als /tmp/abi ab. Anschließend führt ihr das Skript mit bash /tmp/abi aus. Als Ergebnis erhaltet ihr eine Liste mit sämtlichen aus dem AUR installierten Anwendungen, die mit C++ gebaut wurden und somit nun aktualisiert werden müssen. Hier nutze ich pacaur als AUR-Helper, selbstverständlich funktioniert dies auch mit yaourt und Co. Bevor ihr mit dem Bauen beginnt, achtet bitte darauf, dass ihr sämtliche Pacman-Updates installiert habt, sonst macht die Aktion keinen Sinn.

$ bash /tmp/abi
aftershotpro
fritzing
google-chrome
[...]
obs-studio
$ pacaur -S aftershotpro fritzing google-chrome [...] obs-studio

//PS: Führt ihr das Skript nach dem Rekompilieren noch einmal neu aus, dann wird es wieder dasselbe Ergebnis ausspucken. Lasst euch davon nicht verwirren: Das Skript prüft nur, welche AUR-Pakete die libstdc++ nutzen, das ändern sich durch das erneute Bauen der Pakete nicht.

Ähnliche Beiträge

2 Kommentare zu „Arch aktualisiert die C++ ABI, diverse AUR-Pakete müssen neu gebaut werden“

  1. Avatar von Johannes

    Jau – ich hatte schon angefangen, panisch nach Lösungen zu suchen ;).
    Danke erst einmal für den Beitrag. 🙂

  2. Avatar von Boris

    Statt

    echo $pkg

    habe ich

    printf "$pkg "

    verwendet, dann erhält man auch eine Copy&Paste-freundliche Ausgabe! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Markdown wird unterstützt: **fett**, _kursiv_, [Linktext](URL), `Code`, Zeilen mit - für Listen, 1. für nummerierte Listen, dreifache Backticks für Codeblöcke.

Sicherheitsabfrage: Welches Logo ist das?

Über den Blog

Seit 2006 probiere ich hier aus, was Linux, freie Software und die passende Hardware so hergeben – von Distributions-Tests bis zum Raspberry-Pi-Projekt. Praxisnah statt bloßem Nachrichtenticker.

Zuletzt auf Mastodon

Scene Composer in Aktion: Ein Screenshot wird geladen, in verschiedene 3D-Szenen wie Café, Gaming-Desktop, Homeoffice und Podcast-Studio eingesetzt, gedreht und gezoomt. Anschließend wird eine Vorschau gerendert.

Ich finde Screenshots als Aufmacher oft langweilig. In der Vergangenheit habe ich daher oft den Bildschirm im wahrsten Sinne des Wortes abfotografiert. Das bringt etwas Leben in die Artikel –…

Kategorien

Blog unterstützen

Gefällt dir, was du hier liest? Mit einer kleinen Spende hilfst du, Hosting und neue Testgeräte zu finanzieren – und sorgst nebenbei für den nötigen Kaffee.

Linux und Ich — Arch aktualisiert die C++ ABI, diverse AUR-Pakete müssen neu gebaut werden
https://linuxundich.de/gnu-linux/arch-c-abi-aur-kompilieren/ — gedruckt am 26. September 2026