Linux软件的安装

Linux软件的安装

一、编译安装


1、获取源代码

    Nginx官网:http://nginx.org/en/  下载地址:http://nginx.org/download/  或者从GitGub官网查找下载
    注:一般的开源服务,除了在官网能够找到其相关的源码包之外,通常他们还会把相关安装包放在GitHub网站上
    也可以在Linux系统中直接下载:

[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
--2021-05-10 07:33:10--  http://nginx.org/download/nginx-1.16.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 2a05:d014:edb:5702::6, 2a05:d014:edb:5704::6, 52.58.199.22, ...
正在连接 nginx.org (nginx.org)|2a05:d014:edb:5702::6|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1032345 (1008K) [application/octet-stream]
正在保存至: “nginx-1.16.0.tar.gz”

100%[==============================>] 1,032,345   3.88KB/s 用时 6m 44s 

2021-05-10 07:39:55 (2.49 KB/s) - 已保存 “nginx-1.16.0.tar.gz” [1032345/1032345])

[root@localhost ~]# ls
anaconda-ks.cfg  http.sh               user.sh   视频  音乐
fenshu.sh        initial-setup-ks.cfg  users.sh  图片  桌面
httpdd.sh        nginx-1.16.0.tar.gz   公共      文档
httpd.sh         repo.sh               模板      下载
[root@localhost ~]# du -h nginx-1.16.0.tar.gz 
1012K	nginx-1.16.0.tar.gz

2、解压tar包

    //安装前准备,下载源码安装所编译工具:    

[root@localhost ~]# yum -y install gcc zlib pcre-devel openssl openssl-devl zlib-devel
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
软件包 gcc-4.8.5-28.el7.x86_64 已安装并且是最新版本
软件包 zlib-1.2.7-17.el7.x86_64 已安装并且是最新版本
软件包 1:openssl-1.0.2k-12.el7.x86_64 已安装并且是最新版本
没有可用软件包 openssl-devl。
正在解决依赖关系
--> 正在检查事务
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
---> 软件包 zlib-devel.x86_64.0.1.2.7-17.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==================================================================================================================================================
 Package                             架构                            版本                                    源                              大小
==================================================================================================================================================
正在安装:
 pcre-devel                          x86_64                          8.32-17.el7                             local                          480 k
 zlib-devel                          x86_64                          1.2.7-17.el7                            local                           50 k

事务概要
==================================================================================================================================================
安装  2 软件包

总下载量:530 k
安装大小:1.6 M
Downloading packages:


Error downloading packages:
  zlib-devel-1.2.7-17.el7.x86_64: [Errno 256] No more mirrors to try.
  pcre-devel-8.32-17.el7.x86_64: [Errno 256] No more mirrors to try.

    注:pcre 支持正则表达式 openssl加密方式,一般配合httpd或nginx,devel是对软件进行二次开发时候使用的,里边包括头文件,静态库甚至源代码
    //添加nginx用户    

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

    //解压源码包

[root@localhost ~]# tar -zxvf nginx-1.16.0.tar.gz -C /usr/src

3、./config配置  

[root@localhost ~]# cd /usr/src/nginx-1.16.0
[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

4、make编译

    //make编译,生成可执行的二进制文件Makefile,一般编译后会紧跟着安装

[root@localhost nginx-1.16.0]# make && make install

5、配置应用选项

[root@localhost nginx-1.16.0]# ln -s /usr/local/nginx/sbin/*
/usr/local/sbin/
[root@localhost nginx-1.16.0]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf
test is successful
[root@localhost nginx-1.16.0]# nginx
[root@localhost nginx-1.16.0]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address
already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address
already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address
already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address
already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address
already in use


二、RPM

1、安装软件包

    rpm常用选项
    -vh 显示安装进度
    -U 升级软件包
    -qpl 列出RPM软件包内的文件信息
    -qpi 列出RPM软件包的描述信息
    -qf 查找指定文件属于哪个RPM软件包
    -Va 校验所有的RPM软件包,查找丢失的文件
    -qa 查找相应文件,如:rpm -qa mysql
    -e 卸载rpm包
    -q 查询已安装的软件信息
    -i 安装rpm包

    -u 升级rpm包
    --replacepkgs 重新安装rpm包
    --justdb 升级数据库,不修改文件系统
    --percent 在软件包安装时输出百分比
    --help 帮助
    --version 显示版本信息
    -c 显示所有配置文件
    -d 显示所有文档文件
    -h 显示安装进度
    -l 列出软件包中的文件
    -a 显示文件状态
    -p 查询/校验一个软件包
    -v 显示详细的处理信息
    举例:
    安装软件    

[root@localhost ~]# rpm -ivh zsh-5.0.2-33.el7.x86_64.rpm

    也可以在安装前先进行测试    

[root@localhost ~]# rpm -ivh --test zsh-5.0.2-33.el7.x86_64.rpm

    --test:只是测试安装
    --nodeps:只安装软件本身,不考虑依赖
    --force:强制安装

2、rpm的查询:重点

    1)-q query查询
          a)查询软件包是否安装rpm -q 软件名字        

