Ubuntu'da gcc / g ++ 4.9 yükleniyor mu? [çift]

78

En son gcc ve g ++ sürümünü nasıl yüklerim?

C ++ 11 ve C ++ 1y'nin çeşitli özelliklerini kullanıyorum; bu yüzden buna ihtiyacım var.

    
sordu A T 02.03.2014 04:05

7 cevap

107

Ubuntu Toolchain PPA’nın GCC’nin upstream sürümüne yakın bir şekilde kurabilirsiniz: İşte

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9

Ubuntu 14.04 üzerinde test edildi.

    
verilen cevap Vladimir Rutsky 28.04.2014 10:14
42

giriş

bir adama balık vb. öğretin.

Kaynak paketi nasıl oluşturulur ve yerel bir depodan uygun bir şekilde sunulabilir. Bu, bağımlılıkların karşılanması koşuluyla herhangi bir dağıtım üzerinde çalışacaktır. Bu yöntem, her paket için derzleri kurmanızı ve makinenizi gereksiz paketlerle kirletmenizi gerektirmez; bu, debian deneyinde güncellendikçe paketlere ayak uydurmanızı sağlar. . Bunu bir kez yapmak sadece birkaç dakika alır ve daha sonra, ppa'yı sizin için paketlemek veya farklı bir sürü .debs indirmek için diğer kişilere güvenmeden ihtiyaç duyduğunuz paketi yeniden oluşturmak için yeniden kullanılabilir.

Yapımın yararları, raw .debs'i debian'dan çekmenin yararı, dağıtımınızdaki paketlere karşı, borç dağılımı için yapı bağımlılıkları olarak kullanılandan sürüm / revizyonla farklılık gösterebilen paketler oluşturacak olmasıdır. Bu, geri-paket paketleri için az ya da çok bir süreçtir. Herhangi bir dağıtımda hedeflenen paketleri oluşturmak için herhangi bir ubuntu dağıtımını da kullanabilirsiniz (bu durumda hedef, standart depo paketlerine karşı oluşturmak anlamına gelir).

Temel-Nasıl Yapılır-Build-a-deb

