我在Docker容器中使用了Docker和Arch Linux。介绍makepkg-4.2.0我使用yaourt的安装命令被打破了,如下所述:https://github.com/archlinuxfr/yaourt/issues/67
问题是,yaourt应该作为非根用户运行。但是yaourt也希望在每一种情况下都安装这个包,在它构建它之后,需要root用户或者一个拥有安装软件包权限的用户。
所以我的问题是如何解决这个问题?我想安装一个软件包从8月在码头,因为还没有正式的软件包存在。
直到现在,我还在使用Arch、pacman和yaourt。
所以司令部
RUN yaourt -S --noconfirm aur/taskd它安装taskd,在makepkg-4.2.0之前完成:
使用新的makepkg版本,构建Docker失败,来自yaourt的错误如下:
makepkg: invalid option '--asroot'如果我将用户更改为非根用户并尝试安装包,我将在自动构建中获得一个命令提示符,询问实际安装软件包的根密码。
Password: su: Authentication information cannot be recovered
Password: su: Authentication information cannot be recovered
Password: su: Authentication information cannot be recovered
The command [/bin/sh -c yaourt -S --noconfirm aur/taskd] returned a non-zero code: 1在不污染分布在两个Dockerfile上的许多非主题行的情况下,Dockerfile中有趣的部分如下所示:
FROM kaot/arch_linux_base:latest
MAINTAINER Kaot
RUN useradd --no-create-home --shell=/bin/false yaourt && usermod -L yaourt
RUN yaourt -S --noconfirm aur/taskd
ENTRYPOINT ["/controlcenter/controlcenter.sh"]
CMD ["cc:start"]发布于 2015-06-05 14:17:27
如果找到一个只允许yaourt下载Info如何构建包的解决方案,那么就调用makepkg本身,与非根用户一起调用,然后与root用户和pacman一起安装构建包。Dockerfile的部分如下所示
RUN mkdir -p /tmp/Package/ && chown yaourt /tmp/Package
USER yaourt
RUN cd /tmp/Package && pwd && ls -al && yaourt --getpkgbuild aur/taskd && cd taskd && makepkg --pkg taskd
USER root
RUN pacman -U --noconfirm /tmp/Package/taskd/taskd-1.1.0-1-x86_64.pkg.tar.xz使用一些变量,可以实现进一步的增强,但原则上这是可行的。
https://stackoverflow.com/questions/30667644
复制相似问题