rhel 6 x86_64 पर नवीनतम gcc स्थापित करें


13

मेरे पास gc संस्करण 4.4.7 के साथ RHEL 6 सर्वर है। मैं gcc संस्करण को अद्यतन करना चाहता था (मुझे लगता है कि वर्तमान एक 4.8 है)। यम अद्यतन काम नहीं करता है। इसके अलावा, CentOS पर एक समान प्रश्न के लिए SO उत्तर काम नहीं करता है। मैंने स्वीकृत उत्तर में विधियों का पालन किया, आउटपुट है "परीक्षण-1.1-devtools-6 के लिए रिपॉजिटरी डेटा प्राप्त करने में त्रुटि, रिपॉजिटरी नहीं मिली"। इसके अलावा, मुझे यकीन नहीं है कि क्या मुझे सेंटो के लिए तरीकों का पालन करना चाहिए।

क्या किसी ने RHEL 6 x86_64 सर्वर में अपडेट किया है?


क्या आपने इसे इस रेपो से स्थापित करने का प्रयास किया? hop5.in/yum/el6/repoview/gcc.html । ये 4.8.2 के बाइनरी बिल्ड हैं। आपको उन्हें स्थापित करने के लिए 6.4 सेंटोस पर होने की संभावना होगी, जो कि आपका मुद्दा हो सकता है।
slm

स्रोत से एक विकल्प स्थापित कर रहा है?
mcc

यदि आवश्यक हो तो हाँ मैं स्रोत से स्थापित कर सकता हूं
रिवू

अच्छा प्रश्न। नीचे वाला कौन है? :(
ओथियस

hop5.in अब जाहिरा तौर पर किसी भी चीज़ का वैध एल 6 रेपो नहीं है। @ एसएलएम
ओथियस

जवाबों:


4

अब तक की सबसे आसान विधि एक बाइनरी बिल्ड का उपयोग करना है जो एक YUM रिपॉजिटरी के माध्यम से प्रदान की जाती है। ऐसा ही एक विकल्प हॉप 5.in रिपॉजिटरी का उपयोग करना होगा । विशेष रूप से यह पृष्ठ: gcc - विभिन्न संकलक (C, C ++, Objective-C, Java, ...) । वे 4.8.2 प्रदान कर रहे हैं जो CentOS 6.3 या 6.4 के साथ काम करना चाहिए। आप पहले एक अद्यतन करना चाहते हो सकता है:

$ sudo yum update

अन्य विकल्प डेवलपर टूलसेट का उपयोग करना होगा , विशेष रूप से वैज्ञानिक लिनक्स द्वारा प्रदान किए गए बंडल संस्करण।

स्थापना निर्देशों के बाद आप मूल रूप से निम्नलिखित 2 चरण करेंगे:

रिपॉजिटरी जोड़ें
$ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo \
    http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
$ wget -O /etc/yum.repos.d/slc5-devtoolset.repo \
    http://linuxsoft.cern.ch/cern/devtoolset/slc5-devtoolset.repo
भक्ति स्थापित करें
$ sudo yum install devtoolset-2

अपडेट # 1

हॉप 5.in YUM रिपॉजिटरी को हटा दिया गया प्रतीत होता है, इसलिए उपर्युक्त हाइलाइट किए गए devtoolset पद्धति का उपयोग करने के लिए एकमात्र सहारा है।

डेविटसेट के माध्यम से स्थापित करने के लिए अतिरिक्त उदाहरण इस GitHub Gist में उजागर किए गए हैं: CentOS 6 पर gcc 4.8 और Linuxbrew को स्थापित करना


3
मैंने पहले लिंक से डाउनलोड किए गए आरपीएम को स्थापित करने की कोशिश की, "त्रुटि: विफल निर्भरताएं: cpp = 4.8.2-8.el6 gcc-4.8.2-8.el6.x86_64 ..." द्वारा आवश्यक है। डेवलपर टूलसेट के लिए, यह "कहते हैं people.centos.org/tru/devtools-1.1/6Server/x86_64/RPMS/repodata/... 404 नहीं मिला": अनुरोध किया गया URL से त्रुटि आई -: [errno 14] PYCURL त्रुटि 22 "। मुझे लगता है कि समस्या यह है कि लिंक में 6 के बजाय 6Server है। मुझे नहीं पता कि इसे कैसे ठीक किया जाए।
rivu

hop.in के पास अब वह नहीं है जो मुझे लगता है कि आपको लगता है कि यह है।
ओथियस

1
अतिरिक्त चरण संभवतः आवश्यक है: से कर्नेल कुंजी डाउनलोड करना और आयात करना http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern। मुझे लगता है कि साइट में https नहीं है। स्किलिनक्स जाने का रास्ता। आपके द्वारा इसे डाउनलोड करने के बाद (tmp directory या whever), इसे इम्पोर्ट करें rpm --import RPM-GPG-KEY-cernऔर फिर करेंyum install.
Otheus

@Otheus - धन्यवाद, मुझे नफरत है जब repos इस तरह से धूल को काटते हैं, तो इंटरव्यू 8-8 पर सामग्री का एक गुच्छा बर्बाद कर देता है)।
SLM

