暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux包管理(wget、rpm和yum)

oracleace 2022-08-24
1420


01

wget


wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。


    oracle@yaoyuan ~$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
    --2022-07-31 16:24:44-- https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
    Resolving dev.mysql.com (dev.mysql.com)... 23.73.228.77, 2600:1417:76:58b::2e31, 2600:1417:76:589::2e31
    Connecting to dev.mysql.com (dev.mysql.com)|23.73.228.77|:443... connected.
    HTTP request sent, awaiting response... 302 Moved Temporarily
    Location: https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar [following]
    --2022-07-31 16:24:47-- https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
    Resolving cdn.mysql.com (cdn.mysql.com)... 23.212.72.229
    Connecting to cdn.mysql.com (cdn.mysql.com)|23.212.72.229|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 859453440 (820M) [application/x-tar]
    Saving to: ‘mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar’


    0% [ ] 154,328 101KB/s





    02

    rpm

    RPM被称为RedHat Package Manager。RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。

    RPM包的命名规范:name-version-release.os.arch.rpm

    • name:程序名称。

    • version:程序版本号。

    • release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。

    • os:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。

    • arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)

    例如:bash-4.3.2-5.el6.x86_64.rpm

    RPM常用选项:

    -i:表示安装。

    -v, -vv, -vvv:表示详细信息。

    -h:以"#"号显示安装进度。

    -q:查询指定包名。

    -e:卸载指定包名。

    -U:升级软件,若软件尚未安装,则安装软件。

    -F:升级软件。

    -V:对RPM包进行验证。

    安装RPM包

    命令格式:rpm -ivh PATH/TO/RPM_FILE

    卸载RPM包

    命令格式:rpm -e 包名

    查询RPM相关信息

    结合-q选项,RPM提供了许多种查询信息的方式。

    命令格式:rpm -q 包名

    命令格式:rpm --query 包名

    查询所有已经安装包:rpm -qa


      oracle@yaoyuan ~$ rpm -qa|grep zip
      unzip-6.0-21.el7.x86_64
      bzip2-1.0.6-13.el7.x86_64
      bzip2-libs-1.0.6-13.el7.x86_64
      gzip-1.5-10.el7.x86_64
      perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64
      zip-3.0-11.el7.x86_64
      查询某文件是由哪个rpm包安装生成的:rpm -qf path/to/some_file
        oracle@yaoyuan ~$  rpm -qf bin/zip
        zip-3.0-11.el7.x86_64


        03

        yum


        YUM被称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及SUSE中的软件包管理器。YUM使用Python语言写成。

        yum的主配置文件/etc/yum.conf

          [main]        #main仓库。[ ]中括号表示一个仓库的定义。其中是仓库的名称。
          cachedir=/var/cache/yum/$basearch/$releasever #RPM包的缓存位置。
          keepcache=0 #RPM包在本地是否需要长期保存。1表示yes0表示no
          debuglevel=2 #日志级别。
          logfile=/var/log/yum.log #日志文件。
          exactarch=1 #下载的RPM包是否需要与本地平台完全匹配。1表示yes0表示no
          obsoletes=1
          gpgcheck=1 #是否需要自动来源合法性检测。

          YUM的仓库配置:/etc/yum.repos.d/.repo*


            $ cat etc/yum.repos.d/oracle-linux-ol7.repo 
            [ol7_latest] #仓库的名称,不能重复。
            name=Oracle Linux $releasever Latest ($basearch) #对仓库的描述,该项必须有。
            baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/$basearch/ #配置仓库的路径。用于指定一个url。
            gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle #验证RPM包的密钥文件路径
            gpgcheck=1 #是否需要gpg校验。值为1或0,默认为1。
            enabled=1 #是否启用当前仓库。值为1或0,默认为1。


            注意:配置文件中的"="号的前后不能有空格。

            使用本地光盘做yum源(录像:localyum)

            网络上到yum源的速度可能很慢,使用本地光盘做yum源速度可以得到保证。

            首先将光盘的iso文件插入到光驱中:

            启动后从oracle用户的图像界面登录后光盘自动挂载到目录 run/media/oracle/OL-7.9 Server.x86_64/,删除/etc/yum.repos.d目录下到其它repo文件,编辑一个新的dbsvr.repo文件如下:

              [dbsvr]
              name=dbserver
              baseurl=file:///run/media/oracle/OL-7.9%20Server.x86_64/
              enable=1
              gpgcheck=0

              注意其中的空格用%20代替。也可以手工mount光盘:

                oracle@yaoyuan ~$ sudo mount dev/cdrom mnt
                mount: dev/sr0 is write-protected, mounting read-only
                oracle@yaoyuan ~$ cat etc/yum.repos.d/dbsvr2.repo
                [dbsvr2]
                name=dbserver2
                baseurl=file:///mnt
                enable=1
                gpgcheck=0

                测试刚刚创建的源:

                  oracle@yaoyuan ~$ yum repolist
                  Loaded plugins: langpacks, ulninfo
                  Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
                  repo id repo name status
                  !dbsvr2 dbserver2 5,210
                  repolist: 5,210
                  oracle@yaoyuan ~$ yum makecache fast
                  Loaded plugins: langpacks, ulninfo
                  dbsvr2 | 3.6 kB 00:00:00
                  Metadata Cache Created
                  oracle@yaoyuan ~$ yum list all|head
                  Loaded plugins: langpacks, ulninfo
                  Installed Packages
                  GConf2.x86_64 3.2.6-8.el7 @anaconda/7.9
                  GeoIP.x86_64 1.5.0-14.el7 @anaconda/7.9
                  ModemManager.x86_64 1.6.10-4.el7 @anaconda/7.9
                  ModemManager-glib.x86_64 1.6.10-4.el7 @anaconda/7.9
                  NetworkManager.x86_64 1:1.18.8-1.el7 @anaconda/7.9
                  NetworkManager-adsl.x86_64 1:1.18.8-1.el7 @anaconda/7.9
                  NetworkManager-config-server.noarch 1:1.18.8-1.el7 @anaconda/7.9
                  NetworkManager-glib.x86_64 1:1.18.8-1.el7 @anaconda/7.9




                  Exiting on Broken Pipe

                  yum的用例:

                  模糊匹配搜索,命令格式:yum search 查询名

                  例:查询软件包名中出带有readline的软件包命令:


                    oracle@yaoyuan ~$ yum list all|grep -i readline
                    readline.x86_64 6.2-11.el7 @anaconda/7.9
                    readline-devel.x86_64 6.2-11.el7 @dbsvr2
                    readline.i686 6.2-11.el7 dbsvr2
                    readline-devel.i686 6.2-11.el7 dbsvr2
                    oracle@yaoyuan ~$ yum search readline
                    Loaded plugins: langpacks, ulninfo
                    ==================================================== N/S matched: readline ====================================================
                    readline-devel.i686 : Files needed to develop programs which use the readline library
                    readline-devel.x86_64 : Files needed to develop programs which use the readline library
                    perl-Term-UI.noarch : Term::ReadLine user interface made easy
                    readline.i686 : A library for editing typed command lines
                    readline.x86_64 : A library for editing typed command lines


                    Name and summary matches only, use "search all" for everything.


                    显示所有仓库,命令:yum repolist all

                    查询某个文件是由哪个软件包生成的,该功能类似于rpm -qf 包名。

                    命令格式:yum provides 文件   或者 yum whatprovides 文件

                      oracle@yaoyuan ~$ yum provides bin/zip
                      Loaded plugins: langpacks, ulninfo
                      zip-3.0-11.el7.x86_64 : A file compression and packaging utility compatible with PKZIP
                      Repo : @anaconda/7.9
                      Matched from:
                      Filename : /bin/zip

                      清空本地yum的缓存

                      yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

                      命令格式:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

                      手动在本地建立缓存

                      yum客户端会下载远程yum的文件。在本地生成缓存。

                      命令:yum makecache

                      安装包

                      基本格式:yum [-y] install 包1 包2 ... 包n

                      本地安装包

                      一些大包可以通过下载工具下载到本地,再进行安装,本地安装的命令格式:yum localinstall rpm包路径

                      例如安装MySQL的包:

                        $  sudo yum localinstall mysql-community-{server,client,common,libs,icu}-*



                        作者介绍:

                        姚远:Oracle ACE(Oracle和MySQL数据库方向 http://apex.oracle.com/pls/apex/aces/d/yuan.yao),华为云MVP。拥有包括 Oracle 10g和12c OCM在内的20+数据库相关认证。曾任IBM公司数据库部门经理,现在一家第三方公司任首席数据库专家,服务2万+客户,《MySQL 8.0运维与优化》的作者。


                        需要全套《Linux系统管理》pdf文档请加姚远老师微信👇

                        近期热文


                        MySQL 8.0 25

                        BMySQL程。




                        文章转载自oracleace,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论