(ppa yüklemesi için değil - bunun lansmandan gelen istekleri vardır

Muhtemelen gerekli: packaging-dev (diğerleri arasında build-essential pubilder ubuntu-dev-tools çeker)

  1. Pbuilder'ı kurun (bu, sisteminizi yapı bağımlılık paketleriyle kirletmeden bir chroot'ta bir paket oluşturmanıza olanak sağlar)

    • sudo pbuilder create ,
    • belirli bir dağıtım için oluşturmak istiyorsanız, (pusilder, chroot'ta yapı sistemi sürümünü kullanır) pbuilder-dist [precise/oneric/trusy/etc...] create kullanabilirsiniz
  2. Debian kaynağını al

    • pull-debian-source gcc-4.9 [4.9.0-6] özel debian revizyonu isteğe bağlıdır, ancak deneysel / dengesiz / test / kararlı düzeltmeler çekmek istiyorsanız yararlı olabilir.
    • Ayrıca, bunları bir deb-src olarak sources.list dosyasına ekleyerek ve% kullanarak belirli ubuntu dağıtımlarından yararlanabilirsiniz . % co_de
  3. Yapı Paketi

    • sudo apt-get src
    • İndirilen dosyalarda sudo pbuilder build gcc-4.9_4.9.0-6.dsc dosyası var, en yeni gcc için bir paket tanımlayıcı dosyası olan .dsc . gcc-4.9_4.9.0-6.dsc kaynak tarball'tır.
  4. Yerel Apt depolayıcı oluşturun

    • .orig.tar.[gz/xz]
    • mkdir /convenient/place/for/repo
    • (repo dizininde olduğunuzu varsayarak) cp /var/cache/pbuilder/result/* /path/to/repo
    • (bunu yapmanın pek çok yolundan biri) apt-ftp archive packages . > Packages
    • Ayrıca, bu adımı, herhangi bir yerden indirilen .debs ile de yapabilirsiniz (adım 1-3'ü atlayın)
  5. Yükle

    • sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list

Ekstra Sayılar

Kolay backporting Bağımlılıklar

Paketler oluştururken bağımlılıkları gidermek için kendinden derlenmiş paketleri kullanma. (% Co_de% apt-get update; apt-get install gcc-4.9 g++-4.9 (yerel paket repo için kesin) ve ~/pbuilder (hook betikleri için)) klasörleriyle ayarladım.

Aşağıdakileri ~/pbuilder/precise_local dosyanıza ekleyin

OTHERMIRROR="deb [trusted=yes] file:///home/user/pbuilder/precise_local ./"

BINDMOUNTS="/home/user/pbuilder/precise_local" 

HOOKDIR="/home/user/pbuilder/precise_hooks"

EXTRAPACKAGES="apt-utils"

~/pbuilder/precise_hooks dosyası ~/.pbuilderrc yaratır (tipik unix / linux modasında, prefix precise_hooks betiğin bağlandığı zaman% ko_de% kendinden empoze edilir ve D05local sadece ismidir. Sadece bir kanca var, D önek olarak adlandırılan şey önemli değil

komut dosyası tek linerdir

05

Artık local dizinine yerleştirilen tüm paketler, yapıya bağımlı olacak. Geriye doğru ihtiyaç duyan bağımlılıkları olan paketleri geri yüklerken, bağımlılık ağacını yerel olarak kurmak çok yararlıdır.

Sanal makine çözümü

Bunu daha da temiz bir şekilde yapmak için, bu karışıklığı hapse atmak için bir VM görüntüsü veya LXC konteyneri kullanın.

Özel yamaları uygulama

D kullanarak çoğu debian paketinde özel düzeltme ekleri uygulayabilirsiniz, yorgan yamaları çoğu VCS'den diffs kullanabilir (bkz .: yorgan kullanarak )

Ek bir adım var, (cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages) ve precise_local 'sini yeniden oluşturmanız gerekiyor. Bildiğim en temiz quilt IMHO (git-build-package ve diğer yardımcı scriptler ile karşılaştırıldığında) en yüksek başarı oranına sahiptir ve .dsc 'yi doğrudan çağırmaktan çok daha temizdir ( .debian.tar.gz = pazar kanonik's VCS)

  1. bzr-builddeb
  2. ( debuild 'nin çıkarıldığını ve bzr ' nin çıkarıldığını ve içine yerleştirildiğini varsayarak
    • sudo apt-get install bzr-builddeb
    • .orig.tar.gz
    • .debian.tar.gz
  3. (İSTEĞE BAĞLI)
    • bzr init değerini değiştir
    • bzr add ya ekleyiniz ve bzr commit değerini değiştiriniz (yorgan ayrıca yamalar eklemek için ya da sizin için değişiklik yapmanıza izin verir, belgelere bakın)
    • debian/changelog
    • debian/patches/
  4. debian/patches/series Bu, kaynak dosyayı yeniden oluşturur ve imzasız olarak bırakır (PPA / dağıtım yükleme için gpg imzalaması gerekir, ancak özel yerel depolar için gerekli değildir)
  5. bzr add debian/ Yukarıdaki 3. Adımdan devam edin.

1-4 arasındaki adımlar, bir PPA'ya yüklemeniz gereken oldukça fazladır (ikili dosyaları almazlar), ancak launchpad bürokrasisini tatmin etmek için bazı adımlara ihtiyacınız vardır (bu yanıtı bir açıklama sağlar, bu birinin bazı bağlantıları vardır.)

    
verilen cevap crasic 12.06.2014 18:03
26

yükleyin

sudo su -
apt-get install build-essential
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install gcc-4.9 g++-4.9 cpp-4.9

bundan sonra gcc sürümünü kontrol ederseniz eski sürümü bulacaksınız

gcc --version

böylece basit semboliklerle düzeltebiliriz

cd /usr/bin
rm gcc g++ cpp
ln -s gcc-4.9 gcc
ln -s g++-4.9 g++
ln -s cpp-4.9 cpp

veya

update-alternatives kullanarak güncelleyebilirsiniz

// Aslında sembolik & amp; Bunun işe yarayacağını biliyorum ama sorun olmadan onu sembolik olarak kullanabilirsiniz // yanılıyorsam lütfen beni düzeltin

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40 --slave /usr/bin/gcc gcc /usr/bin/gcc-4.9
update-alternatives --config gcc
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 40 --slave /usr/bin/cpp cpp /usr/bin/cpp-4.9
update-alternatives --config cpp
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
update-alternatives --config g++

veya

ile sadece derleyebilirsiniz
/usr/bin/gcc4.9 filename.c

gcc-4.9 sadece gcc-4.8 "ubuntu 14.04 gcc gibidir" büyük bir değer değil

    
verilen cevap hwez 05.08.2014 10:27
8

Debian bir paket sunuyor: İşte - Ubuntu / Debian uyumluluğu ile ilgili sorunlara yol açmamak için; Bunu kaynak listenize eklemeyin.

Bunun yerine, hepsini indirin:

binutils_2.25-5_amd64.deb
cpp_4.9.2-2_amd64.deb
g++_4.9.2-2_amd64.deb
gcc_4.9.2-2_amd64.deb
gcc-4.9-base_4.9.2-10_amd64.deb
libasan1_4.9.2-10_amd64.deb
libatomic1_4.9.2-10_amd64.deb
libcilkrts5_4.9.2-10_amd64.deb
libgcc1_4.9.2-10_amd64.deb
libgcc-4.9-dev_4.9.2-10_amd64.deb
libgomp1_4.9.2-10_amd64.deb
libitm1_4.9.2-10_amd64.deb
liblsan0_4.9.2-10_amd64.deb 
libmpfr4_3.1.2-2_amd64.deb
libquadmath0_4.9.2-10_amd64.deb
libstdc++-4.9-dev_4.9.2-10_amd64.deb
libstdc++6
libtsan0_4.9.2-10_amd64.deb
libubsan0_4.9.2-10_amd64.deb

Debian'ın sunucularından, örneğin:

İşte

Ardından bunları yükleyin, ör .: $ for package in *.deb; do sudo dpkg --install "$package"; done

[Sadece tüm bağımlılıklar kapanıncaya kadar bash döngüsünü birkaç kez çalıştırmak daha kolay!]

    
verilen cevap A T 02.03.2014 04:05
2

Şu anda (20141102) PPA'yı eklemek ve yukarıdaki co_de% komutunu çağırmak, önerilen paketlerin çoğunu basacaktır. Libvtv0-dbg (bağımlılık çatışması olan) haricinde hepsini yükleyin:

apt-get install gcc-4.9 g++-4.9 cpp-4.9 gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg lib32stdc++6-4.9-dbg libx32stdc++6-4.9-dbg

(ilginizi çekmiyorsa -dbg paketlerini atlayın) ve sonra apt-get install gcc-4.9 g++-4.9 cpp-4.9 yapın. Bu son adım temel olarak gcc-4.8'inizi gcc-4.9 ile değiştirecek (ancak eski sürümü kaldırmayacak) ve aynı zamanda güncel fortran derleyicileri de çekecektir.

    
verilen cevap RJVB 02.11.2014 20:09
2

Göndermiş olduğunuz hata mesajını geçmesi için gcc-4.9-base paketinin sürümünü zorlamak zorunda kaldım. Sonra işlenmiş

yükleniyor
sudo apt-get install gcc-4.9-base=4.9.2-0ubuntu1~14.04

Artık normali yapabilirsiniz

sudo apt-get install gcc-4.9
    
verilen cevap mark.kedzierski 13.04.2015 18:51
2

GCC GNU'yu Yükle 4.9

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install gcc-4.9

Önceki gcc sürümünü varsayılan uygulamalar listesinden kaldırın (varsa)

sudo update-alternatives --remove-all gcc

GCC’yi sistemde varsayılan derleyici yapalım 4.9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --config gcc

En son güncelleme GCC 4.9.1, GCC 4.9.0'daki önceki düzeltmeden bu yana düzeltilen 88'den fazla hata ile GCC 4.9.0'daki önemli hatalar ve regresyonlar için önemli düzeltmeler içeren bir hata düzeltme sürümüdür. Buna ek olarak, GCC 4.9.1 sürümü, sadece C ve C ++ yerine, Fortran'da da OpenMP 4.0'ı desteklemektedir.

Not: ubuntu 14.04 LTS'de kontrol edildi

    
verilen cevap Swap L 25.08.2015 07:56

Etiketlerdeki diğer soruları oku