CentOS पर yum द्वारा पुराने पैकेज क्यों लगाए गए हैं? (विशेष रूप से PHP 5.1) कैसे ठीक करें?


14

मैं एक नए CentOS सर्वर पर काम कर रहा हूं और यह पता लगाने के लिए बेहद नाराज हूं कि यम उबंटू पर "apt-get install" के रूप में आसानी से और शानदार ढंग से काम नहीं करता है।

एक LAMP स्टैक स्थापित करते हुए, मैंने निम्नलिखित भाग लिया:

$ yum install php
$ yum install mysql

इसके अलावा:

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

अब चल रहा है:

$ rpm -qa | grep php

... दिखाता है कि मेरे पास सभी प्रकार के php 5.1.6 पैकेज स्थापित हैं और मुझे 5.2 न्यूनतम चाहिए। इसके अलावा, मैं देखता हूं कि इसने mysql 5.0.77 स्थापित किया है, भले ही वर्तमान रिलीज़ 5.5.20 है। लेकिन उम्मीद है कि mysql 5.0 काम करेगा। PHP 5.1 नहीं होगा।

तो असली सवाल है (हैं):

मैं इसे नवीनतम स्थिर रिलीज़ (PHP.net के अनुसार 5.3.9) बनाने के लिए अपने PHP को कैसे ठीक करूँ? मैं अपने CentOS मशीन को उबंटू की तरह अधिक काम कैसे करूं, ताकि मुझे फिर से इससे निपटना न पड़े?

बहुत बहुत धन्यवाद।

EDIT: CentOS 5.7 को पिछले सप्ताह एक होस्टिंग कंपनी द्वारा स्थापित किया गया था, इसलिए मुझे नहीं पता कि उन्होंने सबसे हाल के बजाय CentOS का एक पुराना संस्करण क्यों स्थापित किया होगा। मुझे कम से कम PHP 3.2 की आवश्यकता है, इसलिए मैं सुझाव देता हूं कि ऐसा कैसे किया जाए। मैं पैकेज और रिपॉजिटरी से बहुत परिचित नहीं हूं, लेकिन ऐसा प्रतीत होता है कि कोई भी रिपॉजिटरी शुरू कर सकता है और इसलिए मैं कुछ यादृच्छिक रिपॉजिटरी से चीजों को स्थापित करने के बारे में चिंतित हूं जो सर्वर को संक्रमित कर सकते हैं।


1
एक बिंदु यह हो सकता है कि, यदि आप उबंटू के एलटीएस संस्करण से चिपके हुए हैं, तो हार्डी php 5.2 पर है और ल्यूसिड थोड़ा-बहुत-चमकदार-नया 5.3.2 पर नहीं है। मानक उबंटू LTS रेपो में mysql सर्वर के समान "पुराने" संस्करण हैं। आरएचईएल 5 हार्डी से एक साल पहले निकला था, इसलिए यह आश्चर्यजनक नहीं है कि यह पीएचपी 5.1 पर है। आरएचईएल और उबंटू एलटीएस पैकेज स्थिरता के लिए बनाए गए हैं। यदि आप कुछ और तारीख तक चाहते हैं, तो फेडोरा या गैर-एलटीएस उबंटू का उपयोग करें।
cjc

यहां आप अपने PHP संस्करण को PHP5.5 webtatic.com/packages/php55 पर
मिर्ज़ा

जवाबों:


11

CentOS बहुत रूढ़िवादी Red Hat Enterprise Linux का एक व्युत्पन्न है, इसलिए पैकेज अद्यतन आम तौर पर RHEL के आगे भी विलंबित होंगे। वितरण में पैकेज थोड़े पुराने होने जा रहे हैं।

यदि आप CentOS 5 चला रहे हैं, तो आपको यह देखने के लिए CentOS 6 का प्रयास करना चाहिए कि क्या यह आपकी आवश्यकताओं के अनुरूप है।

यदि आपको CentOS 6 की तुलना में कुछ अधिक अत्याधुनिक की आवश्यकता है, तो आपको फेडोरा में देखना चाहिए।

अनुवर्ती: CentOS को "इन-हाउस" लाया गया है, और अधिक मजबूती से एकीकृत किया गया है। नए CentOS रिलीज में एक तंग रिलीज चक्र के लाभ दिखाई देंगे, लेकिन पुराने रिलीज के लिए यह उत्तर अभी भी सही होगा।


2
इस धागे में गलत जानकारी की मात्रा बिल्कुल बेवकूफी है। CentOS 5 में एक साल से अधिक समय से PHP 5.3 शामिल है, लेकिन यह ABI चिंताओं के कारण डिफ़ॉल्ट रूप से इंस्टॉल किया गया संस्करण नहीं है। yum install php53अपने रास्ते पर मिल जाएगा।
jgoldschrafe

