Linux软件安装
见过了Windows的花花绿绿,最近的Linux系统还用的习惯吗?不同于Windows美丽的视觉界面和软件使用,纯粹的Linux系统是一个严谨的荒芜国度……这是因为你还未为你的Linux添加翅膀,学会了Linux的软件安装你也可以打造你的极客帝国。
在Linux中,我们以CentOS系统为例,软件管理方式通常有三种方式: rpm安装 、 yum安装 以及编译安装 。
一、yum
1.yum介绍
Yum(全称为 Yellow dog Updater, Modified )是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum配置文件所在的位置是:/etc/yum.repos.d
,上一篇文章我们讲述了怎么更换yum源,并且将默认的源备份并更换为了阿里的yum源,这次我们将继续使用。
2.yum命令的用法
命令&语法 | 释义&解释 |
---|---|
yum -y install [包名] | 安装软件(包) |
yum -y remove [包名] | 卸载软件(包) |
yum serch [关键词] | 搜索软件包名 |
yum [-y] update [包的关键词] | 更新软件 |
yum clean all | 清除所有缓存 |
yum makecache | 重新生成缓存 |
3.命令使用示例
以wget软件包为例:查看软件包是否已安装、用yum卸载软件、用yum安装软件。
1 | [root@hostlocal ~]# wget ###直接使用命令测试一下 |
如果我们不知道软件包的名字呢?该怎么安装我们想要的功能呢,百度一下你就知道!!!
由此我们知道了一个关键的上传和下载命令,那我们要安装什么软件呢,这个时候对我们来说就方便多了,我们可以使用命令对包名进行检索。
1 | # 检索sz这个命令属于哪个软件包,命令:`yum search rz` |
安装软件时我们可以使用软件名称:lrzsz ,也可以使用软件报的全名称 :lrzsz-0.12.20-36.el7.x86_64 。
lrasz软件简单使用方法:rz
命令直接回车表示将windows的文件上传到linux系统,不可以上传空的文件哦~,也可以直接将文件拖拽到Xshell中表示上传到当前目录。sz [file]
:表示把文件从Linux系统下载到Windows桌面位置。
二、rpm
1.介绍
RPM 全名 RedHat Package Managerment,是由Red Hat公司提出,被众多Linux发行版本所采用,是一种数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。它会建立统一的数据库文件,详细记录软件包安装 、卸载等变化信息,能够自动分析软件包依赖关系。
RPM最大的特点就是将你要安装的软件先编译过,并且打包成为 RPM 机制的文件,通过打包好的软件里面默认的数据库,记录这个软件要安装的时候必须具备的依赖属性软件。
优点:由于已经编译完成井且打包完华,所以软件传输与安装上很方便(不需要再重新编译);
缺点:由于 RPM 文件是已经打包好的数据,也就是说,里面的数据已经都编译完成了,所以,==该软件安装文件几乎只能安装在原本默认的硬件与操作系统版本中。这意味着你的主机系统环境必须要与当初建立这个软件安装文件的主机环境相同才行。==我们经常会遇到这样的情况,去官网下载好了rpm包,但是安装时提示需要先安装依赖,这时候我们就需要去yum源先安装依赖,然后才能继续使用rpm安装软件。
2.rpm命令用法简介
命令参数 | 释义 |
---|---|
rpm -i [package] | 表示安装(install) |
rpm -v [package] | 表示显示安装过程 |
rpm -h [package] | 显示安装进度 |
rpm -qa [package] | 查看是否安装 |
rpm -qa | 查看当前系统安装过的软件 |
rpm -qc [package] | 只显示有关的配置文件 |
rpm -e [package] | 卸载软件【注意软件包名称的完整性】 |
3.命令使用示例
这次我们以gitlab-ce为例,使用rpm进行安装。由于安装包较大(371M),所以我选择下载后拖拽至Xsell进行上传(安装过lrzsz软件才可以哈~)
这个时候rpm的弊端就显示出来了,如下图,它提示我们需要先安装policycoreutils-python依赖,才能继续安装gitlab-ce……
我们使用yum安装policycoreutils-python依赖
1 | [root@hostlocal ~]# yum -y install policycoreutils-python |
此时,我们在使用rpm命令安装gitlab-ce,[root@hostlocal ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
,安装成功。
4.注意事项
rpm卸载是有依赖性的。比如,在安装的时候,要先安装 httpd 软件包,再安装 httpd 的功能模块 mod_ssl 包。那么,在卸载的时候,一定要先卸载 mod_ssl 软件包,再卸载 httpd 软件包,否则就会报错。软件包卸载和拆除大楼是一样的,你要拆除 2 楼和 3 楼,一定要先拆除 3 楼。当然此时我们使用yum -y remove [package]
也是可以删除的,但是我们安装软件时安装的依赖会依旧存在 。
默认安装路径:RPM 包默认安装路径是可以通过命令査询的,一般安装在如下表
安装路径 | 含 义 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
知识补充
rpm包也可以使用yum进行安装(前提依赖包都已经下载好了),使用命令yum -y localinstall *.rpm
。
三、环境变量
1.环境变量的定义
环境变量的含义:程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。
环境变量的分类:
按生效的范围分类 | 按生存周期分类 |
---|---|
系统环境变量:公共的,对全部的用户都生效。 | 临时环境变量:使用时在Shell中临时定义,退出Shell后失效。 |
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。 | 永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。 |
Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。
2.常用环境变量
在Shell下,我们可以i用env命令查看当前用户全部的环境变量。
1 | [root@hostlocal ~]# env |
用env命令的时候,满屏显示了很多环境变量,不方便查看,我们可以用grep筛选。
我们在此着重讲一下PATH变量
PATH变量:存放可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序。
PATH变量具体有什么用呢?接下来跟着我的步骤一起来看一下吧
1 | [root@hostlocal ~]# rm -rf * |
why我们touch命令不生效了呢,它提示我们没有找到/usr/bin/touch这个文件或目录,创建文件为什么需要这个目录呢?这个文件里面存放的是什么呢?
1 | [root@hostlocal ~]# less /data/touch |
原来我们输入的命令在执行前会先去PATH变量里面寻找,如touch一个文件时,它会先去PATH变量目录里面检索touch命令,找到/usr/bin/touch后,由二进制文件touch执行后(计算机只能识别二进制命令,也只能去解码二进制命令),才能实现文件的创建。
要不改变现在touch文件的位置,继续实现touch命令的执行,那我们就需要添加PATH变量。
在shell命令窗口直接定义的变量都是临时的变量,重连后变量就会失效,我们要长久永远的生效就需要在profile配置文件里面定义。
添加临时变量还有更简单的方法哦~
1 | [root@hostlocal ~]# PATH="${PATH}:/data" ###{}表示指定里面的内容是变量,不然此处容易把$后面所有的字符全部当作变量 |
当然变量也可以存放文件或者目录,但是你存放在变量里面的其实是一串字符串,这个字符串只有被调用时,才能展示它本身的功能
LANG:LANG环境变量存放的是Linux系统的语言、地区、字符集,它不需要系统管理员手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对LANG的设置。CentOS6.x 字符集配置文件在/etc/syscconfig/i18n文件中;CentOS7.x 字符集配置文件在/etc/locale.conf文件中。
HOSTNAME:服务器的主机名。
SHELL:用户当前使用的Shell解析器。
HISTSIZE:保存历史命令的数目。
USER:当前登录用户的用户名。
HOME:当前登录用户的主目录。
PWD:当前工作目录。
LD_LIBRARY_PATH:C/C语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C程序员来说非常重要。LD_LIBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。export LD_LIBRARY_PATH=目录1:目录2:目录3:…目录n:.
CLASSPATH:JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要。CLASSPATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。