V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lvhuiyang
V2EX  ›  Linux

为什么手动编译后的 MongoDB 比官方提供的(包管理器下载)二进制版文件大这么多?

  •  
  •   lvhuiyang ·
    lyu-huiyang · 2020-01-04 19:33:42 +08:00 · 4589 次点击
    这是一个创建于 1793 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司提供的开发机是没有 root 权限的,所以考虑用手动编译的方式来装个软件。在弄 MongoDB 的时候发现编译后的文件巨大,按照之前经验来说包管理器下载的二进制文件也就是几十 M 吧。有没有老哥了解手动编译后的二进制文件跟官方提供的二进制文件差异在哪?或者是有什么关键字我去 Google 搜一下。

    total 3.1G
    -rwxr-xr-x 1 lvhuiyang lvhuiyang 903M Jan  4 18:15 mongo
    -rwxr-xr-x 1 lvhuiyang lvhuiyang 2.2G Jan  4 18:30 mongod
    
    18 条回复    2020-08-03 17:35:11 +08:00
    zhuangzhuang1988
        1
    zhuangzhuang1988  
       2020-01-04 19:46:25 +08:00   ❤️ 1
    是不是编译的 debug 版本?
    hwenwur
        2
    hwenwur  
       2020-01-04 20:24:35 +08:00 via Android   ❤️ 2
    可能是没 strip 吧,关键词 linux strip
    lolizeppelin
        3
    lolizeppelin  
       2020-01-04 20:31:03 +08:00   ❤️ 1
    开发就喜欢瞎几把编译
    tinkerer
        4
    tinkerer  
       2020-01-04 20:39:01 +08:00   ❤️ 1
    这么大也不像是 debug 版的大小啊,静态链接了?
    katsusan
        5
    katsusan  
       2020-01-04 20:42:39 +08:00   ❤️ 1
    linux 下用 readelf,其次就是看编译的时候有没有指定参数比如"-g"这种。
    lvhuiyang
        6
    lvhuiyang  
    OP
       2020-01-04 21:26:37 +08:00
    @zhuangzhuang1988 @tinkerer

    我是根据 Wiki https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

    buildscripts/scons.py mongod mongo

    上述命令编译的,Wiki 好像没有 debug 相关的说明,感谢回复,我再看下。
    lvhuiyang
        7
    lvhuiyang  
    OP
       2020-01-04 21:27:41 +08:00
    @hwenwur @katsusan 感谢回复,我去查下相关的关键词
    lvhuiyang
        8
    lvhuiyang  
    OP
       2020-01-04 21:29:14 +08:00
    @lolizeppelin 老哥消消火,确实对编译这块不熟悉,这不是正在学习么 = =
    CEBBCAT
        9
    CEBBCAT  
       2020-01-04 21:36:57 +08:00   ❤️ 1
    楼主说的几十兆是 apt install 时提示的几十兆吗?那个提示的好像是下载体积
    expy
        10
    expy  
       2020-01-04 21:53:12 +08:00   ❤️ 1
    可以看看发行版的打包脚本,里面有编译参数。
    lvhuiyang
        11
    lvhuiyang  
    OP
       2020-01-04 22:05:58 +08:00
    @CEBBCAT 感谢回复,是类似 apt install 时提示的的文件大小,这个应该是(可能压缩过的)下载体积,确实不能把这个跟最终执行的二进制的相比较。
    lvhuiyang
        12
    lvhuiyang  
    OP
       2020-01-04 22:06:29 +08:00
    @expy 感谢回复,居然还有这种信息,去查下。
    lihongjie0209
        13
    lihongjie0209  
       2020-01-04 22:14:31 +08:00   ❤️ 1
    mikeguan
        14
    mikeguan  
       2020-01-05 14:14:43 +08:00 via Android   ❤️ 1
    很明显没有去掉调试信息啊,一二楼都指明问题了,为啥后面还有疑惑呢?
    有没有调试信息 file path_to_file_name 看下如果是 no strip 就代表包含调试信息,直接 strip path_to_file_name 去掉调试信息
    ipwx
        15
    ipwx  
       2020-01-05 15:19:55 +08:00   ❤️ 1
    编译安装是无计可施的最后一个选项。老哥你这么着急上这招么。。。
    lwp2070809
        16
    lwp2070809  
       2020-01-05 18:10:07 +08:00 via Android   ❤️ 1
    让你们运维安装 docker,把你添加进 docker 组,用 docker 安装 MongoDB
    hiyang
        17
    hiyang  
       2020-08-03 17:11:18 +08:00
    我编译的 4.2.6,情况和你一样,使用 strip 后恢复正常体积

    编译时可以通过什么参数直接去掉调试信息吗
    lvhuiyang
        18
    lvhuiyang  
    OP
       2020-08-03 17:35:11 +08:00
    @hiyang 这个不是很清楚 ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2790 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.