[新手课堂] linux操作系统和几种软件安装方式

首先,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                                                 #将编译好的二进制文件安装到指定目录