(1)查询软件(查询不须要sudo权限)html
$ 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权限)nginx
$ sudo apt-get install pkgname $ sudo apt install pkgname $ sudo apt install -f #自动修复依赖 $ sudo apt-get install -f
(3)软件包更新ubuntu
$ 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)ssh
(4)软件包卸载工具
$ sudo apt-get remove pkgname #删除已安装的软件包(保留配置文件) $ sudo apt-get purge pkgname #卸载软件,同时删除配置文件 $ sudo apt-get autoremove pkgname #完全自动卸载软件,删除该软件包及所依赖的,以及再也不使用和未使用的软件包
(5)dpkg工具管理deb格式软件包code
$ 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软件包管理server
$ sudo apt-get install alien #安装rpm转换deb的工具
说明:使用alien将.rpm 格式转换成.deb,而后再经过dpkg安装htm
(7)二进制软件包.run或.bin管理ip
$ 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,这样新的库文件才能被新命令依赖到。