Blog / Makaleler

CentOS 7 / CentOS 8 Python 3.8 kurulumu

Bu yazı 2023 yılından. Anlatılan sürümler, fiyatlar ve adresler o günden bu yana değişmiş olabilir.

Bu rehberde Python 3.8'i CentOS 7 / CentOS 8'e nasıl yükleyeceğinizi öğreneceksiniz. Python, orijinal olarak Guido van Rossum tarafından oluşturulan ve 1991'de piyasaya sürülen popüler bir programlama dilidir.

Güncelleme (Kasım 2026): Bu yazıyı 2023'te yazmıştım. O günden bu yana CentOS 7'nin desteği Haziran 2024'te, CentOS 8'inki ise daha önce Aralık 2021'de bitti. Python 3.8 de Ekim 2024'te güncelleme almayı bıraktı. Yani yeni bir sunucu kuruyorsanız Rocky Linux ya da AlmaLinux gibi hâlâ desteklenen bir dağıtım ve daha yeni bir Python sürümü seçmenizi tavsiye ederim. Ama elinizde hâlâ CentOS çalışan bir sunucu varsa ve üzerinde Python 3.8 lazımsa bu rehber işinizi görecek. Yazıyı bugünkü haline göre güncelledim.

Başlamadan önce

CentOS 7 sunucularda sistemin kendi Python'ı 2.7 sürümüdür ve yum gibi sistem araçları bu sürümle çalışır. Biz bu rehberde Python 3.8'i sistemin Python'ına dokunmadan, yanına kuracağız. Kurulum bittiğinde sunucuda iki Python olacak: sistemin kullandığı eski sürüm python komutuyla, bizim kurduğumuz yeni sürüm python3.8 komutuyla çalışacak.

Komutları root kullanıcısıyla ya da sudo yetkisi olan bir kullanıcıyla çalıştırmanız gerekiyor. Kurulum Python'ı kaynak kodundan derleyeceği için sunucunun gücüne göre 10-20 dakika sürebilir, bunu da baştan bilin.

1. Depo adreslerini düzeltmek

Desteği biten CentOS sürümlerinin paket depoları eski adreslerinden kaldırılıp arşive (vault.centos.org) taşındı. Bu yüzden bir sonraki adımdaki komutlar bu ayarı yapmadan çalışmıyor, şuna benzer bir hata alıyorsunuz:

Kod
Cannot find a valid baseurl for repo: base/7/x86_64

Bunu düzeltmek için depo ayarlarını arşiv adresine yönlendiriyoruz. Aşağıdaki iki komut CentOS 7'de de CentOS 8'de de aynı şekilde çalışıyor:

Terminal
sudo sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

İlk komut sunucunun artık var olmayan ayna sunucu listesini kullanmasını kapatıyor, ikincisi de depo adresini arşiv adresiyle değiştiriyor. Ardından yum'un eski kayıtlarını temizliyoruz:

Terminal
sudo yum clean all

Eğer sunucunuzda yum update hata vermeden çalışıyorsa bu adımı atlayabilirsiniz.

2. Gerekli paketleri kurmak

Sunucumuza SSH üzerinden bağlandıktan sonra Python'ı derleyebilmek için gerekli olan paketleri yükleyelim.

Terminal
sudo yum -y update
sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel sqlite-devel readline-devel wget

İlk komut sunucudaki paketleri güncelliyor. İkincisi gcc ve make gibi derleme araçlarını kuruyor. Üçüncüsü de Python'ın bazı parçalarının çalışması için gereken kütüphaneleri ve dosyayı indirmek için kullanacağımız wget'i kuruyor. Eski yazıda zlib-devel'i eklememiştim. Bu paket eksik olursa kurulumun sonunda pip kurulamıyor ve "zlib not available" hatası alıyorsunuz.

Derleme araçlarının doğru kurulduğunu doğrulamak için aşağıdaki komutu kullanalım:

Terminal
gcc --version

Karşınıza aşağıdakine benzer bir ekran çıkıyorsa her şey doğru gidiyor demektir. Sürüm numarası CentOS 7'de 4.8.5, CentOS 8'de 8.x olarak görünecek, bu normal.