[root@localhost ~]# rpm -q zsh
未安装软件包 zsh 

          b)查询系统中所有已经安装的软件包有哪些

[root@localhost ~]# rpm -qa |wc -l
1430  //统计个数

          c)f查询某个文件是由哪个软件包安装的

[root@localhost ~]# rpm -qf `which vim`    //找出vim命令是由哪个软件包装的
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -qf /etc/passwd    ///etc/passwd文件是由哪个软件包安装的
setup-2.8.71-9.el7.noarch

          d)c查询软件的配置文件        

[root@localhost ~]# rpm -qc httpd    //查询httpd服务的配置文件
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd

          e) l安装某个软件时,都安装了哪些文件        

[root@localhost ~]# rpm -ql httpd

          f)i查询安装的软件包信息        

[root@localhost ~]# rpm -qi httpd
Name        : httpd
Version     : 2.4.6
Release     : 80.el7.centos
Architecture: x86_64
Install Date: 2021年05月08日 星期六 10时04分38秒
Group       : System Environment/Daemons
Size        : 9817285
License     : ASL 2.0
Signature   : RSA/SHA256, 2018年04月25日 星期三 19时04分41秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-80.el7.centos.src.rpm
Build Date  : 2018年04月21日 星期六 02时12分22秒
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.


    2)-qp查询未安装的软件包的相关信息

          rpm -qpi gcc-4.8.5-39.el7.x86_64.rpm
          -qpi:未安装的软件包的完整路径和包名:查询未安装的软件包的详细信息
          -qpl:如果安装未安装的软件,会安装哪些文件在系统里
          -qpR:查询未安装的软件包的依赖情况
    3)rpm包的卸载
          -e:erase
          rpm -e zsh
          rpm -q zsh
    4)rpm包的校验:verify
          为了安全,防止恶意代码
          V:后面接软件名称,该软件所含的文件被改动过,才会被列出来。针对一个软件查询
          Va:列出系统上面所有有可能被改动过的文件。针对整个系统的
          Vp:后面接RPM软件包
          Vf:列出某个文件是否被改动过
          rpm -Vf /usr/sbin/sshd
          rpm -Va 检测所有的包          

[root@localhost ~]# rpm -Va
.M.......  g /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre/lib/amd64/server/classes.jsa
.M.......  g /var/lib/setroubleshoot/email_alert_recipients
......
......
......

          对于输出中每个标记的含义介绍如下:
          S 表示文件长度发生了变化
          M 表示文件的访问权限或文件类型发生了变化
          5 表示MD5校验和发生了变化
          D 表示设备节点的属性发生了变化
          L 表示文件的符号链接发生了变化
          U 表示文件/子目录/设备节点的owner发生了变化
          G 表示文件/子目录/设备节点的group发生了变化
          T 表示文件最后一次的修改时间发生了变化
    注:  如果输出结果中有“M”标记出现,那么对应的文件可能遭到篡改或替换,此时可以通过卸载这个rpm包重新安装来清除受攻击的文件                                                                                                                               不过这个命令有个局限性,那就是只能检查通过rpm包方式安装的所有文件,对于通过非rpm包方式安装的文件就无能为力了。同时                                                                                                                             如果rpm工具也遭到替换,就不能通过这个方法了,此时可以从正常的系统上复制一个rpm工具进行检测

三、yum安装

    yum是红帽系列系统基于RPM包构建的软件更新机制,可以自动解决rpm包之间的依赖关系,所有软件包由集中的yum软件仓库提供。
    yum的配置文件在 /etc/yum.repos.d/下面,必须以.repo结尾!
    常用yum命令
    1)、安装
        yum install 全部安装
        yum install package1 安装指定的安装包package1
        yum groupinstall group1 安装程序组group1
    2)、更新和升级
              yum update 全部更新
        yum update package1 更新指定程序包package1
        yum check-update 检查可更新的程序
        yum upgrade package1 升级指定程序包package1
        yum groupupdate group1 升级指定组group1
    3)、查找和显示
        yum info package1 显示安装包信息package1
        yum list 显示所有已经安装和可以安装的软件包
        yum list package1 显示指定程序包安装情况package1
        yum groupinfo group1 显示程序组group1信息
        yum search string 根据关键字string查找安装包
    4)、删除程序
        yum remove | erase package1 删除程序包package1
        yum groupremove group1 删除程序组group1
        yum deplist package1 查看程序package1依赖情况
    5)、清楚缓存
        yum clean packages 清除缓存目录下的软件包
        yum clean headers 清除缓存目录下的headers
        yum clean oldheaders 清除缓存目录下旧的headers
    一般常用命令
    //查看这个命令是由哪个包提供的?        

