web-dev-qa-db-ja.com

PHP 5.5を使用してDebian7にphp5-memcachedをインストールするにはどうすればよいですか?

PHP 5 MemcachedモジュールをDebian 7 VirtualBoxにインストールしようとしましたVM失敗しました:

root@testvm:~# apt-get install php5-memcached
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:
 php5-memcached : Depends: libmemcached11 but it is not installable
E: Unable to correct problems, you have held broken packages.

Synaptic PackageManagerにインストールすることもできませんでした。

問題は、/etc/apt/sources.listにソース情報がないことにあると思います。


更新:

/ etc/apt/sources.list

# deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official AMD64 NETINST Binary-1 20130615-23:04]/ wheezy main

# deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official AMD64 NETINST Binary-1 20130615-23:04]/ wheezy main

deb http://ftp.de.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.de.debian.org/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

# nginx
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

# PHP 5.5
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

更新:

不足している依存関係を手動でインストールしようとしましたが、機能しません。

root@devvm:~# apt-get install libmemcached11
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libmemcached11 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libmemcached11' has no installation candidate

更新:

root@devvm:~# apt-cache depends php5-memcached libmemcached10
php5-memcached
  Depends: libc6
  Depends: <libmemcached11>
  Depends: zlib1g
  Depends: <phpapi-20121212>
    libapache2-mod-php5filter
    libapache2-mod-php5
    libphp5-embed
    php5-cgi
    php5-cli
    php5-fpm
  Depends: php5-common
 |PreDepends: dpkg
  PreDepends: <dpkg-maintscript-helper>
libmemcached10
  Depends: libc6
  Depends: libgcc1
  Depends: libstdc++6
  PreDepends: multiarch-support
  Conflicts: <libmemcached2>
  Conflicts: <libmemcached3>
  Conflicts: <libmemcached6>
  Conflicts: <libmemcached9>
3
automatix

私はそれをインストールしました。何とかして...

libmemcached11をインストールしようとしました。 apt-getを使用したインストールが機能しなかったため、ソースからインストールしました。

