当前位置:   article > 正文

Linux软件安装的几种方式_linux安装软件

linux安装软件

目录

一.rpm安装

二.yum安装

三.编译安装

四.二进制安装

五.比喻说明


一.rpm安装

1.rpm介绍

什么是rpm呢?

rpm也就是red hat package manager,是红帽公司出品的软件包管理工具,能进行软件包的安装,卸载,升级,查询

rpm 是centos/redhat系统里软件安装管理的命令,比yum要底层,yum底层就是调用rpm去安装软件的。

rpm包管理机制的系统:
    centos,redhat,opensuse,oracle linux ,fedora等  --》红帽系
    zziplib-0.13.68-8.el8.x86_64.rpm
    enterprise linux 8

    x86_64 -->64
    i686 -->32
yelp-libs-3.28.1-3.el8.i686.rpm
yelp-libs-3.28.1-3.el8.x86_64.rpm
deb包管理机制的系统:
    debian,Ubuntu
     zfsutils-linux_0.8.3-1ubuntu12_amd64.deb

2.rpm包

rpm包其实就是redhat系列的Linux系统里的软件包,是别人制作好的可以直接安装使用的软件包,类似于windows里的.exe。rpm包的来源是自己或者公司,第三方

 3.source rpm

Source RPM  : openssh-8.0p1-5.el8.src.rpm  -->里面有源码的rpm包 --》不能直接安装使用,安装的过程其实是解压src.rpm包得到软件的源代码
包含了源码的rpm包

4.哪里可以下载rpm包?

        1.镜像文件,centos或者redhat公司制作,使用方法如下:

                挂载镜像:
                    1.请将镜像文件放入光驱
                    2.使用mount命令挂载
                           mount /dev/cdrom  /mnt
                    3.使用

        2.官方网站

        3.第三方平台:Rpmfind mirror

        4.自己制作

5.使用rpm的缺点:

不能自动解决软件包之间的依赖关系,缺乏自动化以及智能化

6.rpm命令详解:

选项:

查询类:

-q        --query        查询

-qa        查询系统里已经安装了的所有的软件

-qi        查询命令的详细信息

-ql        查询已经安装的软件的路径,也就是安装到了哪里

-qc        查询配置文件的路径

-qf        查询已经安装的命令或者是文件是通过哪个软件包安装过来的

-qd        显示文档文件列表

-qpl        查询没有安装的一个软件包,它会安装到哪里

-qpi        查询没有安装的一个软件包,它的信息

安装类:

-i        -- install        安装

-ivh        可以查看到安装的进度

  1. [root@sc-lvm Packages]# rpm -ivh tree-1.7.0-15.el8.x86_64.rpm
  2. Verifying... ################################# [100%]
  3. 准备中... ################################# [100%]
  4. 正在升级/安装...
  5. 1:tree-1.7.0-15.el8 ################################# [100%]
  6. [root@sc-lvm Packages]#

--reinstall        重新安装

[root@huoyrz Packages]# rpm --reinstall tree-1.6.0-10.el7.x86_64.rpm

卸载类:

-e        erase        卸载

[root@sc-lvm Packages]# rpm -e tree

升级类:

-U        如果软件没有安装,升级操作会自动帮助安装,需要你提供高版本的软件包,不会自动去帮助到哪里下载

[root@sc-lvm Packages]# rpm -U tree-1.7.0-15.el8.x86_64.rpm 

二.yum安装

1.什么是yum

yum是基于rpm但更胜于rpm的软件管理工具

yum的优点:
    更方便的管理rpm软件包
    自动解决rpm包的依赖关系,可以配置多个资源仓库

yum是python编写的一个软件管理的工具

安装一个软件包,可以得到很多的命令,也有可能得到一个命令
rpm/yum 软件安装的过程,本质上就是解压文件,然后拷贝文件到某些目录下的过程

问题:
    1.yum是如何解决依赖关系的?
    2.yum怎么样知道去哪里下载软件?

 2.仓库文件目录

2.1仓库配置文件目录:/etc/yum.repos.d/

Yum Repository yum仓库

2.2仓库文件:都是以.repo结尾的,前面叫什么名字不重要,只是识别

