apt-get、apt、yum、dpkg、rpm
?
apt-get 命令詳解(中文)以及實例:http://blog.51yip.com/linux/1176.html
linux yum命令詳解:http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html
配置 yum 源的兩種方法:http://www.cnblogs.com/shuaixf/archive/2011/11/30/2268496.html
?
?
更新 LInux 系統步驟:
(1) 更新本地軟件包列表庫。 執行命令如下所示:
? ? ? ? ? root@Kali:~# apt-get update
? ? ? ? ? 執行以上命令后, 需要等待一段時間。 執行完后, 會自動退出程序。
(2) 升級已存在的包。 執行命令如下所示:
? ? ? ? ? root@Kali:~# apt-get upgrade
(3) 升級到最新版本。 執行命令如下所示:
? ? ? ? ? root@Kali:~# apt-get dist-upgrade
?
?
Linux 軟件包管理基本操作入門
?
? ? ? ? 大多數現代類 Unix 操作系統都提供了一個集中的軟件包管理機制,以幫助用戶 搜索、安裝 和 管理 軟件。而軟件通常以「包」的形式存儲在倉庫「repository」中,對軟件包的使用和管理被稱為包管理。而 Linux 包的基本組成部分通常有:共享庫、應用程序、服務和文檔。
? ? ? ? 包管理通常 不僅限于軟件的一次性安裝,還包括了對已安裝軟件包進行升級的工具。「包倉庫」有助于確保代碼已經在你使用的系統上進行了審核,并由軟件開發者或包維護者進行管理。
? ? ? ? 在配置 Linux 服務器或開發環境時,通常都不僅限于使用官方源。相較于現如今軟件版本快速更新迭代而言,雖然官方源所使用的穩定版軟件包很可能已過時,但對于系統管理員和開發人員來說,掌握常見?Linux 包管理基本操作還是一項必備的常用技能。
?
軟件包管理系統:簡要介紹
大多數包管理系統是建立在包文件上的集合,包文件通常包含編譯好的二進制文件和其它資源組成的:軟件、安裝腳本、元數據及其所需的依賴列表。
雖然大多數流行的 Linux 發行版在包管理工具、方式和形式都大同小異,但卻還是有平臺差異:
| Debian | .deb | apt、apt-cache、apt-get、dpkg |
| Ubuntu | .deb | apt、apt-cache、apt-get、dpkg |
| CentOS | .rpm | yum |
| Fedora | .rpm | dnf |
Debian 及其衍生產品如:Ubuntu、Linux Mint 和 Raspbian 的包格式為.deb文件,APT 是最常見包操作命令,可:搜索庫、安裝包及其依賴和管理升級。而要直接安裝現成.deb包時需要使用dpkg命令。
CentOS、Fedora 及 Red Hat 系列 Linux 使用RPM包文件,并使用yum命令管理包文件及與軟件庫交互。
在最新的 Fedora 版本中,yum命令已被dnf取代進行包管理。
?
更新本地包數據庫列表
大多數 Linux 都使用本地數據庫來存儲遠程可用的包倉庫列表,所以在安裝或升級包之前最好更新一下這個數據庫。
| Debian / Ubuntu | sudo apt-get update |
| CentOS | yum check-update |
| Fedora | dnf check-update |
?
升級已安裝的包
在沒有包管理方式時,要升級并保持 Linux 已裝軟件處在最新版本是一個巨大的工程,管理員和用戶不得不手動跟蹤上游軟件版本變化及安全警告。在有了包管理系統之后,只需幾條命令便可保持軟件最新。
| Debian / Ubuntu | sudo apt-get upgrade | 僅升級已安裝的軟件包 |
| ? | sudo apt-get dist-upgrade | 可添加或刪除程序包,以滿足新的依賴。 |
| CentOS | sudo yum update | ? |
| Fedora | sudo dnf upgrade | ? |
?
查找/搜索軟件包
大多數 Linux 桌面版本都提供用戶可搜索和安裝軟包的界面,這是找尋和安裝軟件的最佳方法。但對于追求效率和服務器管理員來說,使用命令行工具查找/搜索軟件包才是正途。
| Debian / Ubuntu | apt-cache search 搜索內容 | ? |
| CentOS | yum search 搜索內容 | ? |
| ? | yum search all 搜索內容 | 搜索所有內容,包括包描述。 |
| Fedora | dnf search 搜索內容 | ? |
| ? | dnf search all 搜索內容 | 搜索所有內容,包括包描述。 |
?
查看某個軟件包信息
在決定安裝哪個包之前,我們往往都需要查看該軟件包的詳細說明。包的說明文件中通常包括:包名、版本號及依賴列表等元數據,可以使用如下命令來查看。
| Debian / Ubuntu | apt-cache show 包名 | 顯示有關軟件包的本地緩存信息 |
| ? | dpkg -s 包名 | 顯示包的當前安裝狀態 |
| CentOS | yum info 包名 | ? |
| ? | yum deplist 包名 | 列出包的以來 |
| Fedora | dnf info 包名 | ? |
| ? | dnf repoquery –requires 包名 | 列出包的以來 |
?
從軟件倉庫安裝包
一旦我們知道某個軟件包的名稱之后,便可以使用如下命令從軟件倉庫安裝包。
| Debian / Ubuntu | sudo apt-get install 包名 | ? |
| ? | sudo apt-get install 包1 包2 … | 安裝所有列出的包 |
| ? | sudo apt-get install -y 包名 | 無需提示直接安裝 |
| CentOS | sudo yum install 包名 | ? |
| ? | sudo yum install 包1 包2 … | 安裝所有列出的包 |
| ? | sudo yum install -y 包名 | 無需提示直接安裝 |
| Fedora | sudo dnf install 包名 | ? |
| ? | sudo dnf install 包1 包2 … | 安裝所有列出的包 |
| ? | sudo dnf install -y 包名 | 無需提示直接安裝 |
?
從本地文件系統直接安裝包
很多時候,我們在進行測試或從某個地方直接拿到軟件包之后需要從本地文件系統直接安裝包。Debian 及衍生系統可以使用?dpkg?進行安裝,CentOS 和 Fedora 系統使用?yum?和?dnf?命令進行安裝。
| Debian / Ubuntu | sudo dpkg -i 包名.deb | ? |
| ? | sudo apt-get install -y gdebi && sudo gdebi 包名.deb | 使用 gdebi 檢索缺少的依賴關系 |
| CentOS | sudo yum install 包名.rpm | ? |
| Fedora | sudo dnf install 包名.rpm | ? |
?
移除已安裝的包
由于包管理器知道哪些文件是由哪個包提供的,所以在卸載不需要的軟件包之后通常可以獲得一個干凈的系統。
| Debian / Ubuntu | sudo apt-get remove 包名 | ? |
| ? | sudo apt-get autoremove | 自動移除已知不需要的包 |
| CentOS | sudo yum remove 包名 | ? |
| Fedora | sudo dnf erase 包名 | ? |
?
?
一、rpm 包 安裝方式步驟:?
1、找到相應的軟件包,比如 soft.version.rpm,下載到本機某個目錄; 2、打開一個終端,su - 成 root 用戶; 3、cd soft.version.rpm 所在的目錄; 4、輸入 rpm -ivh soft.version.rpm
二、deb 包 安裝方式步驟:?
三、tar.gz 源代碼 包 安裝方式:?
四、tar.bz2 源代碼 包 安裝方式:?
五、apt 方式安裝:?
六、bin 文件安裝:?
七、不需要安裝的軟件:?
有些軟件,比如 lumaqq,是不需要安裝的,自帶 jre 解壓縮后可直接運行。假設 下載的是lumaqq.tar.gz,使用方法如下:?
? ? ? ? 1、 打開一個終端,su - 成 root 用戶;?
? ? ? ? 2、 tar -xzvf lumaqq.tar.gz? // 這一步會生成一個叫 LumaQQ 的目錄?
? ? ? ? 3、 cd LumaQQ?
? ? ? ? 4、 chmod +x lumaqq? // 設置 lumaqq 這個程序文件為可運行?
? ? ? ? 5、 此時就可以運行 lumaqq 了,用命令 ./lumaqq 即可,但每次運行要輸入全路徑或切換到剛才生成的LumaQQ目錄里?
? ? ? ? 6、 為了保證不設置路徑就可以用,你可以在/bin目錄下建立一個lumaqq的鏈接,
? ? ? ? ? ? 用命令 ln -s lumaqq /bin/ 即可,以后任何時候打開一個終端輸入lumaqq 就可以啟動 QQ 了?
? ? ? ? 7、 如果你要想 lumaqq 有個菜單項,使用菜單編輯工具,比如 Alacarte Menu Editor,
? ? ? ? ? ? 找到上面生成的 LumaQQ 目錄里的 lumaqq 設置一個菜單項就可以了,也可以直接到 /usr/share/applications目錄,
? ? ? ? ? ? 按照里面其它 *.desktop 文件的格式生成一個自己的 desktop 文件即可。
?
?
MAC 中的 brew?
?
一:簡介
Homebrew 是 Mac 中常見的包管理器。類似 ubuntu 下 apt-get,centos 的 yum。
官網地址:https://brew.sh
?
二:安裝
參考官網:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
如果連接被拒絕,更新 host 文件再次安裝
秘籍一:使用wget更新hosts
wget?https://raw.githubusercontent.com/racaljk/hosts/master/hosts?-qO /tmp/hosts && sudo sh -c 'cat /tmp/hosts > /etc/hosts'
在 Mac 上面安裝 HomeBrew 失敗的解決方案:修改 hosts 文件:https://blog.csdn.net/qq_33154343/article/details/106030933
蘋果 mac 電腦中 brew 的安裝使用及卸載詳細教程:https://www.jianshu.com/p/65440ecc7023
?
三:使用
注意:下載太慢,可以替換國內的鏡像源
鏈接地址:https://www.cnblogs.com/jingxiaoniu/p/11123377.html
brew home 用瀏覽器打開brew的官方網站 brew list redis 查看redis的安裝文件 brew cat redis 查看redis的 brew 安裝腳本 brew cleanup 刪除所有軟件升級后的遺留舊版本查看已經安裝的包:1.查看已經安裝的包: brew list 【xxx】2.查看包信息: brew info 【xxx】3.查看包依賴: brew deps 【xxx】4.查看配置信息: brew config5.診斷問題: brew doctor6.幫助信息: brew help更新:1.更新Homebrew: brew update2.查看需要更新的包: brew outdated3.更新包(不加報名更新所有):brew upgrade 【xxx】4.鎖定不想更新的包: brew pin 【xxx】 5.取消鎖定: brew unpin 【xxx】清理:1.清理舊版本:brew cleanup 【xxx】2.強制卸載:brew uninstall 【xxx】--force服務管理:1.列出所有正在運行的服務:brew services list2.啟動一個服務:brew services start 【xxx】3.停止一個服務:brew services stop 【xxx】4.重啟一個服務:brew services restart 【xxx】5.運行一個服務:brew services run 【xxx】6.卸載沒有使用過的服務:brew services cleanup倉庫管理:注意:當 brew 默認倉庫 core 中不存在當前應用,可以使用tap方法添加應用1.已安裝的倉庫列表:brew tap2.添加倉庫:brew tap 【user/repo URL】注:user/repo github上存在,brew tap user/repo 在本地對https://github.com/user/repo倉庫上做了個克隆,完成后brew就可以在這個倉庫包上工作,URL方法類同。3.移除倉庫:brew untap tap使用示例:
brew services list # 查看系統通過 brew 安裝的服務 brew services cleanup # 清除已卸載無用的啟動配置文件mysql 啟動:brew services start mysql 停止:brew services stop mysql 重啟:brew services restart mysqlphp 啟動:brew services start php 停止:brew services stop php 重啟:brew services restart phpnginx 啟動:brew services start nginx 停止:brew services stop nginx 重啟:brew services restart nginxbrew install mysql // 安裝mysql brew search mysql // 搜索mysql brew info mysql // 查找mysql相關信息 brew update // 更新自己的Homebrew brew outdated // 會顯示哪些軟件可以升級 brew upgrade // 升級所有軟件(后面不加名字) brew upgrade mysql // 升級mysql軟件 brew cleanup // 定期清理一些安裝包緩存 brew list // 顯示已經安裝的軟件 brew uninstall xx // 卸載某些軟件brew 安裝的根目錄 一般在:/usr/local/Cellar/ 下mac brew :command not founc 解決辦法sudo vim .bash_profileexport PATH=/usr/local/bin:$PATHsource .bash_profile?
?
apt-get 和 apt
?
( 使用的時候最好先配置下國內的源 )
?
一,什么的是 apt-get
高級包裝工具(英語:Advanced Packaging Tools,簡稱:APT)是Debian及其衍生發行版(如:ubuntu)的軟件包管理器。APT可以自動下載,配置,安裝二進制或者源代碼格式的軟件包,因此簡化了 Unix系統上管理軟件的過程,apt-get命令一般需要root權限執行,所以一般跟著sudo命令。它根yum ,pacman,installpkg等性質差不多,是系統軟件的管理工具。會用其中一種基本上都會用了。
二,apt-get 中文參數
?
三,apt-get 常用實例
apt-cache search packagename 搜索包 sudo apt-cache search string 在軟件包列表中搜索字符串 apt-cache show packagename 獲取包的相關信息,如說明、大小、版本等 sudo apt-get install packagename 安裝包 sudo apt-get install packagename -- reinstall 重新安裝包 sudo apt-get -f install 修復安裝 "-f = --fix-missing" sudo apt-get remove packagename 刪除包 sudo apt-get remove packagename --purge 刪除包,包括刪除配置文件等sudo apt-get update 更新源 sudo apt-get upgrade 更新已安裝的包 sudo apt-get dist-upgrade 升級系統sudo apt-get dselect-upgrade 使用 dselect 升級 apt-cache depends packagename 了解使用依賴 apt-cache rdepends packagename 是查看該包被哪些包依賴 sudo apt-get build-dep packagename 安裝相關的編譯環境 sudo apt-get source packagename 下載該包的源代碼sudo apt-get clean 清理無用的包 sudo apt-get autoclean 清理無用的包 sudo apt-get check 檢查是否有損壞的依賴dpkg –force-all –purge packagename 有些軟件很難卸載,而且還阻止了別的軟件的應用 ,就可以用這個,不過有點冒險。 apt-cache showpkg pkgs —— 顯示軟件包信息。 apt-cache dumpavail —— 打印可用軟件包列表。 apt-cache show pkgs —— 顯示軟件包記錄,類似于dpkg –print-avail。 apt-cache pkgnames —— 打印軟件包列表中所有軟件包的名稱。 dpkg -S file —— 這個文件屬于哪個已安裝軟件包。dpkg -L package —— 列出軟件包中的所有文件。# 列出所有與模式相匹配的軟件包。如果您不知道軟件包的全名,您可以使用“*package-name-pattern*”。 sudo dpkg -l package-name-pattern典型應用
我是個賽車發燒友,想裝個賽車類游戲玩玩。有哪些賽車類游戲可供選擇呢?apt-cache search racing game 出來了一大堆結果。看看有沒有更多關于torcs這個游戲的信息。apt-cache show torcs 看上去不錯。這個游戲是不是已經安裝了?最新版本是多少?它屬于哪一類軟件,universe還是main?apt-cache policy torcs 好吧,現在我要來安裝它!:apt-get install torcs 在控制臺下我應該調用什么命令來運行這個游戲呢?在這個例子中,直接用 torcs 就行了。 但并不是每次都這么簡單。我們可以通過查找哪些文件被安裝到了 “/usr/bin”文件夾下來確定二進制文件名。 對于游戲軟件,這些二進制文件將被安裝到“/usr/games”下面。對于系統管理工具相應的文件夾是“/usr/sbin”。dpkg -L torcs | grep /usr/games/ 命令的第一部分顯示軟件包“torcs”安裝的所有文件(您自己試試看)。 命令的第二部分,我們告訴系統只顯示前一部分的輸出結果中含有“/usr/games”的那些行。 這個游戲很酷哦。說不定還有其他賽道可玩的?apt-cache search torcs 我的磁盤空間不夠用了。我得把apt的緩存空間清空才行。apt-get clean 哦不,老媽叫我把機器上的所有游戲都刪掉。但是我想把配置文件保留下來,這樣待會我只要重裝一下就可以繼續玩了。apt-get remove torcs 如果我想連配置文件一塊刪除:apt-get remove –purge torcs額外的軟件包 deborphan 和 debfoster 工具可以找出已經安裝在系統上的不會被用到的軟件包。提高命令行方式下的工作效率 您可以通過定義別名(alias)來提高這些命令的輸入速度。 例如,您可以在您的 *~/.bashrc* 文件中添加下列內容 alias acs=’apt-cache search’ alias agu=’sudo apt-get update’ alias agg=’sudo apt-get upgrade’ alias agd=’sudo apt-get dist-upgrade’ alias agi=’sudo apt-get install’ alias agr=’sudo apt-get remove’ 或者使用前面介紹的 aptitude 命令,如“alias agi=’sudo aptitude install’”。?
apt 與 apt-get
在開始對比?apt?與?apt-get?命令的區別之前,我們先來看看這兩個命令的背景,以及它們要試圖達到的目的。
Debian 作為 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系統的母板,其具有強健的「包管理」系統,它的每個組件和應用程序都內置在系統中安裝的軟件包中。Debian 使用一套名為?Advanced Packaging Tool(APT)的工具來管理這種包系統,不過請不要把它與?apt?命令混淆,它們之間是其實不是同一個東西。
在基于 Debian 的 Linux 發行版中,有各種工具可以與 APT 進行交互,以方便用戶安裝、刪除和管理的軟件包。apt-get?便是其中一款廣受歡迎的命令行工具,另外一款較為流行的是?Aptitude?這一命令行與 GUI 兼顧的小工具。
如果你已閱讀過我們的?apt-get 命令指南,可能已經遇到過許多類似的命令,如apt-cache、apt-config?等。如你所見,這些命令都比較低級又包含眾多功能,普通的 Linux 用戶也許永遠都不會使用到。換種說法來說,就是最常用的 Linux 包管理命令都被分散在了?apt-get、apt-cache?和?apt-config?這三條命令當中。
apt?命令的引入就是為了解決命令過于分散的問題,它包括了?apt-get?命令出現以來使用最廣泛的功能選項,以及?apt-cache?和?apt-config?命令中很少用到的功能。
在使用?apt?命令時,用戶不必再由?apt-get?轉到?apt-cache?或?apt-config,而且?apt?更加結構化,并為用戶提供了管理軟件包所需的必要選項。
簡單來說就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令選項的集合。
?
apt 與 apt-get 之間的區別
通過?apt?命令,用戶可以在同一地方集中得到所有必要的工具,apt?的主要目的是提供一種以「讓終端用戶滿意」的方式來處理 Linux 軟件包的有效方式。
apt?具有更精減但足夠的命令選項,而且參數選項的組織方式更為有效。除此之外,它默認啟用的幾個特性對最終用戶也非常有幫助。例如,可以在使用?apt?命令安裝或刪除程序時看到進度條。
apt?還會在更新存儲庫數據庫時提示用戶可升級的軟件包個數。
如果你使用?apt?的其它命令選項,也可以實現與使用?apt-get?時相同的操作。
?
apt 和 apt-get 命令之間的區別
雖然?apt?與?apt-get?有一些類似的命令選項,但它并不能完全向下兼容?apt-get?命令。也就是說,可以用?apt?替換部分?apt-get?系列命令,但不是全部。
| apt install | apt-get install | 安裝軟件包 |
| apt remove | apt-get remove | 移除軟件包 |
| apt purge | apt-get purge | 移除軟件包及配置文件 |
| apt update | apt-get update | 刷新存儲庫索引 |
| apt upgrade | apt-get upgrade | 升級所有可升級的軟件包 |
| apt autoremove | apt-get autoremove | 自動刪除不需要的包 |
| apt full-upgrade | apt-get dist-upgrade | 在升級軟件包時自動處理依賴關系 |
| apt search | apt-cache search | 搜索應用程序 |
| apt show | apt-cache show | 顯示裝細節 |
當然,apt 還有一些自己的命令:
| apt list | 列出包含條件的包(已安裝,可升級等) |
| apt edit-sources | 編輯源列表 |
需要大家注意的是:apt?命令也還在不斷發展, 因此,你可能會在將來的版本中看到新的選項。
?
apt-get已棄用?
目前還沒有任何 Linux 發行版官方放出?apt-get?將被停用的消息,至少它還有比?apt?更多、更細化的操作功能。對于低級操作,仍然需要?apt-get。
?
我應該使用 apt 還是 apt-get?
既然兩個命令都有用,那么我該使用?apt?還是?apt-get?呢?作為一個常規 Linux 用戶,系統極客建議大家盡快適應并開始首先使用?apt。不僅因為廣大 Linux 發行商都在推薦?apt,更主要的還是它提供了 Linux 包管理的必要選項。
最重要的是,apt 命令選項更少更易記,因此也更易用,所以沒理由繼續堅持?apt-get。
最后提供兩點使用上的建議:
- apt?可以看作?apt-get?和?apt-cache?命令的子集, 可以為包管理提供必要的命令選項。
- apt-get?雖然沒被棄用,但作為普通用戶,還是應該首先使用?apt。
?
?
aptitude?
aptitude 和 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的 包管理工具。
但是 aptitude 與 apt-get 不同的是,aptitude 在處理依賴問題上更佳一些。
舉例來說,aptitude 在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為干凈。
一些常用 aptitude 命令,僅供參考。 命令 作用 aptitude update 更新可用的包列表 aptitude upgrade 升級可用的包 aptitude dist-upgrade 將系統升級到新的發行版 aptitude install pkgname 安裝包 aptitude remove pkgname 刪除包 aptitude purge pkgname 刪除包及其配置文件 aptitude search string 搜索包 aptitude show pkgname 顯示包的詳細信息 aptitude clean 刪除下載的包文件 aptitude autoclean 僅刪除過期的包文件1.aptitude 解決得更好的地方: install, remove, reinstall(apt-get無此功能), show(apt-get無此功能), search(apt-get無此功能), hold(apt-get無此功能), unhold(apt-get無此功能), 2.apt-get 解決得更好的地方: source(aptitude無此功能), build-dep (低版本的aptitude沒有build-dep功能)3.apt-get 跟 aptitude 沒什么區別的地方:update, upgrade apt-get upgrade = aptitude safe-upgradeapt-get dist-upgrade = aptitude full-upgrgade其實用的比較多的是(這里以Linux上很有名的開源播放器VLC為例) sudo apt-get install vlc sudo apt-get remove vlc apt-get update 更新源 apt-get upgrade 更新已安裝的包有時候要添加軟件源也可用這個命令:sudo apt-get add repostory:[軟件源地址] 然后用apt-get update 更新源aptitude? ? ——? ? 詳細查看已安裝或可用的軟件包。
與 apt-get 類似,aptitude 可以通過命令行方式調用,但僅限于某些命令 —— 最常見的有安裝和卸載命令。
由于 aptitude 比 apt-get 了解更多信息,可以說它更適合用來進行安裝和卸載。
?
?
?
dpkg、apt-get、aptitude 三個命令的區別 及 使用
?
?
安裝軟件包
dpkg -i package_name.deb ? ?# 安裝本地軟件包,不解決依賴關系 apt-get install package ? ? # 在線安裝軟件包 sudo apt-get install packagename # 安裝一個新軟件包(參見下文的aptitude ) aptitude install pattern ? ?# 在線安裝軟件包 apt-get install package ? ? --reinstall ? # 重新安裝軟件包 apitude reinstall package ? # 重新安裝軟件包?
移除軟件包
dpkg -r package ? ? ? ? ? ? # 刪除軟件包 apt-get remove package ? ? ?# 刪除軟件包 sudo apt-get remove packagename # 卸載一個已安裝的軟件包(保留配置文件) aptitude remove package ? ? # 刪除軟件包 dpkg -P ? ? ? ? ? ? ? ? ? ? # 刪除軟件包及配置文件 apt-get remove package --purge ? ?# 刪除軟件包及配置文件 sudo apt-get --purge remove packagename # 卸載一個已安裝的軟件包(刪除配置文件) apitude purge pattern ? ? ? ? ? ? # 刪除軟件包及配置文件apt-get autoremove # 自動移除軟件包,刪除不再需要的軟件包 注:aptitude 沒有,它會自動解決這件事# 有些軟件很難卸載,而且還阻止了別的軟件的應用 ,就可以用這個,不過有點冒險。 sudo dpkg –force-all –purge packagename # 會把已裝或已卸的軟件都備份在硬盤上,所以如果需要空間的話,可以讓這個命令來刪除你已經刪掉的軟件 sudo apt-get autoclean apt?
清除下載的軟件包
apt-get clean ? ? ? ?# 清除 /var/cache/apt/archives 目錄,# 這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的。 aptitude clean ? ? ? # 清除 /var/cache/apt/archives 目錄 apt-get autoclean ? ?# 清除 /var/cache/apt/archives 目錄,不過只清理過時的包 aptitude autoclean ? # 清除 /var/cache/apt/archives 目錄,不過只清理過時的包?
編譯相關 ??
apt-get source package ? ? ?# 獲取源碼 apt-get build-dep package ? # 解決編譯源碼 package 的依賴關系 aptitude build-dep pattern ?# 解決編譯源碼 pattern 的依賴關系?
平臺相關
apt-cross --arch ARCH --show package ? ? # 顯示屬于 ARCH 構架的 package 軟件包信息 apt-cross --arch ARCH --get package ? ? ?# 下載屬于 ARCH 構架的 package 軟件包 apt-cross --arch ARCH --install package ?# 安裝屬于 ARCH 構架的 package 軟件包 apt-cross --arch ARCH --remove package ? # 移除屬于 ARCH 構架的 package 軟件包 apt-cross --arch ARCH --purge package ? ?# 移除屬于 ARCH 構架的 package 軟件包 apt-cross --arch ARCH --update ? ? ? ? ? # 升級屬于 ARCH 構架的 package 軟件包注:慎重考慮要不要用這種方法來安裝不同構架的軟件包,這樣會破壞系統。
? ? 對于 amd64 的用戶可能需要強制安裝某些 i386 的包,千萬不要把原來 amd64 本身的文件給 replace 了。
? ? 最好只是安裝一些 lib 到 /usr/lib32 目錄下。
? ? 同樣地,可以用 apt-file 看某個其它構架的軟件包包含哪些文件,或者是文件屬于哪個包,
? ? 不過記得最先要用 apt-file --architecture ARCH update 來升級apt-file 的數據庫,在 search 或 show 時也要指定 ARCH。
?
更新源
apt-get update ? # 更新源 sudo apt-get update # 在修改/etc/apt/sources.list或者/etc/apt/preferences之後運行該命令。 aptitude update ? # 更新源?
更新系統
apt-get upgrade ? ? ? ?#更新所有已安裝的軟件包 aptitude safe-upgrade ?#更新已經安裝的軟件包 apt-get dist-upgrade ? #將系統升級到新版本 aptitude full-upgrade ?#將系統升級到新版本?
?
yum 命令
?
? ? ? ??yum(全稱為 Yellow dog Updater, Modified)是一個在?Fedora?和?RedHat?以及?SUSE?中的 Shell 前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。yum起初是由yellow dog這一發行版的開發者Terra Soft研發,用Python寫成,那時還叫做yup(yellow dog updater),后經杜克大學的Linux@Duke開發團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性并自動提示用戶解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點, 也可以是本地軟件池,但必須包含rpm的header, header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header并加以分析,才能自動化地完成余下的任務。
? ? ? ? Redhat 和 Fedora 的軟件安裝命令是 rpm ,但是用 rpm 安裝軟件最大的麻煩就是需要手動尋找安裝該軟件所需要的一系列依賴關系,超級 麻煩不說,要是軟件不用了需要卸載的話由于卸載掉了某個依賴關系而導致其他的軟件不能用是非常惱人的。令人高興的是,Fedora 終于推出了類似于 ubuntu中的 apt 的命令 yum,令 Fedora的軟件安裝變得簡單容易。Yum 有以下特點:
*可以同時配置多個資源庫(Repository)
*簡潔的配置文件(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM數據庫的一致性
yum,是 Yellow dog Updater Modified 的簡稱,
yum 的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。[command]為所要進行的操作,[package ...]是操作的對象。
概括了部分常用的命令包括:
自動搜索最快鏡像插件:?? yum install yum-fastestmirror
安裝yum圖形窗口插件:??? yum install yumex
查看可能批量安裝的列表: yum grouplist
1 安裝
yum install //全部安裝 yum install package1 //安裝指定的安裝包package1 yum groupinsall group1 //安裝程序組group12 更新和升級
yum update //全部更新 yum update package1 //更新指定程序包package1 yum check-update //檢查可更新的程序 yum upgrade package1 //升級指定程序包package1 yum groupupdate group1 //升級程序組group13 查找和顯示
yum info package1 //顯示安裝包信息package1 yum list //顯示所有已經安裝和可以安裝的程序包 yum list package1 //顯示指定程序包安裝情況package1 yum groupinfo group1 //顯示程序組group1信息yum search string 根據關鍵字string查找安裝包4 刪除程序
yum remove | erase package1 //刪除程序包package1 yum groupremove group1 //刪除程序組group1 yum deplist package1 //查看程序package1依賴情況5 清除緩存
yum clean packages //清除緩存目錄下的軟件包 yum clean headers //清除緩存目錄下的 headers yum clean oldheaders //清除緩存目錄下舊的 headers yum clean, yum clean all (= yum clean packages; yum clean oldheaders) //清除緩存目錄下的軟件包及舊的headers比如,要安裝游戲程序組,首先進行查找:
#:yum grouplist
可以發現,可安裝的游戲程序包名字是”Games and Entertainment“,這樣就可以進行安裝:
#:yum groupinstall "Games and Entertainment"
所有的游戲程序包就自動安裝了。在這里Games and Entertainment的名字必須用雙引號選定,因為Linux下面遇到空格會認為文件名結束了,因此必須告訴系統安裝的程序包的名字是“Games and Entertainment”而不是“Games"。
此外,還可以修改配置文件/etc/yum.conf選擇安裝源。可見yum進行配置程序有多方便了吧。
更多詳細的選項和命令,當然只要在命令提示行下面:man yum
-----------------------------------------------------------------------------------------------------------
1.列出所有可更新的軟件清單。命令:yum check-update
2.安裝所有更新軟件。命令:yum update
3.僅安裝指定的軟件。命令:yum install packageName
安裝的命令是,yum install xxx,
使用yum安裝和卸載軟件,有個前提是yum安裝的軟件包都是rpm格式的。
yum會查詢數據庫,有無這一軟件包,如果有,則檢查其依賴沖突關系,如果沒有依賴沖突,那么最好,下載安裝;
如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除沖突的包,你可以自己作出判斷
刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢數據庫,給出解決依賴關系的提示。
4.僅更新指定的軟件。命令:yum update
5.列出所有可安裝的軟件清單。命令:yum list
6.用YUM刪除軟件包。命令:yum remove
7.用yum查詢想安裝的軟件
我們常會碰到這樣的情況,想要安裝一個軟件,只知道它和某方面有關,但又不能確切知道它的名字。這時yum的查詢功能就起作用了。
你可以用 yum search keyword這樣的命令來進行搜索,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,
這時不妨用 yum search messenger這樣的指令進行搜索,yum會搜索所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,
于是我們可能得到 gaim,kopete等等,并從中選擇。
有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來獲取信息。
1.使用YUM查找軟件包。命令:yum search
2.列出所有可安裝的軟件包。命令:yum list
3.列出所有可更新的軟件包。命令:yum list updates
4.列出所有已安裝的軟件包。命令:yum list installed
5.列出所有已安裝但不在 Yum Repository 內的軟件包。命令:yum list extras
6.列出所指定的軟件包。命令:yum list?
7.使用YUM獲取軟件包信息。命令:yum info?
8.列出所有軟件包的信息。命令:yum info
9.列出所有可更新的軟件包信息。命令:yum info updates
10.列出所有已安裝的軟件包信息。命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內的軟件包信息。命令:yum info extras
12.列出軟件包提供哪些文件。命令:yum provides
5.清除YUM緩存
yum 會把下載的軟件包和header存儲在cache中,而不會自動刪除。
如果我們覺得它們占用了磁盤空間,可以使用yum clean指令進行清除,更精確的用法是yum clean headers清除header,
yum clean packages清除下載的rpm包,
yum clean all 清除所有
1.清除緩存目錄(/var/cache/yum)下的軟件包。命令:yum clean packages
2.清除緩存目錄(/var/cache/yum)下的 headers。命令:yum clean headers
3.清除緩存目錄(/var/cache/yum)下舊的 headers。命令:yum clean oldheaders
4.清除緩存目錄(/var/cache/yum)下的軟件包及舊的headers。命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
以上所有命令參數的使用都可以用man來查看:
1、安裝圖形版yumex:yum install yumex。
2、安裝額外的軟件倉庫:
rpm.livna.org 的軟件包倉庫:
rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm
freshrpms.NET 的軟件包倉庫:
rpm –ivh http://ftp.freshrpms.net/pub/fre … 1.1-1.fc.noarch.rpm
3、安裝最快源 yum install yum-fastestmirror
資源真的是非常豐富,從Centos到Ubuntu,ISO鏡像、升級包,應有盡有,上交的兄弟們真是幸福,羨慕啊。
不過還好,我們好歹也算是在教育網內,湊合著也可以沾點光,下載一些。
網址為:ftp://ftp.sjtu.edu.cn/
相應的yum的repo為
[updates]
name=Fedora updates
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=0
[fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
如果在機器上安裝了apt管理器,則相應的源為
repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/updates/$(VERSION)/$(ARCH)/
repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/releases/$(VERSION)/Everything/$(ARCH)/os/
這與前面yum的源的格式上有一些差別,需要加以注意。
下面介紹一下fedora 下安裝 scim
1. 什么輸入法適合我?
fcitx和scim是目前比較好的輸入法, 但是他們的特點不同,fcitx只能輸入中文,而scim可以根據需要,利用不同的碼表達到中英日…等等各種語言的輸入問題。如果你只懂中文,或者只會輸 入英文&中文,那么fcitx是一個不錯的選擇,因為它漂亮,小巧,實用。如果你還需要輸入日文或者其他語言,那么你因該安裝scim。通 過合理的配置,他能夠讓你像在windows里面一樣,想輸入什么語言就能輸入什么語言,同一種語言想用什么輸入法就用什么輸入法。Scim的擴充性很 強,而且比較穩定,我就是選擇的是scim.
2. 安裝一個新輸入法前需要哪些準備?
如果你選擇fcitx或者scim,那么我建議你刪除系統自帶的中文輸入法。方法如下:
rpm –qa | grep iiimf | xargs rpm –e
rpm –qa | grep Chinput| xargs rpm –e
如果有哪一行提示rpm: no packages given for erase那表示本身你的系統里面沒有該輸入法,不用擔心,繼續往下看就行了。
說 明:rpm –qa是列出所有安裝的rpm包,grep iiimf是選擇出其中名字含有iiimf的那些包,xargs rpm –e的意思是把前面列出的這些包刪除掉。Xargs的作用就是把前面通過 | 傳過來的數據作為下面命令的參數。這就好比一個過濾器,首先是放著所有的安裝包,然后grep以后,只留下了含有某些特定關鍵字的rpm包,然后通過 xargs和rpm –e的組合運用,把剩下的這些含有某特定關鍵字的包刪掉。這樣就達到了刪除該輸入法及相關包的目的。下面的Chinput也是如此,在此不再重復。如果你還安裝了其他輸入法,比如你原來裝的是fcitx,現在想裝scim,那么你最好模仿上面的樣子把fcitx刪除,方法就是把iiimf的位置改成 fcitx就可以了。
在安裝新輸入法之前,最好這樣做一下,因為多種輸入法同時存在一個系統中沒有什么好處,你只可能去用一個,而且他們同時存在可能有的時候會出現問題,想想也知道,會互相競爭嘛。所以在此以后,你應該保證系統里面已經沒有中文輸入法了。通過類似以下方式驗證:
whereis fcitx
whereis scim
whereis miniChinput
…
3. 輸入法是何時被系統調用的?
很多人不知道輸入法到底什么時候被load進來,不知道這個當然就不知道為什么有的時候呼不出輸入法(因為可能根本沒有調入)當然也不會知道如何配置能夠符合自己的要求。
大 家都知道,linux下面比較常用的有兩個桌面系統,gnome和kde,這都無所謂,他們其實都是架在X系統之上的。簡單的說X系統就是一個最核心,也 是最底層的桌面系統,gnome也好,kde也罷,或者其他的什么fvwm之類的,都只不過是X系統和用戶之間的另一層軟件而已。所以要想達到不管使用什 么桌面系統,都能調入輸入法,就是要在X系統啟動的時候,讓輸入法也啟動起來,那么這樣之后,無論你使用的是gnome還是kde或者其他什么桌面,都能 夠調入輸入法。因為當輪到他們啟動的時候,X系統已經啟動好了,輸入法已經被系統調入了。那么X系統又是如何啟動的呢?讓我們從startx開始說起。
無論你用什么桌面系統,都是通過startx啟動的,那么startx究竟是什么呢?一個應用程序還是一個腳本文件?為什么它能夠啟動各種桌面系統,并且能夠按照相應的配置文件來設置呢?帶著疑問,我在console里面輸入whereis startx.
在 找到了存放startx的路徑以后,用編輯器打開它發現原來是一個腳本文件。這個腳本文件的內容可能根據發行版不同,會有差異,如果你懂一些shell的 語言,那么你可以嘗試看看,不一定要全部看懂,但是你大致看過以后會發現最后有一個xinit的命令,然后跟著一些參數。我嘗試在console下面輸入 xinit(注意,不要在圖形界面下做此操作)
發現圖形界面啟動拉,但是很丑陋,什么功能都沒有,鼠標可以動,還有一個可以輸入命令的小窗口。怎 么退出來?ctrl+alt+backspace. 原來如此,startx只是一個腳本,里面通過對一系列配置文件的分析設置,最終利用xinit命令啟動圖形界面。不管是kde還是gnome,都是在這 個腳本中完成的。那么讓我們再打開startx腳本看看里面還做了些什么。你仔細看看,會發現有一個東西很顯眼,就是/etc/X11/xinit /xinitrc,這個xinitrc好像很眼熟,在配置輸入法的其他貼中總是看到,這里出現了肯定是里面運行了這個腳本。再看其他的一些東西,其實都是利用shell配置出一個xinit啟動的參數,用來配置桌面系統用的,不用管它。目前已知的就是startx的時候它會去執行一個/etc/X11 /xinit/xinitrc的腳本,讓我們打開來看看里面有什么。
打開一看,其中一段我覺得最有價值,是一個for循環,他依次執行了/etc /X11/xinit/xinitrc.d/下面的所有腳本。你可以耐心的找一下,一定可以發現。那么這個目錄里面有些什么內容呢?有一個文件看名字就知道和輸入相關,他叫xinput。等等,讓我們理一下,是怎么從startx到xinput的。
首先是執行startx這個腳本文件,里面他會執行xinitrc這個腳本,然后xinitrc腳本里面的,叫xinput。OK, 我們繼續,打開xinput看看。
4.安裝軟件包
rpm -Uvh scim-0.8.2-1.i586.rpm
rpm -Uvh scim-chinese-0.2.6-1.i586.rpm
5.修改配置文件
接下來重要的一步就是,修改一下
/etc /X11/xinit/xinitrc.d/xinput文件,讓SCIM在X啟動的時候也啟動。我看到網上很多文章也說過,但總是不得要領,經過自己試 驗,最簡單的就是把xinput文件里的Chinput全部替換為SCIM,chinput替換為scim,保存重啟X就可以了。
zh_CN*)
? ? ?if [ -e /usr/bin/scim ]; then
? ?XIM="SCIM"
? ? ? ? ? ? elif [ -e /usr/X11R6/bin/xcin ] ; then
? ? ? ? ? ? ? ? ?export LC_CTYPE=zh_CN.GB2312
? ? ? ? ? ? ? ? ?XIM="xcin-zh_CN.GB2312" ?
? ? ?fi
;;
..............................
SCIM)
XIM_PROGRAM=scim
? ? ? ? XIM_ARGS="-d"
;;
然后修改/etc/gtk-2.0/gtk.immodules,找到這一行:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:zh"
改為:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:zh"
可能表示輸入英文時也使用該輸入法
安裝完畢后運行scim-setup,將輸入法的切換鍵改為ctrl+space
?
?
?
?
配置 yum 源的兩種方法
?
由于?redhat的yum在線更新是收費的,如果沒有注冊的話不能使用,如果要使用,需將redhat的yum卸載后,重啟安裝,再配置其他源,以下為詳細過程:?
1.刪除redhat原有的yum?
rpm -aq|grep yum|xargs rpm -e --nodeps?
2.下載yum安裝文件?
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noarch.rpm?
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm?
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm?
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm?
3.進行安裝yum?
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm?
rpm -ivh yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm?
rpm -ivh yum-3.2.27-14.el6.centos.noarch.rpm um-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm??
注意最后兩個包必需同時安裝,否則會相互依賴?
4.更新repo文件
mv /etc/yum.repos.d/rhel-debuginfo.repo?/etc/yum.repos.d/rhel-debuginfo.repo.repo.bak
vi?/etc/yum.repos.d/rhel-debuginfo.repo
內容為:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6.0/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6.0/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
#[addons]
#name=CentOS-$releasever - Addons
#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6.0/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/
gpgcheck=1
enabled=0
5、yum clean all?
6、yum install vim #測試一下可不可以用
?
【設置本地鏡像作為yum源】
1、mkdir /mnt/cdrom
2 ? mount /dev/cdrom /mnt/cdrom ?#掛著鏡像,光盤
3 ?mkdir /home/redhat-iso
4 ?cp -Rf /mnt/cdrom/* /home/redhat-iso ? #將光盤內的內容copy到某個路徑下
5 ?vi?/etc/yum.repos.d/rhel-debuginfo.repo ?#編輯repo文件
添加一下內容:
[rhel_6_iso]
name=local iso?
baseurl=file:///home/redhat-iso/
gpgcheck=1
gpgkey=file:///home/redhat-iso/RPM-GPG-KEY-CentOS-6?#該處的gpgkey文件應該改成iso鏡像中的文件名
?
?
【關于yum的一點資料】
一、yum是什么
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/刪除/更新RPM包.
它能自動解決包的倚賴性問題.
它能便于管理大量系統的更新問題
二、 yum特點
*可以同時配置多個資源庫(Repository)
*簡潔的配置文件(/etc/yum.conf,/etc/yum.repos.d 下的文件)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM數據庫的一致性
三、 yum安裝
Centos/RHEL
1. #rpm -ivh yum-2.4.3-4.el4.centos.noarch.rpm
四、yum配置
yum的配置文件
yum的一切配置信息都儲存在一個叫yum.conf的配置文件中,通常位于/etc目 錄下,這是整個yum系統的重中之重,所以有必要詳細介紹。下面是一個從網上找來的yum.con文件,讓我們以此為例,進行說明。
| [main]? cachedir=/var/cache/yum? debuglevel=2? logfile=/var/log/yum.log? pkgpolicy=newest? distroverpkg=redhat-release? tolerant=1? exactarch=1? retries=1? [base]? name=Fedora Core $releasever - $basearch - Base? baseurl=http://download.atrpms.net/mirrors/fedoracore/$releasever/$basearch/os? http://rpmfind.net/linux/fedora/cor...er/$basearch/os? http://mirror.clarkson.edu/pub/dist...er/$basearch/os? [updates-released]? name=Fedora Core $releasever - $basearch - Released Updates? baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch? http://redhat.linux.ee/pub/fedora/l...sever/$basearch? http://fr2.rpmfind.net/linux/fedora...sever/$basearch? [Fedora.us]? name=Fedora.us - $basearch - Extras? baseurl=http://fedora.linux.duke.edu/fedorax86_64/fedora.us/$releasever/$basearch/RPMS.stable? [Dag Wieers]? name=Dag RPM Repository for Fedora Core? baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag? [Livna]? Name=Livna RPM, Fedora Core $releasever - $basearch? baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable? [freshrpms]? name=FreshRPMs? baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/? http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/ |
?
第一部分(這是yum的全局性設置。默認一般不必改動。)
[main]
cachedir:yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,一般是/var/cache/yum。
debuglevel:除錯級別,0-10,默認是2。
logfile:yum的日志文件,默認是/var/log/yum.log。
pkgpolicy:包的策略。一共有兩個選項,newest和last,這個作用是如果你設置了多個repository,而同一軟件在不同的repository中同時存在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務器id以字母表排序,并選擇最后的那個服務器上的軟件安裝。一般都是選newest。
distroverpkg:指定一個軟件包,yum會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。
exactarch,有兩個選項1和0,代表是否只升級和你安裝軟件包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用1686的包來升級。
retries,網絡連接發生錯誤后的重試次數,如果設為0,則會無限重試。
tolerent,也有1和0兩個選項,表示yum是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤信息。默認是0。
除了上述之外,還有一些可以添加的選項,如
exclude=,排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對于安裝了諸如美化包,中文補丁的朋友特別有用。
gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,默認好像也是檢查的。
第二部分:
配置repository服務器了,這是最令人激動的,有了好的repository,就如家門口開了大賣場,要什么東西稍微跑跑腿就行,對了這還是個免費的大賣場。
所有服務器設置都應該遵循如下格式:
1. [serverid]
2. name=Some name for this?server
3. baseurl=url://path/to/repository/
其中serverid是用于區別各個不同的repository,必須有一個獨一無二的名稱。
name,是對repository的描述,支持像$releasever $basearch這樣的變量;
baseurl是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件。它的格式是:
1. baseurl=url://server1/path/to/repository/
2. url://server2/path/to/repository/
3. url://server3/path/to/repository/
其中url支持的協議有 http:// ftp:// file://三種。baseurl后可以跟多個url,你可以自己改為速度比較快的鏡像站,但baseurl只能有一個,也就是說不能像如下格式:
1. baseurl=url://server1/path/to/repository/
2. baseurl=url://server2/path/to/repository/
3. baseurl=url://server3/path/to/repository/
其中url指向的目錄必須是這個repository header目錄的上一級,它也支持$releasever $basearch這樣的變量。
url之后可以加上多個選項,如gpgcheck、exclude、failovermethod等,比如:
1. [updates-released]
2. name=Fedora Core $releasever - $basearch - Released Updates
3. baseurl=http://download.atrpms.Net/mirrors/fedoracore/updates/$releasever/$basearch
4.?http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
5.?http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
6. gpgcheck=1
7. exclude=gaim
8. failovermethod=priority
其中gpgcheck,exclude的含義和[main]部分相同,但只對此服務器起作用,failovermethode 有兩個選項roundrobin和priority,意思分別是有多個url可供選擇時,yum選擇的次序,roundrobin是隨機選擇,如果連接失 敗則使用下一個,依次循環,priority則根據url的次序從第一個開始。如果不指明,默認是roundrobin。
幾個變量
$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。
$arch,cpu體系,如i686,athlon等
$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。
對yum.conf設定完成,我們就可以好好體驗yum帶來的方便了。
五、RHEL/CENTOS的yum源
1、修改配置文件
2、導入GPG KEY
導入每個reposity的GPG key,前面說過,yum可以使用gpg對包進行校驗,確保下載包的完整性,所以我們先要到各個repository站點找到gpg key,一般都會放在首頁的醒目位置,一些名字諸如 RPM-GPG-KEY.txt之類的純文本文件,把它們下載,然后用rpm --import xxx.txt命令將它們導入,最好把發行版自帶GPG-KEY也導入。rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方軟件升級用的上。
六、擴展你的rpm包
1、rpmforge
Centos/RHEL默認的yum軟件倉庫非常有限,僅僅限于發行版本那幾張盤里面的常規包和一些軟件包的更新,利用RpmForge,可以增加非常多的第三方rpm軟件包。
獲取
http://dag.wieers.com/rpm/packages/rpmforge-release/
找到與系統平臺架構匹配的rpmforge包安裝之即可。安裝完后.默認會在系統的/etc/yum.repos.d/下新增兩個文件,mirrors-rpmforge和rpmforge.repo
安裝
# rpm -ivh rpmforge-release-0.3.6-1.el4.rf.i386.rpm
# rpm --import?http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
2、加速yum更新速度
安裝yum的fast mirror插件,可以加快 CentOS/RHEL yum的速度和提高穩定性,效果顯著。
centos5?
?#yum -y install yum-fastestmirror
centos4
?yum -y install yum-plugin-fastestmirror
?
七、 yum使用
注:當第一次使用yum或yum資源庫有更新時,yum會自動下載所有所需的headers放置于/var/cache/yum目錄下,所需時間可能較長.
系統更新(更新所有可以升級的rpm包,包括kernel)
#yum -y update
?
每天定期執行系統更新
#chkconfig yum on
#service yum start
?
*rpm包的更新,檢查可更新的rpm包
#yum check-update
?
更新所有的rpm包
#yum update
?
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
?
大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級
#yum upgrade
?
*rpm包的安裝和刪除
安裝rpm包,如xmms-mp3
#yum install xmms-mp3
?
刪除rpm包,包括與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text
?
*yum暫存(/var/cache/yum/)的相關參數
清除暫存中rpm包文件
#yum clean packages
?
清除暫存中rpm頭文件
#yum clean headers
?
清除暫存中舊的rpm頭文件
#yum clean oldheaders
?
清除暫存中舊的rpm頭文件和包文件
#yum clean 或#yum clean all
注:相當于yum clean packages + yum clean oldheaders
?
*rpm包列表
列出資源庫中所有可以安裝或更新的rpm包
#yum list
?
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包
?
列出資源庫中所有可以更新的rpm包
#yum list updates
?
列出已經安裝的所有的rpm包
#yum list installed
?
列出已經安裝的但是不包含在資源庫中的rpm包
#yum list extras
注:通過其它網站下載安裝的rpm包
*rpm包信息顯示(info參數同list)
?
列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
?
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包的信息
?
列出資源庫中所有可以更新的rpm包的信息
#yum info updates
?
列出已經安裝的所有的rpm包的信息
#yum info installed
?
列出已經安裝的但是不包含在資源庫中的rpm包的信息
#yum info extras
注:通過其它網站下載安裝的rpm包的信息
?
*搜索rpm包
搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
?
搜索有包含特定文件名的rpm包
#yum provides realplay
?
八、yum常用問題解決
1、如果網速慢的話可以通過增加yum的超時時間,這樣就不會總是因為超時而退出。
#vi /etc/yum.conf
#加上這么一句
timeout=120
?
2、yum Existing lock錯誤的解決辦法
如果系統啟動的時候, yum出現Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的辦法解決:
方法一
etc/init.d/yum-updatesd stop
方法二
#rm -f /var/run/yum.pid
主要原因就是yum在自動更新,只要關掉它就可以了。
?
先安裝fastestmirror,讓系統yum的時候自動選擇最快的鏡像:
#yum install yum-fastestmirror -y
接下來說說RPMForge。
RPMForge是一個安全、穩定并且更新及時的軟件倉庫,通過安裝RPMForge可以是CentOS在進行yum update的時候多一個選擇,有時候甚至是唯一的選擇,比如想要升級rsync到3.0.x版本,如果懶得自己編譯安裝,就得依靠RPMForge了。
1、先安裝priority這個yum的插件,這個插件用來設定安裝軟件時候軟件倉庫的優先級,一般是默認先從官方base或者鏡像安裝,然后從社區用戶contribute的軟件中安裝,再從第三方軟件倉庫中安裝。
#yum install yum-priorities
2、手動編輯 /etc/yum.repos.d/ 目錄中后綴為.repos的文件來設置軟件倉庫的優先級
priority=N(N是整數,范圍從1-99,數字越小代表優先級越高)
官方推薦配置是
[base], [addons], [updates], [extras]?這幾部分 priority=1
[centosplus],[contrib] 這幾部分priority=2
Third Party Repos such as rpmforge … priority=N? (where N is > 10 and based on your preference)
3、現在開始安裝rpmforge的軟件倉庫
先下載rpmforge的安裝包
? ? ? i386??wget?http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
? ? ? x86_64?wget?http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
安裝
?????rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm
更改 /etc/yum.repos.d/rpmforge.repo 配置文件,添加
priority=1(或者2.3.4….)
現在就可以使用rpmforge這個軟件倉庫了。比如yum update rsync,嘿嘿,成功升級到3.0.5了。
?
?
dpkg用法詳解
?
(http://man.linuxde.net/dpkg)
gdebi 可以自動計算依賴關系并安裝。GDebi也命令行模式運行(sudo gdebi package.deb),功能和GUI模式下完全一樣。試下這個命令你就不想用 dpkg –i 了。
sudo apt-get update sudo apt-get install gdebi 例如:安裝搜狗輸入法,我們在終端先進入到相應deb的文件夾后 sudo gdebi sogoupinyin.debdpkg 在安裝手動下載的 deb包時,沒法自動解決包的依賴關系,需要手動安裝包需要的依賴。
dpkg -i package.deb #安裝包? dpkg -r package #刪除包? dpkg -P package #刪除包(包括配置文件)? dpkg -L package #列出與該包關聯的文件? dpkg -l package #顯示該包的版本? dpkg --unpack package.deb #解開deb包的內容? dpkg -S keyword #搜索所屬的包內容? dpkg -l #列出當前已安裝的包? dpkg -c package.deb #列出deb包的內容? dpkg --configure package #配置包 dpkg是一個Debian的一個命令行工具,它可以用來安裝、刪除、構建和管理Debian的軟件包。 下面是它的一些命令解釋: 1)安裝軟件命令行:dpkg -i <.deb file name>示例:dpkg -i avg71flm_r28-1_i386.deb示例: dpkg -i ~/Download/mozybackup_i386.deb 2)安裝一個目錄下面所有的軟件包命令行:dpkg -R示例:dpkg -R /usr/local/src 3)釋放軟件包,但是不進行配置,解開 deb 包的內容。命令行:dpkg –unpack package_file 如果和-R一起使用,參數可以是一個目錄示例:dpkg –unpack avg71flm_r28-1_i386.deb 4)重新配置和釋放軟件包。配置包 命令行:dpkg –configure package_file如果和-a一起使用,將配置所有沒有配置的軟件包示例:dpkg –configure avg71flm_r28-1_i386.deb 5)刪除軟件包(保留其配置信息)命令行:dpkg -r 示例:dpkg -r avg71flm.deb示例:dpkg -r mozybackup.deb 6)替代軟件包的信息命令行:dpkg –update-avail <Packages-file> 7)合并軟件包信息dpkg –merge-avail <Packages-file> 8)從軟件包里面讀取軟件的信息命令行:dpkg -A package_file 9)刪除一個包(包括配置信息)命令行:dpkg -P示例:dpkg -P mozybackup 10)丟失所有的Uninstall的軟件包信息命令行:dpkg –forget-old-unavail 11)刪除軟件包的Avaliable信息命令行:dpkg –clear-avail 12)查找只有部分安裝的軟件包信息命令行:dpkg -C 13)比較同一個包的不同版本之間的差別命令行:dpkg –compare-versions ver1 op ver2 14)顯示幫助信息命令行:dpkg –help 15)顯示dpkg的Licence命令行:dpkg –licence (or) dpkg –license 16)顯示dpkg的版本號命令行:dpkg –version 17)建立一個deb文件命令行:dpkg -b direc×y [filename] 18)顯示一個Deb文件的內容命令行:dpkg -c filename列出 deb 包的內容 19)顯示一個Deb的說明命令行:dpkg -I filename [control-file] 20)搜索Deb包命令行:dpkg -l package-name-pattern示例:dpkg -I vim 21) 顯示所有已經安裝的Deb包,同時顯示版本號以及簡短說明。即顯示包的版本命令行:dpkg -l示例:dpkg -l mozybackup 22)查找指定包的狀態信息命令行:dpkg -s package-name示例:dpkg -s ssh示例: dpkg -s mozybackup 23)安裝完包后,可以用此命令查看軟件安裝到什么地方,命令行:dpkg -L package-Name示例:dpkg -L apache2示例: dpkg -L mozybackup 24)搜索指定包里面的文件(模糊查詢)命令行:dpkg -S filename-search-pattern 25)顯示包的具體信息命令行:dpkg -p package-name示例:dpkg -p cactidpkg -S keyword 搜索所屬的包內容?
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的apt-get、apt、yum、dpkg、rpm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小甲鱼 OllyDbg 教程系列 (十四
- 下一篇: C++ windows 平台的 Hook