1
वर्थ ने उल्लेख किया कि devtoolset-2-gcc(मेरे लिए कम से कम) ने एक दर्जन पैकेज और 35 एमबी डाउनलोड, बनाम 280 पैकेज और 575 एमबी डाउनलोड स्थापित किए yum install devtoolset-2
miken32


2

मैंने अब कई संस्करणों के लिए rhel6 के लिए नए gcc संस्करण बनाए हैं (4.7.x से 5.3.1 तक)।

यह प्रक्रिया कोहाजी पर पाए गए रेडहट के जकब जेलाइनक फेडोरा जीसीसी बिल्ड्स के लिए काफी आसान है

आपको जो भी आवश्यक संस्करण के लिए नवीनतम src rpm को पकड़ो (जैसे 5.3.1 )।

मूल रूप से आप rpm -qpR src.rpmकिसी भी संस्करण आवश्यकताओं की तलाश जारी करके बिल्ड आवश्यकताओं का निर्धारण करके शुरू करेंगे :

rpm -qpR gcc-5.3.1-4.fc23.src.rpm | grep -E '= [[:digit:]]'
binutils >= 2.24
doxygen >= 1.7.1
elfutils-devel >= 0.147
elfutils-libelf-devel >= 0.147
gcc-gnat >= 3.1
glibc-devel >= 2.4.90-13
gmp-devel >= 4.1.2-8
isl = 0.14
isl-devel = 0.14
libgnat >= 3.1
libmpc-devel >= 0.8.1
mpfr-devel >= 2.2.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
systemtap-sdt-devel >= 1.3

अब थकाऊ भाग आता है - कोई भी पैकेज जिसमें यम फ्रॉस्ट द्वारा प्रदान किए गए संस्करण से अधिक है, जो आपके डिस्ट्रो को कोजी से डाउनलोड करने की आवश्यकता है , और जब तक सभी निर्भरता आवश्यकताओं को पूरा नहीं किया जाता है तब तक इस प्रक्रिया को दोहराएं।

मैं धोखा देता हूं, बी.टी.वी.
मैं आमतौर पर आरपीएम को रीपैकेज करता हूं जिसमें सही तरीके से रखे गए और नामित आवश्यकताओं का उपयोग करने के लिए ग्नू सुविधा का उपयोग करके एक सही बिल्ड ट्री होता है, इसलिए gmp / mpc / mpfr / isl (क्लॉग की अब आवश्यकता नहीं है) सही पथ में डाउनलोड और अनटर्ड हैं, और नया (फूला हुआ) टार को उनके पैकेज्ड (आरपीएम) संस्करणों पर कोई निर्भरता के साथ एक नए src rpm (फ़ाइल में मामूली बदलाव के साथ) में फिर से बनाया गया है। चूंकि मुझे एडीए का उपयोग करने वाला कोई भी नहीं पता है, मैं बस सट्टेबाजी से gnat से संबंधित भागों को हटा देता हूं, आगे की निर्माण प्रक्रिया को सरल करता हूं, मुझे चिंता करने के लिए सिर्फ बिनुतिल के साथ छोड़ देता है।
Gcc वास्तव में पुराने Binutils के साथ निर्माण कर सकता है, इसलिए यदि आप जल्दबाजी में हैं, तो अपने सिस्टम पर पहले से मौजूद Binutils संस्करण की आवश्यकता के लिए नमूना को संपादित करें। इसका परिणाम थोड़ा अपंग होगा, लेकिन ज्यादातर यह काफी अच्छा प्रदर्शन करेगा।
यह ज्यादातर अच्छी तरह से काम करता है।

अद्यतन १

Src rpm खोलने के लिए सबसे सरल विधि शायद yum है rpm स्थापित करें और ~ / rpmbuild के तहत सब कुछ एक्सेस करें, लेकिन मुझे पसंद है

