![]() | 2 kodango 2015-02-23 15:27:52 +08:00 基本上是 rpm 包,少数 java 应用可能会使用 tar 包。 |
3 huatai 2015-02-23 15:41:37 +08:00 生产环境即使需要自定义(编译)安装,也会尽可能制作成rpm包来部署。 因为一个运维工程师面对的是数千或数万的服务器(或虚拟机)。 现在兴起的Docker/CoreOS部署是另外一种运维架构,但也会以二进制方式完成部署,采用了Layer https://docs.docker.com/terms/layer/ 不知道有没有使用 Gentoo 来运行生产环境的? |
4 invite 2015-02-23 16:02:54 +08:00 生产服务器一般是不让你在上面编译的. |
![]() | 5 ryd994 2015-02-23 16:10:13 +08:00 via Android 编译的话要装很多东西啊,生产装这么多是作死 而且u no test?既然测试,一般都找一样的机器吧,那么反正都编译好了,就拿测试好的用,别作。 |
![]() | 6 bombless 2015-02-23 16:40:38 +08:00 生产服务器一般是不让你在上面编译的+1 |
![]() | 7 msg7086 2015-02-23 21:36:42 +08:00 虽说源码base是一个,不过二进制包有千千万万其他人帮你测试,而你自己手工编译,你就是这份二进制的第一个吃螃蟹的人。 |
8 zinev OP 我自己目前来说最正式的一个服务器就是申请的免费试用的Azure CN,装的CentOS的一个变种,仅仅yum装了nginx、mysql-server、php-fpm、php-mysql这几个包,最后还是挂了,连SSH都上不去了,数据都取不回来 |
9 pandada8 2015-02-23 22:03:50 +08:00 恩……手上的VPS两个Ubuntu一个Arch 打算全部换成基于Docker的……这样基本就不用关心底层系统了 一般来说除非有奇怪的依赖源里没有才会考虑自己编译 我倒是很关心豆瓣使用Gentoo作为服务器系统的心路历程XD |
11 zinev OP @ryd994 我刚想了想,不是因为那几个包弄崩的,应该是我手贱在上面sudo yum update && sudo yum upgrade |
13 zinev OP |
![]() | 14 haofly 2015-02-23 23:04:53 +08:00 推荐用二进制,如果是编译,不仅浪费大量的时间,而且不方便多人共同运维,上次叫一个人帮忙搭个环境,结果发现编译的是一个非常老的版本,并且连他都不知道哪些东西放在哪儿了。。。 |
![]() | 15 frankzeng 2015-02-23 23:09:45 +08:00 正式的生产环境是不可能用编译方式的,都是在一台机器上编译完成后把二进制文件往其他机器上复制, 所有的机器的操作系统都是一样的,库文件也一样,只要在一台机器编译完成后就可以随便往其他机器上复制,如果有1000台以上的服务器,更换文件都要有多台分发的方式上线,不然上线非常漫长,等到你想吐。 |
![]() | 16 O21 2015-02-23 23:23:41 +08:00 via iPhone 你在生产服务器编译会造成大量资源占用的 |
![]() | 17 branchzero 2015-02-23 23:50:22 +08:00 编译不便于维护,节点少还好说,如果手头有一大票节点要维护就悲催了。 而且有时候编译会遇到不少的坑,排错又会花掉你一大票时间。 |
![]() | 18 onlyice 2015-02-23 23:56:33 +08:00 via Android 有人像我司这么奇葩吗?现在其他机器上编译成二进制,再打包上运维系统,分发到机器上。。 |
19 snnn 2015-02-24 00:15:24 +08:00 哥们儿,如果你才大二,好好学Python/Java/C++吧。也许你毕业的时候,运维就不存在了…… 因为运维做的事情越来越多的被自动化了,人工参与越来越少,职位需求量越来越少。 |
![]() | 20 phoenixlzx 2015-02-24 00:52:16 +08:00 @snnn 所以运维的事情不就是在编写这些自动化的东西吗... |
![]() | 21 Mars 2015-02-24 03:00:06 +08:00 别编译了。。。太费时间,如果服务器多的话,累死你。。。现在的服务器性能都很强,编译出来的东西,性能优势不明显。 |
![]() | 22 Twinkle 2015-02-24 03:37:51 +08:00 感觉二进制没啥不好,当然就我的使用程度来讲,看法可能还是非常肤浅的 |
![]() | 24 onlyice 2015-02-24 08:58:07 +08:00 via Android @ryd994 如果编的是 Apache, Python, MySQL 这种东西呢?生产机器上连个包管理系统都没有,这些基础的包都要自己编译,相当要命 |
![]() | 25 zent00 2015-02-24 09:03:18 +08:00 via Android @snnn 编写这些自动化程序的人,还有监控这些程序是否被正确执行的人,以及发现异常后来处理的人是谁?依旧是运维。虽然现在有一种岗位叫“运维开发”,但其核心工作内容还是围绕着“运维”这件事。 |
![]() | 26 hitsmaxft 2015-02-24 09:56:47 +08:00 via iPhone 生产环境是发布最终代码的地方。自然是用语言规定的最终格式。编译在编译机器上搞定,不是运维人员的范畴。 |
![]() | 28 AstroProfundis 2015-02-24 14:37:01 +08:00 内网自建软件源,专用服务器打包过后放到源里面,需要的机器自己从源安装,本质上还是二进制分发 |
29 julyclyde 2015-02-24 19:41:40 +08:00 一是编译慢,二是无法表达依赖关系,容易缺feature |
31 dreamtrail 2015-02-25 23:37:34 +08:00 早就不自己编译了,维护起来太麻烦,依赖关系自己很难搞清楚。。 |
32 JohnVon 2015-02-26 14:31:27 +08:00 在一台机器上编译解决完所有依赖后打包,传输到目标机器s解压,设置path 目前是这样搞的 |