सच। मैंने उसे यह सिखाने का फैसला किया कि उसे मछली कैसे दी जाए। और मुझे लगता है कि यह वास्तव में थोड़ा कर्कश था, लेकिन मुझे 36 घंटे में एक घंटे की नींद आई है और इस सप्ताह के अंत में या तो SPOF आउटेज के कारण बहुत अधिक नींद नहीं आएगी।
मैगेलन

2
@jgsoldschrafe - मैं सुझाव दूंगा कि आप अपना उत्तर लिखें - यह केवल सुधार के साथ टिप्पणी करने से अधिक उत्पादक होगा।
1

यह एक होस्टिंग कंपनी में एक समर्पित सर्वर है। व्यक्तिगत रूप से मैं सर्वर को हमारी संपत्ति पर रखना चाहता था, लेकिन बॉस ने इस तरह सुरक्षित महसूस किया। मुझे आश्चर्य है कि क्यों होस्टिंग कंपनी नवीनतम के बजाय CentOS 5.7 स्थापित करेगी।
बुटिक बटुकस २12'१२ को २:०१

4
@jgsoldschrafe, मेरे लिए सवाल है, विशेष रूप से php संस्करण के बारे में नहीं लगता है। यह निश्चित है कि ऐसा लगता है कि सवाल रूढ़िवादी रिलीज नीतियों के बारे में था, जो मुझे लगता है कि पोस्ट जवाब देने की कोशिश करता है। मुझे लगता है कि इस मिस-सूचना को कॉल करना एक स्ट्रेच है।
अक्टूबर को Zoredache

6

वे पुराने नहीं हैं; वे नवीनतम हैं कि CentOS 5 अपने रिपॉजिटरी में है।

Red Hat (और उस मामले के लिए उबंटू) कभी भी, सॉफ्टवेयर के एक नए प्रमुख संस्करण को उनके पैकेज रिपॉजिटरी में दिए गए OS संस्करण के लिए स्थिरता के लिए प्रकाशित नहीं करता है - आप अपग्रेड नहीं चलाना चाहते हैं और अचानक आपका कॉन्फिगरेशन नहीं है काम।

इसके बजाय, वे नए सॉफ्टवेयर (और उनके बग) की शुरूआत से बचते हुए, OS के रिलीज़ होने पर 'स्थिर' होने वाले सॉफ़्टवेयर के संस्करण में सिक्योरिटी फ़िक्सेस और महत्वपूर्ण बगफिक्स को बैकपैक करते हैं।

चूंकि आप CentOS 5 पर हैं, आधिकारिक रिपॉजिटरी में सामान के कुछ काफी पुराने संस्करण हैं। लेकिन डर नहीं - आप आसानी से सॉफ़्टवेयर के संस्करणों के साथ एक तृतीय पक्ष भंडार पा सकते हैं जिसकी आपको आवश्यकता है।

या, 6 में अपग्रेड क्यों नहीं?


यह पूरी तरह से सच नहीं है - PHP 5.3 कोर रिपोज में है और आपको बस जरूरत है yum install php53
1:20 पर jgoldschrafe

1
@jgoldschrafe गुड कॉल। हालांकि ऐसा लगता है कि नए MySQL के लिए किसी थर्ड पार्टी रेपो की जरूरत हो सकती है।
शेन झुंझलाना

"या, 6 में अपग्रेड क्यों नहीं?" बेहतर सवाल यह है कि सिंगलहॉप ने हमें सर्वर पर 5.7 क्यों दिया? @jgoldschrafe स्थापित पैकेजों को बदल देगा या क्या मैंने उन्हें मैन्युअल रूप से हटा दिया है?
ब्यूटेल बटुकस

CentOS 6 कुछ महीने पहले ही उपलब्ध हुआ था। यदि बॉक्स पिछले साल के पहले आदेश दिया गया था, तो यह 5.7 होगा। यदि आपके पास CentOS 6 के साथ मशीन को फिर से इमेज करने का विकल्प है, तो आप निश्चित रूप से ऐसा कर सकते हैं।
cjc

@cjc यह सिर्फ 2 सप्ताह पहले आदेश दिया गया था। मैंने पहले से ही 80GB के बारे में FTP'ed है, इसलिए मुझे लगता है कि इस स्थापना कार्य को करना आसान होगा। मैं उपयोग करने की कोशिश कर रहा हूँ जो jgoldschrafe की सिफारिश की है: yum php53 स्थापित करें, लेकिन यह काम नहीं करता है क्योंकि php पहले से ही स्थापित है।
बुटिक बटुक २

4

मैं कहूंगा कि CentOS की स्थापना रद्द करें और उबंटू स्थापित करें, यदि आप इसका उपयोग करना चाहते हैं। लेकिन यह आपके द्वारा उपयोग किए जाने वाले CentOS का एक पुराना संस्करण होना चाहिए। सेंटोस 6.2 PHP 5.3 और MySQL 5.1 का उपयोग करता है।

