it-swarm.com.de

Wie installiere ich g ++ 4.9 auf Debian Wheezy Armel?

Mein Debian 7 Armel Embedded-System hat derzeit g ++ 4.6, und ich möchte auf g ++ 4.9 aktualisieren, um die neuen C++ 11-Funktionen zu verwenden. Wie mache ich das?

Meine aktuellen sources.list-Inhalte sind:

 
 deb http://security.debian.org/ wheezy/updates main 
 deb-src http://security.debian.org/ wheezy/updates main 
 deb http://ftp.us.debian.org/debian wheezy main nicht frei 
 deb-src http://ftp.us.debian.org/debian wheezy main nicht frei 
 .] 

Eine einfache apt-get-Installation des Pakets funktioniert nicht:

 
 root @ arm: ~ # apt-get install g ++ - 4.9 
 Paketlisten lesen ... Fertig 
 Baum für Abhängigkeiten erstellen 
 Lesezustand Informationen ... Fertig 
 E: Paket g ++ - 4.9 konnte nicht gefunden werden. 
 E: Paket konnte nicht gefunden werden, wenn der Regex 'g ++ - 4.9' 
 
11
user43995

Eine andere Problemumgehung könnte darin bestehen, die g ++ 4.9-Pakete von "Jessie" zu installieren, laut diesem Blogbeitrag . In Kürze müssten Sie APT anweisen, die Jessie-Repos zu verwenden, während Sie das neue G ++ installieren. Bringen Sie zuerst den aktuellen Wheezy auf den neuesten Stand:

Sudo apt-get update
Sudo apt-get upgrade

Dann mache ein Backup :-) und bearbeite /etc/apt/sources.list so, dass du den String "wheezy" durch "jessie" ersetzt:

Sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
Sudo vi /etc/apt/sources.list

Aktualisieren Sie nun die Paketliste und installieren Sie die 4.9-Version von GCC/G ++:

Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9

Danach kehren Sie zur "ursprünglichen" Paketliste zurück:

Sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
Sudo apt-get update

Das ursprüngliche GCC, G ++, bleibt dabei erhalten. Wenn Sie mit der 4.9-Version kompilieren möchten, müssen Sie entweder die Variablen CC und CXX entsprechend festlegen oder die Compiler explizit als gcc-4.9 oder g++-4.9 aufrufen.

15
Laryx Decidua

Wahrscheinlich erforderlich: packaging-dev, ubuntu-dev-tools

Pbuilder einrichten

(Dadurch können Sie ein Paket in einer Chroot-Datei erstellen, ohne Ihr System mit Build-Abhängigkeitspaketen zu belasten.)

Sudo pbuilder create

wenn Sie für eine bestimmte Distribution erstellen möchten (pbuilder verwendet das Build-System-Release in einer Chroot-Umgebung), können Sie pbuilder-dist [precision/oneric/trusy/etc ...] erstellen

Holen Sie sich die Debian-Quelle

pull-debian-source gcc-4.9 [4.9.0-6] 

eine spezifische Debian-Revision ist optional, kann jedoch nützlich sein, wenn Sie experimentelle/instabile/testing/stabile Revisionen abrufen möchten, die Sie auch aus bestimmten Ubuntu-Distributionen ziehen können, indem Sie diese in sources.list als deb-src hinzufügen und Sudo apt-get src verwenden

Paket erstellen

Sudo pbuilder build gcc-4.9_4.9.0-6.dsc

In den heruntergeladenen Dateien befindet sich eine .dsc-Datei. Für die neueste Version von gcc ist gcc-4.9_4.9.0-6.dsc eine Paketbeschreibungsdatei. ororig.tar. [gz/xz] ist das Quell-Tarball.

Lokales Apt-Repository erstellen

mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /path/to/repo
apt-ftp archive packages . > Packages
Sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list`

Hinweis: Sie können diesen Schritt auch mit von überall heruntergeladenen .debs ausführen (überspringen Sie die Schritte 1-3).

Installieren

apt-get update; apt-get install gcc-4.9 g++-4.9
5
user4032676

Anstatt die Jessie-Pakete zu verwenden, wäre es besser zu prüfen, ob es zu Wheezy zurück portiert wurde. Fügen Sie dies Ihrem /etc/apt/sources.list hinzu:

deb http://http.debian.net/debian wheezy-backports main

und mache einen apt-get update und schau, ob du ihn dann installieren kannst.

1
DrHyde

Es gibt einen gcc-4.9-backport jetzt.

Sudo apt-get update && Sudo apt-get install gcc-4.9-backport
0
xqliang