warden是cloud foundry v2中用来进行进程、资源隔离的一个重要组件,但是由于warden本身比较复杂,因此我在warden的setup,start,以及生成的stemcell中花费了大量的时间。warden setup时,会使用debootstrap,从宿主机器上克隆一个stemcell的镜像。
我的问题在于,虽然环境变量成功clone了,但是文件共享这里却出了问题。
比如镜像挂载,等等。所以我宿主机器的软件,在stemcell中都没有,很多需要手动安装
首先进入/var/warden/rootfs
sudo chroot .
apt-get update
前面三个可以apt-get install
apt-get install zip
apt-get install quota
apt-get install gcc
apt-get install wget后面两个要使用源码安装。在stemcell中用rbenv安装ruby时,总是会出问题,于是只能源码安装了,在安装前,必须安装一些依赖库。
安装ruby前,先安装yaml,否则报错
$ wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
$ tar xzvf yaml-0.1.4.tar.gz
$ cd yaml-0.1.4
$ ./configure --prefix=/usr/local
$ make
$ make install
然后安装ruby
下载ruby-1.9.3-p392.tar.gz
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
解压,tar -xzvf ruby-1.9.3-p392.tar.gz
cd ruby-1.9.3-p392
./configure --prefix=/usr --enable-shared --disable-install-doc --with-opt-dir=/usr/local/lib
编译并安装,即make && make install
(注意:要确保当前账户能获取并已取得root权限,否则会安装失败)
最后,还需要安装curl
apt-get install curl 因为DEA在编译buildpack时,需要下载一些framework