Kod
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

3. Python 3.8'i indirmek

Şimdi Python 3.8'i orijinal kaynağından, yani python.org üzerinden sunucumuza çekiyoruz. Eski yazıda 3.8.3 sürümünü kullanmıştım, burada 3.8 serisinin son sürümü olan 3.8.20'yi kullanıyoruz. Bu sürümde o günden bu yana kapatılmış güvenlik açıklarının düzeltmeleri var.

Terminal
cd /tmp
wget https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tgz

İndirdiğimiz sıkıştırılmış dosyayı dışarı çıkartıyoruz ve çıkan klasörün içine giriyoruz:

Terminal
tar xvf Python-3.8.20.tgz
cd Python-3.8.20

4. Derlemek ve kurmak

Kurulumu başlatmadan önce aşağıdaki komutla derleme ayarlarını hazırlıyoruz. Bu komut sunucunuzu kontrol edip gerekli her şeyin yerinde olup olmadığına bakıyor.

Terminal
./configure --enable-optimizations

Buradaki --enable-optimizations Python'ın daha hızlı çalışması için ek optimizasyon yapıyor. Kurulumu biraz uzatıyor ama değer.

Bu komut bittikten sonra aşağıdaki komutla derlemeyi başlatıyoruz:

Terminal
make -j $(nproc)

-j $(nproc) derlemenin sunucudaki bütün işlemci çekirdeklerini kullanmasını sağlıyor, kurulumu ciddi şekilde hızlandırıyor. Ekrandan bir sürü yazı akacak, bu normal. Bittikten sonra da kurulumu yapıyoruz:

Terminal
sudo make altinstall

Burada çok önemli bir nokta var: make install değil make altinstall kullanıyoruz. make install kullanırsanız sunucudaki python3 komutu artık yeni kurduğunuz sürümü çalıştırmaya başlar ve sunucuda sistemin kendi Python'ına göre yazılmış scriptler varsa beklenmedik şekilde davranabilir. altinstall ise Python 3.8'i sadece python3.8 adıyla, sistemin Python'ına hiç dokunmadan kuruyor.

Kurulumun başarılı bittiğini anlamak için en sonda çıkan yazıya bakın, aşağıdakine benzer bir satır görmeniz lazım. Buradaki sürüm numaraları sizde farklı olabilir.

Kod
Successfully installed pip-23.0.1 setuptools-56.0.0

5. Kurulumu kontrol etmek

Kurmuş olduğumuz Python sürümünü öğrenmek için aşağıdaki komutları çalıştırabilirsiniz:

Terminal
python3.8 --version
pip3.8 --version

İlk komut Python 3.8.20 yazmalı. Eğer python3.8: command not found hatası alırsanız, özellikle de komutu sudo ile çalıştırıyorsanız, tam yolunu kullanın. Python 3.8 /usr/local/bin/ dizinine kuruluyor ve CentOS'ta sudo bu dizine varsayılan olarak bakmıyor:

Terminal
/usr/local/bin/python3.8 --version

Kurulum bittikten sonra indirdiğimiz dosyalara artık ihtiyacımız yok, isterseniz silebilirsiniz:

Terminal
cd /tmp
rm -rf Python-3.8.20 Python-3.8.20.tgz

CentOS 8 için daha kısa yol

CentOS 8 kullanıyorsanız Python 3.8'i derlemeden, doğrudan paket deposundan da kurabilirsiniz. 1. adımdaki depo ayarını yaptıktan sonra tek bir komut yeterli:

Terminal
sudo dnf -y install python38

Bu şekilde kurulan Python 3.8 de python3.8 komutuyla çalışıyor. Daha hızlı ve güncellemesi daha kolay, fakat depodaki sürüm 3.8.20 değil daha eski bir 3.8 sürümü oluyor. CentOS 7'de böyle bir paket olmadığı için orada yukarıdaki derleme yöntemini kullanmanız gerekiyor.

Bu yazıyı paylaşXFacebook