Linux安装类型自我总结

一、编译、安装软件
一般来说,计算机中存在解释性和编译型两种语言。所谓解释性语言,就是计算机逐条取出编码文件的指令,将其转化成机器指令,并执行这个指令的过程。而编译型语言是指在程序运行前就将所有的源代码一次性转化为机器代码(一般为二进制程序)。编译过程由编译器执行(compiler),也就是将代码生成可执行的程序。
如下:编译、安装、打印helloworld程序:
使用vi编辑器编写helloworld.c源码文件(.c为c语言),见下图:在这里插入图片描述

接下来使用gcc(gcc并不安全)将源码文件编译成二进制可执行文件HelloWorld。在这里插入图片描述

此时单独输入HelloWorld会报错命令未找到,这是因为环境变量未设置的原因,可使用命令“echo $PATH”查看,可以看到PATH变量是一些由冒号隔开的路径,当输入命令HelloWorld并按回车时键,系统优先从目录/usr/Kerberos/sbin中寻找是否有这个文件,如果找不到就从/usr/Kerberos/bin中寻找,以此类推,如果在PATH定义中的所有目录中都找不到该文件,就会提示命令未找到。在这里插入图片描述

解决此类问题的方法一般有三种。第一种方法,切换到目录下,使用./ HelloWorld执行;第二种方法,复制到任一PATH变量包含的目录下,HelloWorld就可以执行;第三种方法,将/root目录追加到PATH变量中,export PATH= P A T H : / r o o t , 次 命 令 只 是 临 时 生 效 的 , 重 启 之 后 就 会 失 效 , 可 以 用 e c h o “ e x p o r t P A T H = PATH:/root,次命令只是临时生效的,重启之后就会失效,可以用echo “export PATH= PATH:/rootechoexportPATH=PATH:/root” >> /etc/rc.local.
以上就是源码编译安装软件的原理,简单总结就是编写源代码—编译源码生成二进制文件(也就是程序)–复制二进制文件到任一PATH变量包含的目录中。

然而,在实际工作中,软件的需求往往比较复杂,而却大多数基于模块化开发的思想开发实现,所以一个软件往往需要多个源码文件和各类配置文件,在编译的时候也需要严格按照一定的过程进行编译。在这种情况下,为了方便软件安装,可以使用Makefile(即make命令)简化整个过程。
在这里插入图片描述
在这里插入图片描述
事实上,有很多开源软件是不包含Makefile的,此时,需要用户根据具体的需求使用软件包目录中的configure工具,生成适合用户特定需求的Makefile,所以典型的源码编译安装软件的过程包括以下三步:
第一步,解压包,进入后运行configure命令,并结合必要的参数以生成Makefile(如./configure –prefix=/usr/local/apache/ --enable-modules=most);
第二步,运行make命令生成各类模块和主程序;
第三步,运行make install命令将必要的文件复制到安装目录中
注:以上三步都需要在对应软件包目录的根目录下运行。

二、rpm预编译安装软件
使用rpm工具安装
源码编译的前提是系统中安装了gcc工具,对于注重安全生产环境的用户而言是不应该安装这个工具的;其次,源码编译有很多可选参数;再次,由于编译安装耗时较长,所以不适用于大规模部署;最后,源码编译无法完成软件管理功能。
为了解决以上问题,Redhat采用了RPM包管理机制。
RPM分为两类,第一类是二进制安装包(也就是预编译包)。
如果将编译好的软件复制到环境相同的软件环境(内核版本、软硬件运行环境一致)的服务器中,只要软件在原编译机中能运行,那么在新主机中也同样能运行。RPM采用的就是这种类似的方式,将所需要的文件(二进制程序,模块,配置文件等)整体打包,在新主机中安装时,再将文件解压并复制到特定的目录中去。
第二类是RPM源码包,当希望自定义编译参数,自行制作二进制安装包的时候使用。
如rpm -ivh package_name-version.rpm
安装一个较大软件时,此时需提前安装多个依赖包,也不是特别方便。所以出现了yum一键安装软件。
Rpm常用命令:在这里插入图片描述

重新定义安装路径:rpm –ivh –relocate /=/usr/local/package_name

三、yum一键安装软件
yum是一个基于rpm的shell前端包管理器,能够从指定的服务器上,自动下载并安装或更新软件、删除软件。最大好处是可以自动解决依赖关系。运行yum命令时需保证主机能连接外网。

3.1 yum源配置
1)自建本地yum源
在/etc/yum.repos.d/下面,有很多以.repo结尾的文件,该类文件中包含了诸多url地址。这些地址都是可以用浏览器访问的地址,其中‘$ basearch’ 是个变量,yum会根据本地服务器的操作系统类型自动判断是i386还是x86_64。
在repo文件中,每个以方括号开始的部分是一个“源”,所以repo文件中其实定义了base,updates,addons,extras,centosplus,contrib六个源。
只要是在/etc/yum.repos.d目录中以.repo结尾的文件,都是yum认可的文件,所以之前的centos.repo文件最多可以拆成6个独立的repo文件(也可以不拆)。
网络源会影响本地源使用
如建立base源(base为网络源):
[base]
#命名一个叫‘base’的源

name=CentOS-7- Base
#该源的名字为‘CentOS-7- Base’

enabled=1
#enabled表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启

baseurl=http://centos.ustc.edu.cn/centos/5/os/$ basearch/
#该源的http地址,‘$ basearch’为变量,其值与uname -m输出一致,baseurl支持http、file、ftp三种类型。

gpgcheck=1
#gpgcheck表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启gpg验证,0为关闭,此项不写默认为开启

gpgkey=http://mirror.centos.org/centos/RPG-GPG-KEY-Centos-5
#定义gpgkey地址

配置完成后,使用yum clean all(清楚yum缓存) && yum makecache(建立yum缓存,刷新缓存),直到出现metadata cache created。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值