Beiträge von dirkski

    Das Script hat noch Fehler. Bei den -33 -43 -und -48 Versionen von gcc kann es nicht richtig funktionieren.
    Auch bei dem Paket gcc?-obj-c++ wird es spätestens schief gehen.


    Ich werde rpm zum Auslesen der Infos nehmen. Ist besser als meine etwas umständliche Art
    die Infos rauszuwurschteln.


    Also: funktioniert momentan nur für gcc[789] korrekt. Und ist nur mit den c- und c++-Compiler getestet.


    Das Script werde ich dann auf gitlab hosten und hier nur den link rein werfen.
    Evtl. morgen schon wenn ich zeit habe...


    cu

    Beispiel Output bei mir (mit Option -A aufgerufen):




    Wenn noch Fehler drin sind einfach melden, aber so reicht das erstmal wenn wieder alle gcc-alternativen gelöscht sind ;-/


    cu

    So funzt es erstmal gut...


    Aufruf mit ./make_alternatives-gcc.sh -A >make_alt.sh und dann die erzeugte Datei prüfen.
    Wenn alle ok ist als root bash make_alt.sh aufrufen...


    Ich hänge noch ein gekürztes Output an...

    Jup. Hab das Script jetzt fertig. Muss noch aufräumen. Macht alles automatisch.... Direkt aus den rpms


    Sowas kommt raus:

    Ergebnis:



    Mit einer Umstellung werden alle binarys und man-pages mit geändert.....


    Muss das Script noch aufräumen und etwas testen. Dann setzte ich das hier rein....


    hth

    Habe schon ne Idee für eine Verbesserung:


    Momentan werden aus einem rpm (hier als Beispiel gcc7) mehrere master-Einträge mit slave für die man-pages erstellt:



    Ich werde das dahingehend ändern das alle Binäries pro rpm-Paket unter einem master als slaves auftauchen. Wenn man dann den gcc z.B per update-alternatives --config gcc ändert werden auch alle weiteren binarys aus dem rpm geändert...


    Hier in dem Fall dann gcc-nm gcov etc....


    Momentan müsste man dann alles von Hand durchgehen, nicht schön...


    cu

    Guten Morgen!
    Ja, nach der Quelle habe ich mich gerichtet und die links werden so aufgebaut. Es wird noch nach den passenden man-pages geschaut und als --slave dran gehangen. Nur der Eintrag für 'cc' habe ich von Hand am Ende des Scripts angefügt. Mit der Priorität viel mir gerade nichts besseres ein.... neuer = höhere Priorität. So brauch ich das hier. Hab allerdings momentan wenig Zeit um am Script weiter zu arbeiten. Grobe Fehler werde ich aber direkt beseitigen, einfach melden.


    hth

    Hier der Output bei mir als normaler User. Dann kommt eine Fehlermeldung. Das ist normal weil das script update-alternatives nicht findet, sie wird nach stderr geschrieben. Stört also nicht wenn man die Ausgabe in eine Datei umleitet, daher hier im Output nicht vorhanden. Aufruf war ./make_alternatives-gcc.sh -A :


    hth,
    dirkski

    Moin, hatte ich auch. gcc7 vom Aktualisierungs-Repo (OSS) und gcc8 anfangs vom devel:/gcc. Erst ging es nicht, dann ging es. Möglicherweise hatte ich danach den gcc8 vom Aktualisierungs-Repo. Dort tauchte er später auf.
    Jetzt hab ich den gcc9 aus devel:/gcc installiert und alle Einträge in /etc/alternatives sind weg :-/ Auch de- und neuinstallieren schaffte keine Abhilfe...


    Habe ein kleines Script geschrieben das alle installierten rpms durchsucht die mit cpp/gcc beginnen gefolgt von 1-2 Zahlen. Ist noch nicht sonderlich getestet, hat bei mir aber alles richtig gemacht. gcc10 dürfte nicht mehr lange auf sich warten, sowas ist aber noch nicht getestet. mit gcc7/8/9 funzt es.
    Die Pakete werden nach /bin und /usr/bin-Binäries durchsucht und mit update-alternatives --install gesetzt. Als Priorität wird Version*10/2 gerechnet, die man-pages werden als
    --slaves angehangen. Siehe man update-alternatives.
    Bei Aufruf als normaler User spuckt es ein bash-script aus. Am besten in eine Datei umleiten und prüfen. Dann diese erzeugte Datei als root ausführen.
    Als root werden die befehle direkt ausgeführt.


    Das Script ist nicht sonderlich getestet, habe es gestern geschrieben. Also besser als normaler User ausführen und prüfen!
    Auch gibt es evtl. Ärger wenn noch Einträge in /etc/alternatives/ vorhanden sind. Evtl. vorher löschen.


    Bei mir war alles weg. Mit ls /etc/alternatives war nichts zu finden und update-alternatives --query gcc fand auch nichts


    Bei ./make_alternatives-gcc.sh -A sucht das script selbst nach Paketen,
    bei ./make_alternatives-gcc.sh gcc8-c++ cpp8 gcc8 z.B. werden nur diese drei Pakete verarbeitet. Nur Pakete mit Version angeben, keine generischen. Also gcc8 ist ok, gcc ist falsch. dürfte aber nichts passieren.


    Mein erster Beitrag. Ich sehe keine Vorschau-Funktion :-/



    Das bash-Script:


    PS: Mein Englisch ist grausam, aber wenigstens 'ne Hilfs-Option mit -h/--help :)




    hth,
    dirkski