首先,linux不是一个操作系统,而是一个操作系统中的内核。内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备IO等。通常所说的linux,指GNU/linux,即采用linux内核的GNU操作系统。
下面总结一下linux操作系统和几种软件安装方式,欢迎指正和补充。
Linux的操作系统分类
1、Redhat系列及变异版本
RHEL(Redhat Enterprise Linux),收费
Fedora Core,免费,稳定性较差
CentOS,免费,常用
软件包管理工具:yum,包名:.rpm
安装包:yum –y install pkgname,或者rpm –ivh pkgname.rpm
卸载包:yum remove pkgname,或者rpm –evh pkgname
2、Debian系列及变异版本
Debian
Ubuntu
deepin
软件包管理工具:apt-get,apt
安装包:apt-get install pkgname
卸载包:apt-get remove pkgname
3、Suse
企业级
软件包管理工具:YaST(rpm),APT(rpm)
几种软件安装方式
1、rpm安装
RPM安装,是使用别人事先制作好的rpm包。包中的二进制程序文件,是对方根据软件需求方的硬件、系统等信息事先编译好的,只能适用于那个系统、硬件的机器上。例如,64位CentOS 7系统上的rpm包,就无法应用于32位CentOS 6系统。
无法自动解决RPM包之间的依赖性。
-
常用命令
Rpm –ivh xx.rpm #安装rpm包,i安装v输出详细信息h输出进度条
Rpm –Uvh xx.rpm #升级或安装,之前未安装则可直接安装
Rpm –evh xx #卸载,跟rpm包名,而非rpm包文件名
Rpm –qa | grep –i “xx” #按条件查询,q查询a所有i不区分大小写
2、yum安装
yum是一款基于rpm包的包管理器,也是使用别人事先制作好的rpm包。相对于rpm,它自动帮我们解决了包下载以及包依赖性的问题。
yum是一款C/S架构的工具。客户端即为本地的Linux端,需要安装软件的那一端。服务器端即为远程仓库(repository)端,也叫做yum源。
仓库端除了存放众多的RPM包以外,还存放了相关的元数据(应该是记录包之间的依赖关系等)repodata目录。
常用命令
yum [options] [command] [package ...] #基本语法
yum –y install 包名 #安装,自动选择y
yum remove 包名 #卸载
yum repolist #列出已启用的仓库信息
yum list #列出所有的程序包
yum list updates #列出所有可更新的包
yum install pkg1 [pkg2] […] #安装,默认安装仓库中的最新版本
yum clean [ pkg | metadata | all ] #清理缓存
3、npm
npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。
4、pip
pip是python包管理工具,提供了对python包的查找、下载、安装、卸载功能
Debian系列可直接用包管理器安装pip:sudo apt-get install python-pip
常用命令
pip –version #显示版本和路径,可判断是否已安装
pip install xx #安装
pip uninstall xx #卸载
pip install –i 镜像网站 xx #指定镜像网站下载
5、不需要安装
直接解压,配置环境变量即可,如tomcat
6、源码编译安装
撰写源代码时已写好所有功能,但在编译时一般根据需求编译,只编译需要的功能。如果通过rpm或者yum安装的软件,没有我们所需要的功能(但是软件的源代码中是有该功能的),此时就需要用户自行基于源码编译安装了。
软件从X86移植到ARM,若开发语言是编译型(C/C++/GO),与CPU架构相关,故移植过程需要重新编译。
若开发语言是解释型(java/python),因与CPU架构不相关,故移植过程无需重新编译或修改
源代码编译大致流程:源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行
-
具体操作:
wget http://xxx/mysql.tar.gz #获取源码
tar -zxvf mysql.tar.gz #解压
cd mysql/ #切换进目录
./configure --prefix=/home/mysql/ #执行configure命令,生成makefile文件,--prefix指定软件安装目录
make clean #清除上一次编译生成的目标文件
make #读取makefile文件,调用gcc等编译程序将源码编译成二进制文件
make install #将编译好的二进制文件安装到指定目录