问题标签 [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.

0 投票
2 回答
1385 浏览

rpm - RPM 的 fakeroot 替代品

我研究 dpkg 和 rpm 包系统。我在 dpkg 手册中发现使用 fakeroot 作为非 root 用户正确构建包的建议。但是对于 RPM 包,我没有找到替代实用程序。我阅读了几本构建 rpm 包的手册,他们建议以 root 身份构建 rpm 包,或者创建特殊用户并使用 rpm-setuptree 实用程序(当然,可能是手册不好)。

有 RPM 构建的 fakeroot 替代方案吗?并且可能是 RPM 不需要 fakeroot 替代品,使用正确的构建选项和规范文件可以帮助我避免所有问题?

0 投票
1 回答
3955 浏览

linux - Linux fakeroot 混淆

我对 fakeroot 实用程序有很多困惑。我正在尝试将字符节点添加到 /dev 文件夹到两个 rootfs。rootfs_1 的所有者是我自己,而第二个的所有者是 root。

  1. rootfs_1 所有者是我。
    一种。如果我做 ls -l. 我将所有者视为“我我”
    b. 我尝试在 rootfs_1/dev 中使用 mknod 创建一个节点,但它失败了。
    C。$fakeroot 命令通过。
    d。ls -al。我将所有者视为 root (我知道这是假的)
    e。现在我可以使用 mknod 在 rootfs_1/dev 中创建一个节点。
    F。退出
    g。新创建的节点的所有者是我所期望的“我”。

  2. rootfs_2 所有者是 root
    a。ls -l。我将所有者视为“root root”
    b。我尝试在 rootfs_2/dev 中使用 mknod 创建一个节点,但它失败了。(预期)
    c。$fakeroot 命令通过。
    d。现在我尝试创建一个节点,但它失败了。

现在,我知道这种行为是预期的。但是我对 fakeroot 的工作原理以及系统调用通过 fakeroot 的流程感到困惑。我认为 fakeroot 做了 LD_PRELOAD 把戏。

任何人都可以详细解释为什么案例 1 有效而案例 2 失败。

谢谢

0 投票
1 回答
2630 浏览

shell - 使用 fakeroot/fakechroot 来 tar 包

有一个 foo.tar.gz 源它将安装到 /lib/modules。但是,我不是root,没有足够的权限。我正在尝试编写一个脚本来自动构建包。

表明

我不想真正放入/lib,也许我可以放入$HOME/rootfs。

使用 fakeroot 的正确方法是什么?或者,是否有一个简单的脚本可以让我追踪如何使用 fakeroot?

0 投票
2 回答
1230 浏览

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)

0 投票
0 回答
526 浏览

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

发现这个问题没有任何解决的答案。请帮忙

0 投票
1 回答
1670 浏览

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 中可能存在的错误?

0 投票
0 回答
437 浏览

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 工作。

我的多带配置:

0 投票
2 回答
139 浏览

macos - busybox tar 忽略了 Ubuntu 上的 fakeroot,但它可以在 OS X 上运行

在我的 mac 机器上,这只是按预期工作:

调用:

但是在我的虚拟 ubuntu 机器上,我得到:

为什么ubuntu上的busybox不会因为伪造的所有权而“堕落”?

当我使用tar而不是busybox tar.

附加信息:

0 投票
0 回答
188 浏览

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.

0 投票
0 回答
307 浏览

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 错误没有任何变化,我犹豫是否盲目尝试我不理解的东西。