07 linux安装软件的三种方式

今天内容 1、重要的目录 1、 usr 安装第三方软件的目录,

# 今天内容

    1、重要的目录
    
        1、/usr
        
            安装第三方软件的目录,
            
            1、/usr/local主要用来安装软件的目录
            2、/usr/bin和/usr/local/bin 主要用来存放第三方二进制命令文件的目录
            
            3、linux安装文件的三种方式
        
                1、rpm
                
                    rpm无法解决安装包依赖的问题
                    
                    下载zsh的连接:https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm
                    
                    rpm -ivh  [软件包名称]: 安装软件
                    
                    [root@python ~]$ rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
                    warning: zsh-5.0.2-34.el7_8.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
                    Preparing...                          ################################# [100%]
                    Updating / installing...
                       1:zsh-5.0.2-34.el7_8.2             ################################# [100%]


                    rpm -Uvh  [软件包名称]:更新软件
                    
                    
                    
                    rpm -e    [软件包名称]:卸载软件
                    
                        [root@python ~]$ rpm -e zsh


                    rpm -q  [软件包名称]    :  查看该软件包是否安装
                    rpm -qa [软件包名称]    :    打印当前系统中所有的已经安装了的安装包
                        跟软件包,则判断软件包是否安装
                        不跟软件包,则打印当前系统中所有的已经安装的软件包
                    rpm -ql [软件包名称]    :     打印指定安装包中包含的所有文件
                    rpm -qc [软件包名称]    :   打印指定安装包的配置文件
                    
                    
                    [root@python ~]$ rpm -q zsh
                    package zsh is not installed
                    [root@python ~]$ rpm -q gpm-libs-1.20.7-6.el7.x86_64
                    gpm-libs-1.20.7-6.el7.x86_64
                    [root@python ~]$ rpm -ql python
                    /usr/bin/pydoc
                    /usr/bin/python
                    /usr/bin/python2
                    /usr/bin/python2.7
                    /usr/libexec/platform-python
                    /usr/share/doc/python-2.7.5
                    /usr/share/doc/python-2.7.5/LICENSE
                    /usr/share/doc/python-2.7.5/README
                    /usr/share/man/man1/python.1.gz
                    /usr/share/man/man1/python2.1.gz
                    /usr/share/man/man1/python2.7.1.gz

                    
                    zsh-5.0.2-34.el7_8.2.x86_64.rpm
                    
                    zsh :        软件包的名称
                    5.0.2        软件包的版本号
                    34            软件包的构建次数
                    el7            软件包适用的平台
                    8.2.x86_64    适用于64位操作系统
                    .rpm        扩展名
                
                2、yum (难点)
                
                    可以自动解决安装包的依赖(也就是说安装包安装的时候,自动将依赖包提前安装)
                
                    缺点:无法自定义安装
                
                    1、yum的格式
                    
                        安装软件
                            yum install [安装包的名称] : 安装安装包的名称
                
                            [root@python ~]$ yum install nginx
                            
                                -y : 不提示,默认确认

                        卸载软件
                        
                            yum remove [软件包名称] : 卸载软件包
                            
                                -y : 不提示删除,默认确认
                        
                        更新软件
                        
                            yum update [软件包]    : 更新软件
                            
                                1、跟软件包则更新软件包
                                2、不跟软件包则更新整个操作系统
                        
                        搜索软件
                            在仓库中搜索相关的软件包
                        [root@python ~]$ yum search nginx

                        
                        知识储备:
                        
                            1、解决nginx安装包没有的问题:需要下载epel源
                            2、epel源仓库是CentOS扩展包的仓库
                            3、安装epel源仓库
                            
                                1、切换目录
                                    [root@python ~]$ cd /etc/yum.repos.d/

                                2、编辑文件
                                    [root@python yum.repos.d]$ vim epel.repo
                                    [epel]
                                    name="epel源"
                                    baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
                                    gpgcheck=0
                                    
                                3、更新源
                                
                                [root@python yum.repos.d]$ yum clean all
                                Loaded plugins: fastestmirror
                                Cleaning repos: base epel
                                Cleaning up list of fastest mirrors
                                [root@python yum.repos.d]$ yum makecache

                                
                    搭建私有yum仓库
                    
                        目标
                            1、能解决依赖
                            2、必须能够远程访问
                            
                        yum的底层逻辑
                        
                            第一步:执行yum install nginx安装命令
                            第二步:yum去/etc/yum.repos.d这个目录中
                            第三步:根据/etc/yum.repos.d中所有的.repo结尾的文件中保存的baseurl中的连接,去寻找对应的软件包
                            第四步:在寻找到的软件包中,下载软件,(/var/cache/yum/x86_64/7/[yum仓库名称])
                                yum的配置文件
                                [root@python yum.repos.d]$ cat /etc/yum.conf
                                [main]
                                cachedir=/var/cache/yum/$basearch/$releasever        指定yum下载的软件包存放的路径($basearch == x86_64, $releasever == 7)
                                keepcache=0                                            是否保存下载的软件包(0 == 不保存 , 1 == 保存)

                                源的配置文件(必须以.repo结尾,必须在/etc/yum.repos.d)
                                [源的名称]
                                name          源的简介(必须)
                                baseurl          源的地址(必须)
                                gpgcheck      是否验证源的安全性(1 == 验证, 0 == 不验证)
                                
                                
                            第五步:安装所有的软件(rpm -ivh)
                            第六步:检测是否安装完毕并返回

                        实施
                        
                            1、创建目录,充当仓库
                            
                            
                            [root@python yum.repos.d]$ mkdir /yumrepo
                
                            2、下载软件,存放于yum仓库中
                            
                                [root@python yumrepo]$ cd /yumrepo
                                [root@python yumrepo]$ mkdir Packages
                                [root@python yumrepo]$ cd Packages
                                [root@python Packages]$ wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm

                                
                                知识储备:
                                
                                    wget [下载的文件URL] : 下载文件
                                    wget 需要安装:yum install wget
                                                    rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
                            
                            
                            3、建立依赖关系
                            
                                1、安装建立依赖关系的命令
                                    yum install yum-utils createrepo
                                    
                                2、建立yum源的依赖关系
                                    createrepo [仓库的路径]
                                    [root@python ~]$ createrepo /yumrepo/
                                    Spawning worker 0 with 1 pkgs
                                    Workers Finished
                                    Saving Primary metadata
                                    Saving file lists metadata
                                    Saving other metadata
                                    Generating sqlite DBs
                                    Sqlite DBs complete

                                3、检查
                                    [root@python ~]$ cd /yumrepo/
                                    [root@python yumrepo]$
                                    [root@python yumrepo]$ ll
                                    total 4
                                    drwxr-xr-x 2 root root   39 Sep 22 12:01 Packages
                                    drwxr-xr-x 2 root root 4096 Sep 22 12:03 repodata
                                    [root@python yumrepo]$ ll repodata/
                                    total 28
                                    -rw-r--r-- 1 root root  927 Sep 22 12:03 097191e578bcee7a2308ccba0954a20455f0eaf3a7947d4f622dbe61ad5e64fc-filelists.sqlite.bz2
                                    -rw-r--r-- 1 root root  385 Sep 22 12:03 518eb570ab7d4552fc5fb4272ad172d28fd023f77c26d422e8e492275fd52000-filelists.xml.gz
                                    -rw-r--r-- 1 root root  763 Sep 22 12:03 71a8c494a8fe55ac4128fad1215b4eddca9014254612ed15ac349272a60c19a9-other.xml.gz
                                    -rw-r--r-- 1 root root 1384 Sep 22 12:03 799e159acb34e2da5d7d4fc418a2c1ea677d5371c709055fd7876c0ccd314bed-other.sqlite.bz2
                                    -rw-r--r-- 1 root root  908 Sep 22 12:03 7a69010520845aa2755a292500cc4db3ec5ebae9201d66e805e52728606adc3f-primary.xml.gz
                                    -rw-r--r-- 1 root root 2052 Sep 22 12:03 b61b928dc6d20cd78ca3a8f567e641792c233aab35763d12d05447894b370835-primary.sqlite.bz2
                                    -rw-r--r-- 1 root root 2966 Sep 22 12:03 repomd.xml

                            
                            4、编写yum源
                                [root@python yum.repos.d]$ vim local.repo
                                [root@python yum.repos.d]$ cat local.repo
                                [local]
                                name=本地yum源
                                baseurl=file:///yumrepo

                                 gpgcheck=0



                                更新源
                                
                                [root@python yum.repos.d]$ yum clean all
                                Loaded plugins: fastestmirror
                                Cleaning repos: local
                                Cleaning up list of fastest mirrors
                                Other repos take up 274 M of disk space (use --verbose for details)
                                [root@python yum.repos.d]$ yum makecache
                                Loaded plugins: fastestmirror
                                Determining fastest mirrors
                                local                                                                                                 | 2.9 kB  00:00:00     
                                (1/3): local/primary_db                                                                               | 2.0 kB  00:00:00     
                                (2/3): local/other_db                                                                                 | 1.4 kB  00:00:00     
                                (3/3): local/filelists_db                                                                             |  927 B  00:00:00     
                                Metadata Cache Created
                            
                            5、测试
                            
                                yum remove zip
                                yum install zip
                                
                            6、安装远程软件,提供远程访问服务
                            
                                1、恢复base源和epel源
                                
                                    [root@python yumrepo]$ cd /etc/yum.repos.d/
                                    [root@python yum.repos.d]$ ll
                                    total 4
                                    drwxr-xr-x 2 root root 47 Sep 22 12:07 backup
                                    -rw-r--r-- 1 root root 61 Sep 22 12:11 local.repo
                                    [root@python yum.repos.d]$ mv backup/* .
                                    [root@python yum.repos.d]$
                                    [root@python yum.repos.d]$ ll
                                    total 12
                                    drwxr-xr-x  2 root root   6 Sep 22 12:20 backup
                                    -rw-r--r--. 1 root root 102 Sep 16 11:58 CentOS-Base.repo
                                    -rw-r--r--  1 root root  85 Sep 22 10:58 epel.repo
                                    -rw-r--r--  1 root root  61 Sep 22 12:11 local.repo

                                
                                2、安装nginx远程web服务软件
                                
                                    [root@python yum.repos.d]$ yum install nginx -y
                                
                                3、修改nginx的配置文件,使其能够代理yumrepo仓库的远程服务

                                            vim /etc/nginx/conf.d/autoindex.conf

                                     或vim /etc/nginx/nginx.conf


                                
                                    1、将目录索引的配置文件添加进来
                                        autoindex on;
                                        autoindex_exact_size off;
                                        autoindex_localtime on;

                                    2、修改nginx代理的目录
                                        root         /yumrepo;
                                        
                                    
                                    3、启动nginx服务
                                        systemctl start nginx
                                
                                    4、在浏览器
                                        http://192.168.15.201/
                                
                                    知识储备:
                                    
                                        nginx实现目录索引
                                            autoindex on;
                                            autoindex_exact_size off;
                                            autoindex_localtime on;
                                            

                                
                                4、修改local yum源

                                   vim local.repo
                                
                                    1、隐藏base源和epel源
                                        [root@python yum.repos.d]$ pwd
                                        /etc/yum.repos.d
                                        [root@python yum.repos.d]$ ll
                                        total 12
                                        drwxr-xr-x  2 root root   6 Sep 22 12:20 backup
                                        -rw-r--r--. 1 root root 102 Sep 16 11:58 CentOS-Base.repo
                                        -rw-r--r--  1 root root  85 Sep 22 10:58 epel.repo
                                        -rw-r--r--  1 root root  61 Sep 22 12:11 local.repo
                                        [root@python yum.repos.d]$ mv CentOS-Base.repo backup/
                                        [root@python yum.repos.d]$ mv epel.repo backup/

                                    2、修改local源,使其支持远程访问
                                
                                        [local]
                                        name=本地yum源
                                        baseurl=http://192.168.15.201/
                                        gpgcheck=0

                                    3、重新生成
                                    
                                        [root@python yum.repos.d]$ yum clean all
                                        Loaded plugins: fastestmirror
                                        Cleaning repos: local
                                        Cleaning up list of fastest mirrors
                                        Other repos take up 274 M of disk space (use --verbose for details)
                                        [root@python yum.repos.d]$ yum makecache
                                        Loaded plugins: fastestmirror
                                        Determining fastest mirrors
                                        local                                                                                                 | 2.9 kB  00:00:00     
                                        (1/3): local/primary_db                                                                               | 2.0 kB  00:00:00     
                                        (2/3): local/other_db                                                                                 | 1.4 kB  00:00:00     
                                        (3/3): local/filelists_db                                                                             |  927 B  00:00:00     
                                        Metadata Cache Created

                                
                                5、测试
                                
                                    yum remove zip
                                    yum install zip
                                
                                
                

 

补充:搭建yum仓库的步骤(版本1)

1、创建目录,充当仓库
mkdir /yumrepo2
2、在仓库中创建Packages目录,用于存放软件
cd /yumrepo2
mkdir Packages
3、下载测试软件到Packages目录中
cd /yumrepo2/Packages
wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
4、下载远程访问软件:Nginx
yum install nginx
5、下载仓库初始化软件(yum-utils、createrepo)
yum install yum-utils createrepo
6、初始化仓库
createrepo /yumrepo2
注:会在仓库目录中创建repodata目录,主要用来存放yum依赖关系的。
7、修改Nginx配置文件,使其代理yum仓库目录索引
修改/etc/nginx/nginx.conf
root /yumrepo2;
nginx实现目录索引
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;

systemctl restart nginx

在浏览器测试

8、编辑yum源
1、将/etc/yum.repos.d中所有的文件备份到backup目录中
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
2、创建local.repo文件
touch local.repo
3、编辑local.repo
vim local.repo
[local]
name="xxx源的简介"
baseurl=http://192.168.15.201
gpgcheck=0
4、更新源
yum clean all
yum makecache
9、测试
yum remove zip
yum install zip  



搭建yum仓库(版本2)
1、修改IP

    [root@localhost ~]# sed -i 's#.200#.50#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]

    [root@localhost ~]# systemctl restart network


2、关闭selinux

    /etc/selinux/config

    1、临时关闭
    
        [root@localhost ~]# setenforce 0
    
    2、永久关闭
        [root@localhost ~]# vi /etc/selinux/config
        SELINUX=disabled

    
3、关闭默认的防火墙
    
    [root@localhost ~]# systemctl disable --now firewalld

        disable    : 禁用
        enable  : 启用
        --now    :立即执行

        
4、安装web服务软件以及yum仓库软件

    1、清理yum源
        [root@localhost yum.repos.d]# mkdir backup
        [root@localhost yum.repos.d]# mv ./*.repo* backup/
        [root@localhost yum.repos.d]# ll
        total 4
        drwxr-xr-x. 2 root root 4096 Sep 24 09:15 backup

    2、安装base源和epel源
    
        [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
        
        [epel]
        name="epel"
        baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
        gpgcheck=0

        yum clean all    
        yum makecache

    3、安装
        
        yum install nginx yum-utils createrepo -y
        
        
5、建立仓库

    [root@localhost yum.repos.d]# mkdir -p /yumrepo3/Packages
    
6、下载软件

    curl -o /yumrepo3/Packages/zip-3.0-11.el7.x86_64.rpm https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm

    
    扩展内容:
        curl 和 wget 之间的区别

        curl 是用来访问链接的
        
            -o : 指定保存文件的路径
            
            curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
                
        
        wget 是用来下载文件的
        
            -O :指定下载文件的路径
            
            wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo

7、修改Nginx配置文件

    [root@localhost ~]# vi /etc/nginx/nginx.conf
    # 大致在42行左右
    
        root         /yumrepo3;

        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;

8、重启Nginx服务

    systemctl restart nginx


9、初始化yum仓库

    createrepo /yumrepo3

10、编写yum源测试

    [root@localhost yum.repos.d]# vi local.repo
    [root@localhost yum.repos.d]# cat local.repo
    [local]
    name="This is Local repo"
    baseurl=http://192.168.15.50/
    gpgcheck=0

11、更新yum源
    yum clean all
    yum makecache

12、测试安装

    yum remove zip -y
    yum install zip -y



3.二进制编译安装

优点:单独定制安装软件
缺点:不能决绝依赖关系
下载源代码包:https://nginx.org/download/nginx-1.20.1.tar.gz
  [root@python ~]$ wget https://nginx.org/download/nginx-1.20.1.tar.gz
知识储备:
解压文件:tar -xf nginx-1.20.1.tar.gz
1.检查系统
cd nginx-1.20.1
yum install pcre pcre-devel zlib zlib-devel make gcc gcc-c++ -y
./configure
2.编译
       make
       -j : 多核编译, 但是容易出错(不推荐)
3.安装
  make install
4.测试
  [root@python nginx]$ systemctl stop nginx
   # 启动nginx服务
[root@python nginx]$ /usr/local/nginx/sbin/nginx