Назад | Перейти на главную страницу

Не удается установить php5-dev на Ubuntu 12.04 под управлением OpenVZ

Я пытаюсь получить пакет php apc с помощью pecl и сталкиваюсь с проблемой, которая, как мне кажется, может быть вызвана OpenVZ. Для этого мне нужен php5-dev. Когда я пытаюсь установить его через apt-get, получаю следующее:

php5-dev : Depends: libssl-dev but it is not going to be installed
            Depends: libtool (>= 2.2) but it is not going to be installed

Когда я пытаюсь вручную установить зависимости (безуспешно), я считаю, что виноват в libc6-dev.

libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.2) but 2.15-0ubuntu10+openvz0 is to be installed

У меня в системе установлена ​​libc6. Если это поможет, вот мой список источников:

deb http://archive.ubuntu.com/ubuntu precise main restricted universe
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu precise partner

Это очень неприятная проблема, поскольку у меня есть другие экземпляры Ubuntu 12.04, которые отлично работают в другом месте (но не на OpenVZ).

Easy Fix, что вам нужно сделать, это указать версию libc6-dev, которую вы хотите установить (в данном случае openvz), и она установится нормально.

Вот как понять, что вы хотите, хорошо, скажите, что собираетесь делать

apt-get install libc6-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.4) but 2.15-0ubuntu10+openvz0 is to be installed
             Recommends: gcc but it is not going to be installed or
                         c-compiler
E: Unable to correct problems, you have held broken packages.

В этом случае вы хотите, чтобы он установил версию 2.15-0ubuntu10 + openvz0, попробуйте еще раз, указав версию, подобную этой (обратите внимание на = version в конце строки):

 apt-get install libc6-dev=2.15-0ubuntu10+openvz0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libc6-dev : Depends: libc-dev-bin (= 2.15-0ubuntu10+openvz0)
             Recommends: gcc but it is not going to be installed or
                         c-compiler
E: Unable to correct problems, you have held broken packages.

Как вы можете видеть, здесь оказался еще 1 пакет, для которого ему нужна была версия openvz, поэтому я просто добавил этот пакет в строку установки apt-get, снова указав версию

apt-get install libc6-dev=2.15-0ubuntu10+openvz0 libc-dev-bin=2.15-0ubuntu10+openvz0
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  gcc gcc-4.6 libquadmath0 linux-libc-dev manpages-dev
Suggested packages:
  gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.6-multilib libmudflap0-4.6-dev gcc-4.6-doc gcc-4.6-locales libgcc1-dbg
  libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold glibc-doc
The following NEW packages will be installed:
  gcc gcc-4.6 libc-dev-bin libc6-dev libquadmath0 linux-libc-dev manpages-dev
0 upgraded, 7 newly installed, 0 to remove and 4 not upgraded.
Need to get 13.6 MB of archives.
After this operation, 33.5 MB of additional disk space will be used.
Do you want to continue [Y/n]?

И теперь работает !!!

Надеюсь, это вам помогло, я сам несколько раз сталкивался с этим и знаю, как это исправить ДОЛЖНЫМ ОБРАЗОМ может очень помочь, существуют альтернативные способы обойти ошибку, но это «правильный» способ.