root@devvm:~# wget http://ftp.de.debian.org/debian/pool/main/libm/libmemcached/libmemcached11_1.0.17-2_AMD64.deb
...
2013-07-23 22:07:02 (713 KB/s) - `libmemcached11_1.0.17-2_AMD64.deb' saved [112238/112238]

root@devvm:~# dpkg --install libmemcached11_1.0.17-2_AMD64.deb 
Selecting previously unselected package libmemcached11:AMD64.
(Reading database ... 149070 files and directories currently installed.)
Unpacking libmemcached11:AMD64 (from libmemcached11_1.0.17-2_AMD64.deb) ...
dpkg: dependency problems prevent configuration of libmemcached11:AMD64:
 libmemcached11:AMD64 depends on libc6 (>= 2.16); however:
  Version of libc6:AMD64 on system is 2.13-38.

dpkg: error processing libmemcached11:AMD64 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libmemcached11:AMD64

あなたが見るように、エラーで。しかし今、libmemcached11がインストールされました。

インストールが失敗したと思ったので、最初にダウンロードした(壊れた?)パッケージを削除することにしましたが、php5-memcachedインストールを試すためにプロセスを中止しました(おそらくそれはうまくいくでしょう...どういうわけか。 ..):

root@devvm:~# apt-get remove libmemcached11
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  libmemcached11
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
1 not fully installed or removed.
After this operation, 261 kB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

次に、php5-memcachedを再度インストールしようとしましたが、今回は正常にインストールされました。

root@devvm:~# apt-get -t stable install php5-memcached
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libmemcached11
The following NEW packages will be installed:
  libmemcached11 php5-memcached
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 148 kB of archives.
After this operation, 397 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://packages.dotdeb.org/ wheezy/all libmemcached11 AMD64 1.0.16-1 [113 kB]
Get:2 http://packages.dotdeb.org/ wheezy-php55/all php5-memcached AMD64 5.5.0-1~dotdeb.1 [34.9 kB]
Fetched 148 kB in 0s (328 kB/s)      
Selecting previously unselected package libmemcached11:AMD64.
(Reading database ... 149070 files and directories currently installed.)
Unpacking libmemcached11:AMD64 (from .../libmemcached11_1.0.16-1_AMD64.deb) ...
Selecting previously unselected package php5-memcached.
Unpacking php5-memcached (from .../php5-memcached_5.5.0-1~dotdeb.1_AMD64.deb) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Setting up libmemcached11:AMD64 (1.0.16-1) ...
Setting up php5-memcached (5.5.0-1~dotdeb.1) ...

Creating config file /etc/php5/mods-available/memcached.ini with new version
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
0
automatix

問題を解決するには、sources.listに以下を追加する必要があります。

# Wheezy
deb http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy all
deb-src http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy all

# Wheezy-php55
deb http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy-php55 all
deb-src http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ wheezy-php55 all

実際、欠落している依存関係(libmemcached11)はdotdebリポジトリのwheezyディストリビューションに存在します。

6
Blueicefield

リリースタグで試す

Debian以外のリポジトリがあるので、パッケージが必要な場所からapt-getを指定しましょう。使ってみてください:

Sudo apt-get -t stable install php5-memcached

安定したリポジトリからphp5-memcachedlibmemcached10をインストールするので、依存関係の問題は修正されます。

固定方法

apt-get -t stableはそのdotdeb.orgをパッケージの最新の安定バージョンと見なすため、ミラーを無効にするか、apt-get updateしてパッケージをインストールするか、ピン留めマジックを使用します。次の内容でファイル/etc/apt/preferences.d/aptpinningを作成します。

Package: php5-memcached
Pin: Origin "ftp.de.debian.org"
Pin-Priority: 990

Package: php5-memcached
Pin: Origin "packages.dotdeb.org"
Pin-Priority: 500

これにより、ftp.de.debian.orgのパッケージよりもpackages.dotdeb.orgのパッケージが優先されます。

繰り返しますが、レポの混合は悪い考えですこの種の状況は(そしてすでに)起こり得るので。重要なものでない限り、依存関係が壊れる可能性のあるリポジトリを混在させないでください。

たぶんあなたはバックポートレポが必要です

別のソースからのPHPを使用している理由が「セキュリティ」に関するものである場合は、wheezy-backportリポジトリを使用する方がよいでしょう。deb http://YOURMIRROR.debian.org/debian wheezy-backports mainsources.listに追加し、apt-get updateを実行してから、 apt-get -t wheezy-backports install "package"を使用してパッケージ化します。これを試す場合は、他の方法を使用する変更を元に戻してください。

2
Braiam

あなたが持っていることを確認してください

deb http://packages.dotdeb.org wheezy all

あなたの情報源で! PHP 5.5.6、for Debian 7.0“ Wheezy” を参照してください。私のために働いた。

1
Tomáš Fejfar

Debian Wheezyのphp5-memcachedのバージョンはlibmemcached10に依存しています。

このページで http://packages.debian.org/wheezy/php5-memcached を確認できます。

php5-memcachedをインストールしようとしていますが、libmemcached11が必要であることがわかります。 libmemcached11はDebianWheezyにはありません。また、明らかに、sources.listの他のソースにも含まれていないため、aptはそれを見つけることができません。これは、Debian Wheezyのバージョンよりも新しいバージョンをインストールし、Debian以外のリポジトリからインストールするためです。リポジトリに正しい依存関係がない理由がわかりません。

Sources.listのこれらのエントリが問題を引き起こしています。

# nginx
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all

# PHP 5.5
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

あなたはそれらが必要だと確信しています-彼らはあなたがものをインストールするのを止めているからです。

DebianWheezyのPHP5のバージョンは5.4.4-14 + deb7u2です。それ以上のものが必要な場合は、はい、他のリポジトリが必要になりますが、不足している依存関係をインストールする必要もあります。 Debianは、安定したサーバー環境を提供することを目的としています。つまり、少し古いバージョンのソフトウェアを実行していることがよくあります。新しいものが必要な場合は、

  • Debianテストを試す
  • Debian Unstableを試してください(リスクが必要な場合を除いて、しないでください)。
  • Ubuntu Serverを使用する
  • リポジトリの仕組みと依存関係を取得する場所を理解する

今すぐ他のリポジトリを削除すると、Debianが何をするのかわかりません。次に何かをしようとしたときに、バージョンのPHPをダウングレードする可能性があります。本当に質問する必要があると思います。 Debian Stableを使用している理由。

DebianとPHP5.5が必要ですかですか、それともPHP5.5だけが必要ですか? PHP5.5だけが必要な場合は、すでにPHP5.5が含まれているディストリビューションを使用するか、独自のディストリビューション(すべての依存関係と必要な他のすべてのパッケージを含む)をコンパイルすることをお勧めします。

依存関係がないため、現在の設定でphp5-memcachedをインストールすることはできません。

0
EightBitTony