Linux基础 4(软件管理)

一、Linux软件管理介绍

目前在Linux操作系统上,软件管理方式最常见的有两种,分别是:

- RPM

  这个机制最早是由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributions就使用这个机制来作为软件安装的管理方式。包括Fedora、CentOS、SuSE等知名的开发商。

- DPKG

  这个机制最早是由Debian Linux社群所开发出来, 通过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息,非常不错。只要是衍生自Debian的其他Lunix distributions大多使用了dpkg这个机制来管理软件的,包括B2D,ubuntu等。

二、二进制安装

2.1  简介

这样的软件包是已经将软件源码在不同的平台上进行事先编译,经过压缩打包的文件。 每一个安装包都有自己的平台。换一个不同的平台环境,失效。

优点:简单方便

缺点:缺乏灵活性

2.2  举个栗子--JDK的安装:

1.上传jdk的二进制安装包  jdk-8u221-linux-x64.tar.gz,这里上传到/root/下

https://www.oracle.com/java/technologies/javase-downloads.html

这是官网下载网址,需要注册一下账号

2.解压jdk安装包

[root@linux01 ~]#  tar -zxvf ./jdk-8u431-linux-x64.tar.gz  -C /usr/local/

 3.切换到/usr/local下并更名

[root@linux01 ~]#   mv ./jdk1.8.0_431/ jdk

4.配置环境变量

环境变量的配置有三个位置可选,真实环境中,我们一般选择用户级别的环境变量,即使错了还能修改,如果选择系统级别的环境变量,配错了极难修改。

三个位置:

/etc/profile        :系统级别的环境变量配置文件    所有用户都可以使用
~/.bash_profile        :用户级别的环境变量配置文件    只对于一个用户好使
~/.bashrc            :用户级别的环境变量配置文件    只对于一个用户好使

 [root@linux01 ~]#vim /etc/profile

在文件的最后添加环境变量

# JDK environment
JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME PATH            <==导出环境变量,使其称为环境变量

注意:原有的PATH值拼在新值的后面

 

 5.让环境变量生效(刷新环境变量)

[root@linux01 ~]# source /etc/profile

 6.验证是否生效

[root@linux01 ~]# java -version 查看当前版本信息

[root@linux01 ~]# javac   查看命令是否存在

 

三、rpm安装

3.1  rpm安装原理:

1. 下载好的rpm软件包里包含了软件程序,依赖关系文件,版本信息文件
2. 当启动安装操作时,会先根据依赖关系文件查找该平台上是否已经安装好了依赖的软件
3. 如果依赖的软件没有提前安装,则终止该软件的安装
4. 如果依赖的软件已经提前安装,则继续安装,直到成功。

 

 应用程序在使用rpm方式安装时,而该程序的核心文件会默认放置在下面的目录中:

目录说明
/etc一些配置文档存储的目录,例如 /etc/ssh
/usr/bin一些可执行文件的目录
/usr/share/doc一些基本的程序使用手册和说明文档
/usr/share/man一些 man page 文档
/usr/lib一些程式使用的动态函数库
/var/lib/rpm程序相关的资讯信息,即资料库(版本的比较信息来源,查询系统已安装程序)

3.2  rpm指令的常用选项

rpm查询:

[root@linux01 ~]# rpm -qa                                                查询系统内已安裝程序
[root@linux01 ~]# rpm -q【licdR】 【已安装的程序名】  查询系统内某个已安裝程序的信息 

选项参数:
-q :用于查询指定的程序是否已经安装 
-qa :列出所有已经安装在Linux系统下的程序名称
-qi :列出该程序的详细信息 ,如版本号,发行时间,安装时间等
-ql :列出该程序所有的文档与目录
-qc :列出该程序的所有配置文件 (通常是指在 /etc/ 底下的文件)
-qd :列出该程序的所有說明文档 (指与 man 有关的文件)
-qR :列出与该程序有关的依赖软件所含的文件 (Required 的意思)
-qf :找出指定文件属于哪一个已经安装的程序

rpm安装和卸载:

[root@linux01 ~]#  rpm  [-ivh]   软件包名

        -i    :安装的含义
        -v    :安装过程中显示详情
        -h    :以进度条的形式显示安装进度
        -e  :卸载参数

离线安装 有依赖关系要先安装依赖
--nodeps :安装或卸载软件时,有依赖关系时,可以进行强制安装或卸载。有一定的危险性,安装后可以能造成软件无法正常使用!

3.3  举个栗子--mysql的安装:

1.上传mysql相关的软件包,这里上传到/root下

2.拆包

[root@linux01 ~]#  tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar 
[root@linux01 ~]# ll

mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm
mysql-community-devel-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
mysql-community-server-5.7.28-1.el7.x86_64.rpm
mysql-community-test-5.7.28-1.el7.x86_64.rpm

其实我们是想安装mysql-community-server-5.7.28-1.el7.x86_64.rpm

 3.安装mysql

先检查是否安装了mariadb, 如果已经安装,就卸载掉
[root@linux01 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@linux01 ~]# rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps

