(1)查询软件(查询不需要sudo权限)
$ apt-cache pkgnames #列出当前所有可用软件包
$ apt-cache search pkgname\_keyword #列出匹配关键字的软件包
$ apt search pkgname\_keyword
$ apt list pkgname #查找该软件包
$ apt-cache show pkgname #查询软件包信息
$ apt show pkgname
$ apt-cache depends pkgname #查询软件包依赖关系
$ apt-cache rdepends pkgname #查询被哪些软件包依赖
$ apt-cache showpkg pkgname
$ apt-cache policy pkgname #查询软件包的安装状态和版本
$ apt-cache stats #查看统计信息
(2)软件包安装(需要sudo权限)
$ sudo apt-get install pkgname
$ sudo apt install pkgname
$ sudo apt install -f #自动修复依赖
$ sudo apt-get install -f
(3)软件包更新
$ sudo apt-get update
$ sudo apt update
说明:执行apt-get update,更新apt-get缓存中的软件包信息,获取最新软件包列表,建议每次安装软件前先执行一次,实际上是更新了/etc/apt/sources.list和/etc/apt/sources.list.d/目录下的.list文件
$ sudo apt-get upgrade #更新系统所有已安装软件包,只更新包会忽略依赖关系
$ sudo apt upgrade
$ sudo apt-get upgrade -u #-u 列出可升级软件列表
$ sudo apt-get upgrade -s #模拟升级
$ sudo apt-get dist-upgrade #根据依赖关系更新系统所有已安装软件包
$ sudo apt-get --reinstall install pkgname #只升级某一个软件包
$ sudo apt-get source pkgname #只下载源码包
$ sudo apt-get check #检查破损的依赖关系
$ sudo apt-get autoclean #自动清楚apt-get缓存
说明:apt-get autoclean和apt-get clean的区别
APT的底层包管理器是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb
使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb)
(4)软件包卸载
$ sudo apt-get remove pkgname #删除已安装的软件包(保留配置文件)
$ sudo apt-get purge pkgname #卸载软件,同时删除配置文件
$ sudo apt-get autoremove pkgname #彻底自动卸载软件,删除该软件包及所依赖的,以及不再使用和未使用的软件包
(5)dpkg工具管理deb格式软件包
$ dpkg -l #列出所有安装的deb软件包
$ dpkg -l|grep nginx #查询nginx是否已安装
$ dpkg -s zip #查看软件包zip的状态和详细信息
$ dpkg -S openssh-server #查看软件包openssh-server包含的所有文件
$ dpkg -L htop #查看htop对应的软件包安装的文件及目录
$ sudo dpkg -i deb\_pkgname #安装deb格式的软件包,需要自己解决依赖关系
$ sudo dpkg -r deb\_pkgname #卸载deb格式的软件包(保留配置文件),需要自己解决依赖关系
$ sudo dpkg -P deb\_pkgname #卸载deb格式的软件包(不保留配置文件),需要自己解决依赖关系
$ sudo dpkg -P package-name #清除软件包的所有文件(removes everything, including conffiles)
(6)rpm软件包管理
$ sudo apt-get install alien #安装rpm转换deb的工具
说明:使用alien将.rpm 格式转换成.deb,然后再通过dpkg安装
(7)二进制软件包.run或.bin管理
$ sudo chmod +x pkgname #先赋予执行权限
$ sudo ./pkgname #执行安装
$ sudo ./uninstall #卸载一般软件包会带有卸载程序,如果没有请查看软件包内帮助文件
(8)源码安装软件包
源码包解压缩
$ tar -jxvf file.tar.bz2 #解压缩.tar.bz2文件,bzip2文件更小,解压缩时间长
$ tar -zxvf file.tar.gz #解压缩.tar.gz文件,gzip文件解压缩时间短,文件比.tar.bz2大
$ ./configure --prefix=/path/ #创建Makefile文件,不指定安装目录,默认安装到/usr/local
$ ./configure --help #查看帮助
$ make #编译成可执行二进制文件,此时还没有安装到指定目录下
$ make -j4 #多核并行编译,一般为核心数的1-2倍
$ make -j4 install #将make生成的二进制文件,库和配置文件安装到预定的目录中
$ make clean #清除上次的make命令所产生的object文件及可执行文件
(9)针对软件所依赖的共享库文件不存在的问题
# ldd /path/command #查看command命令所依赖的共享库,命令必须是绝对路径
# ldconfig #动态连接库管理命令,主要用在默认搜索目录/lib和/usr/lib,以及共享库配置文件/etc/ld.so.conf内列出的目录下搜索出可共享的动态连接库(lib\*.so\*)
说明:
执行sudo ldconfig,会更新/etc/ld.so.cache共享库缓存文件。很多开源软件共享库会默认安装在/usr/local/lib 目录下
/etc/ld.so.conf文件包含了/etc/ld.so.conf.d/*.conf
/etc/ld.so.conf/libc.conf文件包含了/usr/local/lib
新安装的库文件,需要使用ldconfig命令来更新/etc/ld.so.cache,这样新的库文件才能被新命令依赖到。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。