Linux有很多种发行版本,各种发行版本之间安装软件方式和命令不一样,同一个版本之间安装软件也有不同的方法。但是,大体来说,Linux有两大派系,一个是红帽派系,包含Redhat、Centos、Fedora等。还有一个是Debian派系,包含Kali、Ubuntu等。
红帽派
1. 源码安装
源码安装需要安装编译工具: yum -y install gcc gcc-c++ make
以CentOS7安装nginx为例子
- 先到网站下载nginx源码包,解压
- 到目录下执行
./configure
设置安装目录、安装模块等选项,不设置安装在默认目录/usr/local/nginx
下。如果./configure --prefix=/usr/nginx/
,则是将其安装在/usr/nginx/
目录下。此时还并未安装,只是配置安装路径。 make
编译,生成可执行的二进制文件。make install
安装。此时,软件安装在/usr/local/https/
目录下。
安装完成后对安装包的清理
- 进入解压路径下,
make unintall
或者make clean
清除上一次编译 - 然后把解压文件夹删除
- 如果要卸载软件,把
/usr/local/nginx
这个文件删除即可。
configure、make、make install详解
./configure
是用来检测你的安装平台的目标特征的。比如检测你是否有CC或GCC,并不是说这一步需要CC或者GCC。它是一个Shell脚本,执行后会生成Makefile
文件。make
是通过执行Makefile
文件中的命令来完成项目源码的编译,当输入make
指令后默认会在当前目录下寻找名为Makefile
或makefile
的文件。分析Makefile
中的所有规则,为所有目标文件的创建依赖关系,根据依赖关系决定哪些文件要重新生成。
make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。
make install
安装,也是读取Makefile的指令,安装到指定目录。
2. rpm包安装
RPM (RedHat Package Manager) :由红帽公司提出,建议统一的数据库文件,详细记录软件包的安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM包的命名格式: firefox-17.0.10-1.el6.centos.x86_64.rpm
软件名称 版本号发行次数 硬件平台扩展名
rpm指令
- rpm -qpl 包.rpm:选项p表示package,后面需要写包的完整路径信息,qpl表示列出这个包在安装之后生成哪些文件和目录。
- rpm -qpi 包.rpm:查询未安装包的详细信息
- rpm -qa:查询所有已安装软件的rpm包信息,列出包的版本
- rpm -q httpd: 查看 httpd 是否安装
- rpm -qi httpd:列出 httpd 软件的详细信息
- rpm -qc httpd:查看 httpd 的配置文件目录
- rpm -ql httpd:查看 httpd 所包含的文件
- whereis httpd:查看httpd的安装路径和可执行文件路径
- which vim:搜索指令在系统中的路径
- rpm -qf 指令的绝对路径:查看该命令是由哪个rpm包所提供(查询rpm包的文件名),例
rqm -qf /usr/bin/vim
安装与卸载
- rpm -ivh 包.rpm:i表示安装,v表示显示安装过程,h表示
以#作为进度
显示安装进度 - rpm -e 包.rpm:移除指定的rpm包
3. yum安装
YUM(Yellow dog Updater Modified): 基于RPM包构建的软件更新机制,可以自动解决rpm包之间的依赖关系,所有软件包由集中的yum软件仓库提供。
yum常用指令
- yum clean all:清空缓存信息
- yum list:列出所有包的信息
- yum list redis:查看
redis
是否安装 - yum info redis:显示
redis
包的详细具体信息 - yum install redis-y:安装
redis
包 - yum remove redis -y:卸载
redis
包 - yum search 关键词:根据关键词,在已发现的repo源中搜索包含关键词的rpm包
- yum provides 命令:根据命令,在已发现的repo源中搜索安装指令的rpm包
- yum history list/info/undo/redo number:history可以列出、查看、重装、反安装对应的包,但是是以yum指令的操作顺序为依据的,所以需要加指定的数字执行
- yum update -y:升级所有包同时也升级软件和系统内核
- yum upgrade -y:只升级所有包,不升级软件和系统内核
Debian派
1. Deb包安装
DEB是Debian软件包格式的文件扩展名,Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。
处理这些包的经典程序是dpkg
,经常是通过Debian的apt-get
来运作。deb格式是Debian系统(包含Debian和Ubuntu)专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。
dpkg指令用法
- -i:安装软件包;
- -r:删除软件包;
- -P:删除软件包的同时删除其配置文件;
- -L:显示于软件包关联的文件;
- -l:显示已安装软件包列表;
- --unpack:解开软件包;
- -c:显示软件包内文件列表;
- --confiugre:配置软件包。
2. apt-get源安装
apt-get:Advanced Packaging Tool,除了apt的便捷以外,apt-get的一大好处是极大地减小了所谓依赖关系恶梦的发生几率(dependency hell),即使是陷入了dependency hell,apt-get也提供了很好的援助手段,帮你逃出魔窟。
通常 apt-get 都和网上的压缩包一起出没,从互联网上下载或是安装。全世界有超过200个 debian官方镜像,还有繁多的非官方软件包提供网站。你所使用的基于Debian的发布版不同,你所使用的软件仓库可能需要手工选择或是可以自动设置。你能从Debian官方网站得到完整的镜像列表。而很多非官方网站提供各种特殊用途的非官方软件包,当然,使用非官方软件包会有更多风险了。
软件包都是为某一个基本的Debian发布版所准备的(从unstable 到stable),并且划分到不同类别中(如 main contrib nonfree),这个是依据 debian 自由软件纲领而划分的(也就是常说的dfsg),因为美国限制加密软件出口,还有一个non-us类别。
常用的APT命令参数
- apt-cache search package 搜索包
- apt-cache show package 获取包的相关信息,如说明、大小、版本等
- sudo apt-get install httpd 安装软件
- sudo apt-get install package -- reinstall 重新安装包
- sudo apt-get -f install 修复安装
-f = --fix-missing
- sudo apt-get remove httpd 卸载软件
- sudo apt-get remove package -- purge 删除包,包括删除配置文件等
- sudo apt-get update 更新源
- sudo apt-get upgrade 更新已安装的包
- sudo apt-get dist-upgrade 升级系统
- sudo apt-get dselect-upgrade 使用
dselect
升级 - apt-cache depends package 了解使用依赖
- apt-cache rdepends package 是查看该包被哪些包依赖
- sudo apt-get build-dep package 安装相关的编译环境
- apt-get source package 下载该包的源代码
- sudo apt-get clean && sudo apt-get autoclean 清理无用的包
- sudo apt-get check 检查是否有损坏的依赖
原文链接:https://blog.csdn.net/qq_36119192/article/details/82866329