Userland、Linux Deploy、AnLinux 和 Alpine 之间有什么区别?
我认为到目前为止我所知道的:
我认为他们都使用 proot 和 termux 来使 Linux 发行版在 Android 上运行。Alpine 是一个小型且高效的 Linux 发行版。
Termux 似乎是一个运行简单终端模拟器并使用 Android 提供的 Linux 内核的应用程序。
“PRoot 是 chroot、mount --bind 和 binfmt_misc 的用户空间实现。这意味着用户不需要任何权限或设置来执行诸如使用任意目录作为新根文件系统之类的操作。”
好的,这样,就可以从 Android 中的目录运行整个操作系统了。
所以我安装了 Termux,然后是 PRoot,然后是整个 Linux 发行版,例如 Alpine。
Userland、Linux Deploy 和 AnLinux 与此有何不同?
它们包含很小的分布吗?他们打包 Termux 和 PROot 吗?他们更快吗?慢点 ?它们如何重叠?为什么有这么多人似乎在做同样的事情?
我正在尝试在 Alpine 上安装旧版本的 Node.js (4.4.4)。这是我的命令:
apk update
apk add nodejs-lts=4.4.4-r0
Run Code Online (Sandbox Code Playgroud)
执行时,出现错误(以 root 身份运行,因为我使用的是 Alpine:3.4 Docker 映像):
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
v3.4.6-64-gd029d25 [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-33-g38ef2d2 [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
OK: 5977 distinct packages available
/ # apk add nodejs-lts=4.4.4-r0
ERROR: unsatisfiable constraints:
nodejs-lts-4.6.0-r0:
breaks: world[nodejs-lts=4.4.4-r0]
Run Code Online (Sandbox Code Playgroud)
如何在 中安装特定的旧版本软件包apk?
我试图了解将 Alpine 安装介质制作为只读类型 (LiveCD) 和标准磁盘模式(可以保存操作系统状态)有什么区别。modloop当本文的作者 ( https://wiki.alpinelinux.org/wiki/Create_UEFI_boot_USB ) 为 UEFI 启动模式配置加载程序条目时,我已经看到了该选项:
Contents of loader/entries/alpine.conf
title Alpine Linux
linux /boot/vmlinuz-hardened
initrd /boot/initramfs-hardened
options modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod,usb-storage quiet
Run Code Online (Sandbox Code Playgroud)
问题是本节modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod中列出的选项如何相互关联,它们的含义是什么?
我有一个运行 Alpine Linux 的 Docker。根本没有硬件音频设备。
我已经设法让pulseaudio在用户下看起来运行良好。
我一直在尝试让 PA 用作虚拟声卡,目的是使用 ffmpeg 从 docker 流式传输音频。但到目前为止还没有运气。而且我还没有遇到过不涉及缺少音频硬件的机器的例子。
我主要关心的是让 VICE (x64,Commodore 64 模拟器)正确使用“脉冲”而不是“虚拟”。我已经用 '--with-pulse' 编译了 VICE,并且'pulse'确实出现在设置菜单中。
但是,当我切换到 'pulse' 而不是 'dummy' 时,x64 抱怨它无法初始化它,然后禁用它自己的声音输出。
不过 pactl和pacmd似乎在控制pulseaudio服务器方面没有问题。
我已经尝试了以下(以及模块管道)
$ pacmd load-module module-null-sink sink_name=VirtSoundCard sink_properties=device.description=Virtual-Sound-Card
$ pacmd set-default-sink VirtSoundCard
Run Code Online (Sandbox Code Playgroud)
虽然到目前为止没有任何运气。所以希望听到任何可能知道如何做到的人的来信,而我则花了整晚的时间来尝试。
我正在使用 atm 的“default.pa”:https : //bitbucket.org/duckhuntpr0/pyvice/src/pyvice_base/src/fs/home/pyvice/default.pa
我知道我可以在当前会话中export PATH="$PATH:my_path"添加PATH变量。
我还知道我可以添加此行以~/.bash_profile使其在用户的会话中持续存在:
echo 'PATH="$PATH:my_path"' >> ~/.bash_profile
我还知道在 Linux 中ubuntu我可以添加该行/etc/bash.bashrc,并且它始终可供所有用户使用。
但是,我的 linux 在容器内alpine,我不知道在哪里添加该文件。我在谷歌中找不到它。
我需要在无法访问 Internet 的设备上安装几个软件包。
这个想法是下载软件包,将它们传输到设备,然后使用apk add --allow-untrusted <name>. 也许这太合乎逻辑了,因为我不知道如何从pkgs.alpinelinux.org/packages. 我可以看到包裹里有什么,但仅此而已。有谁知道为什么?
另外,如果有人知道我可以从哪里下载它们,请告诉我...谢谢!
我想从远程机器运行一个容器化的 GUI 应用程序。
我不想通过向容器添加 ssh 主机来解决这个问题,因为
我已经可以在主机上成功运行 GUI 应用程序,但不能从容器内运行。这些是我迄今为止采取的步骤:
xauth + (不是长期的,但有助于消除可能的问题)docker-user主机上的 uid 501000 ==docker-user容器中的 uid 1000 通过命名空间功能.Xauthority文件复制到docker-user主文件夹xauth并且为了测试目的,xtermdocker-user使用适当的 uid/gid创建DISPLAY转发的环境变量/home/docker-user/:/home/docker-user/:ro提供.Xauthority的cookie/tmp/.X11-unix:/tmp/.X11-unix:ro提供X11插槽接入su - docker-user -c "export DISPLAY=$DISPLAY && xterm"
su 曾经作为 docker-userDISPLAY转发到su上下文中不幸的是,这还不够。虽然主机操作系统上的 xterm 连接到我的本地 X 服务器没有问题,但容器中的 xterm 显示Xt error: Can't open display: …
我正在尝试获取安装在我的映像上的各种 Alpine 软件包的源软件包(出于合规性原因),但我在追踪它们时遇到了困难。
例如,我安装了 alpine-baselayout-3.1.2-r0,我可以看到包详细信息,它链接到 git 存储库,但它链接到 aports 树,其中包含 APKBUILD 文件和构建 apk 文件所需的内容(和源包),但不是包本身。我还能够找到APK 包本身,但搜索该树并没有给出源包。然后查看https://git.alpinelinux.org/alpine-baselayout/我可以看到几个较旧的包,它们似乎是源包(但可能只是 git 树快照),但没有比 7 年更新的包。
那么,如何下载Alpine包的源码包呢?
我正在尝试为 Alpine Linux 构建包,它官方支持 x86、x86_64、armhf、aarch64、s390x、ppc64le,所以我想为所有这些架构构建。
目前我正在使用 QEMU 的用户模式仿真在 x86_64 主机上运行这些架构的 chroot 环境,但它似乎非常不稳定并且经常导致崩溃。所以现在我正在尝试使用 QEMU 运行完整的虚拟机。
为非 ARM 架构安装 Alpine Linux 非常简单,可以通过附加官方下载页面中提供的 .iso 映像来完成。但是,对于 ARM 来说,情况就不同了。除了 netboot 和 u-boot 的档案外,没有提供其他东西,所以我不知道如何安装它。我曾尝试提取存档网络启动和设置-kernel和-initrd提取的文件,但没有奏效。(我使用的完整命令是qemu-system-aarch64 -M vexpress-a9 -kernel vmlinuz-vanilla -initrd initrd-vanilla -append "root=/dev/ram")我在终端和Guest had not initialized the display (yet)VNC 窗口中没有输出。
那么如何启动虚拟机呢?谢谢。
我正在尝试安装在 QEMU 上运行的 Alpine Linux,但出现以下错误(我用 标记了错误消息<===):
localhost:~# setup-alpine
Available keyboard layouts:
...
Which timezone are you in? ('?' for list) [UTC]
* Starting busybox acpid ...
[ ok ]
* Starting busybox crond ...
[ ok ]
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] http://192.0.2.1:8080
wget: server returned error: HTTP/1.0 403 Forbidden <===
r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor
Enter mirror …Run Code Online (Sandbox Code Playgroud) alpine-linux ×10
linux ×6
android ×1
arm ×1
audio ×1
bash ×1
boot ×1
docker ×1
linux-kernel ×1
node.js ×1
path ×1
pulse-audio ×1
qemu ×1
sound-card ×1