在CentOS上安装gcc

我想在CentOS上安装node.js

  • 不幸的是,我无法通过命令行在centOS上安装gcc(以及所有与它一起出现的东西,以便让节点进行编译)。

到目前为止,我已经尝试过

  • sudo yum install gcc我得到以下错误
 Downloading Packages: Running rpm_check_debug Running Transaction Test memory alloc (8 bytes) returned NULL. 

是的,我已经把ulimit首选项设置为“无限制”。


  • 我也试图单独安装依赖,虽然这只是一对夫妇可能,而其余(即glibc)需要安装依赖关系,并给我同样的错误: memory alloc (8 bytes) returned NULL.

  • 我也尝试安装各个依赖项(即glibc)的rpm的rpm,但是rpm引发了相同的memory alloc (8 bytes) returned NULL.错误memory alloc (8 bytes) returned NULL. 这非常烦人。

我所推断的

  • 我认为(也希望)它可能是一个简单的首选项问题,因为我能够安装更小的文件(<10MB或者其他),没有错误。

说实话? 在像你这样的情况下,内存太less,你需要探索的一个select是在其他系统上进行编译,然后将结果带到资源受限的服务器上。 这实际上就是安装一个RPM,你可以做一个类似的事情,而不需要学习如何打包RPM。

  1. 在具有更多资源的系统上,将其configuration为与您的小型VPS相同。 硬件将有所不同,但我不相信这个问题node.js
    • 这可以像在笔记本电脑上运行VirtualBox中的CentOS 6.3一样简单,或者在云提供程序上花费几个小时来实现更大的实例types,并在那里执行。
  2. 编译node.js
    • 运行configure&make,但是不要make install
  3. 放大编译的目录
  4. 转移到你的凌晨VPS和提取
  5. 运行make install

这应该起作用,因为安装脚本通常更关心的是移动文件,而不是编译内容,因此内存很轻。

你在openvz,这导致我怀疑主机超卖。 因为你不能交换它通常应该有突发性的内存来捕捉暂时的内存短缺。 这是openvz的一个已知问题,但是除非主机拥有太多虚拟机,否则这个问题并不成问题。

您需要为您的实例订购额外的内存,或者将vps移到其他地方。

自从我被遗忘了之后,我就厌倦了许多烦恼之一,因为我完全拒绝使用OpenVZ。 永远。

如果您必须使用VPS,请使用基于KVM,VMware或Xen的。 (按我的个人喜好排列)

当我被困在这些糟糕的小VPS服务器上时,我可以通过禁用插件来解决这个错误。 例如:

 yum --disableplugin=fastestmirror groupinstall "Development Tools" 

虽然有时甚至还不够,我不得不closures正在运行的服务来释放足够的RAM来安装软件包。 让我告诉你,这很有趣。

看起来你的机器需要比当前可用的内存多得多的内存来工作。 所以尝试添加 (即使是暂时)足够的交换空间,然后再试一次。