आप उपयोग कर सकते हैं Apache / PHP / MySQL के नए संस्करण प्राप्त करने के लिए रेमी रिपॉजिटरी का

और आप अपने CentOS मशीन को उबंटू की तरह काम नहीं करते, क्योंकि यह उबंटू नहीं है । यह कहना है कि "मैं अपने क्रिसलर ड्राइव को फोर्ड की तरह कैसे बनाऊं"।


अद्यतन प्रतिक्रिया:

मुझे इस पर कुछ डाउन वोट मिले, इसलिए मुझे लगता है कि मेरे इरादों को गलत समझा गया है, मुझे इसे सही करने की कोशिश करनी चाहिए।

मैंने अपने वातावरण में एक VPS स्थापित किया है और संकुल स्थापित किया है, इसलिए मुझे वह होना चाहिए जहाँ आप अभी हैं:

[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

अपनी पहली प्रतिक्रिया में, मैंने मान लिया कि आप नवीनतम रिलीज़ चाहते हैं, तो आपको रेमी रिपॉजिटरी का उपयोग करना चाहिए जैसा कि मैंने ऊपर कहा है। हालाँकि, अगर सेंटो के भीतर PHP 5.3 संस्करण ठीक है (5.3.3) तो पर पढ़ें।

जब php53 को स्थापित करने की कोशिश की जाती है तो यह शिकायत होती है कि एक विरोधाभास है, क्योंकि यह पैकेज PHP 5.1 पैकेज के समान चीजों को कवर करेगा। इसे हल करने के लिए आपको शुरू करने के लिए सभी PHP संबंधित पैकेजों को हटाने की आवश्यकता है:

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

अगली बात यह है कि आप php53 के साथ बराबर पैकेज स्थापित करें:

[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 काफी आसान था। लेकिन MySQL एक और कहानी है, क्योंकि MySQL 5.0 डिफ़ॉल्ट CentOS रिपॉजिटरी में एकमात्र MySQL है। मैं CentOS के 64 बिट संस्करण को चलाता हूं, अगर आपको इसके बजाय 32 बिट फिट करने के लिए निम्न को समायोजित करने की आवश्यकता नहीं है।

ऐसा करने के कई तरीके हैं लेकिन मैं रेमी रिपॉजिटरी के साथ जाने वाला हूं। यह सालों से है और सादे आरपीएम फ़ाइलों का उपयोग करने के बजाय रेपो के साथ रखरखाव आसान है।

रेमी को ईपीएल रिपॉजिटरी की आवश्यकता होती है इसलिए इसे स्थापित करके शुरू करें:

[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%]

इसके बाद, आप रेमी रेपो RPM इंस्टॉल करें

[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%]

अगला आप वर्तमान MySQL सर्वर को हटा दें (अन्यथा आप नए को स्थापित करने की कोशिश करते समय संघर्ष करेंगे) .. नोट! यदि आपके पास वहां पर डेटाबेस है, तो ऐसा करने से पहले एक बैकअप बनाएं!

[root@centos5 /]# yum remove mysql*

तब आप रेमी भंडार से MySQL को स्थापित कर सकते हैं:

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

अब जब आप MySQL शुरू करने की कोशिश करते हैं तो यह विफल हो सकता है क्योंकि पुराने mysql ने कुछ चीजों को पीछे छोड़ दिया है, और इससे छुटकारा पाने के लिए यह दर्दनाक हो सकता है। मेरे मामले में यहां मुझे काम करने के लिए कुछ चीजों को हटाने की जरूरत थी। ये मेरे लिए किया:

# 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
वेल्ड, यह मूल रूप से एक सवाल है कि आउट-ऑफ-डेट पैकेज के बजाय अप-टू-डेट पैकेज प्राप्त करने का एक तरीका है या नहीं।
बुटिक बटुक २

@ButtleButkus मुझे नहीं पता कि अगर आपको सूचित किया जाता है जब मैं अपडेट करता हूं तो मैं यह सुनिश्चित करने के लिए एक टिप्पणी लिख रहा हूं कि आप :)
फ्रैंक्स हेंसन

बस अपना अपडेट देखा। मैंने समस्या का समाधान किया और आपका जवाब ऐसा लग रहा है जैसे यह मेल खा सकता है कि मैंने क्या किया। हालांकि मेरे नोट्स को दोबारा जांचने की आवश्यकता है।
ब्यूटिक बटुकस

1
अप-टू-डेट rpms के लिए कुछ और स्रोत हैं। Rackspace IUS iuscommunity.org/pages/About.html और webtatic webtatic.com/projects/yum-repository
txyoji
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.