LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5632|回复: 9

pacman常见用法

[复制链接]
发表于 2005-3-16 20:16:18 | 显示全部楼层 |阅读模式
Pacman

pacman 是一套套件管理系統,可以追蹤所有安裝在你系統上的軟體. 他具有簡單的相依性檢查且所有的套件均使用標準的 tar-gz 檔案格式. 以下是部分一般常用的選項功能說明,分別可以使用完整的或是簡短的命令。若需要最新的說明請閱讀 man pacman. 這裡只是簡單概要的介紹 pacman 的功能。

常用工作項目:

新增一個已下載編譯完成的套件
升級一個已下載編譯完成的套件
移除套件
更新套件名單
系統升級
?膔epositories新增/升級一個套件
列出已安裝套件
檢查特定套件是否安裝
列出特定套件的資?
列出套件中所包含的檔案
查尋特定檔案是屬於哪一個套件
新增一個已下載編譯完成的套件 ■
# pacman --add foo.pkg.tar.gz
# pacman -A foo.pkg.tar.gz
這個指令將會把 foo.pkg.tar.gz 套件安裝在系統中. 如果相依性檢查失敗 pacman 將會退出 ?K且回報相依性錯誤, 但是?K不會試圖自動解決相依性. 如果你需要這個功能請看 --sync.

▲ ▼
升級一個已下載編譯完成的套件 ■
# pacman --upgrade foo.pkg.tar.gz
# pacman -U foo.pkg.tar.gz
這個選項?質上與 --add 的效用是相同的只是附加功能是升級一個已安裝的套件。

▲ ▼
移除套件 ■
# pacman --remove foo
# pacman -R foo
這將會移除所有屬於這個套件的檔案,除了被編輯的設定檔之外. 只允許使用套件名稱,不允許附加檔名 pkg.tar.gz.

要移除整個套件不留任何設定檔與記錄可在上面的命令中加上, --nosave 功能選項.

▲ ▼
更新套件名單 ■
# pacman --sync --refresh
# pacman -Sy
這將會跟據 /etc/pacman.conf 設定,? repositories 下載更新套件名單, ?K解壓縮至資料庫.如此才可確定在執行 --sysupgrade 時你可以? repositories 取得最新的套件. 依據你的 pacman.conf 設定, 這個指令可能需要 internet 連線,以存取以FTP為基礎的 repositories.這個指令 很像 Debian 的 apt-get update 的指令.

PS.repositories 很難翻直翻又怪怪的,因此保留原意。可看成是存放套件的倉庫,當然平常你應該不會想把倉庫搬到你家吧(本地端),有需要時再去倉庫拿需要的東西(pacman -S xxx),不是嗎?

▲ ▼
系統升級 ■
# pacman --sync --sysupgrade
# pacman -Su

這個將會把所有套件的版本與--refresh指令下載的套件名單比較, 將舊的套件升級.時常執行這個指令將確保你的系統是最新的狀態. 注意這個指令?K不會更新套件名單,所以通常與下面的指令合?銏绦.

# pacman --sync --refresh --sysupgrade
# pacman -Syu
使用這個選項pacman會自動更新套件名單,?K且自動解決套件之間的 相依性,將整個系統所有套件更新至最新版本.你將會經常使用他.

▲ ▼
?膔epositories新增/升級一個套件 ■
# pacman --sync foo
# pacman -S foo

檢索?K安裝套件foo且?M足他的相依性需求.在使用任何 --sync選項之前,先確定你是否已更新套件名單,或者是同意安裝之前 在選項加入--refresh or -y.不同於--add 選項--sync可以是安裝套件,也可以是升級套件.依照你pacman.conf 的設定,這個功能可能需要網路存取.

▲ ▼
列出已安裝套件 ■
# pacman --query
# pacman -Q
列出所有安裝在系統上的套件名單.

▲ ▼
檢查特定套件是否安裝 ■
# pacman --query foo
# pacman -Q foo
代替使用grep指令去過濾整個套件名單尋找你要的套件名稱,你可以在後面 附加你要查尋的套件名稱做查尋.如果系統上有安裝這個套件,那這個命令 將會秀出foo這個套件名稱以及版本,反之將沒有任何資料.

▲ ▼
列出特定套件的資? ■
# pacman --query --info foo
# pacman -Qi foo
這將會秀出所有有關foo這個套件的?息 (套件大小,安裝日期,建立日期,相依性,衝突套件, 等.). 若是要秀出?K未安裝的套件?息可分別加入--file or -p選項 如下:

# pacman --query --info --file foo.pkg.tar.gz
# pacman -Qip foo.pkg.tar.gz
▲ ▼
列出套件中所包含的檔案 ■
# pacman --query --list foo
# pacman -Ql foo
列出所有屬於foo套件的檔案.

▲ ▼
查尋特定檔案是屬於哪一個套件 ■

# pacman --query --owns /path/to/file
# pacman -Qo /path/to/file


▲ ▼
清除已经下载下来所有包 ■

# pacman -Scc


▲ ▼
清除已经下载下来陈旧的包 ■

# pacman -Sc


From:http://cle.linux.org.tw/index.ph ... man&word=pacman
发表于 2005-3-16 21:42:25 | 显示全部楼层
稍微编辑一下吧。比如最后一个,应该是Scc。Sc只移除陈旧的包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-16 22:18:20 | 显示全部楼层
已经修改,谢谢diony
回复 支持 反对

使用道具 举报

发表于 2005-3-16 22:23:19 | 显示全部楼层
怎么保持某个包不被更新?
回复 支持 反对

使用道具 举报

发表于 2005-3-16 22:45:40 | 显示全部楼层
在/etc/pacman.conf里加入一行:
IgnorePkg = your-pkg-name
回复 支持 反对

使用道具 举报

发表于 2005-3-21 11:48:45 | 显示全部楼层
如何搜索epositories里是否有某个包。。。类似debian的apt-cache search和gentoo的emerge -s。。。
回复 支持 反对

使用道具 举报

发表于 2005-3-21 12:01:08 | 显示全部楼层
you can use -Ss to search a pkg on a remote server,and -Qs to search a installed pkg.
回复 支持 反对

使用道具 举报

发表于 2005-3-21 13:20:37 | 显示全部楼层
谢谢。。。Arch里好象很多软件包都找不到(刚接触Arch不太熟,见笑了)。。。比如说fcitx。。。有软件包比较全的镜像吗?
回复 支持 反对

使用道具 举报

发表于 2005-3-21 14:25:28 | 显示全部楼层
你可以找一个 PKGBUILD 文件自己makepkg。很easy的。不比pacman难。置顶的帖子里就有fcitx的PKGBUILD。
archcn的仓库也在逐渐丰富。现在已经有fcitx的最新版本了。
回复 支持 反对

使用道具 举报

发表于 2005-4-21 19:53:42 | 显示全部楼层
系統升級 ■
引用:
# pacman --sync --sysupgrade
# pacman -Su

這個將會把所有套件的版本與--refresh指令下載的套件名單比較, 將舊的套件升級.時常執行這個指令將確保你的系統是最新的狀態. 注意這個指令?K不會更新套件名單,所以通常與下面的指令合?銏绦?.

最后明显乱码,为啥不改呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表