1.3作业

1. 理解函数调用,总结函数普通变量、环境变量和本地变量

  • 普通变量:函数里的普通变量出了函数的作用范围就会自动销毁。
  • 环境变量:可以在函数里使用,而且同样也可以在函数中修改它的值。
  • 本地变量:可以修改函数外的值,但修改的值只可以在该函数的作用域中使用。

2. 总结普通数组和关联数组的用法,以及变量如何间接引用

  • 普通数组
    arr=(元素1 元素2.......)
    
  • 关联数组
    declare -A array_name
    
  • 变量的间接引用:使用!,例如:
    echo $(!变量)
    

3. 总结程序包管理器有哪些,尝试这些文件如何获取命令获取?

程序包管理器

程序包管理器是用于管理操作系统中的软件包的工具,常见的程序包管理器包括:

  1. RPM 包管理器

    • 用于管理 .rpm 格式的软件包。
    • 主要用在 Red Hat、CentOS、Fedora 等基于 RPM 的系统中。
    • 命令:rpm
  2. YUM(Yellowdog Updater Modified)

    • 基于 RPM 的前端工具,自动解决依赖关系。
    • 主要用在 CentOS 7 及之前的版本中。
    • 命令:yum
  3. DNF(Dandified YUM)

    • YUM 的下一代版本,功能更强大,性能更好。
    • 主要用在 CentOS 8、Fedora 等系统中。
    • 命令:dnf
  4. APT(Advanced Package Tool)

    • 用于管理 .deb 格式的软件包。
    • 主要用在 Debian、Ubuntu 等基于 Debian 的系统中。
    • 命令:apt
  5. Zypper

    • 用于管理 .rpm 格式的软件包。
    • 主要用在 openSUSE 系统中。
    • 命令:zypper

如何获取这些文件

  1. 从系统镜像或光盘获取

    • 系统安装光盘或镜像中通常包含大量的软件包。
    • 例如,CentOS 的安装光盘中的 Packages 目录。
  2. 从官方仓库获取

    • 使用包管理器从官方仓库下载软件包。
    • 例如:
      yum install package_name
      apt install package_name
      
  3. 从第三方仓库获取

    • 例如,EPEL(Extra Packages for Enterprise Linux)仓库提供了许多额外的软件包。
    • 启用 EPEL 仓库后,可以使用 yumdnf 安装软件包。
  4. 从软件项目官方站点获取

    • 许多软件项目会提供官方的 RPM 或 DEB 包。
    • 例如,MySQL、Nginx 等项目的官方网站。
  5. 使用工具制作 RPM 包

    • 可以使用 rpmbuildfpm 工具将源码打包成 RPM 包。

4. yum/dnf/apt 总结程序包获取途径,以及 rpm, yum, apt 命令选项示例

程序包获取途径

  1. 系统官方仓库

    • CentOS/Red Hat:BaseOS、AppStream 仓库。
    • Ubuntu/Debian:Main、Universe、Multiverse 仓库。
  2. 第三方仓库

    • EPEL(Extra Packages for Enterprise Linux):为 CentOS/Red Hat 提供额外的软件包。
    • PPA(Personal Package Archive):为 Ubuntu 提供额外的软件包。
  3. 软件项目官方站点

    • 例如,MySQL、Nginx、Docker 等项目的官方网站提供 RPM 或 DEB 包。
  4. 本地文件

    • 从本地光盘或下载的 .rpm.deb 文件安装。

命令选项示例

  1. rpm 命令

    • 安装软件包:
      rpm -ivh package.rpm
      
    • 查询软件包:
      rpm -q package_name
      
    • 卸载软件包:
      rpm -e package_name
      
  2. yum 命令

    • 安装软件包:
      yum install package_name
      
    • 更新软件包:
      yum update package_name
      
    • 卸载软件包:
      yum remove package_name
      
  3. apt 命令

    • 安装软件包:
      apt install package_name
      
    • 更新软件包:
      apt update
      apt upgrade
      
    • 卸载软件包:
      apt remove package_name
      

5. 简要总结 yum/dnf 工作原理。并尝试搭建私有 yum 仓库(base, epel 源)给另一个虚拟机使用

yum/dnf 工作原理

  1. C/S 架构

    • yum/dnf 是基于客户端/服务器模式的工具。
    • 服务器端存储 RPM 包和元数据(repodata 目录)。
    • 客户端通过配置文件(/etc/yum.repos.d/*.repo)访问服务器端。
  2. 元数据

    • 服务器端的 repodata 目录包含软件包的元数据(如依赖关系、文件列表等)。
    • 客户端下载元数据,解析依赖关系并下载所需的软件包。
  3. 依赖解决

    • yum/dnf 会自动解决软件包的依赖关系,下载并安装所需的依赖包。

搭建私有 yum 仓库

以下是搭建私有 yum 仓库的步骤:

  1. 在服务器端配置

    • 安装 HTTP 服务(如 Apache):
      yum install httpd
      systemctl start httpd
      systemctl enable httpd
      
    • 创建仓库目录:
      mkdir -p /var/www/html/repos/{base,epel}
      
    • 同步 BaseOS 和 EPEL 仓库:
      reposync --repoid=base --download-metadata -p /var/www/html/repos/base
      reposync --repoid=epel --download-metadata -p /var/www/html/repos/epel
      
    • 生成元数据:
      createrepo /var/www/html/repos/base
      createrepo /var/www/html/repos/epel
      
  2. 在客户端配置

    • 创建 .repo 文件:
      cat <<EOF > /etc/yum.repos.d/private.repo
      [base]
      name=Private BaseOS Repository
      baseurl=http://<server_ip>/repos/base
      enabled=1
      gpgcheck=0
      
      [epel]
      name=Private EPEL Repository
      baseurl=http://<server_ip>/repos/epel
      enabled=1
      gpgcheck=0
      EOF
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值