当前位置: 首页 > article >正文

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
      

http://www.kler.cn/a/488428.html

相关文章:

  • android源码编译后,为什么emulator一直黑屏或者停止android界面
  • STM32的存储结构
  • 详解Sonar与Jenkins 的集成使用!
  • 1. npm 常用命令详解
  • 基于vue的商城小程序的毕业设计与实现(源码及报告)
  • SpringBoot之核心配置
  • 机器学习的基本原理和算法
  • 缓存-Redis-API-Redisson-可重试
  • OpenCV轮廓相关操作API (C++)
  • 探索 Docker Desktop:简化开发与部署的利器
  • 4.3.1 树、二叉树基本概念
  • 阿里云直播互动Web
  • R.swift库的详细用法
  • JavaScript系列(18)--异步编程模式
  • 【UI自动化测试】selenium操作补充
  • 【Docker】docker compose 安装 Redis Stack
  • Linux 文件的特殊权限—ACL权限控制
  • JavaScript Chrome 中的运行
  • Android 12.0 mtk平板camera2横屏预览旋转90度横屏保存录像旋转90度功能实现
  • Python对象的序列化和反序列化工具:Joblib与Pickle
  • Linux 系统 PWM 风扇驱动框架学习记录
  • 【比较乱,如果遇到相同问题可以看】Autoware.universe的绕障线路的参数修改
  • CSS——39. 文本修饰(文本属性)
  • 用 Python 绘制可爱的招财猫
  • 新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解
  • Uniapp仿ChatGPT Stream流式输出(非Websocket)