1.安装mysql-community-server-5.7.28-1.el7.x86_64.rpm

[root@linux01 ~]# rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

显示需要依赖文件mysql-community-common-5.7.28-1.el7.x86_64.rpm

2. 安装mysql-community-common-5.7.28-1.el7.x86_64.rpm
[root@linux01 ~]# rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm

显示需要依赖文件mysql-community-libs-5.7.28-1.el7.x86_64.rpm
3. 安装mysql-community-libs-5.7.28-1.el7.x86_64.rpm
[root@linux01 ~]# rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm

显示需要依赖文件mysql-community-client-5.7.28-1.el7.x86_64.rpm
4. 安装mysql-community-client-5.7.28-1.el7.x86_64.rpm
[root@linux01 ~]# rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

这时候已经不缺少依赖文件了 放心安装mysql-server
5. 安装mysql-server
[root@linux01 ~]# rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

注意:

如果还报错 可能需要提前安装net-tools和perl文件

yum -y install net-tools

yum -y install  perl

4.启动mysql的服务项mysqld

[root@linux01 ~]# systemctl start mysqld
[root@linux01 ~]# systemctl status mysqld  

5.查看mysql提供的默认密码,并复制。注意,如果服务项启动失败,则不会产生mysqld.log文件

 [root@linux01 ~]# cat /var/log/mysqld.log | grep password

 6.登录mysql,并修改密码

[root@linux01 ~]# mysql -uroot -p'9Pe%mQVcs-#<'    回车即可 -p后面无空格
.... 进入后,修改密码
mysql> alter user root@'localhost' identified by '你设的密码';

 7. 如果想要远程连接该机器上的mysql server, 那么mysql server需要进行远程授权。 注意关闭linux的防火墙

 mysql> grant all privileges on *.* to root@'%' identified by '你设的密码';
                                          库名.表名  root在任意IP上              密码
然后可以在windows启动navicat 远程连接linux上的mysql了。

四、yum安装

4.1  yum安装原理

YUM,是Yellow dog Updater, Modified 的简称。YUM会通过分析rpm软件包内的预设参数,制定软件依赖的解决方法,然后自动处理软件依赖的问题。这样,在安装、升级或者是卸载时,用户就不必头疼这个依赖问题了。

底层依然是rpm安装原理

yum服务器:存储了大量的现成的软件,并且维护着这些软件之间的依赖关系列表
安装流程: 机器在执行yum安装指令准备安装软件A时,会先向yum服务器发送请求,获取软件A的依赖关系列表,下载到本地,与本地的资料库做比较,如果本地的资料库缺少依赖关系中的某些软件,就会从yum服务器上获取所缺的依赖软件以及软件A,然后按照依赖顺序,开始安装。 

yum服务器的地址存储在/etc/yum.repo.d/CentOS-Base.repo文件中

4.2  yum指令的常用选项

yum常见的查询功能

 yum list all                                 列出yum源仓库里面的所有可用的安装包
 yum list installed                        列出所有已经安装的安装包
 yum list available                       列出没有安装的安装包 
 yum info [appName]                  查看软件的信息
 yum search [keywords]              根据关键字查找到相关安装包软件的信息
 yum whatprovides [fileName]     查找包含指定文件的相关安装包

yum的安装/卸载功能

语法:yum [install | update| reinstall | remove ] [软件名称]

 yum install appname            安装指定的软件
 yum reinstall appname         重新安装指定的软件
 yum update  [appname]        升级指定软件,不指定软件时,升级整个系统的软件
 yum remove appname          卸装指定的软件

 4.3  一些例子

yum -y install vim
yum -y install bzip2
yum -y install net-tools   

本地时间可能不准,那就需要和网络上的时间进行同步,那么可以使用ntpdate -u ntp1.aliyun.com进行同步。但是ntpdate指令不存在,需要安装。

yum -y install ntp  

ntp这款软件依赖于ntpdate和autogen,  yum都会帮助提前下载并安装。

 4.4  yum源的更换

 本地的yum信息在/etc/yum.repo.d/下

[root@linux01 nginx-1.26.2]# cd /etc/yum.repos.d/
[root@linux01 yum.repos.d]# ll
总用量 36
-rw-r--r--. 1 root root 2523 1月   8 20:51 CentOS-Base.repo
-rw-r--r--. 1 root root 1664 9月   5 2019 CentOS-Base.repo.backup
-rw-r--r--. 1 root root 1309 9月   5 2019 CentOS-CR.repo
-rw-r--r--. 1 root root  649 9月   5 2019 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 9月   5 2019 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 9月   5 2019 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月   5 2019 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月   5 2019 CentOS-Vault.repo

网络yum源的更换

由于CentOS系统默认的网络YUM源的地址是国外的,网速相对较慢,因此可以更换成国内的YUM源,比如阿里云、网易的等

这里选择更换成阿里云的yum源

1)确保wget指令或者使curl指令存在

