Debian Linux 完整移除套件 / 重新安裝套件 / 鎖定套件版本(apt)
2013-01-04 10:58
387 查看
很多人常會發生把某個套件搞爛了, 或者設定檔之類不小心砍掉了, 再來想到的當然是移除再重新安裝 或直接 (apt-get install --reinstall package), 但是怎麼裝, 設定檔就是回不來, 搞爛的資料也還是留著.
這並不是 Debian 的錯, 主要是怕你在移除時, 不小心就將重要資料跟著就砍掉了(ex: MySQL 不小心移除就把 DB 砍掉, 這就很尷尬了.)
此篇文章也有說明發生狀況: 如何在
Debian Etch 系統下完全移除套件與實體目錄?
就上述那篇文章的例子, 不小心將 Apache 的設定檔蓋掉/砍掉, 所以打算重新安裝 Apache.
套件移除重新安裝, 和 apt-get install --reinstall apache2 並沒有錯, 只不過問題是, apache2 的 package 裡面並沒有 設定檔. Orz.
由此可見 Package 套件內容:
dpkg -L apache2 | grep conf
dpkg -L apache2.2-common | grep conf # Debian 設定檔都放在 package_name-common 中
或者上述文章作者的做法是 less /var/lib/dpkg/info/apache2.list 也是可以.
所以要重新取得設定檔, 應該直接
apt-get install --reinstall apache2.2-common
即可. (請修改成自己系統的 apache2 版本)
現在遇到的另一個狀況是, MySQL 被搞爛了, 所以要將全部移除(含資料都要移除), 再重新安裝.
完整移除的步驟:
apt-get remove --purge mysql-server mysql-server-5.0 mysql-common mysql-client mysql-client-5.0
這一行就會將 DB/設定檔都完整移除(--purge 會將所有移除), 不過大多人的問題是, --purge 後面那一串是從哪來的?
可用下述查法:
dpkg -l | grep mysql # dpkg -l 會列出此系統安裝的所有 package
ls /var/lib/dpkg/info/*mysql*
移除之後, 重新安裝直接 apt-get install 就可以囉~
註: 若只是 Database file 爛了, 只要 apt-get remove --purge mysql-server-5.0, 再重新安裝 mysql-server-5.0 即可.
此段內容詳可見: Apt和dpkg快速參考
假設現在要鎖定 gaim 版本, 不想要 gaim 被升級或降級,有下述兩種做法:
echo "gaim hold" | dpkg --set-selections # 將 gaim 鎖定版本
dpkg --get-selections "gaim" # 檢查: 出現 gaim hold # 狀態是 hold, 就不能被升級了.
vim /etc/apt/preferences # 內容如下, 把版本編號寫死.
Package: gaim
Pin: version 0.58*
echo "gaim install" | dpkg --set-selections
dpkg --get-selections "gaim" # 檢查: 出現 gaim install # 狀態被重置為 install, 就可以繼續升級了
hold / install 這些狀態標誌都寫在 /var/lib/dpkg/status 裡, 也可以手動去修改變 hold / install 等狀態.
apt-get clean #/var/cache/apt/archives 會清掉 *.deb 檔
apt-get update # 會更新 /var/lib/apt/lists 的資料
apt-get 指令操作
Debian 參考手冊 -
Debian 套件管理系統
感謝 Thomas 提供的方法
除了上述已經知道檔案是在哪個 Package, 若是檔案不確定是在哪個 Package 的狀況, 可以用下述方法:
dpkg -S apache2.conf (apache2.conf 可以代換成你知道的 keyword 或 filename)
找出來的列表最前面就是 Package name, 重新安裝那個 Package 即可.
转载地址:http://blog.longwin.com.tw/2008/10/debian-remove-purge-install-reinstall-hold-2008/
這並不是 Debian 的錯, 主要是怕你在移除時, 不小心就將重要資料跟著就砍掉了(ex: MySQL 不小心移除就把 DB 砍掉, 這就很尷尬了.)
此篇文章也有說明發生狀況: 如何在
Debian Etch 系統下完全移除套件與實體目錄?
套件重新安裝
就上述那篇文章的例子, 不小心將 Apache 的設定檔蓋掉/砍掉, 所以打算重新安裝 Apache.套件移除重新安裝, 和 apt-get install --reinstall apache2 並沒有錯, 只不過問題是, apache2 的 package 裡面並沒有 設定檔. Orz.
由此可見 Package 套件內容:
dpkg -L apache2 | grep conf
dpkg -L apache2.2-common | grep conf # Debian 設定檔都放在 package_name-common 中
或者上述文章作者的做法是 less /var/lib/dpkg/info/apache2.list 也是可以.
所以要重新取得設定檔, 應該直接
apt-get install --reinstall apache2.2-common
即可. (請修改成自己系統的 apache2 版本)
套件完整移除
現在遇到的另一個狀況是, MySQL 被搞爛了, 所以要將全部移除(含資料都要移除), 再重新安裝.完整移除的步驟:
apt-get remove --purge mysql-server mysql-server-5.0 mysql-common mysql-client mysql-client-5.0
這一行就會將 DB/設定檔都完整移除(--purge 會將所有移除), 不過大多人的問題是, --purge 後面那一串是從哪來的?
可用下述查法:
dpkg -l | grep mysql # dpkg -l 會列出此系統安裝的所有 package
ls /var/lib/dpkg/info/*mysql*
移除之後, 重新安裝直接 apt-get install 就可以囉~
註: 若只是 Database file 爛了, 只要 apt-get remove --purge mysql-server-5.0, 再重新安裝 mysql-server-5.0 即可.
套件鎖定版本
此段內容詳可見: Apt和dpkg快速參考假設現在要鎖定 gaim 版本, 不想要 gaim 被升級或降級,有下述兩種做法:
echo "gaim hold" | dpkg --set-selections # 將 gaim 鎖定版本
dpkg --get-selections "gaim" # 檢查: 出現 gaim hold # 狀態是 hold, 就不能被升級了.
vim /etc/apt/preferences # 內容如下, 把版本編號寫死.
Package: gaim
Pin: version 0.58*
套件解除鎖定
echo "gaim install" | dpkg --set-selectionsdpkg --get-selections "gaim" # 檢查: 出現 gaim install # 狀態被重置為 install, 就可以繼續升級了
狀態檔案位置
hold / install 這些狀態標誌都寫在 /var/lib/dpkg/status 裡, 也可以手動去修改變 hold / install 等狀態.
其它相關
apt-get clean #/var/cache/apt/archives 會清掉 *.deb 檔apt-get update # 會更新 /var/lib/apt/lists 的資料
相關網頁
apt-get 指令操作Debian 參考手冊 -
Debian 套件管理系統
尋找要安裝的檔案是哪個 Package
感謝 Thomas 提供的方法除了上述已經知道檔案是在哪個 Package, 若是檔案不確定是在哪個 Package 的狀況, 可以用下述方法:
dpkg -S apache2.conf (apache2.conf 可以代換成你知道的 keyword 或 filename)
找出來的列表最前面就是 Package name, 重新安裝那個 Package 即可.
转载地址:http://blog.longwin.com.tw/2008/10/debian-remove-purge-install-reinstall-hold-2008/
相关文章推荐
- Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debian等)
- Linux各版本上的多网卡绑定(Debian和Ubuntu,SuSE,Fedora和RH)
- Linux 有问必答:如何在debian及其衍生发行版中改变默认的 Java 版本
- Debian Linux amd64版本系统安装
- Debian-linux软件管理器-dpkg+apt
- 如何将 Debian Linux 中的默认的 Python 版本切换为替代版本
- (超完整)Linux(debian9)服务器配置tensorflow环境:nvidia驱动、CUDA、cudnn、anaconda
- 基于JZ2440移植Linux3.4.2内核版本完整搭建笔记
- Linux下安装指定版本的mysql数据库及(Debian版本下)卸载mysql数据库
- Gentoo和Debian二年夜Linux版本对照
- Debian Linux新手Apt-get/dpkg简明入门
- Linux-----Ubuntu下apt-get安装软件包时依赖包版本过高
- Linux各种发行版本概述(Redhat系 | Debian系)
- 【译】Debian Linux下如何设置与更改默认python版本
- Debian Linux 安裝 php-java-bridge (使用deb安裝)
- Debian Linux 安裝 php-java-bridge (tarball 安裝)
- hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)
- Debian Linux新手Apt-get/dpkg简明入门
- 关于金山办公套件的Linux版本的事实真
- Debian(Linux)+XAMPP(LAMPP)+Zend Studio + PHP +XDebug 完整的开发环境配置方法。 转摘:http://www.cnblogs.com/kungfupanda/archive/2010/11/25/1887812.html