Logo
Section 1 / 5

课程简介

在本节课中了解课程内容,并学习课程所需的先决条件。

导入

课程简介

在本节课中了解课程内容,并学习课程所需的先决条件。

先决条件

本课程将介绍创建 Alpine Linux 软件包的基础知识。您无需事先了解 Alpine Linux 软件包即可学习本课程。但您应熟悉命令行操作,并对 Linux 发行版的基本工作原理有基本了解。

我们为每节课都提供了集成的终端,您可以在其中直接执行命令。您无需在本地计算机上进行额外配置,本课程中所需的全部 Docker 命令及其说明都会包含在课程内容中。如需更详细的命令解释,请参考 Docker 手册。

...
Docker

本课程目标

本课程将教您如何高效使用 Alpine Linux,并学习如何创建自己的 apk 软件包,以便在官方仓库中找不到所需软件包时,或需要打包私有项目时使用。我们还将学习如何搭建自己的私有 apk 软件仓库,并将其用于自定义的 Docker 容器中。

Hello World

为了初步了解 Alpine Linux 的打包机制,我们可以查看下面这个 APKBUILD 文件。如果您暂时还不理解它的作用也无需担心——本课程中我们将逐步讲解其全部细节。

1pkgname=hello-world 2pkgver=1.0.0 3pkgrel=1 4pkgdesc="一个简单的 hello world 程序" 5arch="noarch" 6url="https://educative.io" 7license="UNLICENSE" 8options="!check" 9 10prepare() { 11 mkdir -p "$srcdir" 12} 13 14package() { 15 mkdir -p "$pkgdir"/usr/bin 16 cat <<EOF > "$pkgdir"/usr/bin/hello-world 17#!/bin/sh 18echo "Hello world!" 19EOF 20 chmod +x "$pkgdir"/usr/bin/hello-world 21}

现在我们可以尝试构建这个 APKBUILD,体验一下打包的过程。请在提供的终端中运行以下命令。

1abuild -r # 构建软件包 2apk add hello-world # 安装刚刚构建的软件包 3hello-world # 运行刚安装的软件包中的 "hello-world" 可执行文件

启动终端后,系统会自动为您安装一些前置依赖。

随后,您可以使用 abuild -r 构建 .apk 软件包,用 apk add hello-world 安装该软件包,并运行其中包含的 hello-world 命令。

Terminal

/etc/apk/repositories cat << 'EOF' > /tmp/APKBUILD pkgname=hello-world pkgver=1.0.0 pkgrel=1 pkgdesc="A simple hello world program" arch="noarch" url="https://educative.io" license="UNLICENSE" options="!check"

prepare() { mkdir -p "$srcdir" }

package() { mkdir -p "pkgdir"/usr/bin echo "#!/bin/sh" >> "pkgdir"/usr/bin/hello-world echo "echo "Hello world!"" >> "pkgdir"/usr/bin/hello−worldchmod+x"pkgdir"/usr/bin/hello-world chmod +x "pkgdir"/usr/bin/hello-world } EOF sed '/die "Do not run abuild as root"/d' -i /usr/bin/abuild clear" mode="edit">

Alpine Linux 简介