Aus bestimmten Gründen muss ich mein GCC mithilfe von auf Version 2.x downgraden apt-get
(ohne die Quelle herunterzuladen und zu kompilieren).
Ist das möglich? Wenn ja, wie kann ich die Repository-Adresse finden und über installieren apt-get
?
Danke im Voraus.
ubuntu
gcc
repository
apt
Afshin Mehrabani
quelle
quelle
Antworten:
Was Sie fragen, ist praktisch unmöglich, und in den nächsten Absätzen finden Sie eine Erklärung des Warum und einige mögliche Problemumgehungen.
Während gcc, glibc, der Linux-Kernel und andere verschiedene Systembibliotheken nicht so eng miteinander verbunden sind wie in FreeBSD und OpenBSD, haben sie eine parallele Entwicklung. Als die letzten Support-Ausfälle für gcc 2.95 im Jahr 2005 im Kernel ausfielen, wurde dies auch in den zentralen Systembibliotheken unterstützt.
Nur eine 2.x-Version von gcc auf einem modernen System zu installieren, wäre aufgrund aller damit verbundenen Abhängigkeiten eine erhebliche Hürde - es hängt von älteren Versionen der Systembibliotheken ab, von denen die Linux-Community vor langer Zeit ausgegangen ist und eine Situation von erstellt hat "Hölle der Abhängigkeiten", selbst wenn Sie von der Quelle aus installieren, und erst recht nicht von Paketen aus - die Abhängigkeiten allein würden Sie wahrscheinlich zwingen, ein Downgrade über ein Dutzend Generationen oder mehr Ihrer Linux-Distribution auf eine Version durchzuführen, die nicht nur nicht mehr unterstützt wird, sondern auch auch schrecklich unsicher.
Nach der Installation von gcc haben Sie immer noch das Problem, dass Ihre Anwendung kompiliert werden muss. Die Systembibliotheken haben sich genauso stark oder stärker geändert als die von gcc, sodass Sie diesen Vorgang für Dutzende erneut durchführen müssen. vielleicht Hunderte anderer Abhängigkeiten. All diese Abhängigkeiten werden natürlich bereits an anderer Stelle im System verwendet, sodass keine vernünftige Möglichkeit besteht, die richtigen Versionen davon zu installieren.
Sie sehen sich wahrscheinlich Tausende, möglicherweise Hunderttausende von Arbeitsstunden an, bevor Sie die Chance haben, alle Teile wieder zum Laufen zu bringen, und auf dem Weg dorthin hätten Sie Ihr System in etwas verwandelt, das so unhaltbar und instabil ist, dass es sogar funktioniert Ein Neustart des Systems wäre eine Übung in blindem Glauben, und Sie hätten mehr als ein Jahrzehnt schwerwiegender Sicherheitslücken in Ihrem System wieder eingeführt.
Problemumgehungen
Alle Hoffnung ist jedoch nicht verloren. Die kurzfristigen Lösungen sind eine Chroot oder Virtualisierung. Eine der Antworten von https://stackoverflow.com/questions/8176798/installing-gcc-2-95-3-in-ubuntu-10-04-3 erwähnt, dass Debian Etch eine der letzten Distributionen war, die gcc unterstützt haben 2,95. Das Erstellen einer Chroot von Debian Etch oder einer virtuellen Maschine sollte möglich sein. Diese Distribution hat zuletzt 2010 Sicherheitsunterstützung erhalten, sodass Sie immer noch nach Sicherheitslücken im Wert von 4 Jahren suchen.
Die alten Versionen von Debian, die Sie dafür benötigen würden, sind nur unter https://archive.debian.org/debian zu finden, da sie zu diesem Zeitpunkt überhaupt nicht mehr gepflegt werden.
Debootstrap ( https://wiki.debian.org/Debootstrap ) scheint weiterhin in der Lage zu sein, Etch zu installieren, was es ermöglicht, eine funktionierende Chroot zu erstellen, in der Sie alte Software kompilieren und ausführen können.
Angesichts der Auswirkungen auf die Sicherheit muss die langfristige Lösung darin bestehen, den Code so schnell wie möglich zu aktualisieren, damit er auf einer modernen, derzeit unterstützten Distribution kompiliert werden kann. Dies ist absolut wichtig, es sei denn, die betreffende Software wird für einen einmaligen Zweck verwendet, z. B. für die Wiederherstellung von Daten aus einer älteren Version eines Programms.
Eine praktikable Lösung, um diesen Portierungsprozess handhabbar zu machen, könnte darin bestehen, schrittweise voranzukommen, voranzukommen und die Kompilierungsprobleme für jede dazwischenliegende Debian-Veröffentlichung zu beheben, bevor der Code für die neueste Ubuntu-Veröffentlichung endgültig aktualisiert wird. Da Debian einen viel längeren Veröffentlichungszyklus als Ubuntu und eine anständige Vorwärtskompatibilität aufweist, sollte dies keine zu unüberwindliche Aufgabe sein und wird mit ziemlicher Sicherheit praktikabler sein, als gcc 2.x auf das neueste Ubuntu zu portieren.
Bearbeiten: Etch ist eigentlich perfekt für einen Großteil der Portierungsbemühungen - es unterstützt Versionen von gcc von 2,95 bis 4,1, wodurch es möglich ist, Ihren alten Code in kleinen Schritten zu aktualisieren.
quelle