当前位置:   article > 正文

Linux软件安装及yum本地库创建_建立本地软件仓库,使用yum命令进行安装。

建立本地软件仓库,使用yum命令进行安装。

目录

一.Linux软件安装

1.rpm

2.挂载

3.安装卸载升级

4.维护RPM 数据库

5.编译安装

6.yum 安装

二.yum本地仓库建立


一.Linux软件安装

软件安装共2种安装方式,通过rpm包安装或通过yum仓库库安装。

1.rpm

查询已安装的软件包

RPM软件可以实现几乎所有的功能,新增,删除,更新等

选项功能效果
rpm -qa(all)显示当前系统中以 RPM 方式安装的所有软件列表
rpm -q 软件名查询指定软件是否已安装
rpm -qi 软件名查看指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql(list) 软件名显示指定的软件包在当前系统中安装的所有目录、文件列表
rpm -qc (configfiles ) 软件名列出已安装的指定软件的配置文件
rpm -qd(docfiles) 软件名列出已安装的指定软件的软件包文档所在位置
rpm -qR (requires) 软件名列出已安装的指定软件的依赖的软件包及文件
rpm -qf(file) 软件名查看指定的文件或目录是由哪个软件包所安装的
rpm-qpd查询未安装指定软件包的文档位置
rpm -qpi查询未安装指定软件包的完整名称详细信息
rpm -qpl查询未安装指定软件包的文件列表
rpm -qpc查询未安装指定软件包的配置文件位置
  1. [root@localhost system]# rpm -qa
  2. #查询所有的已rpm方式安装的软件列表
  3. [root@localhost data]# rpm -q httpd
  4. #查看httpd有没有安装
  5. httpd-2.4.6-67.el7.centos.x86_64
  6. [root@localhost data]# rpm -qi httpd
  7. [root@localhost data]# rpm -qi tree
  8. #查看httpd的详细信息
  9. [root@localhost data]# rpm -ql httpd
  10. [root@localhost data]# rpm -ql tree
  11. #目录或文件列表
  12. [root@localhost data]# rpm -qc httpd
  13. #配置文件位置
  14. [root@localhost data]# rpm -qd tree
  15. #软件包文档所在位置
  16. /usr/share/doc/tree-1.6.0/LICENSE
  17. /usr/share/doc/tree-1.6.0/README
  18. /usr/share/man/man1/tree.1.gz
  19. [root@localhost data]# rpm -qR tree
  20. #查看依赖包
  21. libc.so.6()(64bit)
  22. libc.so.6(GLIBC_2.14)(64bit)
  23. libc.so.6(GLIBC_2.2.5)(64bit)
  24. libc.so.6(GLIBC_2.3)(64bit)
  25. libc.so.6(GLIBC_2.3.4)(64bit)
  26. libc.so.6(GLIBC_2.4)(64bit)
  27. rpmlib(CompressedFileNames) <= 3.0.4-1
  28. rpmlib(FileDigests) <= 4.6.0-1
  29. rpmlib(PayloadFilesHavePrefix) <= 4.0-1
  30. rtld(GNU_HASH)
  31. rpmlib(PayloadIsXz) <= 5.2-1
  32. [root@localhost Packages]# rpm -qf /usr/bin/ls
  33. #查看命令程序由那个包安装的
  34. coreutils-8.22-18.el7.x86_64
  35. [root@localhost Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm
  36. #查看未安装软件的
  37. [root@localhost Packages]# rpm -qpc httpd-2.4.6-67.el7.centos.x86_64.rpm
  38. /etc/httpd/conf.d/autoindex.conf
  39. /etc/httpd/conf.d/userdir.conf
  40. /etc/httpd/conf.d/welcome.conf
  41. /etc/httpd/conf.modules.d/00-base.conf6
  42. /etc/httpd/conf.modules.d/00-dav.conf
  43. [root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
  44. 错误:依赖检测失败:
  45. /etc/mime.types 被 httpd-2.4.6-67.el7.centos.x86_64 需要
  46. httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要
  47. libapr-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要
  48. libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要
  49. #####依赖关系原因需要安装以下包
  50. rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
  51. rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
  52. rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
  53. rpm -ivh httpd-tools-2.4.6-67.el7.centos.x86_64.rpm
  54. rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
  55. [root@localhost Packages]# rpm -q tree
  56. #查询是否安装
  57. 未安装软件包 tree
  58. [root@localhost Packages]# rpm -ivh tree
  59. #安装软件包 tree
  60. [root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
  61. #安装软件包 tree
  62. [root@localhost Packages]# rpm -q tree
  63. #查看是否安装
  64. tree-1.6.0-10.el7.x86_64
  65. [root@localhost Packages]# rpm -qi tree
  66. #详细信息
  67. Name : tree
  68. Version : 1.6.0
  69. Release : 10.el7
  70. Architecture: x86_64
  71. Install Date: 20210827日 星期五 104226
  72. Group : Applications/File
  73. Size : 89505
  74. License : GPLv2+
  75. Signature : RSA/SHA256, 20140704日 星期五 133646秒, Key ID 24c6a8a7f4a80eb5
  76. Source RPM : tree-1.6.0-10.el7.src.rpm
  77. Build Date : 20140610日 星期二 032853
  78. Build Host : worker1.bsys.centos.org
  79. Relocations : (not relocatable)
  80. Packager : CentOS BuildSystem <http://bugs.centos.org>
  81. Vendor : CentOS
  82. URL : http://mama.indstate.edu/users/ice/tree/
  83. Summary : File system tree viewer
  84. Description :
  85. The tree utility recursively displays the contents of directories in a
  86. tree-like format. Tree is basically a UNIX port of the DOS tree
  87. utility.
  88. [root@localhost Packages]# rpm -ql tree
  89. #文件列表
  90. /usr/bin/tree
  91. /usr/share/doc/tree-1.6.0
  92. /usr/share/doc/tree-1.6.0/LICENSE
  93. /usr/share/doc/tree-1.6.0/README
  94. /usr/share/man/man1/tree.1.gz
  95. [root@localhost Packages]# rpm -qc vsftpd
  96. #配置文件
  97. /etc/logrotate.d/vsftpd
  98. /etc/pam.d/vsftpd
  99. /etc/vsftpd/ftpusers
  100. /etc/vsftpd/user_list
  101. /etc/vsftpd/vsftpd.conf
  102. [root@localhost Packages]# rpm -qd tree
  103. #文档位置
  104. /usr/share/doc/tree-1.6.0/LICENSE
  105. /usr/share/doc/tree-1.6.0/README
  106. /usr/share/man/man1/tree.1.gz
  107. [root@localhost Packages]# rpm -qR tree
  108. #查看已安装的包依赖关系
  109. libc.so.6()(64bit)
  110. libc.so.6(GLIBC_2.14)(64bit)
  111. libc.so.6(GLIBC_2.2.5)(64bit)
  112. libc.so.6(GLIBC_2.3)(64bit)
  113. libc.so.6(GLIBC_2.3.4)(64bit)
  114. libc.so.6(GLIBC_2.4)(64bit)
  115. rpmlib(CompressedFileNames) <= 3.0.4-1
  116. rpmlib(FileDigests) <= 4.6.0-1
  117. rpmlib(PayloadFilesHavePrefix) <= 4.0-1
  118. rtld(GNU_HASH)
  119. rpmlib(PayloadIsXz) <= 5.2-1
  120. [root@localhost Packages]# type rpm
  121. rpm 已被哈希 (/usr/bin/rpm)
  122. [root@localhost Packages]# rpm -qf /usr/bin/rpm
  123. rpm-4.11.3-25.el7.x86_64
  124. #查看软件来自哪个rpm包
  125. ###不要卸载rpm包否则无法再次安装
  126. [root@localhost Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm
  127. tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 确定
  128. #查看相关的 签名是否合法

2.挂载

挂载含义:外部存储设备连接到文件系统上,使这些外部存储设备中的文件可以被系统识别和访问

mount 设备 加文件夹路径 (已存在且是空的文件夹,原来的数据将被隐藏)

挂载规则

  • 一个挂载点同一时间只能挂载一个设备

  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏

  • 一个设备可以同时挂载到多个挂载点

  • 通常挂载点一般是已存在空的目录

-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r readonly,只读挂载
-w read and write, 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
      async   异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
        sync   同步模式,内存更改时,同时写磁盘,安全,但效率低下
      atime/noatime 包含目录和文件
      diratime/nodiratime 目录的访问时间戳
     auto/noauto 是否支持开机自动挂载,是否支持-a选项
     exec/noexec 是否支持将文件系统上运行应用程序
     dev/nodev 是否支持在此文件系统上使用设备文件
     suid/nosuid 是否支持suid和sgid权限
     remount 重新挂载
     ro/rw 只读、读写  
     user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
     acl/noacl 启用此文件系统上的acl功能
     loop 使用loop设备
     _netdev   当网络可用时才对网络资源进行挂载,如:NFS文件系统
     defaults 相当于rw, suid, dev, exec, auto, nouser, async

mount -a 的意思是将/etc/fstab的所有内容重新加载。
mount 是可以显示/etc/fstab的内容。

mount -a 是自动挂载 /etc/fstab 里面的东西。
不过这东西开机时已经挂载了,你如果没有修改 fstab 增加新的东西那就肯定没输出。 mount -a 会忽略所有已经完成的操作,也就是开机时 fstab 已经挂载后,而且你没有修改 fstab 。你再运行 mount -a ,他会自动忽略全部 fstab 内容。

3.安装卸载升级

基本格式

rpm [选项] rpm软件包

选项效果
-i安装一个新的RPM软件包
-U升级某个软件包,若未安装过则进行安装
-F升级某个软件包,若未安装过则直接结束
-h在安装或升级过程中已#号显示读条
-v显示安装过程的详细信息
--force强制安装某个软件包
-e 软件名卸载指定的软件
--nodeps在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系

rpm:Redhat Package Manager 多用于红帽系列的系统,例如Redhat、Centos等,优点是直接安装,缺点是虽然可以检查依赖关系但是不会将依赖包直接安装,若强行跳过依赖包安装可能会导致程序故障,以“.rpm”为结尾的文件认为是软件的安装包。

rpm使用格式: rpm   [选项]   软件名

            [选项]   -i 表示安装(若有其他依赖包,会提示但是不会直接安装)

                        -v 表示显示安装过程

                        -h 人性话显示

                        -e 卸载软件(只能卸载一个,不会卸载安装的依赖包)

                        -q 查看软件是否已安装###

                        -qc 查看已安装所有配置文件###

                        -qi  软件包的详细信息

                        -ql  该软件的所有文件列表

                        -qf  该软件出自哪个安装包

                        -qa 查看系统已安装的所有软件

  1. [root@localhost Packages]#rpm -e tree
  2. [root@localhost Packages]#rpm -ive tree
  3. [root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
  4. #进入
  5. 错误:依赖检测失败:
  6. httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要
安装路径含 义
/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序所使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

4.维护RPM 数据库

1.重建RPM数据库

当RPM 数据库发生损坏,可通过 重建RPM 数据库 修复

rpm --rebuild 或者 rpm --initdb

2.导入验证公钥

在没有导入用于数字签名验证的公钥之前,安装光盘中的一部分RPM 包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件。

/var/lib/rpm
#安装文件的信息都在这个里面
[root@localhost Packages]# mount /dev/sr0
[root@localhost Packages]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7

例子安装tree

  1. [root@localhost Packages]# mount /dev/sr0 /mnt/
  2. [root@localhost Packages]# df
  3. 文件系统 1K-块 已用 可用 已用% 挂载点
  4. /dev/mapper/centos-root 10475520 4733364 5742156 46% /
  5. devtmpfs 917600 0 917600 0% /dev
  6. tmpfs 933524 5400 928124 1% /dev/shm
  7. tmpfs 933524 9188 924336 1% /run
  8. tmpfs 933524 0 933524 0% /sys/fs/cgroup
  9. /dev/sda1 5223424 182388 5041036 4% /boot
  10. /dev/sr0 4414592 4414592 0 100% /mnt
  11. tmpfs 186708 36 186672 1% /run/user/0
  12. [root@localhost ~]# cd /mnt/Packages/
  13. [root@localhost Packages]# ls
  14. [root@localhost Packages]# ls |grep tree
  15. texlive-pst-tree-svn24142.1.12-38.el7.noarch.rpm
  16. tree-1.6.0-10.el7.x86_64.rpm
  17. [root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
  18. 准备中... ################################# [100%]
  19. 正在升级/安装...
  20. 1:tree-1.6.0-10.el7 ################################# [100%]
  21. [root@localhost Packages]# rpm -e tree
  22. #卸载tree软件包
  23. [root@localhost Packages]# rpm -qa |grep tree
  24. rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -tv
  25. #查看rpm包里的信息

5.编译安装

大部分是c语言开发的,更方便的使用

  1. 软件版本比较新,新功能,修复bug

  2. 可以自行定义配置文件的路径

  3. 源码可能有100个功能,红帽认为你可能不需要会自行处理砍掉,自行定制50

程序包编译安装:

源代码-->预处理-->编译-->汇编-->链接-->执行

多文件:文件中的代码之间,很可能存在跨文件依赖关系

虽然有很多开源软件将软件打成包,供人们使用,但并不是所有源代码都打成包,如果想使用开源软

件,可能需要自已下载源码,进行编译安装。另外即使提供了包,但是生产中需要用于软件的某些特

性,仍然需要自行编译安装。但是利用源代码编译安装是比较繁琐的,庆幸的是有相关的项目管理工具

可以大大减少编译过程的复杂度

6.yum 安装

YUM(Yellow dog Updater,Modified)

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间

yum仓库:rpm的加强版,使用C/S架构可以直接安装且会将依赖关系安装

yum仓库安装软件原理:

①首先客户端通过配置文件找到服务端。配置文件目录:/etc/yum.repos.d/

②服务端提供元信息下载。 元信息:安装包的位置以及安装包的依赖关系

③客户端根据元信息下载安装包到本地的缓存目录

④安装软件,安装完成后删除软件包

yum安装: yum  install   软件名   -y (表示同意安装,有依赖包也会直接安装)

yum卸载:yum  remove  软件名  (只能卸载一个,不会卸载安装的依赖包)

二.yum本地仓库建立

很多情况下公司是内网环境,不能使用/etc/yum.repos.d/配置文件中的外网源进行下载软件,此时就需要我们建立本地的yum库来安装程序。

yum本地库建立步骤:

①首先将硬盘挂载。挂载:将硬件设备和系统内的一个文件夹做关联,访问此文件夹就相当于访问硬件设备

挂载命令:  mount命令 + 硬件设备文件夹        挂载点

解挂载:umount   + 挂载的文件夹,若挂载失败查看设备状态是否都已勾选

②将配置文件中的外网源备份到一个目录中以防后面使用

③创建一个本地配置文件并将配置填写

④清除之前的缓存

⑤重新建立元数据

⑥安装软件验证本地yum库

具体命令如下:

test.repo文件内容

验证本地yum库是否可以安装软件

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

闽ICP备14008679号