mkdir gcc-5.3.1-4.fc23
cd gcc-5.3.1-4.fc23
rpm2cpio ../gcc-5.3.1-4.fc23.src.rpm | cpio -id
tar xf gcc-5.3.1-20160212.tar.bz2
cd gcc-5.3.1-20160212
contrib/download_prerequisites
cd ..
tar caf gcc-5.3.1-20160212.tar.bz2 gcc-5.3.1-20160212
rm -rf gcc-5.3.1-20160212
# remove gnat
sed -i '/%global build_ada 1/ s/1/0/' gcc.spec
sed -i '/%if !%{build_ada}/,/%endif/ s/^/#/' gcc.spec
# remove gmp/mpfr/mpc dependencies
sed -i '/BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1/ s/.*//' gcc.spec
# remove isl dependency
sed -i '/BuildRequires: isl = %{isl_version}/,/Requires: isl-devel = %{isl_version}/ s/^/#/' gcc.spec
# Either build binutils as I do, or lower requirements
sed -i '/Requires: binutils/ s/2.24/2.20/' gcc.spec
# Make sure you don't break on gcc-java
sed -i '/gcc-java/ s/^/#/' gcc.spec

आपके पास उपसर्ग सेट करने का विकल्प भी है, इसलिए यह आरपीएम डिस्ट्रो आरपीएम को तोड़े बिना साइड-बाय-साइड स्थापित हो जाएगा (लेकिन इसके लिए नाम बदलने की आवश्यकता है, और आंतरिक पैकेज नामों में कुछ संशोधनों की आवश्यकता है)। मैं आमतौर पर एक पर्यावरण-मॉड्यूल जोड़ता हूं, इसलिए मैं आरसीएम के हिस्से के रूप में इस gcc को आवश्यक के रूप में लोड कर सकता हूं (समान काम करता हूं) (इसलिए मैं एक नई निर्भरता जोड़ता हूं)।

अंत में rpmbuild ट्री बनाएं और उन फ़ाइलों को रखें जहाँ हे को जाना चाहिए और निर्माण करना चाहिए:

yum install rpmdevtools rpm-build
rpmdev-setuptree
cp * ~/rpmbuild/SOURCES/
mv ~/rpmbuild/{SOURCES,SPECS}/gcc.spec
rpmbuild -ba ~/rpmbuild/SPECS/gcc.spec

अद्यतन २

आम तौर पर किसी को विकास के लिए "सर्वर" ओएस का उपयोग नहीं करना चाहिए - यही कारण है कि आपके पास फेडोरा है जो पहले से ही नवीनतम जीसीसी के साथ आता है। मेरी कुछ विशेष आवश्यकताएं हैं, लेकिन आपको वास्तव में कार्य के लिए सही टूल का उपयोग करने पर विचार करना चाहिए - उत्पादन एप्लिकेशन चलाने के लिए rhel / centos, उन ऐप्स को विकसित करने के लिए फेडोरा आदि।


यह विनम्र है जब एक कारण देने के लिए नीचे मतदान।
Dani_l

0

अरे दोस्तों यहाँ मैंने क्या किया (खरोंच से संकलन)। एक और उत्तर के लिए कोई अपराध नहीं, मुझे यकीन है कि यह काम करता है, लेकिन जीसीसी सुरक्षा के लिए विशेष रूप से एक बड़ी बात है, इसलिए मैं मूल और आधिकारिक स्रोत से संकलन करना पसंद करता हूं:

yum -y install gmp-devel mpfr-devel libmpc-devel glibc-devel glibc-devel.i686 zip unzip jar
wget http://mirrors.kernel.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar -zxvf gcc-5.5.0.tar.gz
cd gcc-5.5.0
./configure
make
make install
yum remove gcc
rm -rf /usr/bin/gcc
rm -rf /usr/bin/c++
rm -rf /usr/bin/cc
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.5.0 /usr/bin/gcc
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-c++ /usr/bin/c++
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc /usr/bin/cc

स्रोत: http://realtechtalk.com/GCC_5_on_Centos_6_How_To_Install-19b-icles


सुरक्षा एक बड़ी बात है, फिर भी आप गैर-एचटीटीपीएस स्थान से स्थापित होते हैं :)?
ढिग

उस समय शीशों पर कोई SSL सक्षम था।
अरीब सू यासिर

-1

आप gcc के स्रोत buid.GCC की आवश्यकता कर सकते हैं, पूर्व आवश्यक के रूप में MPC, MPFR और GMP की आवश्यकता होती है। GCC 4.8 के लिए, संस्करण निर्भरताएँ MPC 0.8 GMP 6.0 MPFR 2.4.2 हैं। स्रोत पैकेज लोड करें, और सभी / usr / lib के तहत इंस्टॉल करें । स्थापना का क्रम gmp, mpfr, mpc है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.