Capistrano开发日记(2)

Capistrano的应用场景是待部署的服务器可以直接访问svn、cvs等源代码管理服务器,所以代码是直接checkout到服务器上的。但是实际的情况常常是,源代码管理服务器处于公司内网,而待部署的的服务器处于外网。这种情况早就有人遇到过了,可以通过修改update_code这个任务来实现的。先是获取代码到本地机器,然后压缩成一个tar包,再传到服务器上并展开。这主意不错,但是实际应用的时候却发现
摘要由CSDN通过智能技术生成
Capistrano的应用场景是待部署的服务器可以直接访问svn、cvs等源代码管理服务器,所以代码是直接checkout到服务器上的。但是实际的情况常常是,源代码管理服务器处于公司内网,而待部署的的服务器处于外网。这种情况 早就有人遇到过了,可以通过修改update_code这个任务来实现的。先是获取代码到本地机器,然后压缩成一个tar包,再传到服务器上并展开。

这主意不错,但是实际应用的时候却发现tar文件无法在服务器上正常解开。一开始我还以为是用windows版本的tar工具bsdtar有问题,换了WinRar来压缩,结果都一样。仔细看,原来是上传前后的字节大小并不一致。这似乎应该是文件打开模式的问题,文本模式和二进制模式?

代码是这样的:

put(File.read(src),dest)

我百思不得其解的是,File.read到底返回什么东西?如果是整个文件的内容,那么文件很大怎么办?而且,半天我也找不到File.read的定义。

在Google论坛上 发了帖子,有热心人指出了,在Window上File.read是以文本模式打开和读取的,所以有问题。建议换成

body=File.open(src, "rb") { |f|  f.read }
put(body, dest)

就没
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
脚本语言包括Python、JavaScript、Ruby、Perl、PHP、Lua、Shell等。 理论上,脚本语言具有解释执行、动态类型、自动内存管理等特点。实际上,脚本语言常用于快速开发、自动化任务、Web开发、数据处理等领域。 以下是20个脚本语言的使用案例: 1. Python编写爬虫程序,自动抓取网页内容 2. JavaScript编写网页交互特效、动画效果 3. Ruby编写Web应用程序,如Ruby on Rails框架 4. Perl编写文本处理程序,如正则表达式工具 5. PHP编写动态网页,如WordPress、Drupal等CMS系统 6. Lua编写游戏脚本,如World of Warcraft、Minecraft等游戏 7. Shell编写系统管理脚本,如自动化部署、备份脚本等 8. Python编写机器学习程序,如TensorFlow、PyTorch等框架 9. JavaScript编写前端框架,如React、AngularJS等 10. Ruby编写测试框架,如RSpec、Cucumber等 11. Perl编写网络编程程序,如CGI、FastCGI等 12. PHP编写电子商务网站,如Magento、PrestaShop等 13. Lua编写嵌入式系统程序,如OpenWrt路由器系统 14. Shell编写自动化测试脚本,如Selenium、Robot Framework等 15. Python编写数据分析程序,如Pandas、NumPy等库 16. JavaScript编写移动应用程序,如React Native、Ionic等 17. Ruby编写系统脚本,如Capistrano、Chef等 18. Perl编写数据库程序,如DBI、DBD等 19. PHP编写社交网络网站,如Facebook、Twitter等 20. Lua编写AI程序,如Torch等库。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值