问题标签 [fakeroot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rpm - RPM 的 fakeroot 替代品
我研究 dpkg 和 rpm 包系统。我在 dpkg 手册中发现使用 fakeroot 作为非 root 用户正确构建包的建议。但是对于 RPM 包,我没有找到替代实用程序。我阅读了几本构建 rpm 包的手册,他们建议以 root 身份构建 rpm 包,或者创建特殊用户并使用 rpm-setuptree 实用程序(当然,可能是手册不好)。
有 RPM 构建的 fakeroot 替代方案吗?并且可能是 RPM 不需要 fakeroot 替代品,使用正确的构建选项和规范文件可以帮助我避免所有问题?
linux - Linux fakeroot 混淆
我对 fakeroot 实用程序有很多困惑。我正在尝试将字符节点添加到 /dev 文件夹到两个 rootfs。rootfs_1 的所有者是我自己,而第二个的所有者是 root。
rootfs_1 所有者是我。
一种。如果我做 ls -l. 我将所有者视为“我我”
b. 我尝试在 rootfs_1/dev 中使用 mknod 创建一个节点,但它失败了。
C。$fakeroot 命令通过。
d。ls -al。我将所有者视为 root (我知道这是假的)
e。现在我可以使用 mknod 在 rootfs_1/dev 中创建一个节点。
F。退出
g。新创建的节点的所有者是我所期望的“我”。rootfs_2 所有者是 root
a。ls -l。我将所有者视为“root root”
b。我尝试在 rootfs_2/dev 中使用 mknod 创建一个节点,但它失败了。(预期)
c。$fakeroot 命令通过。
d。现在我尝试创建一个节点,但它失败了。
现在,我知道这种行为是预期的。但是我对 fakeroot 的工作原理以及系统调用通过 fakeroot 的流程感到困惑。我认为 fakeroot 做了 LD_PRELOAD 把戏。
任何人都可以详细解释为什么案例 1 有效而案例 2 失败。
谢谢
shell - 使用 fakeroot/fakechroot 来 tar 包
有一个 foo.tar.gz 源它将安装到 /lib/modules。但是,我不是root,没有足够的权限。我正在尝试编写一个脚本来自动构建包。
表明
我不想真正放入/lib,也许我可以放入$HOME/rootfs。
使用 fakeroot 的正确方法是什么?或者,是否有一个简单的脚本可以让我追踪如何使用 fakeroot?
c - How to know if user is root or fakeroot?
I would like to know if user is root, without minding if that user is using a fakeroot-like tool or not.
I tried the functions getuid()
, geteuid()
and getlogin()
, but when I launch fakeroot
command each of these sends my own account information instead of root
.
For this code:
Here is what I get:
When I would like to get something like:
(the login would be enough)
linux-kernel - deb/rules: 没有这样的文件或目录
我试图参考 本教程在 ubuntu-10.04 中为我的 2.6.32 内核构建 vmlinux 映像。这些是我遵循的步骤。
1. 安装构建工具
sudo apt-get build-dep linux-image-$(uname -r)
2. 使用
apt-get source linux-image-$(uname -r)
3. 下载源代码 cd 到提取的源目录并运行
fakeroot debian/rules clean
,但它给了我错误
我的新未压缩内核源目录不包含任何名为 deb 或 deb/rules 的目录。那么他们实际上是什么意思fakeroot debian/rules clean
?我怎样才能找到文件debian/rules
?
发现这个问题没有任何解决的答案。请帮忙
debian - 如何使用 dh-virtualenv 构建 Debian 软件包?规则文件不适用于 fakeroot
我正在尝试使用 Spotify 的 dh-virtualenv debian 包助手构建一个 deb 包。
我得到的错误消息:
运行时dpkg-buildpackage -us -uc
:
我不知道为什么它找不到规则文件。我可以在没有 fakeroot 的情况下手动运行文件并且它可以工作(或者至少它通过了初始错误):
因为您没有看到“没有这样的文件或目录”错误。我可以用fakeroot重现错误:
这是我的规则文件:
我错过了什么吗?
注意:'venv' 是我的 virtualenv 的名称并且是活动的。
更新 2016年 8 月 23 日 我将我的代码复制到我们数据中心的另一个虚拟机中,使用稍旧的 Ubuntu 并重新安装所有内容并运行 buildpackage 命令。这次它做得更远了,但最后仍然有类似的错误。我不会发布整个 buildpackage 日志,但最后是要点:
我不知道为什么它使用 python 前缀调用 pip,例如: python pip install -r ./requirements.txt
Pip 不是这样调用的 python 文件。dh-virtualenv 中可能存在的错误?
debian - fakeroot/proot 在 rootfs 生成期间挂起
我正在尝试使用 multistrap、fakeroot 和 proot 构建一个基于 Debian Stretch 的 armhf 文件系统。我可以使用 multistrap 创建 rootfs:
然后我将 fakeroot 库复制到 rootfs(libfakechroot.so、libfakeroot-sysv.so、libfakeroot-tcp.so)中,并启动根目录:
在这个 shell 中,我执行以下命令:
这应该配置使用 multistrap 安装的所有包,但是这个过程总是在配置包的过程中挂起,大部分时间在同一个包上但并非总是如此(例如在 passwd、adduser、openssh-server 上),但几乎总是在 cat /grep 行。系统不再响应,^C 不起作用,我必须从另一个 shell 中杀死所有 fakeroot 进程。
我尝试了一个几乎为空的 multistrap 配置(仅 bash 作为包),然后它继续,但只有 apt 作为包它挂起。我尝试使用 fakeroot 和 fakeroot-tcp。唯一的区别是 fakeroot-tcp 慢得多,但它仍然挂起。
在这个设置中有什么我忘了做的吗?
当我使用 sudo 而不是 fakeroot 运行时,rootfs 会正确生成。但从安全的角度来看,我不想以 root 身份运行 multistrap/proot,所以我想让 fakeroot 工作。
我的多带配置:
macos - busybox tar 忽略了 Ubuntu 上的 fakeroot,但它可以在 OS X 上运行
在我的 mac 机器上,这只是按预期工作:
调用:
但是在我的虚拟 ubuntu 机器上,我得到:
为什么ubuntu上的busybox不会因为伪造的所有权而“堕落”?
当我使用tar
而不是busybox tar
.
附加信息:
ios - Tweak make package failed: libfakeroot.dylib: mach-o, but wrong architecture
我试图使用Theos对 ios 进行第一次调整。我只是使用了一个默认的调整模板(nic.pl
),没有改变任何东西,当我尝试运行时出现这个错误make package
:
更多信息:
环境:达尔文 MacBook pro 16.7.0 达尔文内核版本 16.7.0
IOS sdk:我使用的是最新版本的SDK(iosdk11)和Xcode(9.0),我也尝试了不同的SDK,但没有运气,我认为这里的问题是假根没有生成兼容的二进制文件。
Fakeroot:我只是做brew install fakeroot
了安装。
libfakeroot 信息:/usr/local/Cellar/fakeroot/1.22/lib/libfakeroot.dylib: Mach-O 64-bit dynamically linked shared library x86_64
.
git - git pull 之后:错误:RPC 失败;curl 56 GnuTLS 接收错误 (-110)
我在笔记本电脑上的 WSL 上使用 Ubuntu 18.04,它与 git 配合得很好。推拉不是问题。不,我从另一个存储库向我的远程存储库推送了一个巨大的目录。当我想把它拉进我的笔记本电脑时,发生了提到的错误。
所以我按照这个GnuTLS recv 错误(-110)中提到的步骤:TLS 连接未正确终止dpkg-buildpackage -rfakeroot -b -uc -us
发布,但在运行命令后出现错误。
错误是:
据我所知,理解 fakeroot 错误或 GnuTLS recv 错误没有任何变化,我犹豫是否盲目尝试我不理解的东西。