repo文件详解:

  1. [root@sc-lvm /]# cd /etc/yum.repos.d/ 是yum会到这个目录下查找repo结尾的文件
  2. [root@sc-lvm yum.repos.d]# ls
  3. CentOS-Linux-AppStream.repo CentOS-Linux-Debuginfo.repo CentOS-Linux-FastTrack.repo CentOS-Linux-Plus.repo
  4. CentOS-Linux-BaseOS.repo CentOS-Linux-Devel.repo CentOS-Linux-HighAvailability.repo CentOS-Linux-PowerTools.repo
  5. CentOS-Linux-ContinuousRelease.repo CentOS-Linux-Extras.repo CentOS-Linux-Media.repo CentOS-Linux-Sources.repo
  6. [root@sc-lvm yum.repos.d]# vim grafana.repo
  7. [grafana] --》yum源的名字,仓库的名字
  8. name=grafana sanchaung --》对这个源的描述
  9. baseurl=https://packages.grafana.com/enterprise/rpm --》仓库的具体位置 源的位置
  10. repo_gpgcheck=1 --》gpg 是一种加密技术 repo_gpgcheck 对源进行检查,是否是真正的grafana的仓库
  11. enabled=1 表示这个源可以使用 1 启用 0 禁用
  12. gpgcheck=1 对这个源里的下载的所有的软件进行gpg校验--》检验所有从这个源下载的软件,防止是假的 --》防伪
  13. gpgkey=https://packages.grafana.com/gpg.key --》具体的加密和解密使用的key的位置
  14. sslverify=1
  15. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  16. #yum源: 软件的仓库
  17. #问渠那得清如许,为有源头活水来
  18. [root@sc-lvm yum.repos.d]# vim CentOS-Linux-BaseOS.repo
  19. [baseos]
  20. name=CentOS Linux $releasever - BaseOS
  21. mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra --》查询获取离你的机器最近的镜像的位置
  22. #baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
  23. gpgcheck=1
  24. enabled=1
  25. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial --》gppkey的位置
  26. ===

2.3如何获得仓库文件:

        1.自己vim一个        grafana

        2.下载rpm包安装

        3.下载repo文件        docker

2.4阿里云的仓库文件:centos-7.9.2009-os-x86_64-Packages安装包下载_开源镜像站-阿里云

3.缓存目录:/var/cache/yum/x86_64/7

4.元数据:

元数据就是解决依赖关系的数据:安装一条命令有哪些软件,每个软件依赖哪些软件等

/var/cache/dnf  --》存放的是各个源解决依赖关系和软件信息的元数据

[root@sc-lvm dnf]# yum clean all  -->清除缓存的元数据

5.源:

        1.官方源:包括centos的官方,或者是某个软件的官方(例如nginx)

        2.第三方:epel-release 

         yum install epel-release,安装好后会存放在 /etc/yum.repos.d/epel.repo

        3.可以自己制作源

6.如何禁用某个源:

1.enableed=0

2.删除repo文件

3.修改repo文件的后缀名

4. sudo yum-config-manager --enable docker-ce-nightly
 yum-config-manager --disable docker-ce-nightly

7.命令详解:

查询类:

yum search

yum list        查看哪些软件安装了,哪些软件没安装,相当于prm -qa

  1. [root@localhost base]# yum list|more
  2. 已加载插件:fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. 已安装的软件包
  8. NetworkManager.x86_64 1:1.18.8-1.el7 @anaconda
  9. NetworkManager-libnm.x86_64 1:1.18.8-1.el7 @anaconda
  10. NetworkManager-team.x86_64 1:1.18.8-1.el7 @anaconda
  11. NetworkManager-tui.x86_64 1:1.18.8-1.el7 @anaconda
  12. acl.x86_64 2.2.51-15.el7 @anaconda
  13. aic94xx-firmware.noarch 30-6.el7 @anaconda
  14. [root@localhost base]# yum list|grep tree
  15. tree.x86_64 1.6.0-10.el7 @base
  16. gomtree.x86_64 0.5.0-0.2.git16da0f8.el7 extras
  17. maven-dependency-tree.noarch 2.0-7.el7 base
  18. maven-dependency-tree-javadoc.noarch 2.0-7.el7 base
  19. ostree.x86_64 2019.1-2.el7 extras
  20. ostree-devel.x86_64 2019.1-2.el7 extras
  21. ostree-fuse.x86_64 2019.1-2.el7 extras
  22. ostree-grub2.x86_64 2019.1-2.el7 extras
  23. subscription-manager-plugin-ostree.x86_64 1.24.51-1.el7.centos updates
  24. texlive-pst-tree.noarch 2:svn24142.1.12-45.el7 base
  25. texlive-pst-tree-doc.noarch 2:svn24142.1.12-45.el7 base
  26. [root@localhost base]#
  27. 有@符号的,表示是已经安装,并且@符号后面接的字符串,表示使用那个源安装的
  28. 没有@符号,表示软件没有安装,可以通过那个源安装