[root@localhost ~]# yum provides vim
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
2:vim-enhanced-7.4.160-4.el7.x86_64 : A version of the VIM editor which
                                    : includes recent enhancements
源    :local
匹配来源:
提供    :vim = 7.4.160-4.el7



2:vim-enhanced-7.4.160-4.el7.x86_64 : A version of the VIM editor which
                                    : includes recent enhancements
源    :@anaconda
匹配来源:
提供    :vim = 7.4.160-4.el7

    //查看yum仓库中所有的rpm包,通常会和grep一起使用查看是否有我们需要的包        

[root@localhost ~]# yum list | grep httpd
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
httpd-tools.x86_64                      2.4.6-80.el7.centos            @local   
httpd.x86_64                            2.4.6-80.el7.centos            local    
httpd-devel.x86_64                      2.4.6-80.el7.centos            local    
httpd-manual.noarch                     2.4.6-80.el7.centos            local    
libmicrohttpd.x86_64                    0.9.33-2.el7                   local    

    //查看要安装的包的详细信息       

[root@localhost ~]# yum info httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
可安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :80.el7.centos
大小    :2.7 M
源    :local
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and
         : extensible web server.

    //安装软件包        

[root@localhost ~]# yum -y install httpd

    //卸载软件包        

[root@localhost ~]# yum -y remove httpd

1、配置本地yum源

        配置本地yum源是通过本地映射光盘挂载到系统中,然后将yum的配置文件中的baseurl指向挂载的目录即可
        步骤:
        //首先在虚拟机的这个配置中,勾选使用iso映射文件,然后选中我们iso文件所在的位置即可
        
        //在虚拟机系统中,我们的iso文件是/dev/sr0设备,现在我们要将iso文件挂载到/mnt/cdrom下。如果mnt目录下木cdrom,那么我们自己新建一个            

[root@localhost ~]# mkdir /mnt/cdrom

        //挂载有两种方式挂载,临时挂载和开机自动挂载
        临时挂载            

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

        (我们设备的挂载信息在/etc/fsyab里面,所以我们想要永久挂载,需要修改fstab文件。用vim打开该文件,我们可以看到有三行信息,是其他分区的挂载信息,所以我们现在要把我们光盘的挂载信息添加过去)
        开机自动挂载
            vim /etc/fstab
            /dev/sr0 /mnt/cdrom iso9660 defaults 0 0
            mount -a
        //挂载好iso文件之后,我们去修改源的配置文件/etc/yum.repos.d/,它默认有一个文件,我们把它做一个备份,然后自己新建以.repo结尾的文件,用vim编辑器打开.输入以下的配置,保存
            cd /etc/yum.repos.d/
            mkdir backup
            mv *.repo backup/
            vim my.repo
            [myrepo]
            name=NewRepo
            baseurl=file:///mnt/cdrom
            enabled=1
            gpgcheck=0

            [myrepo]    括号中的名称为仓库源名称,通常为字谜和数字,必须填写
            name=NewRepo    对yum的描述,可写可不写
            baseurl=file:///mnt/cdrom    表示声明yum可以管理并使用的rpm包路径,必须填写
            enabled=1     表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启
            gpgcheck=0     表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启,0表示关闭,此项不写默认为验证
        //最后我们进入到/mnt/cdrom/Packages目录下,验证一下
            cd /mnt/cdrom/Packages
            ll | wc -l

2、配置网络yum源

        //这里配置国内阿里的yum源,网址:http://developer.aliyun.com/mirror/
            cd /etc/yum.repos.d/
            rm -rf my.repo
            wegt -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        除了阿里云的yum源,在此还准备了国内其他yum源的地址:
            网易163yum源,安装方法查看:http://mirrors.163.com/.help/
            中科大的 yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help
            清华大学的 yum源,安装方法查看: https://mirrors.tuna.tsinghua.edu.cn/
            浙江大学的 yum源,安装方法查看: http://mirrors.zju.edu.cn/
            中国科技大学yum源,安装方法查看: http://centos.ustc.edu.cn/

3、拓展yum源

        EPEL是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、Centos和Scientific Linux
        这里我们使用国内的阿里源,国内yum源皆有拓展源
        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4、使用yum查看安装服务的相关包文件

        yum -y install yum-utils
        repoquery -ql nginx

5、在下载的时候,可以选择将rpm包下载到本地

        可以使用    --downloadonly --downloaddir=/xxx
        下载完成之后     yum -y localinstall *

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自然醒o./

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值