2

(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,这样新的库文件才能被新命令依赖到。
 
 

参考链接:
https://www.ywops.com/archive...


zhouwentaovip
12 声望2 粉丝