cloudfundry 中warden搭建python2.7环境

最近一段时间对warden深入的了解和研究,发现了不少问题,由于cloudfundry推出比较早,始于(2011年4月12日),warden作为核心的资源隔离容器,更是在第二版本中才推出。

很长一段时间觉得warden是一个虚拟的linux环境。这样理解本没有什么错误,但是仔细想想,warden容器可以创建很多的Container,其实每一个Container才真正是一个虚拟的linux环境,其实warden有点类似于vmware workstation,一个虚拟化管理工具。如果在warden部署环境,每次都在container中创建的话,有很多问题:

1.权限问题:不能支持系统权限以及sudo都不可以运行,这个是他的局限性。

2.环境部署问题:部署的软件都不可以在warden的系统路劲,(访问不了),每次执行我们需要他的绝对路劲,这个很蛋疼。

3.生命周期问题:一旦container销毁了,就完蛋了,啥也没有了,新的container还要重新装。

综合上面问题,在container中部署环境无疑使不明智的,而且极其浪费资源,从而我们需要另辟蹊径,我们注意到在/tmp/warden/rootfs/这个目录,其实这个相当于warden的系统目录,这个管理着所有container的运行环境以及配置等等文件。

用chroot “/tmp/warden/rootfs” env -i PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"  /bin/bash命令,这个命令改变了root跟目录,这样我们在运行的时候我们命令窗口默认的跟目录和warden的跟目录一样了,这个时候我们在这个跟目录装软件就可以了。

运行apt-get install ruby,安装好ruby,然后我们进入warden中,运行

run --handle **********  --script 'ruby -v'

结果显示ruby 1.8.7 (2010-01-10 patchlevel 249)[x86_64-linux]

说明安装成功啦。。。

我们我们在安装一个python2.7.只需要在chroot这个命令窗口安装就可以了,但是这个时候运行

run --handle **********  --script 'python -v'

结果显示还是2.6.5

因为这个是warden默认安装的python,我们运行

run --handle **********  --script '/usr/local/bin/python -V'

显示python2.7.5

说明安装时成功了,但是被系统默认的覆盖掉了

这个时候我们把系统默认的链接给删了,

cd /usr/bin/  --到默认的额系统目录

rm -f python --删除链接

ln -s /usr/local/bin/python /usr/bin/python  --新的目录指向新的链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值