Eski paketler neden yum tarafından CentOS'a kurulur? (özellikle PHP 5.1) Nasıl düzeltilir?


14

Taze bir CentOS sunucu üzerinde çalışıyorum ve yum "sorunsuz-parlak yükleme" Ubuntu üzerinde yaptığı gibi sorunsuz ve parlak çalışmadığını öğrenmek için son derece rahatsız.

Bir LAMP yığını takarken aşağıdakileri çalıştırdım:

$ yum install php
$ yum install mysql

Ayrıca:

$ yum install mysql-server
$ yum install mysql-devel
$ yum install php-mysql

Şimdi çalışıyor:

$ rpm -qa | grep php

... php 5.1.6 paketlerinin yüklü olduğunu ve minimum 5.2'e ihtiyacım olduğunu gösteriyor. Ayrıca, mevcut sürüm 5.5.20 olmasına rağmen, mysql 5.0.77'yi yüklediğini görüyorum. Ama umarım mysql 5.0 işe yarayacaktır. PHP 5.1 olmayacak.

Yani asıl soru (lar):

PHP'yi en son kararlı sürümü (PHP.net'e göre 5.3.9) yapmak için nasıl düzeltirim? CentOS makinemin Ubuntu gibi çalışmasını nasıl sağlarım, bu yüzden bununla tekrar uğraşmak zorunda kalmam?

Çok teşekkürler.

EDIT: CentOS 5.7 geçen hafta bir barındırma şirketi tarafından yüklendi, bu yüzden neden en son sürümden ziyade CentOS'un eski bir sürümünü yükleyeceklerini bilmiyorum. Ben en azından PHP 3.2 gerekir, bu yüzden bunu yapmak için öneriler takdir. Paketleri ve depoları çok iyi tanımıyorum, ancak herkesin bir depo başlatabileceği ve sunucuya bulaşabilecek bazı rastgele depolardan bir şeyler yüklemekten endişe duyuyorum.


1
Ubuntu'nun bir LTS sürümüne bağlı kalırsanız, Hardy php 5.2'de ve Lucid'in biraz parlak olmayan yeni bir 5.3.2'de olduğunu söyleyebiliriz. Standart Ubuntu LTS depolarında benzer şekilde mysql sunucusunun "eski" sürümleri vardır. RHEL5, Hardy'den bir yıl önce çıktı, bu yüzden php 5.1'de olması şaşırtıcı değil. RHEL ve Ubuntu LTS, paket kararlılığı için üretilmiştir. Daha güncel bir şey istiyorsanız, Fedora veya LTS olmayan Ubuntu kullanın.
cjc

Burada PHP sürümünüzü PHP5.5 webtatic.com/packages/php55
Mirza Selimovic

Yanıtlar:


11

CentOS, çok muhafazakar Red Hat Enterprise Linux'un TÜREVİDİR, bu nedenle paket güncellemeleri genellikle RHEL'den daha da gecikecektir. Her iki dağıtımdaki paketler biraz daha eski olacak.

CentOS 5 çalıştırıyorsanız, ihtiyaçlarınıza uygun olup olmadığını görmek için CentOS 6'yı denemelisiniz.

CentOS 6'dan biraz daha ileri bir şeye ihtiyacınız varsa, Fedora'ya bakmalısınız.

Takip: CentOS "şirket içi" olarak getirildi ve daha sıkı bir şekilde entegre edildi. Daha yeni CentOS sürümleri daha sıkı bir sürüm döngüsünün faydalarını görecektir, ancak daha eski sürümler için bu yanıt hala geçerli olacaktır.


2
Bu konudaki yanlış bilgi miktarı kesinlikle aptalca. CentOS 5, bir yılı aşkın bir süredir PHP 5.3 içeriyor, ancak ABI endişeleri nedeniyle varsayılan olarak yüklenmiş sürüm değil. yum install php53seni yoluna çıkaracak.
jgoldschrafe

Doğru. Ona balık vermek yerine nasıl balık tutulacağını öğretmeye karar verdim. Ve aslında biraz sinsi olduğunu düşünüyorum, ama 36 saat içinde birkaç saat uyku yaşadım ve SPOF kesintisi nedeniyle bu hafta sonu çok uyumayacağım.
Magellan

