Debian

Debian Wheezy:重新安裝 apache2

  • June 16, 2016

apache2 包在我的 debian 伺服器上損壞了,所以我首先解除安裝了所有與 apache2 相關的包。現在一切似乎都已正確解除安裝。

dpkg -l | grep 'apache'不返回任何東西

但是,我似乎無法安裝 apache2 …

apt-get

sudo apt-get install apache2
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:
apache2 : Depends: apache2-mpm-worker (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-prefork (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-event (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-itk (= 2.2.22-13+deb7u6) but it is not going to be installed
          Depends: apache2.2-common (= 2.2.22-13+deb7u6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

並與aptitude

sudo apt-get install apache2
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:
apache2 : Depends: apache2-mpm-worker (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-prefork (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-event (= 2.2.22-13+deb7u6) but it is not going to be installed or
                   apache2-mpm-itk (= 2.2.22-13+deb7u6) but it is not going to be installed
          Depends: apache2.2-common (= 2.2.22-13+deb7u6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@dora:~# sudo aptitude install apache2
The following NEW packages will be installed:
 apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-bin{a} apache2.2-common{a} libaprutil1-dbd-sqlite3{ab} libaprutil1-ldap{ab} 
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 1 290 kB of archives. After unpacking 5 146 kB will be used.
The following packages have unmet dependencies:
libaprutil1-dbd-sqlite3 : Depends: libaprutil1 (= 1.4.1-3) but 1.5.4-1+b1 is installed.
libaprutil1-ldap : Depends: libaprutil1 (= 1.4.1-3) but 1.5.4-1+b1 is installed.
The following actions will resolve these dependencies:

    Keep the following packages at their current version:
1)     apache2 [Not Installed]                            
2)     apache2-mpm-worker [Not Installed]                 
3)     apache2.2-bin [Not Installed]                      
4)     apache2.2-common [Not Installed]                   
5)     libaprutil1-dbd-sqlite3 [Not Installed]            
6)     libaprutil1-ldap [Not Installed]                   



Accept this solution? [Y/n/q/?] Y
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

我怎樣才能解決這個問題並讓 Apache 再次工作?


編輯回答馬丁:

cat /etc/apt/sources.list
deb http://debian.mirrors.ovh.net/debian/ wheezy main
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main

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

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

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

deb http://security.debian.org/ testing/updates main
deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main

deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6
deb-src http://repo.mysql.com/apt/debian/ wheezy mysql-5.6

deb http://dl.google.com/linux/mod-pagespeed/deb/ stable main

最後:

apt-cache policy libaprutil1
libaprutil1:
 Installed: 1.5.4-1+b1
 Candidate: 1.5.4-1+b1
 Version table:
*** 1.5.4-1+b1 100
       100 /var/lib/dpkg/status
    1.4.1-3 500
       500 http://debian.mirrors.ovh.net/debian wheezy/main amd64 Packages

根據aptitude,一個名為的 Apache 依賴libaprutil1項安裝在比儲存庫中可用的版本更新的版本中:

The following packages have unmet dependencies: 
libaprutil1-dbd-sqlite3 : Depends: libaprutil1 (= 1.4.1-3) but
1.5.4-1+b1 is installed.  libaprutil1-ldap : Depends: libaprutil1 (= 1.4.1-3) but 1.5.4-1+b1 is installed.

你可以嘗試找出這個包的來源apt-cache policy

apt-cache policy libaprutil1

libaprutil1=1.5.4-1+b1似乎來自 Debian sid …您是否有機會嘗試從 sid 儲存庫安裝 Apache?這似乎不是一個好主意……如果您想要更新的 Apache 版本,我建議您升級到 Debian jessie

請將來自的輸出附加apt-cache policy到您的問題中(當你在它的時候,還有來自的輸出cat /etc/apt/sources.list);您可能sources.list包含來自 wheezy 和 sid 儲存庫的 URL,這將是一件壞事。

您可以嘗試刪除較新的libaprutil1軟體包:

aptitude purge libaprutil1

然後嘗試再次安裝 Apache:

aptitude install apache2

引用自:https://unix.stackexchange.com/questions/290195