返回新闻概览

LXC 1.0.8 版本发布公告

2015年11月9日
这是 LXC 1.0 的第八个 bug 修复版本。

重要

  • 修复了 CVE-2015-1331 安全漏洞
  • 修复了 CVE-2015-1334 安全漏洞

核心

  • 添加了一个 nesting.conf 文件,可以包含它来支持嵌套容器
  • 添加了对 CAP_AUDIT_READ 和 CAP_BLOCK_SUSPEND 的支持
  • 允许在没有 rootfs 的情况下使用 autodev
  • 还在非特权容器中删除了功能
  • apparmor:阻止访问 /proc/kcore
  • apparmor:修复从属绑定挂载
  • apparmor:与当前 git master 同步
  • attach:在中间子进程中使用 _exit() 而不是 exit()
  • aufs:支持非特权克隆、挂载
  • 直接调用 /lib/apparmor/profile-load 而不是包装器
  • cgmanager:attach:绝不使用“all”控制器
  • cgmanager:在 check_supports_multiple_controllers 的末尾释放行
  • cgmanager:将非特权容器置于 $(curcgroup)/lxc/$(container0 下
  • 更改 lxc-clone 以使用“rsync -aH”而不是“rsync -a”进行克隆,以修复 Launchpad Bug #1441307。
  • clone_paths:使用“rootfs”作为目标目录
  • config:为 lxc.*signal 添加各种信号
  • 守护进程启动:在失败时退出子进程,不要返回
  • 在 bdev.c 中为 Android 定义 MS_REC 和 MS_SLAVE
  • 为 Android 定义 MS_RELATIME
  • 为 Android 定义 O_PATH 和 O_NOFOLLOW
  • 检测 cgmanager_list_controllers 是否可用
  • do_lxcap_stop:等待容器停止
  • 如果 opentty 失败,不要关闭 std* fd
  • 默认情况下为非特权用户启用 seccomp。
  • 将 create=dir 和 create=file 的处理分解
  • 修复由于缺少常量导致的 Android 构建问题
  • 修复没有 rootfs 的自动挂载
  • 修复 mpc85xx 上的构建
  • 修复清除 IPv4/IPv6 地址
  • 修复没有 rootfs 的容器创建
  • 修复 attach 上的控制 tty 问题
  • 修复没有 rootfs 的 /dev 符号链接
  • 修复克隆容器时删除的 fs 功能
  • 修复找不到 lxc-init 时的错误消息
  • 修复非特权临时容器的不完整销毁
  • 修复使用相同 ID 实例化多个 vlan 接口
  • 修复 mount 调用中的反向参数
  • 修复没有 rootfs 的启动钩子的验证
  • 忽略 init cgroups 中尾随的 /init.scope
  • 将 error_num 初始化为 1
  • init:支持旧版 apparmor
  • 在 lxc.mount.auto 中,跳过 ENONENT
  • lxc_monitor:修复 @fds 上的内存泄漏并关闭 fd
  • lxc_monitor:在错误时释放 @preg
  • lxc_mount_auto_mounts:修复奇怪之处
  • 使 cgmanager 遵循 lxc.cgroup.use
  • 使 LXC_CLONE_KEEPNAME 工作
  • 使 mount_entry_create_*_dirs() 更健壮
  • 使 overlayfs 挂载直接工作
  • 仅在需要时挂载 /proc,即使没有 rootfs
  • 仅在 stdin 是 tty 时重新打开 fd
  • 仅在 lxcpath 未设置或为默认值时使用 LOGPATH
  • overlay:如果工作目录不存在,则创建它
  • 传递重启标志并在重启时删除旧的 veth
  • 防止在使用 userns 时卸载 /proc 发生错误。
  • 删除 btrfs 子卷
  • rpm:将 lxc-libs 的依赖项添加到 lxc 包中
  • seccomp:添加 aarch64 支持
  • seccomp:添加 ppc 支持
  • seccomp:添加规则以拒绝 umount -f
  • seccomp:简化并修复规则解析
  • 跳过非 tty 的控制 tty 代码
  • 在应用之前对 cgroup 内存设置进行排序
  • 支持使用 aufs 的非特权临时容器
  • 在容器停止期间拆除网络设备
  • 统一使 std fd 为空
  • 如果存在,则使用 /dev/loop-control
  • 在需要时使用“overlay”作为文件系统名称
  • 尽可能使用 poll 而不是 select
  • 在 bash 自动完成中使用符合 POSIX 标准的函数名
  • 克隆非 thinpool LVM 容器时使用 rdepends
  • 创建容器时,如果 rootfs 已存在,则保存配置

文档

  • 在日语 lxc.container.conf(5) 中添加与挂载相关的注释
  • 在 lxc-clone(1) 的“-s”选项中添加关于 zfs、aufs、overlayfs 的内容
  • 在 lxc.container.conf 手册页中添加 lxc.container.conf 中可选的、create=dir 和 create=file 的文档
  • 在文档中添加 -P 的长选项
  • 在日语 lxc.container.conf(5) 中添加 LXC 特定的挂载选项
  • 添加 lxc-create(1) 中“loop”存储后端的选项
  • 在 lxc-ls 手册页中添加 -P lxcpath 和 --version
  • 在 lxc-start-ephemeral(1) 中添加“--storage-type”选项
  • 在英语和日语 lxc-ls(1) 中添加 -P 和 --version 的描述
  • 在英语和日语 common_options 中添加 --version 的描述
  • 添加 lxc-start-ephemeral(1) 中“attach”的使用
  • 澄清手册页中 veth 网络类型的描述。
  • 修复日语 lxc.container.conf(5) 中关于 lxc.group 的误译
  • 更新 CONTRIBUTING
  • 从 lxc-user-nic(1) 中删除不必要的通用选项
  • 翻译日语手册页中未翻译的章节标题
  • 更新 MAINTAINERS
  • 更新 lxc-autostart(1) 中 -L 选项的描述
  • 更新日语 lxc.container.conf(5) 中 veth 的描述

绑定

  • lua:修复 5.3 兼容性代码。
  • lua:修复缺少 blkio 时的崩溃
  • lua:5.3 兼容性的小修复。

测试

  • 为 Travis CI 启用 cgmanager 支持
  • lxc-test-apparmor:在退出子进程之前刷新管道
  • lxc-test-symlink:添加一个使用绝对符号链接的测试
  • 更新 Travis 配置
  • 使用“cgm listcontrollers”列表而不是 /proc/self/cgroups

配置

  • lxc-net.conf:在拆卸时使用 +e

模板

  • lxc-alpine:避免 GNU BRE 扩展以提高可移植性
  • lxc-alpine:在挂载之前创建 /dev/shm
  • lxc-alpine:修复 apk.static 二进制文件的验证
  • lxc-alpine:使用 getopt 解析选项
  • lxc-alpine:使用 yaml 检测最新版本
  • lxc-altlinux:修复选项“--clean”的解析:它不带参数
  • lxc-altlinux:使用引号保护可能未设置的变量以进行 -z 检查
  • lxc-archlinux:修复 systemd-sysctl 服务
  • lxc-busybox:修复非特权容器
  • lxc-centos:为 yum --releasever 添加了更可靠的测试
  • lxc-{centos|fedora}:尊重 --rootfs
  • lxc-centos:修复 Centos 7 中巨大的登录延迟
  • lxc-centos:修复引导 Centos 6 容器
  • lxc-centos:修复选项“--clean”的解析:它不带参数
  • lxc-centos:修复帮助文本中的制表符/空格混用。
  • lxc-centos:将 releasever 参数传递给 yum
  • lxc-centos:使用引号保护可能未设置的变量以进行 -z 检查
  • lxc-centos:在 ifcfg-eth0 中使用`hostname` 作为 DHCP_HOSTNAME
  • lxc-debian:dpkg 多架构支持的替代测试
  • lxc-debian:当设置了 $GREP_OPTIONS 时,debootstrap 失败
  • lxc-debian:在使用说明中记录“--clean”。
  • lxc-debian:修复如果未安装 dbus 出现的错误
  • lxc-debian:修复选项“--clean”的解析:它不带参数。
  • lxc-debian:改进帮助文本
  • lxc-debian:使用引号保护可能未设置的变量以进行 -z 检查
  • lxc-debian:重新配置语言环境
  • lxc-debian:跳过不稳定/sid 的安全更新
  • lxc-debian:支持 stretch(Debian 9)镜像
  • lxc-debian:测试 dpkg 的多架构支持
  • lxc-download:修复帮助文本中的错别字。
  • lxc-download:改进帮助文本。
  • lxc-download:使 --list 更有用。
  • lxc-fedora:添加对“--mask-tmp”的支持
  • lxc-fedora:默认为 22 但使用 20 squashfs
  • lxc-fedora:默认为 Fedora 21,因为 22 不再使用 yum
  • lxc-fedora:修复选项“--clean”的解析:它不带参数
  • lxc-fedora:在 fedora21 中,需要 fedora-repos 包。
  • lxc-fedora:使帮助文本适合 80 列
  • lxc-fedora:管理辅助架构
  • lxc-fedora:使用引号保护可能未设置的变量以进行 -z 检查
  • lxc-fedora:使用 systemd 时,在配置中设置 lxc.kmsg = 0
  • lxc-gentoo:如果只有一个 veth,则添加 hwaddr
  • lxc-gentoo:添加 /dev/shm tmpfs 挂载条目
  • lxc-gentoo:修复 dev/mqueue 和 dev/shm 的创建
  • lxc-gentoo:修复 --auth-key 标志
  • lxc-gentoo:修复 wget
  • lxc-openmandriva:修复选项“--clean”的解析:它不带参数
  • lxc-openmandriva:在 -z 检查中使用引号保护可能未设置的变量
  • lxc-opensuse:默认版本更改为 13.1,因为 12.3 即将到期
  • lxc-opensuse:仅当安装了错误版本的构建包时,才禁用在 13.2/Tumbleweed 上构建 openSUSE 容器
  • lxc-opensuse:修复选项“--clean”的解析:它不带参数
  • lxc-opensuse:在 -z 检查中使用引号保护可能未设置的变量
  • lxc-opensuse:使用 rpm 确定构建版本
  • lxc-oracle:修复 /dev/shm
  • lxc-ubuntu-cloud:当未创建任何容器时,绝不退出 0
  • lxc-ubuntu-cloud:将 .tar.gz 替换为 .tar.xz,并且不要自动生成缺少的 tarball
  • lxc-ubuntu:删除 lucid 支持并刷新发行版列表

命令

  • 修复某些可执行文件中的语法错误“NAME for name of the container”变为“NAME of the container”
  • lxc-autostart:修复损坏的输出
  • lxc-checkconfig:更新以支持内核版本 > 3
  • lxc-create:修复使用绝对模板路径的 -h
  • lxc-create:要求传递 --template
  • lxc-destroy:如果底层文件系统是 overlayfs,则实际工作
  • lxc-start:添加 pid 参数
  • lxc-start-ephemeral:修复 pep-8 和 pyflakes3
  • lxc-start-ephemeral:处理 overlayfs 工作目录选项(v2)
  • lxc-start-ephemeral:直接解析 passwd
  • lxc-usernsexec:分别重新打开 fd 0、1、2

这些稳定修复由 59 位个人贡献者提供。

下载

可以在我们的 下载页面 上找到发行版 tarball,我们预计大多数发行版
很快就会发布 LXC 1.0.8 的打包版本。

如果您有兴趣了解个别更改或只是查看详细的开发历史记录,
我们的稳定分支位于 GitHub 上。