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 目前是这样搞的
|