Unix Toolbox

 主页   资讯   文章   代码   电子书 

列出已安装过的软件包

# rpm -qa                            # 列出已安装过的软件包(RH, SuSE, 基于 RPM 的)
# dpkg -l                            # Debian, Ubuntu
# pkg_info                           # 列出所有已安装过的软件包(FreeBSD)
# pkg_info -W smbd                   # 查看 smbd 安装了那些软件包(FreeBSD)
# pkginfo                            # Solaris

添加/删除软件

前端界面:SuSE 为 yast2/yast,Red Hat 为 redhat-config-packages。

# rpm -i pkgname.rpm                 # 安装软件包(RH, SuSE, 基于 RPM 的)
# rpm -e pkgname                     # 删除软件包

Debian

# apt-get update                     # 更新源列表
# apt-get install emacs              # 安装 emacs 软件包
# dpkg --remove emacs                # 删除 emacs 软件包
# dpkg -S file                       # 查找拥有该 file 的软件包

Gentoo

Gentoo 使用 emerge 作为 "Portage" 软件包管理系统的核心。

# emerge --sync                      # 同步更新本地 protage 树
# emerge -u packagename              # 安装或更新一个软件包
# emerge -C packagename              # 删除软件包
# revdep-rebuild                     # 修复依赖关系的缺失

Solaris

路径通常为 `/cdrom/cdrom0`.
# pkgadd -d <cdrom>/Solaris_9/Product SUNWgtar
# pkgadd -d SUNWgtar                 # 添加下载的软件包(先要 bunzip2)
# pkgrm SUNWgtar                     # 删除软件包

FreeBSD

# pkg_add -r rsync                   # 获取并安装 rsync
# pkg_delete /var/db/pkg/rsync-xx    # 删除 rsync 软件包

可使用 PACKAGESITE 环境变量来设置哪里可以获取软件包。举个例子:

# export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages/Latest/
# or ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/

FreeBSD ports

Port 树 /usr/ports/ 是一个准备编译和安装的软件集。可用 portsnap 工具来跟新 port。

# portsnap fetch extract             # 当第一次运行这个命令,会创建 port 树
# portsnap fetch update              # 跟新 port 树
# cd /usr/ports/net/rsync/           # 选择软件安装目录
# make install distclean             # 安装并清理(也可看 man ports)
# make package                       # Make 一个二进制软件包

库路径

由于复杂的依赖关系和运行时链接,程序难于分发或拷贝到其他系统。不过对于较少依赖关系的小程序,缺失的库可被拷贝过去。运行时库(即缺失的库)可用 lddldconfig 来检查和管理。

# ldd /usr/bin/rsync                 # 列出所有所需的运行时库
# ldconfig -n /path/to/libs/         # 添加一个路径到共享库目录Add a path to the shared libraries directories
# ldconfig -m /path/to/libs/         # FreeBSD
# LD_LIBRARY_PATH                    # 设置连接库路径的环境变量