Apache-2.2

我在 Ubuntu 上執行了兩個版本的 apache,如何刪除一個?

  • May 27, 2009

我通過執行以下操作在 ubuntu 上安裝了 apache:

sudo -i
cd /usr/local/src
wget http://apache.mirrors.tds.net/httpd/httpd-2.2.11.tar.gz
tar -xvf httpd-2.2.11.tar.gz
cd httpd-2.11.9
./configure --enable-layout=Debian --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-http --enable-proxy-balancer --enable-rewrite --enable-cache --enable-mem-cache --enable-ssl --enable-headers --enable-mods-shared=most
make
make install
exit

然後我通過執行以下操作安裝了 php5:

sudo apt-get install php5

現在我有兩個版本的 apache:

tony@bootsy/etc/apache2 $ apachectl -v       
Server version: Apache/2.2.11 (Unix)
Server built:   May 26 2009 21:57:13
 tony@bootsy/etc/apache2 $ apache2ctl -v
Server version: Apache/2.2.8 (Ubuntu)
Server built:   Mar 10 2009 18:09:51

我嘗試了 apt-get remove、apt-get autoremove 等。它們仍然留下了 apache 的痕跡。我顯然只想要一個版本的 apache 執行……但我也不確定哪個……最好執行 Apache/2.2.8(Ubuntu)?無論如何,我怎樣才能刪除其他版本?

如何在沒有 apache 的情況下安裝 php5 並不明顯……我認為這很瘋狂。

謝謝!

首先要注意的是,您不僅安裝了兩個 apache 實例,實際上還使用了兩種不同的安裝機制——一種是通過編譯,另一種是使用常駐 dpkg(通過 apt 呼叫)機制。

兩種方法都比另一種更(或更少)有效,而且,不能斷然說你必須只使用一種方法;但是您已經確定了使用兩種不同機制的第一個問題 - 您的包管理器 (dpkg) 對您的手動編譯安裝一無所知。

您最終從 apt-get install php5 獲得 apache 版本的原因是 php5 包中內置了許多依賴項。您可以使用 dpkg-query 查詢打包數據庫中的依賴項:

# dpkg-query -W -f='${Package} ${Version}\t${Maintainer}\n${Depends}\n' php5

php5 5.2.4-2ubuntu5.6   Ubuntu Core Developers <ubuntu-develdiscuss@lists.ubuntu.com>
libapache2-mod-php5 (>= 5.2.4-2ubuntu5.6) | php5-cgi (>= 5.2.4-2ubuntu5.6), 
 php5-common (>= 5.2.4-2ubuntu5.6)

您將看到一個指向libapache2-mod-php5的連結,該連結又引用了已安裝的 apache。

至於刪除 - apt-get remove apache2將刪除包管理器安裝的 apache2 版本,但它不會觸及(你也不希望它)手動添加的文件 - 這些需要你仔細檢查和分析系統。

如果你幸運的話,當你輸入make install時執行安裝的 make 文件

也有一個 make remove

在 apache2/httpd 的情況下 - 你沒有那麼奢侈,但這是一個相當乾淨的安裝,隨著安裝的進行,所以你應該能夠辨識你安裝的目錄,以及一個

rm -rf /usr/local/apache2(或安裝 apache 的任何位置)

應該刪除放置在系統上的大多數文件。

如果您沒有全新安裝 - 您需要搜尋系統上安裝的文件。

在手動安裝完成後確定已添加到系統的內容的一種典型方法(適用於所有內容,而不僅僅是自動配置安裝)是執行以下命令:

查找/-cmin -2 2>/dev/null | egrep -v ‘^(/proc|/sys)’

然後,您可以使用該命令的輸出為您提供應考慮刪除的文件列表。

我意識到這不是刪除已放置在系統上的內容的簡單指南,但您遇到的挑戰正是人們如此努力地使用包管理器來管理他們的系統的原因(除了乾淨添加/刪除文件,還提供了許多其他有用的好處,例如二進制驗證以查看是否已修改任何內容)

引用自:https://serverfault.com/questions/12493