Files
2024-11-04 18:56:31 +00:00

1638 lines
129 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="zh-CN" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="zh-CN" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","https://www.google-analytics.com/analytics.js","ga");ga("create", "UA-61272224-1", {"cookieDomain":"auto","allowLinker":true});ga("require", "linker");ga("linker:autoLink", [/(community\.|www\.|^)clearlinux\.org/gi], true);ga("set", "anonymizeIp", true);ga("send", "pageview");</script>
<title>mixer &mdash; Documentation for Clear Linux* project</title>
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<link rel="canonical" href="docs.01.org/clearlinux/guides/clear/mixer.html"/>
<script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/translations.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="author" title="关于这些文档" href="../../about.html" />
<link rel="index" title="索引" href="../../genindex.html" />
<link rel="search" title="搜索" href="../../search.html" />
<link rel="next" title="操作系统安全性" href="security.html" />
<link rel="prev" title="ister.py image builder" href="ister.html" />
<link rel="stylesheet" href="../../_static/tcs_theme.css" type="text/css" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" style="background: #007ab2" >
<a href="../../index.html" class="icon icon-home"> Clear Linux* Project Docs
<img src="../../_static/clearlinux.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" id="clear-docs-search" placeholder="Search documentation" results="0"/>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Clear Linux</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Language Versions</dt>
<dd><a href="/clearlinux/latest/guides/clear/mixer.html">English</a></dd>
<dd><a href="/clearlinux/latest/zh_CN/guides/clear/mixer.html">简体中文 (Simplified Chinese)</a></dd>
</dl>
<dl>
<dt>Document Versions</dt>
<dd><a href="/clearlinux/latest/guides/clear/mixer.html">latest</a></dd>
<dd><a href="/clearlinux/latest/guides/clear/mixer.html">Future versions</a></dd>
</dl>
<dl>
<dt>clearlinux.org links</dt>
<dd>
<a href="https://www.clearlinux.org/">Project Home</a>
</dd>
<dd>
<a href="https://github.com/clearlinux/clear-linux-documentation">GitHub</a>
</dd>
</dl>
</div>
</div>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../get-started/index.html">开始使用</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/index.html#pre-install">安装前</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/compatibility-check.html">检查处理器和 EFI 固件的兼容性</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/compatibility-check.html#check-compatibility">检查兼容性</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bootable-usb.html">创建可引导 U 盘</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb.html#create-a-bootable-usb-drive-on-linux">在 Linux* 上创建可引导 U 盘</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb.html#create-a-bootable-usb-drive-on-macos">在 macOS* 上创建可引导 U 盘</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb.html#create-a-bootable-usb-drive-on-windows">在 Windows* 上创建可引导 U 盘</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/index.html#install">安装</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html">从实时桌面安装 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#system-requirements">系统要求</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#preliminary-steps">初始步骤</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#install-from-live-image">从实时映像安装</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#minimum-installation-requirements">最低安装要求</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#cl-desktop-installer">Clear Linux OS 桌面安装程序</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#navigation">导航</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#required-options">必填选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#advanced-options">高级选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop.html#finish-installation">完成安装</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bare-metal-install-server.html">使用实时服务器将 Clear Linux* OS 安装在裸机上</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#system-requirements">系统要求</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#download-the-latest-cl-live-server-image">下载最新的 Clear Linux OS 实时服务器映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#install-cl-on-your-target-system">在目标系统上安装 Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#launch-the-cl-installer">启动 Clear Linux OS 安装程序</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#minimum-installation-requirements">最低安装要求</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#main-menu">主菜单</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#navigation">导航</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#required-options">必填选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#recommended-options">推荐选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#advanced-options">高级选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#finish-installation">完成安装</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server.html#troubleshooting">故障检修</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/install-configfile.html">利用 clr-installer 和配置文件安装</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#process">流程</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#references">参考</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/index.html#install-in-a-virtual-machine">在虚拟机上安装</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html">Microsoft Hyper-V* 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#enable-hyper-v">启用 Hyper-V</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#create-a-virtual-network">创建虚拟网络</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#create-a-virtual-machine">创建虚拟机</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html">KVM 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#install-qemu-kvm">安装 QEMU-KVM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#download-and-launch-the-virtual-machine">下载并开启虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#ssh-access-into-the-virtual-machine">通过 SSH 访问虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#optional-add-the-gnome-display-manager-gdm">可选:添加 GNOME Display Manager (GDM)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html">VirtualBox* 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#download-and-extract-the-cl-installer-iso">下载并解压缩 Clear Linux OS 安装程序 ISO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#create-a-new-vb-virtual-machine">创建新的 VirtualBox 虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#install-cl-on-the-vb-vm">在 VirtualBox 虚拟机上安装 Clear Linux OS。</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#troubleshooting">故障检修</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html">VMware* Workstation Player 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#install-the-vmware-workstation-player-hypervisor">安装 VMware Workstation Player 虚拟机管理程序</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#download-the-latest-cl-installer">下载最新的 Clear Linux OS 安装程序</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#create-and-configure-a-new-vm">创建并配置新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#enable-uefi-boot-support">启用 UEFI 引导支持</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#install-cl-into-the-new-vm">将 Clear Linux OS 安装至新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#detach-the-cl-installer-iso-from-the-vm">从虚拟机断开 Clear Linux OS 安装程序 ISO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#install-open-vm-tools">安装 open-vm-tools</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html">VMware* Workstation Player (预配置映像)上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#install-the-vmware-workstation-player-hypervisor">安装 VMware Workstation Player 虚拟机管理程序</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#download-the-latest-cl-vmware-image">下载最新的 Clear Linux OS VMware 映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#decompress-and-verify-the-image">解压缩并验证映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#create-and-configure-a-new-vm">创建并配置新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#attach-the-pre-configured-cl-vmware-image">挂载预配置的 Clear Linux OS Vmware 映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#enable-uefi-boot-support">启用 UEFI 引导支持</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#power-on-the-vm">开启虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html">VMware* ESXi 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#download-the-latest-cl-installer-iso">下载最新的 Clear Linux OS 安装程序 ISO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#upload-the-cl-installer-iso-to-the-vmware-server">将 Clear Linux OS 安装程序 ISO 上传至 VMware 服务器</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#create-and-configure-a-new-vm">创建并配置新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#install-cl-into-the-new-vm">将 Clear Linux OS 安装至新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#reconfigure-the-vm-s-settings-to-boot-the-newly-installed-cl">重新配置虚拟机设置,以引导新安装的 Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#power-on-the-vm-and-boot-cl">开启虚拟机,引导 Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html">VMware* ESXi(预配置映像)上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#download-the-latest-cl-vmware-image">下载最新的 Clear Linux OS VMware 映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#upload-the-cl-image-to-the-vmware-server">将 Clear Linux OS 映像上传至 VMware 服务器</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#convert-the-cl-image-to-an-esxi-supported-format">将 Clear Linux OS 映像转换为 ESXi 支持的格式。</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#create-and-configure-a-new-vm">创建并配置新虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#power-on-the-vm-and-boot-cl">开启虚拟机,引导 Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html">增加映像的虚拟磁盘大小</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#determine-the-partition-order-and-sizes-of-the-prebuilt-image">确定预构建映像的分区顺序和大小。</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#id2">增加虚拟盘大小</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/index.html#deploy-to-the-cloud">部署到云</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html">Amazon Web Services* 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html#locate-select-and-launch-the-cl-basic-ami">找到、选择并启动 Clear Linux OS 基本 AMI</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html#connect-to-your-clear-linux-os-basic-instance">连接到 Clear Linux 操作系统基本实例</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html#update-the-cl-instance">更新 Clear Linux OS 实例</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/aws-web.html#stop-the-cl-instance">停止 Clear Linux OS 实例</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cloud-install/azure.html">Microsoft* Azure* 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#install-ms-azure-cli-2-0-on-cl">在 Clear Linux OS 中安装 Microsoft Azure CLI 2.0</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#log-into-your-microsoft-azure-account">登录到您的 Microsoft Azure 帐户</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#create-a-ms-azure-resource-group">创建 Microsoft Azure 资源组</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#create-and-log-into-the-cl-virtual-machine">创建 Clear Linux OS 虚拟机并登录到该虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#stop-and-deallocate-the-cl-vm-and-resources">停止并取消分配 Clear Linux OS 虚拟机和资源</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/azure.html#next-steps">后续步骤</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cloud-install/gce.html">Google Cloud Platform* 上的 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/gce.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/gce.html#setup-cl-vm-on-gcp">在 GCP 上安装 Clear Linux OS 虚拟机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/gce.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html">Clear Linux* OS on QingCloud* (如何在青云 QingCloud 上创建 Clear Linux OS 虚拟主机)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#id2">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#qingcloud-cl">在 QingCloud 控制台中选择并启动 Clear Linux OS 虚拟主机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#ip">申请公网IP并添加到虚拟主机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#cl">连接到 Clear Linux OS 虚拟主机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#id3">删除 Clear Linux OS 虚拟主机</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cloud-install/qingcloud.html#id4">删除申请的公网IP</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../about.html">关于</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../about.html#release-cadence">发行节奏</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../about.html#updates">更新</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../about.html#ease-of-use">易用性</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../about.html#custom-derivatives">自定义衍生工具</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../about.html#create">创建</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../about.html#deploy">部署</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../about.html#administrate">管理</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">指南</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="../index.html#clear-linux">Clear Linux</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="autoproxy.html">Autoproxy</a><ul>
<li class="toctree-l4"><a class="reference internal" href="autoproxy.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="autoproxy.html#how-it-works">工作原理</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="autospec.html">autospec</a><ul>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#how-it-works">工作原理</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#test-packaged-software">测试封装后的软件</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#references">参考</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="bundles.html">bundle 文件</a><ul>
<li class="toctree-l4"><a class="reference internal" href="bundles.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="compatible-kernels.html">内核</a><ul>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#bare-metal-only">仅限裸机</a></li>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#also-compatible-with-vms">也与虚拟机兼容</a></li>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#vm-only">仅限虚拟机</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="debug.html">调试系统</a><ul>
<li class="toctree-l4"><a class="reference internal" href="debug.html#background">后台</a></li>
<li class="toctree-l4"><a class="reference internal" href="debug.html#usage">用途</a></li>
<li class="toctree-l4"><a class="reference internal" href="debug.html#implementation">实施</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="ister.html">ister.py image builder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="ister.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="ister.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="ister.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">mixer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-it-works">工作原理</a></li>
<li class="toctree-l4"><a class="reference internal" href="#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="#references">参考</a></li>
<li class="toctree-l4"><a class="reference internal" href="#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="security.html">操作系统安全性</a><ul>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-updates">更新方面的安全举措</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-software">软件方面的安全举措</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-system-design">系统设计方面的安全举措</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="stateless.html">无状态</a><ul>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#file-level-separation">文件级隔离</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#software-configuration">软件配置</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#system-reset">系统重置</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#additional-information">附加说明</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="swupd.html">swupd</a><ul>
<li class="toctree-l4"><a class="reference internal" href="swupd.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd.html#how-it-works">工作原理</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd.html#quick-reference">快速参考</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="telemetrics.html">遥测</a><ul>
<li class="toctree-l4"><a class="reference internal" href="telemetrics.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="telemetrics.html#how-to-use">使用方法</a></li>
<li class="toctree-l4"><a class="reference internal" href="telemetrics.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="telemetrics.html#reference">参考</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../index.html#maintenance">维护</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/architect-lifecycle.html">设计 Clear Linux* OS 生命周期</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#content-workflow">内容工作流程</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#release-workflow">版本工作流程</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#implementation">实施</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/assign-static-ip.html">分配静态 IP 地址</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#identify-which-program-is-managing-the-interface">确定哪个程序正在管理接口</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#using-networkmanager">使用 NetworkManager</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#using-systemd-networkd">使用 systemd-networkd</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/bulk-provision.html">批量供应</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#configuration">配置</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/cpu-performance.html">CPU 功率和性能</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#cpu-power-saving-mechanisms">CPU 节能机制</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#linux-cpu-clock-frequency-scaling">Linux CPU 时钟频率缩放</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#thermal-management">散热管理</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/deploy-at-scale.html">大规模部署</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/deploy-at-scale.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/deploy-at-scale.html#pick-a-usage-and-update-strategy">选择使用和更新策略</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/deploy-at-scale.html#pick-an-image-distribution-strategy">选择映像分发策略</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/deploy-at-scale.html#considerations-with-stateless-systems">有关无状态系统的注意事项</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/developer-workstation.html">开发人员工作站</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#workstation-setup">工作站设置</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#swupd-search">swupd 搜索</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#core-concepts">核心概念</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/download-verify-decompress.html">下载、验证并解压缩 Clear Linux* OS 映像,</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#linux-os-steps">Linux 操作系统步骤</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#macos-steps">macOS* 步骤</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#windows-os-steps">Windows* 操作系统步骤</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#image-types">映像类型</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/enable-user-space.html">创建并启用新的用户空间</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#create-a-new-user">创建新用户</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#add-the-new-user-to-the-wheel-group">将新用户添加到 wheel 组</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#install-and-update-the-os-software-to-its-current-version">安装操作系统软件并将其更新到最新版本</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#add-a-bundle">添加捆绑包</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#next-steps">后续步骤</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/fix-broken-install.html">修复损坏的安装</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#boot-a-live-desktop-image-to-fix-target-system">引导实时桌面映像来修复目标系统</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#install-from-live-image">从实时映像安装</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#mount-root-partition-verify-and-fix">挂载根分区,然后验证并修复</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/hostname.html">修改主机名</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#set-your-hostname">设置主机名</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#view-your-hostname">查看主机名</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html">增加映像的虚拟磁盘大小</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#determine-the-partition-order-and-sizes-of-the-prebuilt-image">确定预构建映像的分区顺序和大小。</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#id2">增加虚拟盘大小</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/query-upstream.html">从上游存储库查询软件包信息</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#configure-dnf">配置 DNF</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#dnf-command-usage-examples">DNF 命令用法示例</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/resource-limits.html">资源限制</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#system-wide-limits">系统范围限制</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#per-user-limits">每用户限制</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#service-limits">服务限制</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/restart.html">操作系统更新后重启系统服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#how-it-works">工作原理</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#basic-options">基本选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#monitor-options">监控选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#example">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#telemetry">遥测技术</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#conclusion">总结</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/time.html">设置时间</a></li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/validate-signatures.html">验证签名</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#image-content-validation">映像内容验证</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#update-content-validation">更新内容验证</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../index.html#network">网络</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../network/custom-clear-container.html">根据 Docker 容器映像构建一个自定义 Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#build-the-base-container-image">构建基础容器映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#manage-bundles-in-a-container">管理容器中的捆绑包</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/dpdk.html">使用 DPDK 在平台之间发送数据包</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#install-dpdk-and-build-l3fwd-example-platform-b">安装 dpdk 并构建 l3fwd 示例(平台 B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#build-pktgen-platform-a">构建 pktgen(平台 A</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#bind-nics-to-dpdk-kernel-drivers-platforms-a-and-b">将网卡绑定到 DPDK 内核驱动程序(平台 A 和平台 B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#set-hugepages-platforms-a-and-b">设置大页(平台 A 和 B</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#set-up-the-physical-environment-platforms-a-and-b">设置物理环境(平台 A 和 B</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#run-l3fwd-application-platform-b">运行 l3fwd 应用程序(平台 B</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#run-pktgen-application-platform-a">运行 pktgen 应用程序(平台 A)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#appendix-a-use-pass-through-for-virtual-machines">附录 A:为虚拟机使用直通</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/ipxe-install.html">使用 iPXE 通过网络安装</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#configuration">配置</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/network-bonding.html">使用网络捆绑聚合多个接口</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network/openssh-server.html">启用并配置 SSH 服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#prerequisites">必备条件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#change-default-port">更改默认端口</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#enable-sftp">启用 SFTP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#enable-root-login">启用 root 登录</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/openssh-server.html#enable-x11-forwarding">启用 X11 转发</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/vnc.html">使用 VNC 通过远程桌面连接到主机</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#install-the-vnc-server-and-misc-components-on-your-host">在主机上安装 VNC 服务器和其他组件</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#configure-a-vnc-server-start-method-on-your-host">在主机上配置 VNC-server-start 方法</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#install-a-vnc-viewer-app-and-an-ssh-client-on-your-client-system">在客户端系统上安装一个 VNC 查看器应用程序和一个 SSH 客户端</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#establish-a-vnc-connection-to-your-host">与主机建立 VNC 连接</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#terminate-a-vnc-connection-to-your-host">终止与主机的 VNC 连接</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#encrypt-vnc-traffic-through-an-ssh-tunnel">通过 SSH 隧道加密 VNC 流量</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../index.html#kernel">内核</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-development.html">内核开发</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#request-changes-be-included-with-the-cl-kernel">Clear Linux OS 内核中包含了请求变更</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#set-up-kernel-development-environment">设置内核开发环境</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#customize-the-linux-kernel-source">自定义 Linux 内核源代码</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#build-and-install-the-kernel">构建并安装内核</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#related-topics">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-modules.html">手动添加内核模块</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#kernel-module-availability">内核模块可用性</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#build-install-and-load-an-out-of-tree-module">构建、安装和加载树外模块</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#related-topic">相关主题</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-modules-dkms.html">使用 DKMS 添加内核模块</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#description">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#kernel-module-availability">内核模块可用性</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#install-dkms">安装 DKMS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#build-install-and-load-an-out-of-tree-module">构建、安装和加载树外模块</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#examples">示例</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#related-topics">相关主题</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../index.html#stacks">堆栈</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../stacks/dars.html">数据分析参考堆栈</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#the-data-analytics-reference-stack-release">数据分析参考堆栈版本</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#using-the-docker-images">使用 Docker 映像</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#building-dars-images">构建 DARS 映像</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../stacks/greengrass.html">启用 AWS Greengrass* 和 OpenVINO™ 工具包</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#supported-platforms">支持的平台</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#install-the-os-on-the-edge-device">在边缘设备上安装操作系统</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#configure-aws-greengrass-group">配置 AWS Greengrass 组</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#create-and-package-lambda-function">创建并打包 Lambda 函数</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#configure-lambda-function">配置 Lambda 函数</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#deploy-lambda-function">部署 Lambda 函数</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#references">参考</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../stacks/dlrs/dlrs.html">深度学习参考堆栈</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#overview">概述</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#tensorflow-single-and-multi-node-benchmarks">TensorFlow 单节点和多节点基准测试</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#pytorch-single-and-multi-node-benchmarks">PyTorch 单节点和多节点基准测试</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#kubeflow-multi-node-benchmarks">Kubeflow 多节点基准测试</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#use-jupyter-notebook">使用 Jupyter Notebook</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#uninstallation">卸载</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#related-topics">相关主题</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/index.html">Tutorials</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/apache-hadoop.html">Apache* Hadoop*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#install-apache-hadoop">Install Apache Hadoop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#configure-apache-hadoop">Configure Apache Hadoop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#configure-your-ssh-key">Configure your SSH key</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#run-the-hadoop-daemons">Run the Hadoop daemons</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-hadoop.html#run-the-mapreduce-wordcount-example">Run the MapReduce wordcount example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/apache-spark.html">Apache* Spark*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-spark.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-spark.html#install-apache-spark">Install Apache Spark</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-spark.html#configure-apache-spark">Configure Apache Spark</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-spark.html#start-the-master-server-and-a-worker-daemon">Start the master server and a worker daemon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/apache-spark.html#run-the-spark-wordcount-example">Run the Spark wordcount example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/dlrs.html">Deep Learning Reference Stack</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#stack-features">Stack features</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#version-compatibility">Version compatibility</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#tensorflow-single-and-multi-node-benchmarks">TensorFlow single and multi-node benchmarks</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#pytorch-single-and-multi-node-benchmarks">PyTorch single and multi-node benchmarks</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#kubeflow-multi-node-benchmarks">Kubeflow multi-node benchmarks</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#kubernetes-setup">Kubernetes setup</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#kubernetes-networking">Kubernetes networking</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#kubectl">Kubectl</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#images">Images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#ksonnet">ksonnet*</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#kubeflow">Kubeflow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#run-a-tfjob">Run a TFJob</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#results-of-running-this-section">Results of running this section</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#tensorflow-training-tfjob-with-kubeflow-and-dlrs">TensorFlow Training (TFJob) with Kubeflow and DLRS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#submitting-tfjobs">Submitting TFJobs</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#customizing-a-tfjob">Customizing a TFJob</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#pytorch-training-pytorch-job-with-kubeflow-and-dlrs">PyTorch Training (PyTorch Job) with Kubeflow and DLRS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#submitting-pytorch-jobs">Submitting PyTorch Jobs</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#using-kubeflow-seldon-and-openvino-with-the-deep-learning-reference-stack">Using Kubeflow Seldon and OpenVINO* with the Deep Learning Reference Stack</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/dlrs.html#pre-requisites">Pre-requisites</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#using-the-intel-openvino-model-optimizer">Using the Intel® OpenVINO Model Optimizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#using-the-openvino-inference-engine">Using the OpenVino Inference Engine</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#use-jupyter-notebook">Use Jupyter Notebook</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#uninstallation">Uninstallation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#compiling-aixprt-with-openmp-on-dlrs">Compiling AIXPRT with OpenMP on DLRS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/dlrs.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/docker.html">Docker*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#install-the-containers-basic-bundle">Install the containers-basic bundle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#integration-with-kata-containers-optional">Integration with Kata Containers* (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#additional-docker-configuration">Additional Docker configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#pulling-and-running-an-image-from-docker-hub">Pulling and running an image from Docker Hub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#creating-a-docker-swarm-cluster">Creating a Docker swarm cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/flatpak.html">Flatpak*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/flatpak.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/flatpak.html#install-a-flatpak-app-with-gnome-software">Install a Flatpak app with Gnome Software</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/flatpak.html#install-a-flatpak-with-the-command-line">Install a Flatpak with the command line</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/fmv.html">Function multi-versioning</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#install-and-configure-a-cl-host-on-bare-metal">Install and configure a Clear Linux OS host on bare metal</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#detect-loop-vectorization-candidates">Detect loop vectorization candidates</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#generate-the-fmv-patch">Generate the FMV patch</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#fft-project-example-using-fftw">FFT project example using FFTW</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kata.html">Kata Containers*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#install-kata-containers">Install Kata Containers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#run-kata-containers">Run Kata Containers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#more-information-about-docker">More information about Docker</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/kata.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kubernetes.html">Kubernetes*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#install-kubernetes-and-cri-runtimes">Install Kubernetes and CRI runtimes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#configure-kubernetes">Configure Kubernetes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#configure-and-run-kubernetes">Configure and run Kubernetes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/kubernetes.html#configure-and-run-cri-o-kata-runtime">Configure and run CRI-O + kata-runtime</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#install-pod-network-add-on">Install pod network add-on</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#use-your-cluster">Use your cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#related-topics">Related topics</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#cloud-native-setup-automation">Cloud native setup automation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#package-configuration-customization-optional">Package configuration customization (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#proxy-configuration-optional">Proxy configuration (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kubernetes-bp.html">Kubernetes* Best Practices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes-bp.html#use-swupd-to-update-clusters">Use swupd to update clusters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes-bp.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes-bp.html#update-the-control-plane">Update the control plane</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes-bp.html#update-worker-nodes">Update worker nodes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/nvidia.html">NVIDIA* Drivers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#install-dkms">Install DKMS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#download-and-install-the-nvidia-drivers">Download and install the NVIDIA drivers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#download-the-nvidia-drivers-for-linux">Download the NVIDIA drivers for Linux</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#disable-the-nouveau-driver">Disable the nouveau driver</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#configure-alternative-software-paths">Configure alternative software paths</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#install-the-nvidia-drivers">Install the NVIDIA drivers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#updating-the-nvidia-drivers">Updating the NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#uninstalling-the-nvidia-drivers">Uninstalling the NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#debugging-installation-of-nvidia-drivers">Debugging installation of NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#additional-resources">Additional resources</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/nvidia-cuda.html">NVIDIA* CUDA Toolkit</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#compatibility">Compatibility</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#check-compatibility-of-nvidia-components">Check compatibility of NVIDIA components</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#check-gcc-compatibility">Check GCC compatibility</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#downloading-and-installation">Downloading and Installation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#download-the-nvidia-cuda-toolkit">Download the NVIDIA CUDA Toolkit</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#install-the-nvidia-cuda-toolkit">Install the NVIDIA CUDA Toolkit</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#using-the-nvidia-cuda-toolkit">Using the NVIDIA CUDA Toolkit</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#uninstalling">Uninstalling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#debugging">Debugging</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia-cuda.html#additional-resources">Additional resources</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/parallels.html">Parallels* Desktop for Mac*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/parallels.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/parallels.html#download-iso-image">Download ISO image</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/parallels.html#initialize-new-vm">Initialize new VM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/parallels.html#install-cl-on-vm">Install Clear Linux OS on VM</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/proxy.html">Proxy configuration</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/proxy.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/proxy.html#shells-and-programs-in-a-desktop-session">Shells and programs in a desktop session</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/proxy.html#terminal">Terminal</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/proxy.html#wget">wget</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/proxy.html#system-service-docker">System service (Docker)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/proxy.html#git-over-ssh">git over ssh</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/redis.html">Redis*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#install-the-redis-bundle">Install the redis bundle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#start-the-redis-server">Start the redis-server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#example-1-use-the-redis-cli-and-try-commands">Example 1: Use the redis-cli and try commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#example-2-run-the-cl-redis-docker-image">Example 2: Run the Clear Linux OS redis docker image</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#next-steps">Next Steps</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/smb.html">Samba* as a host</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb.html#set-up-file-sharing">Set up file sharing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb.html#map-cl-drive-in-windows">Map Clear Linux OS drive in Windows</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/smb-desktop.html">Samba* as a client</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb-desktop.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb-desktop.html#connect-to-windows-shared-location-with-nautilus">Connect to Windows shared location with Nautilus</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/tensorflow-machine-learning.html">TensorFlow* machine learning</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tensorflow-machine-learning.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tensorflow-machine-learning.html#set-up-a-jupyter-notebook">Set up a Jupyter Notebook</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tensorflow-machine-learning.html#run-the-jupyter-machine-learning-example-code">Run the Jupyter machine learning example code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tensorflow-machine-learning.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/wordpress.html">WordPress*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html">Set up a LAMP web server on Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-apache">Install Apache</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#change-the-default-configuration-and-data-directory">Change the default configuration and data directory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-php">Install PHP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-mariadb">Install MariaDB</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-phpmyadmin">Install phpMyAdmin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#use-phpmyadmin-to-manage-a-database">Use phpMyAdmin to manage a database</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html">Set up WordPress* on a LAMP web server</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html#before-you-begin">Before you begin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html#create-a-wordpress-server">Create a WordPress server</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/yubikey-u2f.html">YubiKey* Support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#enable-linux-udev-rules-for-yubikey">Enable Linux udev rules for YubiKey</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#enable-u2f-in-mozilla-firefox">Enable U2F in Mozilla Firefox</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/index.html#archive">Archive</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/archive/kata_migration.html">Migrate Clear Containers to Kata Containers*</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/archive/kata_migration.html#stop-clear-containers-instances">Stop Clear Containers instances</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/archive/kata_migration.html#manually-migrate-customized-configuration-files">Manually migrate customized configuration files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/archive/kata_migration.html#enable-kata-containers-as-default">Enable Kata Containers as default</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/archive/kata_migration.html#run-kata-containers">Run Kata Containers</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../reference/index.html">Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../reference/compatible-hardware.html">Compatible Hardware</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/bundles/bundles.html">可用的捆绑包</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/bundles.html#bundle-list">捆绑包列表</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/collaboration/collaboration.html">Documentation guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#contribution-guidelines">Contribution guidelines</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../reference/collaboration/writing-guide.html">Writing guide: Describes the style we use to keep our documents clear and concise.</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../reference/collaboration/structure-formatting.html">Structure and formatting guide: Explains how we organize and format content, using reStructuredText and Sphinx.</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#how-to-contribute">How to contribute</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#contribute-via-github">Contribute via GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#references">References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/system-requirements.html">建议的最低系统要求</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#installer-requirements">安装程序要求</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#id1">系统要求</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#recommended-configurations">建议配置</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/image-types.html">Clear Linux* OS image types</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../FAQ/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/index.html#general">General</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#why-did-you-make-another-distro">Why did you make another distro?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#can-other-distros-copy-cl-improvements">Can other distros copy Clear Linux OS improvements?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#how-often-do-you-update">How often do you update?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#is-telemetry-required">Is telemetry required?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#what-is-the-default-firewall">What is the default firewall?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#where-are-the-files-that-i-usually-see-under-etc-like-fstab">Where are the files that I usually see under /etc like fstab?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/index.html#software-packages">Software packages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#how-is-software-installed-and-updated">How is software installed and updated?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#does-cl-use-rpms-like-other-distros">Does Clear Linux OS use RPMs like other distros?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#can-i-install-a-software-package-from-another-os-on-cl">Can I install a software package from another OS on Clear Linux OS?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/index.html#software-availability">Software availability</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#what-software-is-available-on-cl">What software is available on Clear Linux OS?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#is-google-chrome-available">Is Google* Chrome* available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#is-microsoft-visual-studio-code-available">Is Microsoft* Visual Studio Code* available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#is-ffmpeg-available">Is FFmpeg available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#is-zfs-available">Is ZFS* available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/index.html#can-you-add-a-driver-that-i-need">Can you add a driver that I need?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Clear Linux* Project Docs</a>
</nav>
<div class="wy-nav-content">
<header id="header">
<div class="padding-md--left-right">
<div class="header__site_info">
<div class="header__site_info_name">
</div>
</div>
<nav class="header__menu">
<ul class="header__menu_list">
<li class="header__menu_list_item yellow ">
<a tabindex='1' href="https://clearlinux.org">Home</a>
</li>
<li class="header__menu_list_item green ">
<a tabindex='1' href="https://clearlinux.org/about">About</a>
</li>
<li class="header__menu_list_item purple ">
<a tabindex='1' href="https://clearlinux.org/developer">Developer</a>
</li>
<li class="header__menu_list_item blue ">
<a tabindex='1' href="https://clearlinux.org/software">Software</a>
</li>
</ul>
</nav>
</div>
</header>
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html">Docs</a> &raquo;</li>
<li><a href="../index.html">指南</a> &raquo;</li>
<li>mixer</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/clearlinux/clear-linux-documentation/blob/master/source/guides/clear/mixer.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="mixer">
<span id="id1"></span><h1>mixer<a class="headerlink" href="#mixer" title="永久链接至标题"></a></h1>
<p><strong>mixer</strong> 是 Clear Linux* OS 团队用于生成官方更新内容和版本的工具。mixer 生成的更新内容随后会在下游客户端上供 swupd 使用。该 mixer 工具也可以成为 Clear Linux OS 功能,用来创建自己的定制更新内容和版本。</p>
<div class="contents local topic" id="id2">
<ul class="simple">
<li><a class="reference internal" href="#description" id="id6">描述</a></li>
<li><a class="reference internal" href="#how-it-works" id="id7">工作原理</a></li>
<li><a class="reference internal" href="#examples" id="id8">示例</a></li>
<li><a class="reference internal" href="#references" id="id9">参考</a></li>
<li><a class="reference internal" href="#related-topics" id="id10">相关主题</a></li>
</ul>
</div>
<div class="section" id="description">
<h2><a class="toc-backref" href="#id6">描述</a><a class="headerlink" href="#description" title="永久链接至标题"></a></h2>
<p>mixer 使用以下源作为输入,生成更新内容:</p>
<ul class="simple">
<li>带相应 RPM 包的上游 Clear Linux OS bundle 文件</li>
<li>带相应本地 RPM 包的本地定义的 bundle 文件</li>
<li>带上游 RPM 包的本地定义的 bundle 文件</li>
</ul>
<p>使用 mixer 工具,可以选择将来自这些源的哪些内容纳入更新。可以从这些源选择内容,从而为定制更新内容创建独特的功能组合(即组合)。</p>
<p>mixer 生成的更新内容包括各种操作系统内容、更新元数据和完整映像。操作系统内容包括所有更新文件,以及用于提升更新性能的零包和增量包。作为清单存储的更新元数据则描述了更新的所有 bundle 文件信息。mixer 生成的更新内容随后会发布到 Web 服务器,然后由客户端通过 swupd 使用。请参阅 <a class="reference internal" href="swupd.html#swupd-guide"><span class="std std-ref">swupd</span></a>,了解有关更新和更新内容的其他信息。</p>
</div>
<div class="section" id="how-it-works">
<h2><a class="toc-backref" href="#id7">工作原理</a><a class="headerlink" href="#how-it-works" title="永久链接至标题"></a></h2>
<p>了解 mixer 工具的设置和工作流。</p>
<div class="contents local topic" id="id3">
<ul class="simple">
<li><a class="reference internal" href="#prerequisites" id="id11">必备条件</a></li>
<li><a class="reference internal" href="#mix-setup" id="id12">组合设置</a></li>
<li><a class="reference internal" href="#create-a-mix" id="id13">创建组合</a></li>
<li><a class="reference internal" href="#maintain-or-modify-mix" id="id14">保持或修改组合</a></li>
</ul>
</div>
<div class="section" id="prerequisites">
<h3><a class="toc-backref" href="#id11">必备条件</a><a class="headerlink" href="#prerequisites" title="永久链接至标题"></a></h3>
<ul>
<li><p class="first"><strong class="command">mixer</strong> bundle 文件</p>
<p>通过 <strong class="command">mixer</strong> bundle 文件添加 mixer 工具。请参阅 <a class="reference internal" href="swupd.html#swupd-guide"><span class="std std-ref">swupd</span></a>,了解有关安装 bundle 文件的更多信息。</p>
</li>
<li><p class="first">Docker* 容器</p>
<p>默认情况下,mixer 会在 Docker 容器中运行所有构建命令,确保使用正确的工具版本。此外,此操作还会在上游发布新的时间戳时允许定制组合自动执行下游时间戳转换。请参阅 <a class="reference internal" href="#format-version">Format version</a>,了解有关时间戳转换的其他信息。</p>
<p>请参阅 <a class="reference internal" href="#configure-and-enable-docker">Configure and enable Docker</a>,查看相关说明。</p>
</li>
<li><p class="first">Docker 代理(可选)</p>
<p>如果使用代理服务器,则须设置代理环境变量并为 Docker 守护程序和容器创建代理配置文件。</p>
<p>如果使用了公司代理服务器,则请咨询 IT 部门以获取正确的值。</p>
<p>请参阅 <a class="reference internal" href="#configure-docker-proxy-info">Configure Docker proxy info</a>,查看相关说明。</p>
</li>
<li><p class="first">更新内容和映像的存储位置</p>
<p>为了让 swupd 使用您的组合,组合的更新内容需在 Web 服务器上存储。此组合会配置更新位置 URL,而 swupd 则会用其拉取更新。</p>
<p>请参阅 <a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer">为 mixer 设置 Nginx Web 服务器</a>,查看设置更新位置的简单示例。</p>
</li>
</ul>
</div>
<div class="section" id="mix-setup">
<h3><a class="toc-backref" href="#id12">组合设置</a><a class="headerlink" href="#mix-setup" title="永久链接至标题"></a></h3>
<p>请按以下步骤创建和初始化 mixer 工作区。创建组合前,请先完成设置。</p>
<ol class="arabic">
<li><p class="first">创建工作区。</p>
<p>mixer 工具使用简易工作区包含基本目录结构中的所有输入和输出。此工作区只是一个空文件夹,可以在此文件夹中执行 mixer 命令。每个组合均使用自己的独立工作区。</p>
</li>
<li><p class="first">初始化工作区和组合。</p>
<p>创建组合前,必须显式初始化 mixer 工作区。初始化期间,系统将配置 mixer 工作区并定义组合基础。默认情况下,组合以最新的上游版本为基础创建,一开始只包含最少的 bundle 文件。第一个定制组合版本号以 10 开始。也可以选择要从中启动的其他版本或 bundle 文件集。</p>
<p>初始化操作会在工作区中创建目录结构并添加 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> 文件,而此文件将用于配置 mixer 工具。</p>
<p>查看 <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.init.1.rst">mixer.init man page</a>,了解有关 mixer 初始化的更多信息。</p>
<p>查看适合从中进行组合的 <a class="reference external" href="https://github.com/clearlinux/clr-bundles/releases">releases</a> 列表。</p>
</li>
<li><p class="first">编辑 builder.conf。</p>
<p>mixer 工具根据 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> 知道如何配置组合。例如,可以配置 mixer 输出的所在位置以及 swupd 更新内容的所在位置。</p>
<p>至少需要设置更新服务器的 URL,以便定制操作系统知道从何处获取更新内容。</p>
<p>请参阅 <a class="reference internal" href="#builder-conf">builder.conf</a> 部分,了解更多信息。</p>
</li>
</ol>
</div>
<div class="section" id="create-a-mix">
<h3><a class="toc-backref" href="#id13">创建组合</a><a class="headerlink" href="#create-a-mix" title="永久链接至标题"></a></h3>
<p>创建组合的步骤如下:</p>
<ol class="arabic">
<li><p class="first">添加定制 RPM 并设置本地存储库(可选)。</p>
<p>如果要在组合中添加定制 RPM,则须将 RPM 添加到组合工作区并设置相应的本地存储库。</p>
<p>转到 <a class="reference internal" href="autospec.html#autospec"><span class="std std-ref">autospec</span></a> 指南,了解如何从头构建 RPM。如果未在 Clear Linux OS 上构建 RPM,则请确保配置和工具链会为 Clear Linux OS 正确构建 RPM,否则便无法保证其兼容。</p>
<p>请参阅 <a class="reference internal" href="autospec.html#autospec"><span class="std std-ref">autospec</span></a> 指南,了解使用 autospec 来构建 RPM 的更多信息。</p>
</li>
<li><p class="first">更新和构建 bundle 文件。</p>
<p>添加、编辑或删除将纳入内容的 bundle 文件并对其进行构建。更新组合中的 bundle 文件时,mixer 会自动更新 <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code> 文件。</p>
<p>查看 <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.bundle.1.rst">mixer.bundle man page</a>,了解配置组合中的 bundle 文件的更多信息。</p>
<p>查看 <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.build.1.rst">mixer.build man page</a>,了解有关构建 bundle 文件的更多信息。</p>
<p>查看 <a class="reference internal" href="#bundles">Bundles</a> 部分,了解有关 mixer 如何管理 bundle 文件的更多信息。</p>
</li>
<li><p class="first">创建更新内容。</p>
<p>mixer 会通过此步骤创建更新内容。零包是自动创建的,也可以同时创建增量包(适用于版本 0 之后的所有内部版本)。</p>
<p>零包是从组合版本 0(无)变为刚刚为其构建内容的组合版本所需的全套内容。</p>
<p>增量包可提供 <cite>PAST_VERSION</cite><cite>MIX_VERSION</cite> 之间的增量内容,允许从一个组合版本变为另一版本。</p>
<p>查看 <a class="reference internal" href="swupd.html#swupd-guide"><span class="std std-ref">swupd</span></a>,了解有关更新内容的更多信息。</p>
</li>
<li><p class="first">创建映像。</p>
<p>mixer 使用 <a class="reference internal" href="ister.html#ister"><span class="std std-ref">ister.py image builder</span></a> 工具从更新后的内容创建可引导映像。在此步骤中,可以指定要在映像中预安装的 bundle 文件。随后,用户可以安装组合中的其他 bundle 文件。</p>
</li>
<li><p class="first">推出更新。</p>
<p>将更新内容和映像部署到更新服务器。</p>
<p>查看 <a class="reference internal" href="#example-3-deploy-updates-to-target">Example 3: Deploy updates to target</a>,了解简单的部署场景。</p>
</li>
</ol>
</div>
<div class="section" id="maintain-or-modify-mix">
<h3><a class="toc-backref" href="#id14">保持或修改组合</a><a class="headerlink" href="#maintain-or-modify-mix" title="永久链接至标题"></a></h3>
<p>按照创建组合的步骤,将内容更新或修改为新版本。为下一组合递增组合版本号。</p>
</div>
</div>
<div class="section" id="examples">
<h2><a class="toc-backref" href="#id8">示例</a><a class="headerlink" href="#examples" title="永久链接至标题"></a></h2>
<p>以下示例旨在按顺序协同工作。这些示例采用:</p>
<ul class="simple">
<li>Clear Linux OS 的原有安装。</li>
<li>Clear Linux OS 随附用于存储内容更新的 Web 服务器。</li>
<li>一台根据例 2 中创建的本地生成内容进行更新的简易虚拟机。</li>
</ul>
<p>在使用这些示例之前,请先满足所有 <a class="reference internal" href="#prerequisites">Prerequisites</a></p>
<div class="section" id="example-1-mix-set-up">
<h3>例 1:组合设置<a class="headerlink" href="#example-1-mix-set-up" title="永久链接至标题"></a></h3>
<p>本例介绍了第一次为新组合设置 mixer 的基本步骤。</p>
<ol class="arabic">
<li><p class="first">创建一个空目录,用作 mixer 的工作区:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir ~/mixer
</pre></div>
</div>
</li>
<li><p class="first">在 mixer 工作区中,根据最新的上游 Clear Linux OS 版本生成初始组合,包含最少的 bundle 文件。在初始化输出中,请注意初始组合版本已设为 10,添加了最少的 bundle 文件。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> ~/mixer
mixer init
</pre></div>
</div>
</li>
<li><p class="first">编辑 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code>,将 CONTENTURL 和 VERSIONURL 的值设为在前提条件 <a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer">为 mixer 设置 Nginx Web 服务器</a> 中所设 nginx* 服务器的 IP 地址。例如:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">CONTENTURL=&quot;http://192.168.25.52&quot;</span>
<span class="go">VERSIONURL=&quot;http://192.168.25.52&quot;</span>
</pre></div>
</div>
</li>
</ol>
</div>
<div class="section" id="example-2-create-a-simple-mix">
<h3>例 2:创建简单组合<a class="headerlink" href="#example-2-create-a-simple-mix" title="永久链接至标题"></a></h3>
<p>本例介绍如何使用上游内容创建简单的定制组合。我们要为 QEMU 虚拟机创建映像,方便以后进行组合测试。</p>
<p>我们可以使用初始化期间添加的默认 bundle 文件,但其中包括 <strong class="command">native-kernel</strong> bundle 文件,而此 bundle 文件主要用于裸机系统而非虚拟机。因此,我们要修改默认的 bundle 文件集,缩小内核映像,提高加载速度。</p>
<ol class="arabic">
<li><p class="first">更新组合中的 bundle 文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle remove kernel-native
mixer bundle add kernel-kvm
</pre></div>
</div>
</li>
<li><p class="first">在此情况下,我们将添加来自上游的 <cite>editors</cite> bundle,但会移除 <cite>joe</cite> 编辑器。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle add editors
mixer bundle edit editors
</pre></div>
</div>
</li>
<li><p class="first">使用一个编辑器,从 bundle 定义中手动移除 <cite>joe</cite></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">$EDITOR</span> ./local-bundles/editors
</pre></div>
</div>
</li>
<li><p class="first">在 mix 中再次列出 bundles 以确认移除。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle list --tree
</pre></div>
</div>
</li>
<li><p class="first">构建 bundle 文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build bundles
</pre></div>
</div>
<p><strong class="command">build</strong> 命令完成后,在 ~/mixer/update/image/&lt;mix version&gt;/full 中查找完整 chroot。</p>
</li>
<li><p class="first">构建更新内容。浏览到 http://localhost 站点,您会看到网页现已打开,但没有更新内容。构建更新内容:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build update
</pre></div>
</div>
<p>刷新 http://localhost 站点。此时,您便可看到组合版本 10 的更新内容。</p>
<p>查找 ~/mixer/update/www/&lt;mix version&gt;,在工作区中查看更新内容。</p>
</li>
<li><p class="first">配置映像。编辑映像的 ister 配置文件,包含要在映像中预安装的所有 bundle 文件。如果是首次创建映像,则需首先获取 <code class="file docutils literal notranslate"><span class="pre">release-image-config.json</span></code> 模板文件的副本:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl -O https://raw.githubusercontent.com/bryteise/ister/master/release-image-config.json
</pre></div>
</div>
<p>在本例中,编辑 <code class="file docutils literal notranslate"><span class="pre">release-image-config.json</span></code>,使 root 分区的大小为 “5G”,同时将 “kernel-native” bundle 文件更换为 “kernel-kvm”。</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">{</span>
<span class="go"> &quot;DestinationType&quot; : &quot;virtual&quot;,</span>
<span class="go"> &quot;PartitionLayout&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;size&quot; : &quot;32M&quot;, &quot;type&quot; : &quot;EFI&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 2, &quot;size&quot; : &quot;16M&quot;, &quot;type&quot; : &quot;swap&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;size&quot; : &quot;5G&quot;, &quot;type&quot; : &quot;linux&quot; } ],</span>
<span class="go"> &quot;FilesystemTypes&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;type&quot; : &quot;vfat&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 2, &quot;type&quot; : &quot;swap&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;type&quot; : &quot;ext4&quot; } ],</span>
<span class="go"> &quot;PartitionMountPoints&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;mount&quot; : &quot;/boot&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;mount&quot; : &quot;/&quot; } ],</span>
<span class="go"> &quot;Version&quot;: &quot;latest&quot;,</span>
<span class="go"> &quot;Bundles&quot;: [&quot;kernel-kvm&quot;, &quot;os-core&quot;, &quot;os-core-update&quot;]</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">构建映像。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mixer build image
</pre></div>
</div>
<p>此步骤的输出为实时映像 <code class="file docutils literal notranslate"><span class="pre">release.img</span></code></p>
</li>
<li><p class="first">创建下一组合。为接受更新的实时映像创建组合新版本。组合版本以 10 为因子递增:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer versions update
</pre></div>
</div>
<p>重置执行步骤 1-3,将上游 <strong class="command">curl</strong> bundle 文件添加到组合中:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle add curl
mixer build bundles
mixer build update
</pre></div>
</div>
<p>构建可选增量包,有助于缩短客户端更新时间:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build delta-packs --from <span class="m">10</span> --to <span class="m">20</span>
</pre></div>
</div>
<p>刷新 http://localhost 站点,查看组合版本 20 的更新内容。</p>
<p>查找 ~/mixer/update/www/&lt;mix version&gt;,在工作区中查看更新内容。</p>
</li>
</ol>
</div>
<div class="section" id="example-3-deploy-updates-to-target">
<h3>例 3:将更新部署到目标位置<a class="headerlink" href="#example-3-deploy-updates-to-target" title="永久链接至标题"></a></h3>
<p>在例 2 中创建的映像可以在 QEMU 中直接引导。在本例中,我们会引导例 2 中的映像,对其进行验证,然后将映像从组合版本 10(原始映像)更新到组合版本 20。</p>
<ol class="arabic">
<li><p class="first">设置 QEMU 环境。</p>
<p><strong class="command">kvm-host</strong> bundle 文件安装到 Clear Linux OS</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo swupd bundle-add kvm-host
</pre></div>
</div>
<p>获取虚拟 EFI 固件,下载映像启动脚本,将其转换为可执行文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl -O https://download.clearlinux.org/image/OVMF.fd
curl -O https://download.clearlinux.org/image/start_qemu.sh
chmod +x start_qemu.sh
</pre></div>
</div>
</li>
<li><p class="first">启动虚拟机映像(例 2 中创建):</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo ./start_qemu.sh release.img
</pre></div>
</div>
</li>
<li><p class="first">以 root 用户身份登录,设置密码</p>
</li>
<li><p class="first">试用此组合。</p>
<p>查看组合中安装的默认 bundle 文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd info
swupd bundle-list
swupd bundle-list -a
</pre></div>
</div>
</li>
<li><p class="first">现在我们将添加修改的 <cite>editors</cite> bundle。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd bundle add editors
</pre></div>
</div>
</li>
<li><p class="first">尝试启动 <cite>joe</cite> 编辑器。它应该不会出现,因为我们已将它从原 <cite>editors</cite> bundle 中移除。</p>
</li>
<li><p class="first">下一步,我们将从版本 10 更新至版本 20,以获取新的可用 bundles。使用 <strong class="command">swupd</strong> 更新您的 mix</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd check-update
swupd update
swupd bundle-list -a
</pre></div>
</div>
</li>
<li><p class="first">此时,组合应为版本 20 且 curl 可用。试用 curl。由于尚未安装 curl,因此此操作会失败:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">curl: command not found</span>
<span class="go">To install curl use: swupd bundle-add curl</span>
</pre></div>
</div>
<p>将更新服务器上的新 bundle 文件添加到虚拟机上。再次试用 curl。操作成功!</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd bundle-add curl
curl -O https://download.clearlinux.org/image/start_qemu.sh
</pre></div>
</div>
<p>关闭虚拟机:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>poweroff
</pre></div>
</div>
</li>
</ol>
</div>
</div>
<div class="section" id="references">
<h2><a class="toc-backref" href="#id9">参考</a><a class="headerlink" href="#references" title="永久链接至标题"></a></h2>
<p>参考 <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.1.rst">mixer man page</a>,了解有关 mixer 命令和选项的详细信息。</p>
<div class="contents local topic" id="id4">
<ul class="simple">
<li><a class="reference internal" href="#builder-conf" id="id15">builder.conf</a></li>
<li><a class="reference internal" href="#bundles" id="id16">bundle 文件</a></li>
<li><a class="reference internal" href="#configure-and-enable-docker" id="id17">配置和启用 Docker</a></li>
<li><a class="reference internal" href="#configure-docker-proxy-info" id="id18">配置 Docker 代理信息</a></li>
<li><a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer" id="id19">为 mixer 设置 Nginx Web 服务器</a></li>
</ul>
</div>
<div class="content-collapse section" id="builder-conf">
<h3><a class="toc-backref" href="#id15">builder.conf</a><a class="headerlink" href="#builder-conf" title="永久链接至标题"></a></h3>
<p>mixer 初始化过程中会创建 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code>。文件中包含 mixer 工具的基本配置。其中的主要项目为 CONTENTURL 和 VERSIONURL。系统会根据定制内容使用这些项目。</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span>builder.conf
<span class="gp">#</span>VERSION <span class="m">1</span>.0
<span class="go">[Builder]</span>
<span class="go"> CERT = &quot;/home/clr/mix/Swupd_Root.pem&quot;</span>
<span class="go"> SERVER_STATE_DIR = &quot;/home/clr/mix/update&quot;</span>
<span class="go"> VERSIONS_PATH = &quot;/home/clr/mix&quot;</span>
<span class="go"> YUM_CONF = &quot;/home/clr/mix/.yum-mix.conf&quot;</span>
<span class="go">[Swupd]</span>
<span class="go"> BUNDLE = &quot;os-core-update&quot;</span>
<span class="go"> CONTENTURL = &quot;&lt;URL where the content will be hosted&gt;&quot;</span>
<span class="go"> VERSIONURL = &quot;&lt;URL where the version of the mix will be hosted&gt;&quot;</span>
<span class="go">[Server]</span>
<span class="go"> DEBUG_INFO_BANNED = &quot;true&quot;</span>
<span class="go"> DEBUG_INFO_LIB = &quot;/usr/lib/debug&quot;</span>
<span class="go"> DEBUG_INFO_SRC = &quot;/usr/src/debug&quot;</span>
<span class="go">[Mixer]</span>
<span class="go"> LOCAL_BUNDLE_DIR = &quot;/home/clr/mix/local-bundles&quot;</span>
<span class="go"> LOCAL_REPO_DIR = &quot;&quot;</span>
<span class="go"> LOCAL_RPM_DIR = &quot;&quot;</span>
<span class="go"> DOCKER_IMAGE_PATH = &quot;clearlinux/mixer&quot;</span>
</pre></div>
</div>
<p>表 1 提供了 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> 中变量的附加说明。</p>
<table border="1" class="docutils">
<colgroup>
<col width="35%" />
<col width="65%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><strong>变量</strong></td>
<td><strong>说明</strong></td>
</tr>
<tr class="row-even"><td><cite>CERT</cite></td>
<td><p class="first">设置 mixer 存储证书文件的路径。该文件用于签署内容并进行验证。如果不提供现有证书文件的路径,mixer 则会自动生成证书,同时会签署 <code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> 文件,为创建的更新内容提供安全保障。</p>
<p>chroot-builder 使用此证书文件签署 <code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> root 文件,为内容验证提供安全保障。</p>
<p>swupd 使用此证书验证 <code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> 文件的签名。</p>
<p class="last">目前,极力建议不要修改此变量,因为 swupd 必须要有配置十分具体的证书,才能正确签署和验证。</p>
</td>
</tr>
<tr class="row-odd"><td><cite>CONTENTURL</cite><cite>VERSIONURL</cite></td>
<td><p class="first">将这些变量设置为存储更新内容的 Web 服务器的 IP 地址。</p>
<p>VERSIONURL 是 swupd 客户端希望确定是否存在新版本的 IP 地址。</p>
<p>CONTENTURL 是 swupd 从中拉取内容更新的位置。</p>
<p>如果 Web 服务器与 SERVER_STATE_DIR 目录位于同一计算机上,则可在 Web 服务器的文档根目录中创建符号链接,轻松存储内容。</p>
<p class="last">这些 URL 嵌入 mixer 所创建的映像中。</p>
</td>
</tr>
<tr class="row-even"><td><cite>DOCKER_IMAGE_PATH</cite></td>
<td>设置 mixer 通过拉取在适当容器中运行内部版本的 docker 映像的基本名称。</td>
</tr>
<tr class="row-odd"><td><cite>LOCAL_BUNDLE_DIR</cite></td>
<td>设置 mixer 存储本地 bundle 定义文件的路径。bundle 定义文件包括用户创建的所有原创新 bundle 文件,还有上游 bundle 文件的编辑版本。</td>
</tr>
<tr class="row-even"><td><cite>SERVER_STATE_DIR</cite></td>
<td>设置 mixer 输出内容的目标路径。默认情况下,mixer 会自动设置此路径。</td>
</tr>
<tr class="row-odd"><td><cite>VERSIONS_PATH</cite></td>
<td>设置组合版本以及上游版本的两个状态文件的路径:<code class="file docutils literal notranslate"><span class="pre">mixversion</span></code><code class="file docutils literal notranslate"><span class="pre">upstreamversion</span></code>。设置工作区时,mixer 会为您创建这两个文件。</td>
</tr>
<tr class="row-even"><td><cite>YUM_CONF</cite></td>
<td><p class="first">设置 mixer 自动生成 <code class="file docutils literal notranslate"><span class="pre">.yum-mix.conf</span></code> 文件所在的路径。</p>
<p class="last">yum 配置文件将 chroot-builder 指向 RPM 的存储位置。</p>
</td>
</tr>
<tr class="row-odd"><td colspan="2">表 1builder.conf 中的变量</td>
</tr>
</tbody>
</table>
<div class="section" id="format-version">
<h4>Format 版本<a class="headerlink" href="#format-version" title="永久链接至标题"></a></h4>
<p>操作系统的兼容版本通过操作系统兼容性时间戳进行跟踪。某一时间戳的各版本操作系统均完全兼容,并可更新到该时间戳中的任意其他版本。兼容性时间戳在 <code class="file docutils literal notranslate"><span class="pre">mixer.state</span></code> 文件中作为 <cite>Format</cite> 变量进行设置。<code class="file docutils literal notranslate"><span class="pre">mixer.state</span></code> 中的变量由 mixer 在执行间隔使用,且不应手动更改。</p>
<p>format bump 会改变 house 的基础,创建一个新层级。如果 <cite>Format</cite> 递增至新的阶段( “format bump”),操作系统会以这种方式发生改变:从 format X 构成的 build A 更新至 format Y 构成的 build B 将无法完成。</p>
<p>在如下情况中,将需要 format bump</p>
<ul class="simple">
<li>软件更新器 <strong class="command">swupd</strong> 或软件不再兼容以前的更新模式</li>
<li>一个 package 从更新流中移除后,该更新必须确保从系统中移除与该 package 相关的文件</li>
</ul>
<p>使用 Format 增量可以确保必需进行的更改和同时需要进行的更改以正确的顺序进行。除非使用命令行标志覆盖,否则更新后的客户端只会更新采用各自时间戳格式版本的最新版本。如此一来,便可确保所有客户端均更新采用给定时间戳格式的最终版本。</p>
<p>给定时间戳格式必须包含理解以下一个时间戳格式构建的内容所需的所有更改。仅当达到采用旧时间戳格式的最终版本后,客户端才能继续更新到采用新时间戳格式的版本。</p>
<p>仅当出现兼容性破坏问题时,才会递增时间戳格式版本。正常更新(如更新软件包)无需时间戳格式增量。</p>
</div>
</div>
<div class="content-collapse section" id="bundles">
<h3><a class="toc-backref" href="#id16">bundle 文件</a><a class="headerlink" href="#bundles" title="永久链接至标题"></a></h3>
<p>mixer 将有关 bundle 文件的信息存储在名为 <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code> 的平面文件中。此文件所在的路径是通过文件 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> 中的 VERSIONS_PATH 变量设置的。启动组合时会自动创建 <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code>。每次更改组合中的 bundle 文件时,mixer 均会刷新此文件。</p>
<p>bundle 文件可以包括其他 bundle 文件。嵌套的 bundle 文件自身可以包含其他 bundle 文件。如果在组合中发现不应该纳入的 bundle 文件,则可能是先前显式添加的一个 bundle 文件中的嵌套 bundle 文件。</p>
<p>bundle 文件分为两大类:上游或本地。上游 bundle 文件是 Clear Linux OS 提供的 bundle 文件。本地 bundle 文件则要么是修改后的上游 bundle 文件,要么是新的本地 bundle 文件。</p>
<div class="section" id="upstream-bundles">
<h4>上游 bundle 文件<a class="headerlink" href="#upstream-bundles" title="永久链接至标题"></a></h4>
<p>mixer 会自动下载和缓存上游 bundle 定义文件。这些定义文件存储在工作区的 upstream-bundles 目录中。请勿修改此目录中的文件。此目录只是供 mixer 使用的镜像。如果必须下载新版本,mixer 则会在动态重新填充之前自动删除该目录的内容。</p>
<p>mixer 工具会自动缓存在 <code class="file docutils literal notranslate"><span class="pre">upstreamversion</span></code> 文件中配置的 Clear Linux OS 版 bundle 文件。此外,mixer 还会在旧版本无需再使用后立即将其清除。</p>
</div>
<div class="section" id="local-bundles">
<h4>本地 bundle 文件<a class="headerlink" href="#local-bundles" title="永久链接至标题"></a></h4>
<p>本地 bundle 文件是您创建的 bundle 文件,或是上游 bundle 文件的编辑版本。本地 bundle 定义文件存储在工作区的 local-bundles 目录中。此目录的路径是通过 <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> 文件中的 LOCAL_BUNDLE_DIR 变量设置的。</p>
<p><em>mixer 始终会先检查本地 bundle 文件,然后再检查上游 bundle 文件。</em> 因此,local-bundles 目录中的 bundle 文件始终优先于同名的上游 bundle 文件。利用此优先特性,可以将上游 bundle 文件复制到本地,然后进行编辑,变为本地 bundle 文件。</p>
</div>
<div class="section" id="bundle-configuration">
<h4>bundle 文件配置<a class="headerlink" href="#bundle-configuration" title="永久链接至标题"></a></h4>
<p>mixer 提供命令来配置组合的 bundle 文件,例如将 bundle 文件添加到组合中,为组合创建新的 bundle 文件,或从组合中删除 bundle 文件。查看 <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.bundle.1.rst">mixer.bundle man page</a>,获取完整的命令列表,了解配置组合中的 bundle 文件的更多信息。</p>
<p>编辑现有本地 bundle 文件就像在心仪的编辑器中打开 bundle 定义文件、执行所需编辑以及保存更改一样简单。</p>
<div class="admonition note">
<p class="first admonition-title">注解</p>
<p>从组合中删除 bundle 文件:默认情况下,删除 bundle 文件只会从组合中删除 bundle 文件。本地 bundle 定义文件仍会保留。要彻底删除 bundle 文件(包括它的本地 bundle 定义文件),请使用 <strong class="command">--local</strong> 标志。</p>
<p class="last">如果删除组合中上游 bundle 文件的本地编辑版本的 bundle 定义文件,该组合则会重新引用此 bundle 文件的原始上游版本。</p>
</div>
</div>
</div>
<div class="content-collapse section" id="configure-and-enable-docker">
<h3><a class="toc-backref" href="#id17">配置和启用 Docker</a><a class="headerlink" href="#configure-and-enable-docker" title="永久链接至标题"></a></h3>
<p>通过以下步骤为 mixer 工具启用 Docker。如有必要,请务必先 <a class="reference internal" href="#configure-docker-proxy-info">Configure Docker proxy info</a></p>
<ol class="arabic">
<li><p class="first">启动 Docker 守护程序:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl start docker
sudo chmod <span class="m">777</span> /var/run/docker.sock
sudo docker info
</pre></div>
</div>
</li>
<li><p class="first">将用户添加到 docker 组</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo usermod -G docker -a &lt;username&gt;
</pre></div>
</div>
</li>
</ol>
<div class="section" id="pull-docker-container-manually-optional">
<h4>手动拉取 Docker 容器(可选)<a class="headerlink" href="#pull-docker-container-manually-optional" title="永久链接至标题"></a></h4>
<p>默认情况下,如果没有 Docker 容器,mixer 则会自动拉取 Docker 容器以创建组合。如需对 mixer 容器进行故障排除,则可尝试手动拉取 mixer Docker 容器。</p>
<p>mixer Docker 容器的版本可在 Docker Hub 上的 <a class="reference external" href="https://hub.docker.com/r/clearlinux/mixer/tags/">clearlinux/mixer repo</a> 标签下找到。每个版本的 mixer Docker 容器均以关联的 Clear Linux OS 上游时间戳格式版本来命名。请参阅 <a class="reference internal" href="#format-version">Format version</a>,了解有关上游时间戳格式版本的其他信息。</p>
<p>通过以下步骤手动拉取 mixer Docker 容器:</p>
<ol class="arabic">
<li><p class="first">查看 Docker Hub 上的 <a class="reference external" href="https://hub.docker.com/r/clearlinux/mixer/tags/">clearlinux/mixer repo</a> 标签,查找所需版本的容器。</p>
</li>
<li><p class="first">拉取最新容器版本:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker pull clearlinux/mixer:&lt;upstream-format-version&gt;
</pre></div>
</div>
</li>
<li><p class="first">查看本地 docker 映像:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker images
</pre></div>
</div>
</li>
</ol>
</div>
</div>
<div class="content-collapse section" id="configure-docker-proxy-info">
<h3><a class="toc-backref" href="#id18">配置 Docker 代理信息</a><a class="headerlink" href="#configure-docker-proxy-info" title="永久链接至标题"></a></h3>
<p>如有必要,通过以下步骤配置 Docker 代理信息。</p>
<ol class="arabic">
<li><p class="first">创建 Docker 守护程序代理配置目录:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /etc/systemd/system/docker.service.d
</pre></div>
</div>
</li>
<li><p class="first">创建 <code class="file docutils literal notranslate"><span class="pre">/etc/systemd/system/docker.service.d/http-proxy.conf</span></code> 并用自己的代理值添加以下内容:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">[Service]</span>
<span class="go">Environment=&quot;HTTP_PROXY=&lt;HTTP proxy URL&gt;:&lt;port number&gt;&quot;</span>
<span class="go">Environment=&quot;HTTPS_PROXY=&lt;HTTPS proxy URL&gt;:&lt;port number&gt;&quot;</span>
</pre></div>
</div>
</li>
<li><p class="first">重新加载 Docker 守护程序:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl daemon-reload
</pre></div>
</div>
</li>
</ol>
<p>配置 Docker 容器代理,将代理设置传递给容器:</p>
<ol class="arabic">
<li><p class="first">为容器配置创建目录:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir ~/.docker
</pre></div>
</div>
</li>
<li><p class="first">创建配置文件 <code class="file docutils literal notranslate"><span class="pre">~/.docker/config.json</span></code> 并用自己的代理值添加以下条目:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">{</span>
<span class="go"> &quot;proxies&quot;:</span>
<span class="go"> {</span>
<span class="go"> &quot;default&quot;:</span>
<span class="go">   {</span>
<span class="go">    &quot;httpProxy&quot;: &quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;,</span>
<span class="go">     &quot;httpsProxy&quot;: &quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">   }</span>
<span class="go"> }</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">设置 docker 配置目录的所有权和权限:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo chown <span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span>:<span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span> /home/<span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span>/.docker -R
sudo chmod g+rwx <span class="s2">&quot;</span><span class="nv">$HOME</span><span class="s2">/.docker&quot;</span> -R
</pre></div>
</div>
</li>
</ol>
<p>配置代理,允许 mixer 从防火墙后访问上游内容。</p>
<ol class="arabic">
<li><p class="first">打开 <code class="file docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code> 文件,为以下内容添加代理和端口值:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">export http_proxy=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export https_proxy=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export HTTP_PROXY=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export HTTPS_PROXY=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export no_proxy=&quot;&lt;...&gt;&quot;</span>
</pre></div>
</div>
</li>
<li><p class="first">注销并再次登录,使代理生效。</p>
</li>
</ol>
</div>
<div class="content-collapse section" id="set-up-a-nginx-web-server-for-mixer">
<h3><a class="toc-backref" href="#id19">为 mixer 设置 Nginx Web 服务器</a><a class="headerlink" href="#set-up-a-nginx-web-server-for-mixer" title="永久链接至标题"></a></h3>
<p>需有 Web 服务器存储更新内容。在本例中,我们使用 Clear Linux OS 随附的 Nginx Web 服务器。</p>
<p>通过以下步骤为 mixer 设置 Nginx Web 服务器:</p>
<ol class="arabic">
<li><p class="first">安装 <strong class="command">nginx</strong> bundle 文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo swupd bundle-add nginx
</pre></div>
</div>
</li>
<li><p class="first">创建 mixer 更新的存储目录:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /var/www
</pre></div>
</div>
</li>
<li><p class="first">在工作区更新和本地 Nginx Web 服务器更新之间创建符号链接。在本例中,<cite>$HOME/mixer</cite> 是组合的工作区。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo ln -sf <span class="nv">$HOME</span>/mixer/update/www /var/www/mixer
</pre></div>
</div>
</li>
<li><p class="first">设置 <code class="docutils literal notranslate"><span class="pre">nginx</span></code> 配置:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /etc/nginx/conf.d
</pre></div>
</div>
</li>
<li><p class="first">复制默认示例配置文件:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo cp -f /usr/share/nginx/conf/nginx.conf.example /etc/nginx/nginx.conf
</pre></div>
</div>
</li>
<li><p class="first">配置 mixer 更新服务器。创建以下服务器配置内容并将其添加到 <code class="file docutils literal notranslate"><span class="pre">/etc/nginx/conf.d/mixer.conf</span></code> (需 sudo 权限):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">server {</span>
<span class="go"> server_name localhost;</span>
<span class="go"> location / {</span>
<span class="go"> root /var/www/mixer;</span>
<span class="go"> autoindex on;</span>
<span class="go"> }</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">重新启动守护程序,引导时启用 Nginx,然后启动此服务。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl daemon-reload
sudo systemctl <span class="nb">enable</span> nginx
sudo systemctl start nginx
</pre></div>
</div>
</li>
<li><p class="first">验证 Web 服务器是否在 http://localhost 上运行。此时不应再出现 “404 Not Found” 消息。</p>
</li>
</ol>
</div>
</div>
<div class="section" id="related-topics">
<h2><a class="toc-backref" href="#id10">相关主题</a><a class="headerlink" href="#related-topics" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><a class="reference internal" href="autospec.html#autospec"><span class="std std-ref">autospec</span></a></li>
<li><a class="reference internal" href="bundles.html#bundles-guide"><span class="std std-ref">bundle 文件</span></a></li>
<li><a class="reference internal" href="swupd.html#swupd-guide"><span class="std std-ref">swupd</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="security.html" class="btn btn-neutral float-right" title="操作系统安全性" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="ister.html" class="btn btn-neutral float-left" title="ister.py image builder" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2019.
<span class="lastupdated">
最后更新于 1月 17, 2020.
</span>
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
<div id="trademarks">
<p>*Other names and brands may be claimed as the property of others.</p>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<script type="text/javascript" src="../../_static/tcs_theme.js"></script>
</body>
</html>