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 上。