如果不在,就安装以下
 [root@linux01 ~]# yum -y install wget* curl*     (哪个下载成功了就用哪个)

 2)备份原有的yum源

 [root@linux01 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

3) 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

 [root@linux01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

或者是:

 [root@linux01 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

4)清理原有的缓存

 [root@linux01 ~]# yum clean all

5) 重新构建缓存

 [root@linux01 ~]#  yum makecache

本地yum源的搭建

1)确保虚拟机连接了DVD.iso影像文件,开机后,此文件位于/dev/cdrom

2)创建挂载目录/mnt/dvd

[root@scott ~]# mkdir /mnt/dvd

 3)将映像文件挂载到/mnt/dvd下, 软件都在Packages目录下

 [root@scott ~]# cd /mnt/dvd
[root@scott dvd]# mount -t iso9660  /dev/cdrom -o loop /mnt/dvd
[root@scott dvd]# ll

-t:用来指定文件类型,   光盘的类型是:iso9660
-o: 用来指定挂载方式,  loop 用来把一个文件当成硬盘分区挂接上系统 

4)将原有的yum源设置为失效状态(修改后缀即可)

[root@scott Packages]# cd /etc/yum.repos.d/
[root@scott yum.repos.d]# rename .repo .repo.bak  ./*.repo

解析:rename  [要修改的扩展名] [修改后的扩展名] [源文件]

5) 创建local.repo文件,配置本地yum源信息

[root@scott yum.repos.d]# vi local.repo

 [local]                                                                             资源库的唯一标识 
name=local                                                                     资源库的名字
baseurl=file:///mnt/dvd                                                    指向本地路径
gpgcheck=0                                                                    0表示禁止校验,1表示开启校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7      CentOS yum源的秘钥文件
enabled=1                                                           0表示禁用本资源库,1表示开启本资源库

 6)清空yum源缓存

 [root@scott yum.repos.d]# yum clean all

7)查询yum源软件列表

 [root@scott yum.repos.d]# yum list all

注意:重启机器后,需要重写挂载,也就是重新执行mount指令。 

局域网yum源的搭建

1)选择局域网内的一台机器作为YUM源服务器,安装HTTP服务进程

[root@linux01 ~]# systemctl status httpd
[root@scott yum.repos.d]# yum -y install httpd.x86_64 

2)启动httpd服务项

[root@linux01 ~]# systemctl start httpd
[root@linux01 ~]# systemctl enable httpd
[root@linux01 ~]# systemctl status httpd

 3)配置HTTP服务管理YUM源目录

 # HTTP服务进程管理的目录是/var/www/html

#在管理目录下,创建软连接,指向YUM源目录
 ln -s /mnt/dvd /var/www/html/repo        

 4)其他机器只需要把自己本地YUM源的路径指向局域网YUM源地址即可

[root@linux02 yum.repos.d]# rename .repo .repo.bak ./*.repo
[root@linux02 yum.repos.d]# vi local.repo                #编辑文件,后缀必须是.repo

[local]                                             <===YUM源仓库名
name=localrepo                            <===昵称
baseurl=http://局域网IP/repo         <===局域网YUM仓库位置
enabled=1                                      <===1 表示启用,0表示禁用
gpgcheck=1                                   <===1 表示 校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7        <===校验钥匙

五、源码安装 

 由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache、tomcat、php等软件。开源软件基本都提供源码下载,源码安装的方式;

5.1  源码安装的优缺点

优点

1.用户可以自己定制软件功能,安装需要的模块,不需要的功能可以不用安装。
2.用户还可以自己选择安装路径,方便管理。
3.卸载软件也很方便,只需删除对应的安装目录即可。
4.能最大程度和服务器平台融合,效率稍微比其他方式高。
5.没有windows所谓的注册表之说。

缺点

1.安装较为繁琐,需要自己配置
2.安装较为耗时,需要自己编译源码
3.安装较为容易出错,出错也难以解决

5.2  举个栗子:安装Nginx

1.下载源码包,并解压到你喜欢的位置 下载网址:nginx: download

[root@linux01 ~]# tar -zxvf nginx-1.26.2.tar.gz  -C /usr/local

2.进入该软件的家里

 [root@linux01 ~]# cd /usr/local/nginx-1.26.2

3.执行配置信息

(需要C语言环境提前安装好)

[root@linux01 ~]# yum -y install gcc-c++
[root@linux01 ~]# yum install -y pcre pcre-devel
[root@linux01 ~]# yum install -y zlib zlib-devel
[root@linux01 ~]# yum install -y openssl openssl-devel

 安装好环境后,在配置nginx的属性信息

[root@linux01nginx-1.26.2]# ./configure \
    --prefix=/usr/local/nginx-1.26.2 \
    --pid-path=/usr/local/nginx-1.26.2/tmp/nginx.pid 

4.在家执行编译指令

[root@linux01 nginx-1.26.2]# make

 5.在家执行安装指令

[root@linux01 nginx-1.26.2]# make install

 如果出现bin或者sbin目录表示安装成功

 6.清空缓存

[root@linux01 nginx-1.26.2]# make clean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值