yum repolist        查看哪些源可以使用

yum provides         查看某个命令是通过哪个软件包安装过来的(本机没有安装的命令也可以查询得到)

  1. [root@sc-lvm mnt]# yum provides iostat
  2. 上次元数据过期检查:0:37:14 前,执行于 20210904日 星期六 111413秒。
  3. sysstat-11.7.3-5.el8.x86_64 : Collection of performance monitoring tools for Linux
  4. 仓库 :@System
  5. 匹配来源:
  6. 文件名 :/usr/bin/iostat
  7. sysstat-11.7.3-5.el8.x86_64 : Collection of performance monitoring tools for Linux
  8. 仓库 :appstream
  9. 匹配来源:
  10. 文件名 :/usr/bin/iostat
  11. [root@sc-lvm mnt]# which iostat
  12. /usr/bin/iostat
  13. [root@sc-lvm mnt]# rpm -qf /usr/bin/iostat
  14. sysstat-11.7.3-5.el8.x86_64
  15. [root@sc-lvm mnt]#

安装类:

yum install

yum reinstall

卸载类:

yum remove

升级类:

yum update        默认会升级所有的软件,安装好系统后马上升级所有的软件

清除缓存类:

yum clean all        只要我们安装软件,就会自动下载相应源的元数据

其他:

yum-utils --》yum-config-manager  --》可以帮忙我们去某个网站下载repo文件,然后存放到/etc/yum.repos.d目录

 sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

yum repolist        查看所有的仓库

  1. [root@sc-lvm yum.repos.d]# yum repolist
  2. 仓库 id 仓库名称
  3. appstream CentOS Linux 8 - AppStream
  4. baseos CentOS Linux 8 - BaseOS
  5. docker-ce-stable Docker CE Stable - x86_64
  6. epel Extra Packages for Enterprise Linux 8 - x86_64
  7. epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
  8. extras CentOS Linux 8 - Extras
  9. mysql-connectors-community MySQL Connectors Community
  10. mysql-tools-community MySQL Tools Community
  11. mysql80-community MySQL 8.0 Community Server
  12. [root@sc-lvm yum.repos.d]#

三.编译安装

1.为什么需要编译安装

编译安装可以根据需求来定制软件

        可以指定安装路径

        可以指定某些模块的功能开启或者禁用

        为了业务的最优配置

2.编译安装的优缺点

优点:可以自定义,非常的安全,一般安装的都是最新版本的软件

缺点:速度稍微慢点,步骤多

3.举例说明----编译安装nginx

步骤如下:

1.下载,然后解压

2.编译前的配置:./configure  --prefix=/usr/local/nginx

收集安装的参数:

         --with-http_ssl_module        启用

        --without-pcre2        禁用

编译前的配置,生成Makefile的文件,指导make工作的配置文件

3.make

将c语言编写的代码文件编译成二进制文件

make -j 2        启用2个进程去编译安装

4.make install        将编译好的二进制文件拷贝指定的安装目录下

5.启动(如何知道nginx是否启动和关闭,请查看我nginx详解的那篇博客)https://blog.csdn.net/weixin_43880061/article/details/124148864?spm=1001.2014.3001.5502

