Почему устаревшие пакеты установлены yum на CentOS? (в частности, PHP 5.1). Как исправить?

Я работаю над новым CentOS-сервером, и мне очень досадно узнать, что yum не работает так гладко и блестяще, как «apt-get install» на Ubuntu.

Устанавливая стек 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, чтобы он стал последним стабильным выпуском (5.3.9 в соответствии с PHP.net)? Как заставить мою машину CentOS работать больше, чем Ubuntu, поэтому мне больше не нужно иметь дело с этим?

Большое спасибо.

EDIT: CentOS 5.7 была установлена ​​хостинговой компанией на прошлой неделе, поэтому я не знаю, почему они установили более старую версию CentOS, а не самую последнюю. Мне нужен PHP 3.2, по крайней мере, поэтому я ценю предложения о том, как это сделать. Я не очень хорошо знаком с пакетами и репозиториями, но, похоже, кто-то может запустить репозиторий, и поэтому я заинтересован в установке вещей из какого-то случайного хранилища, которое может заразить сервер.

12 голосов | спросил Buttle Butkus 28 Jam1000000amSat, 28 Jan 2012 05:29:57 +040012 2012, 05:29:57

3 ответа


11

CentOS - ПРОИЗВОДИТЕЛЬ очень консервативной Red Hat Enterprise Linux, поэтому обновления пакетов, как правило, будут отложены еще дальше, чем RHEL. Пакеты в любом дистрибутиве будут немного старше.

Если вы используете CentOS 5, вам стоит попробовать CentOS 6, чтобы узнать, подходит ли оно вашим потребностям.

Если вам нужно что-то немного более современное, чем CentOS 6, вы должны посмотреть в Fedora.

Последующие действия: CentOS была введена «в дом» и более тесно интегрирована. Новые выпуски CentOS будут видеть преимущества более сильного цикла релиза, но для более старых версий этот ответ по-прежнему останется верным.

ответил Magellan 28 Jam1000000amSat, 28 Jan 2012 05:42:51 +040012 2012, 05:42:51
6

Они не устарели; они самые последние, что CentOS 5 имеет в своих репозиториях.

Red Hat (и Ubuntu, если на то пошло) никогда, никогда не публикует новую основную версию программного обеспечения в своих репозиториях пакетов для данной версии ОС, ради стабильности - вы не хотите запускать обновление и вдруг ваш конфиг не работает.

Вместо этого они резервируют исправления безопасности и важные исправления в версии программного обеспечения, которая была «стабильной» при выпуске ОС, избегая появления новых функций (и их ошибок).

Поскольку вы находитесь на CentOS 5, официальные репозитории имеют несколько довольно старых версий. Но не бойтесь - вы, вероятно, можете легко найти сторонний репозиторий с теми версиями программного обеспечения, которые вам нужны.

Или, почему бы не обновить до 6?

ответил Shane Madden 28 Jam1000000amSat, 28 Jan 2012 05:44:22 +040012 2012, 05:44:22
4

Я бы сказал, удалить CentOS и установить Ubuntu, если это то, что вы хотите использовать. Но это должна быть старая версия CentOS, которую вы используете. CentOS 6.2 использует PHP 5.3 и MySQL 5.1.

Вы можете использовать репозиторий Remi для получения более новых версий Apache /PHP /MySQL

И вы не делаете свою машину CentOS более похожей на Ubuntu, потому что она не Ubuntu. Это как сказать «Как заставить мой Chrysler больше походить на Ford».


Обновленный ответ:

Я получил несколько голосов по этому поводу, поэтому я думаю, что мои намерения были неправильно поняты, позвольте мне попытаться исправить это.

Я установил VPS в нашей среде и установил пакеты, поэтому я должен быть там, где вы сейчас:

[[email protected] /]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

[[email protected] /]# 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

В моем первом ответе я предположил, что вам нужны последние версии, тогда вы должны использовать репозиторий Remi, как я уже говорил выше. Однако, если версия PHP 5.3 в centOS в порядке (5.3.3), тогда прочитайте дальше.

При попытке установить php53 он жалуется, что существует конфликт, так как этот пакет будет охватывать те же вещи, что и пакет PHP 5.1. Чтобы решить эту проблему, вам нужно удалить все связанные с PHP пакеты, чтобы начать с:

[[email protected] /]# yum remove php*
[[email protected] /]# rpm -qa |grep php
[[email protected] /]# 

Следующее, что вы делаете, это установить эквивалентные пакеты с помощью php53:

[[email protected] /]# yum install php53 php53-cli php53-mysql
[[email protected] /]# 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 является единственным MySQL в репозиториях CentOS по умолчанию. Я запускаю 64-разрядную версию CentOS, если вам не нужно настраивать следующее, чтобы соответствовать 32-битной версии.

Есть несколько способов сделать это, но я собираюсь пойти в репозиторий Remi. Это происходит уже много лет, и обслуживание с репо проще, чем использование простых файлов RPM.

Реми требует репозитория EPEL , поэтому начните с установки:

[[email protected] /]# 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 реми репо

[[email protected] /]# 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 (иначе вы столкнетесь с конфликтами при попытке установить новый). ПРИМЕЧАНИЕ! Если у вас есть базы данных, сделайте резервную копию, прежде чем делать это!

[[email protected] /]# yum remove mysql*

Затем вы можете продолжить и установить MySQL из репозитория Remi:

[[email protected] /]# 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
ответил Frands Hansen 28 Jam1000000amSat, 28 Jan 2012 05:43:55 +040012 2012, 05:43:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132