2
@jgoldschrafe - Kendi cevabınızı yazmanızı öneririm - bu sadece düzeltmelerle yorum yapmaktan daha verimli olacaktır.
EEAA

Bir hosting şirketinde özel bir sunucudur. Şahsen sunucu bizim mal var istedim, ama patron bu şekilde daha güvenli hissettim. Neden hosting şirketi en son CentOS 5.7 yüklemek neden acaba.
Buttle Butkus

4
@jgoldschrafe, bana göre, özellikle php sürümü hakkında değildi. Sorunun, postanın cevap vermeye çalıştığını düşündüğüm muhafazakâr yayın politikaları hakkında olduğu anlaşılıyor. Bence bu yanlış bilgi deme bir gerginlik.
Zoredache

6

Onlar modası geçmiş değil; CentOS 5'in depolarında en son sahip oldukları.

Red Hat (ve bu konu için Ubuntu), kararlılık uğruna, belirli bir işletim sistemi sürümü için paket depolarına yeni bir büyük yazılım sürümünü asla yayınlamayın - bir yükseltme çalıştırmak istemezsiniz ve aniden yapılandırmanız iş.

Bunun yerine, güvenlik düzeltmelerini ve önemli hata düzeltmelerini, işletim sistemi piyasaya sürüldüğünde 'kararlı' olan yazılım sürümüne destekleyerek yeni özelliklerin (ve hatalarının) kullanılmasını önlerler.

CentOS 5'te olduğunuzdan, resmi depoların bazı eski sürümleri var. Ama korkmayın - muhtemelen ihtiyacınız olan yazılım sürümleriyle bir üçüncü taraf deposunu kolayca bulabilirsiniz.

Veya neden 6'ya yükseltmiyorsunuz?


Bu tamamen doğru değil - PHP 5.3 çekirdek depolarda ve sadece yapmanız gerekiyor yum install php53.
jgoldschrafe

1
@jgoldschrafe İyi çağrı. Her ne kadar yeni MySQL için üçüncü taraf bir repo gerekebilir.
Shane Madden

"Ya da neden 6'ya geçmiyorsun?" Daha iyi soru, SingleHop bize sunucuda 5.7 verdi mi? @jgoldschrafe kurulu paketleri değiştirecek mi yoksa elle kaldıracak mıyım?
Buttle Butkus

CentOS 6 sadece birkaç ay önce satışa sunuldu. Kutu geçen yılın başlarında sipariş edilmiş olsaydı, 5.7 olurdu. Makineyi CentOS 6 ile yeniden görüntüleme seçeneğiniz varsa, kesinlikle bunu yapabilirsiniz.
cjc

@cjc 2 hafta önce sipariş edildi. Zaten 80GB civarında FTP'ledim, bu yüzden sadece bu kurulumun daha kolay hale getirileceğini düşünüyorum. Ne jgoldschrafe önerilen kullanmaya çalışıyorum: yum php53 yüklemek, ama php zaten yüklü olduğu için çalışmıyor.
Buttle Butkus

4

CentOS'u kaldırmayı ve Ubuntu'yu kurmayı söyleyebilirim, eğer kullanmak istediğiniz buysa. Ancak kullandığınız CentOS'un daha eski bir sürümü olmalıdır. CentOS 6.2, PHP 5.3 ve MySQL 5.1 kullanıyor.

Apache / PHP / MySQL'in daha yeni sürümlerini almak için Remi deposunu kullanabilirsiniz

Ve CentOS makinenizi Ubuntu gibi çalıştırmazsınız, çünkü Ubuntu değildir . "Chrysler'imi nasıl bir Ford gibi sürdürebilirim" demek gibi.


Güncellenmiş yanıt:

Bu konuda biraz oy aldım, bu yüzden niyetlerim yanlış anlaşıldı, bunu düzeltmeye çalışayım.

Ortamımızda bir VPS kurdum ve paketleri kurdum, bu yüzden şu anda bulunduğunuz yerde olmalıyım:

[root@centos5 /]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

