Instaloni një version (më të vjetër) të GCC të mbështetur zyrtarisht
Instaloni një version më të ri të GCC nga burimi
CentOS ndjek zhvillimin e Red Hat Enterprise Linux (RHEL). RHEL përpiqet të jetë një platformë e qëndrueshme serveri, që do të thotë se nuk nxiton të përfshijë versionet më të fundit të çdo pakete softuerike.
Që nga shkrimi i këtij artikulli, CentOS 6 shpërndan zyrtarisht GCC v4.4.7. Sidoqoftë, GCC v5.1 u lëshua së fundmi. Para kësaj, v4.9.2 ishte në dispozicion.
Sugjerimi zyrtar për të pasur nevojë për një version më të fundit të GCC është që ju duhet të konsideroni një shpërndarje të ndryshme UNIX e cila është më e fokusuar në mbështetjen e versioneve më të fundit të paketave softuerike.
Për fat të mirë, ju jeni në gjendje të instaloni një version më të fundit të GCC në CentOS, duke e lënë versionin e vjetër ende të instaluar. Kjo devijon nga përdorimi thjesht i softuerit të shpërndarë zyrtarisht, por ndonjëherë mund të ndiheni sikur keni pak zgjedhje. Mund të hasni në disa komplikime; për shembull, nëse po instaloni module të kernelit të palëve të treta, ato duhet të kompilohen duke përdorur të njëjtin version të GCC të përdorur për të ndërtuar kernelin tuaj.
Ky artikull përshkruan se si të instaloni versionin CentOS 6 të mbështetur zyrtarisht të GCC dhe si të instaloni gjithashtu një version më të ri. Ky artikull supozon që ju keni një CentOS 6 VPS të sapo instaluar, megjithëse sigurisht që mund të ndiqni udhëzimet për një VPS ekzistues.
Instaloni një version (më të vjetër) të GCC të mbështetur zyrtarisht
Edhe nëse dëshironi të instaloni një version më të ri të GCC nga burimi, vetë GCC është shkruar në C++. Prandaj, së pari duhet të instaloni një përpilues më të vjetër C++.
Hyni në VPS-në tuaj, ose duke klikuar "Shiko konsolën" në panelin e kontrollit Vultr, ose me SSH, nëse e keni konfiguruar atë.
(a) Hyni si rrënjë.
(b) Krijoni llogarinë tuaj të përdoruesit dhe jepni një fjalëkalim.
adduser <username>
passwd <username>
(c) Lejo llogarinë tuaj të përdoruesit të ekzekutojë komanda me privilegje rrënjësore, përmes komandës sudo.
visudo
After the line "root ALL=(ALL) ALL"
Add the line "<username> ALL=(ALL) ALL"
--- If you aren't familiar with vi, go to the line "root ALL=(ALL) ALL".
--- Hit "o" to create a new line after that line and enter insert mode.
--- Type "<username> ALL=(ALL) ALL".
--- Hit ESC.
--- Type "ZZ" to save.
(d) Dilni si rrënjë dhe identifikohuni në llogarinë tuaj të përdoruesit.
Instaloni paketat CentOS 6 GCC. Kjo do t'ju pyesë nëse dëshironi të instaloni rreth 11 paketa, për shkak të varësive.
sudo yum install gcc gcc-c++
Kontrolloni versionet e instaluara dhe tregoni vendndodhjet e tyre.
gcc --version
May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
g++ --version
May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
which gcc
/usr/bin/gcc
which g++
/usr/bin/g++
Instaloni një version më të ri të GCC nga burimi
Nëse dëshironi vetëm versionin CentOS të mbështetur zyrtarisht të GCC, jeni gati. Nëse keni nevojë për një version më të fundit të GCC, vazhdoni.
E RËNDËSISHME! Së pari, plotësoni hapat e mësipërm për të instaluar një version më të vjetër binar të GCC.
Instaloni paketat e kërkuara shtesë. Kjo do t'ju pyesë nëse dëshironi të instaloni rreth 41 paketa.
sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
Vendosni se cilin version të GCC dëshironi të instaloni. Kjo komandë do t'ju tregojë "etiketat" për secilin prej versioneve të disponueshme.
svn ls svn://gcc.gnu.org/svn/gcc/tags | grep gcc | grep release
gcc-2_95-release/
...
gcc-4_9_2_release/
gcc-5_1_0_release/
Merrni burimin e versionit të GCC që dëshironi. Kjo do të funksionojë për disa minuta. Pjesa tjetër e këtij artikulli është shkruar për gcc-5_1_0_release/dhe do t'i shkarkojë burimet në ~/sourceInstallations/gcc_5_1_0_release/.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_5_1_0_release/
Merrni burimin e parakushteve shtesë. Duke përdorur v5.1.0, kjo shkarkon burimet dhe i shton ato në ndërtimin e GCC për MPFR v2.4.2, GMP 4.3.2 dhe MPC 0.8.1.
cd gcc_5_1_0_release/
./contrib/download_prerequisites
--- Important, run this as shown, from the gcc_5_1_0_release directory.
--- Do not cd to the contrib directory
Nëse VPS-ja juaj ka vetëm 768 MB memorie, do t'ju mbarojë memoria në hapin tjetër. Nëse keni 1 GB memorie, mund të jeni në rregull, por nuk mund të jetë e dëmshme ta bëni këtë hap. Nëse keni 2 GB memorie ose më shumë, mund ta kaloni këtë hap. Ky hap shton 500 MB memorie virtuale, duke përdorur një skedar shkëmbimi.
SWAP=/tmp/swap
dd if=/dev/zero of=$SWAP bs=1M count=500
mkswap $SWAP
sudo swapon $SWAP
Ndërtoni GCC. Kjo do të funksionojë për orë të tëra. Nëse kjo përfundon saktë, rreshti i fundit që do të shihni do të thotë "sukses". Është normale të shohësh disa mesazhe me pamje gabimi që lëvizin shpejt, për sa kohë që ndërtimi përfundon dhe jehonë "sukses". Është gjithmonë një ide e mirë për të ndërtuar gjërat në një drejtori të ndryshme nga një direktori burimore. Dokumentacioni i GCC thotë se nuk duhet të përdorni një drejtori ndërtimi që është një nën-drejtori e drejtorisë burimore.
cd ..
mkdir gcc_5_1_0_release_build/
cd gcc_5_1_0_release_build/
../gcc_5_1_0_release/configure && make && sudo make install && echo "success"
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
Nëse konfiguroni një skedar shkëmbimi në hapin 6, hiqeni atë. Pa bërë më shumë konfigurime, pas një rindezjeje, ai nuk do të përdoret si një skedar shkëmbimi dhe thjesht do të zërë hapësirën në hard diskun në VPS-në tuaj.
sudo swapoff $SWAP
rm /tmp/swap
Kontrolloni versionet e instaluara dhe shikoni vendndodhjet e tyre.
hash -r
(Makes your login "forget" about the previously seen locations of gcc and g++)
gcc --version
May say: gcc (GCC) 5.1.0
g++ --version
May say: g++ (GCC) 5.1.0
which gcc
/usr/local/bin/gcc
which g++
/usr/local/bin/g++
Shtoni bibliotekat e reja në ld (lidhësi GNU).
echo "/usr/local/lib64" > usrLocalLib64.conf
sudo mv usrLocalLib64.conf /etc/ld.so.conf.d/
sudo ldconfig
--- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
--- You may ignore this message. It is silent about the work it successfully completed.
Opsionale bëni një program hello world.
mkdir ~/code
cd ~/code
Create a file main.cpp that says:
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}
--- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
g++ main.cpp -o main
./main
Hello World!
Kërkoni opsionalisht hapësirën në hard diskun. ~/sourceInstallationsDosja juaj do të marrë rreth 8,0 GB. Ndoshta është e mençur të ruani dosjet, pasi ka opsione opsionale të konfigurimit që mund t'ju nevojiten t'i përdorni në një moment në të ardhmen, dhe do të ishte më shpejt të kishim bërë shumë. Gjithashtu, procesi i ndërtimit krijon regjistra që më vonë mund t'i kontrolloni dhe të punoni nëse diçka shkon keq. Por, pasi të keni ekzekutuar sudo make installmë herët, GCC-ja juaj e instaluar nuk varet nga asgjë në këtë direktori dhe hapësira mund të jetë me çmim të lartë, kështu që ju mund ta bëni këtë hap dhe të rikuperoni 8.0 GB ose më shumë.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Tani e keni CentOS-in tuaj të mbështetur zyrtarisht gccdhe g++ende në /usr/bin/, CentOS juaj zyrtarisht mbështet libs 32-bit në /lib, CentOS juaj mbështet zyrtarisht libs 64-bit në /lib64dhe CentOS juaj i mbështetur zyrtarisht përfshin skedarë në /usr/include.
Libimet tuaja më të reja gccdhe g++janë në /usr/local/bin, libs më të reja 32-bitëshe në /usr/local/lib, libet tuaja më të reja 64-bitëshe në /usr/local/lib64, dhe më të rejat përfshijnë skedarë në /usr/local/include.