只需输入http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz在浏览器上工作正常,但我试图从有限的 CLI 环境下载公用事业。
下面只返回一个空文件:
curl http://downloads.sourceforge.net/project/romfs/genromfs/0.5.2/genromfs-0.5.2.tar.gz
Run Code Online (Sandbox Code Playgroud)
如何使用 curl 从 sourceforge 获取 genromfs-0.5.2.tar.gz?
当我运行时,sh /media/cdrom/VBoxLinuxAdditions.run我收到以下警告消息:
You appear to have a version of the VBoxGuestAdditions software
on your system which was installed from a different source or using a
different type of installer. If you installed it from a package from your
Linux distribution or if it is a default part of the system then we strongly
recommend that you cancel this installation and remove it properly before
installing this version. If this is simply and older or a damaged
installation you …Run Code Online (Sandbox Code Playgroud) 对于我正在学习的操作系统课程,我需要运行 Freebsd5.4。由于我不想在 git 发布之前发布的 bsd 版本上尝试构建 git,我认为git从 Arch over使用它会很整洁sshfs。
无论如何,我找到了一个建议我给出选项的解决方法。sshfs-o workaround=rename
看起来git很开心,但我对刚刚发生的事情感到很困惑......
关于解决方法的所有手册页说的是
fix renaming to existing file
Run Code Online (Sandbox Code Playgroud)
但我完全不明白这意味着什么......
该选项究竟有什么作用?
我想要在我的计算机上有一个独立的(来宾)Linux 环境,我可以在不担心主机的情况下搞砸。例如,在没有包管理的情况下从源代码安装很多东西,污染环境环境变量等,然后在旧客户变得过于混乱时产生另一个客户环境。
我在使用 Virtualbox 和 Tinycore linux 时获得了一些乐趣,但至少我使用它的方式,我认为 Virtualbox 开销不是完全必要的。一方面,如果可能的话,我想使用与我的主机相同的内核。
此外,当我浏览了 Linux From Scratch 教程时,我对 有了一些了解chroot,这似乎是我正在寻找的东西。不过说实话,在 LFS 中有很多我并不真正理解的东西,chroot 就是其中之一。chroot如果我不是很害怕它可能会破坏我当前的环境,我会尝试玩弄。
所以我正在寻找一个虚拟化程序,它利用我在 linuxbox 上的事实(我正在使用 PinguyOS btw)来加速虚拟化,或者关于如何将 chroot 用作隔离操场的参考。
所以我有一个小脚本来运行一些测试。
javac *.java && java -ea Test
rm -f *.class
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我运行脚本时./test,即使测试因为rm -f *.class成功而失败,它也会返回成功退出代码。
我能想到的让它做我想做的事情的唯一方法对我来说很丑陋:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个常见问题——执行任务,清理,然后返回原始任务的退出代码。
这样做的最惯用的方法是什么(在 bash 或一般的 shell 中)?
我把一个带有busybox的小系统、一个Linux内核和一个小文件系统放在一起,把东西放进去,因为它似乎是必要的——我不知道我是否从中学到了很多东西,但我开始的时候很漂亮毫无头绪,所以这肯定不是一个顺利的旅程。所以我怀疑我的文件系统中可能缺少一些东西,但我真的不确定接下来可能需要添加什么。
我可以通过输入以下 grub 命令来引导到我的系统:

一旦启动消息停止,我就剩下这个(我不确定它是否相关,但那里有一行说:)VFS: Mounted root (ext3 filesystem) readonly on device 8:1:

我无法修改文件系统:

这很有趣,因为我可以手动挂载 /proc 就好了:

为什么我的文件系统是只读的?我需要设置什么才能让它工作?
我在玩 chroot 环境,我想要一个可移植的 C 编译器,这样我就可以在每个环境中轻松设置一些基本的构建工具,而不必移动太多的库。
对于我想做的事情,gcc 似乎很臃肿,但是如果构建静态 gcc 相当容易,我不会介意几十兆字节。
我也在看 Tiny C Compiler,它更小,但看起来仍然有令人印象深刻的功能集。但是,在源目录中运行 ./configure --help 没有列出任何用于静态构建 tcc 的选项,我不确定否则如何完成。
出于教育目的,我想从符合 POSIX 的基础开始,包括 shell、基本实用程序和 ANSI C 编译器,然后看看我可以通过将包放在一起来构建什么样的环境。
但是,我遇到的大多数符合 POSIX 的最小操作系统似乎都是嵌入式和/或专有的。有没有我可以在 Virtualbox 下轻松运行的开源系统?
我已经搜索了一些关于从头开始构建这样一个环境的内容,但似乎只是获得一个可启动/可用的环境需要做很多工作,更不用说符合 POSIX 的环境了。有一天我可能会尝试构建一个 POSIX 操作系统,但我首先想事先对计算机更加精通。
笔记:
我想我在某处听说过 Linux 并不完全符合 POSIX,但只要我能编译和构建一些更常见和必不可少的开源工具(如 wget 和 w3m),我就会很高兴,无论是否使用Linux内核。我认为操作系统可能附带的其他基本组件也是如此(例如 glibc)
看起来我可以通过 nautilus 到达废纸篓,但是当我查看属性给出的位置时,我看到了“trash:///”。
但我不能“cd垃圾://”。废纸篓在哪里?一般来说,如果我可以在 nautilus 中找到一个文件,我如何从终端到达那里?过去我也遇到过一些类似的问题,安装媒体,所以一般的答案将不胜感激。
如果相关,我正在使用 PinguyOS。
以下命令工作正常:
sed s/input/raw_input/ p.py >p2.py && mv p2.py p.py
Run Code Online (Sandbox Code Playgroud)
但是,以下命令会将 p.py 转换为空文件:
sed s/input/raw_input/ p.py >p.py
Run Code Online (Sandbox Code Playgroud)
下面的代码也将 p.py 变成了一个空文件:
sed s/input/raw_input/ p.py | cat > p.py
Run Code Online (Sandbox Code Playgroud)
为什么最后两个命令没有按预期运行?特别是为什么 p.py 是空的?