[root@centos5 /]# rpm -qa |grep php
php-common-5.1.6-27.el5_7.4
php-mysql-5.1.6-27.el5_7.4
php-cli-5.1.6-27.el5_7.4
php-pdo-5.1.6-27.el5_7.4
php-5.1.6-27.el5_7.4

İlk cevabımda, en son sürümleri istediğinizi düşündüm, o zaman yukarıda belirttiğim gibi Remi deposunu kullanmalısınız. Ancak, centOS içindeki PHP 5.3 sürümü gayet iyi (5.3.3) ise okumaya devam edin.

Php53 yüklemeye çalışırken, bu paket PHP 5.1 paketi ile aynı şeyleri kapsayacağı için bir çakışma olduğunu şikayet ediyor. Bunu çözmek için PHP ile ilgili tüm paketleri kaldırmanız gerekir:

[root@centos5 /]# yum remove php*
[root@centos5 /]# rpm -qa |grep php
[root@centos5 /]# 

Yaptığınız bir sonraki şey, eşdeğer paketleri php53 ile kurmaktır:

[root@centos5 /]# yum install php53 php53-cli php53-mysql
[root@centos5 /]# rpm -qa |grep php
php53-common-5.3.3-1.el5_7.5
php53-cli-5.3.3-1.el5_7.5
php53-pdo-5.3.3-1.el5_7.5
php53-5.3.3-1.el5_7.5
php53-mysql-5.3.3-1.el5_7.5

PHP oldukça kolaydı. Ancak MySQL 5.0 başka bir hikaye, çünkü MySQL 5.0 varsayılan CentOS depolarındaki tek MySQL. CentOS'un 64 bit sürümünü çalıştırıyorum, eğer yerine 32 bit sığacak şekilde ayarlamanız gerekmez.

Bunu yapmanın birkaç yolu var ama ben Remi deposuyla gideceğim. Yıllardır varlığını sürdürüyor ve repo ile sürdürmek düz RPM dosyaları kullanmaktan daha kolay.

Remi, EPEL deposunu gerektirdiğinden aşağıdakileri yükleyerek başlayın:

[root@centos5 /]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
warning: /var/tmp/rpm-xfer.lvLBMJ: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

Ardından, Remi repo RPM'sini yüklersiniz

[root@centos5 /]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
warning: /var/tmp/rpm-xfer.ztjinG: Header V3 DSA signature: NOKEY, key ID 00f97f56
Preparing...                ########################################### [100%]
   1:remi-release           ########################################### [100%]

Sonra geçerli MySQL sunucusunu kaldırın (aksi takdirde yenisini yüklemeye çalışırken çakışmalar elde edersiniz) .. NOT! Orada veritabanlarınız varsa, bunu yapmadan önce yedekleyin!

[root@centos5 /]# yum remove mysql*

Ardından MySQL'i Remi deposundan yükleyebilir ve kurabilirsiniz:

[root@centos5 /]# yum --enablerepo=remi install mysql.x86_64 mysql-server.x86_64

Şimdi MySQL'i başlatmaya çalıştığınızda başarısız olabilir, çünkü eski mysql bazı şeyleri geride bıraktı ve bu kurtulmak için biraz acı verici olabilir. Burada benim durumumda çalışması için bazı şeyleri kaldırmam gerekiyordu. Bunlar benim için yaptı:

# rm -rf /usr/share/mysql
# rm -rf /var/lib/mysql
# yum --enablerepo=remi reinstall mysql-libs
# /usr/libexec/mysqld --skip-grant &
# mysql_install_db
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start

1
Welp, temelde güncel olmayan paketler yerine güncel paketler almanın bir yolu olup olmadığı sorusu.
Buttle Butkus

@ButtleButkus Güncelleme yaptığımda bildirim alıp almadığınızı bilmiyorum, bu yüzden yaptığınızdan emin olmak için bir yorum yazıyorum :)
Frands Hansen

Güncellemenizi gördüm. Sorunu çözdüm ve cevabınız yaptığımla eşleşiyor gibi görünüyor. Notlarımı tekrar kontrol etmem gerekiyor.
Buttle Butkus

1
Güncel rpm'ler için birkaç kaynak daha vardır. Rackspace IUS iuscommunity.org/pages/About.html ve webtatic webtatic.com/projects/yum-repository
txyoji
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.