4.一件部署安装nginx的脚本

  1. [root@localhost 0610]# cat onekey_install_nginx_2.sh
  2. #!/bin/bash
  3. #install nginx
  4. #version:1.21.6
  5. #!/bin/bash
  6. #install nginx
  7. #version:1.21.6
  8. #author: cali
  9. #mail: 695811769@qq.com
  10. #company: sanchuang
  11. #time: 2022-06-10
  12. #create user chenyulin
  13. useradd -s /sbin/nologin chenyulin
  14. #download nginx
  15. mkdir -p /lianxi/chenyulin
  16. cd /lianxi/chenyulin
  17. curl -O https://nginx.org/download/nginx-1.21.6.tar.gz
  18. #uncompress nginx source
  19. tar xf nginx-1.21.6.tar.gz
  20. cd nginx-1.21.6
  21. #resolution dependency
  22. yum install pcre2 pcre2-devel zlib zlib-devel openssl openssl-devel -y
  23. #configure
  24. ./configure --prefix=/usr/local/chenyulin --user=chenyulin --with-threads --with-http_ssl_module --with-http_v2_module
  25. #make
  26. make -j 2
  27. #install
  28. make install
  29. #path variable
  30. PATH=/usr/local/chenyulin/sbin/:$PATH
  31. echo 'PATH=/usr/local/chenyulin/sbin/:$PATH' >>/root/.bashrc
  32. #start nginx
  33. if pidof nginx &>/dev/null ;then
  34. echo "nginx is running"
  35. #kill old nginx process
  36. killall -9 nginx
  37. #start new nginx process
  38. nginx
  39. else
  40. nginx
  41. fi
  42. [root@localhost 0610]#

四.二进制安装

到官方网站下载源码包解压后,直接使用

里面的程序都是一件编译好的可执行的二进制文件

非常的快捷方便

例如安装prometheus和MySQL

五.比喻说明

以上几种安装方式的比喻说明

1.rpm和yum:相当于到专卖店买衣服,款式,颜色,面料等都不可以修改了,喜欢,直接带走。速度快,安装路径都是固定了的,不能修改,部分功能也许没有开启

2.源码编译安装:到裁缝店去定制衣服,颜色,面料,款式都可以自己决定,可以选择定制。时间长,好处功能完全可以自己定制

3.二进制安装:解压后就可以使用,速度快

六.小练习

  1. 1.卸载tree,nfs-utils,vsftpd
  2. [root@huoyrz Packages]# rpm -e tree nfs-utils vsftpd
  3. 2.卸载vim编辑器
  4. [root@huoyrz Packages]# rpm -e vim
  5. 错误:未安装软件包 vim
  6. [root@huoyrz Packages]# rpm -qa|grep vim
  7. vim-filesystem-7.4.629-8.el7_9.x86_64
  8. vim-common-7.4.629-8.el7_9.x86_64
  9. vim-enhanced-7.4.629-8.el7_9.x86_64
  10. vim-minimal-7.4.629-7.el7.x86_64
  11. [root@huoyrz Packages]# which vim
  12. /bin/vim
  13. [root@huoyrz Packages]# rpm -qf /bin/vim
  14. vim-enhanced-7.4.629-8.el7_9.x86_64
  15. [root@huoyrz Packages]#
  16. 3.到镜像文件里安装vsftpd,squid,nfs-utils
  17. [root@huoyrz Packages]# rpm -vih vsftpd-3.0.2-28.el7.x86_64.rpm squid-3.5.20-15.el7_8.1.x86_64.rpm nfs-utils-1.3.0-0.68.el7.x86_64.rpm squid-migration-script-3.5.20-15.el7_8.1.x86_64.rpm perl-Digest-MD5-2.52-3.el7.x86_64.rpm libecap-1.0.0-1.el7.x86_64.rpm perl-Digest-1.17-245.el7.noarch.rpm
  18. 4.安装libstdc++-devel,python-devel相关的包
  19. libstdc++-devel -->development developer 开发者
  20. python-devel-2.7.5-89.el7.x86_64.rpm --》为别的程序调用python的接口,提供这些接口的开发包
  21. 苹果开发者大会: IOS -->APP -->给开发者提供了SDK(软件开发接口程序)
  22. 软件开发工具包(Software Development Kit)
  23. 5.查询gcc软件安装到哪里了?
  24. [root@huoyrz Packages]# rpm -ql gcc
  25. [root@huoyrz Packages]# rpm -qpl gcc-4.8.5-44.el7.x86_64.rpm
  26. 6.查询ip命令是通过那个软件安装过来的?
  27. [root@huoyrz Packages]# which ip
  28. /sbin/ip
  29. [root@huoyrz Packages]# rpm -qf /sbin/ip
  30. iproute-4.11.0-30.el7.x86_64
  31. [root@huoyrz Packages]#
  32. 7.统计系统里安装了多少个软件?
  33. [root@huoyrz Packages]# rpm -qa|wc -l
  34. 485
  35. [root@huoyrz Packages]#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/404870
推荐阅读
相关标签
  

闽ICP备14008679号