升级CentOS 4.8服务器上的coreutils

我想使用选项oflag=append dd操作将内容追加到文件。 这是为了增加循环设备底层文件的大小,在创build一个新的较大的文件太耗费资源的情况下。

可能dd不是这个最好的select,但是我知道的最好。 更好的build议欢迎!

我的CentOS 4.8 X86_64服务器正在运行coreutils 5.2.1。 随此版本的coreutils提供的dd版本不支持oflag选项。 没有更新的版本出现在官方回购。

我注意到最新版本的coreutils是8.5,并且假定在5.2.1和8.5之间增加了oflag选项。

假设我需要将coreutils升级到比CentOS 4.8 x86_64目前提供的更新的版本:

  • 升级coreutils是否安全?
  • dd是支持oflag选项所需的最低版本?
  • 从哪里可以得到一个RPM? 我不想从源代码编译。

我不知道有什么替代方法可以随心所欲地做你想做的事情。

升级看起来很危险; 在Coreutils的二进制文件的长长的列表中的某个地方,这个可能性非常赞成向后不兼容的变化。 几乎你的系统上的每一个脚本都使用了coreutils的二进制文件,所以一个向后不兼容的错误更改可能会对你的机器造成严重破坏。

下一个选项:获取这个二进制RPM。 我认为这不太可能,除非你自己build造。

你可以放心的做的是构buildcoreutils源代码(从来没有这样做过,但它可能只是一个configuration,make,make install),直到包含'make'部分。 不要做“安装”。 然后,从新生成的二进制文件中select新的dd,将其放在/ bin中作为dd_new,这样你就可以继续使用了。 安然无恙。

也就是说,提供新的coreutilsbuild立在你的旧glibc 🙂

我认为你可以用“seek”来完成你想要的dd任务,而无需构build一个新的coreutils。

 ls -l loopfile 

获得大小,除以1024,然后:

 dd if=/dev/zero of=loopfile bs=1M seek=1024 count=2048 

(这是写在1M块,所以跳过1G的输出,然后加2G的文件。确保块大小均匀划分到文件大小。很可能你需要一个1K块大小和一个更大的查找和计数)

我会做一些小规模的实验。 您可能还需要“ conv=notrunc ”。