chrome Linux 平台 编译为 Linux amd64 后 如何打包成更小的包? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
julycx
V2EX    Linux

chrome Linux 平台 编译为 Linux amd64 后 如何打包成更小的包?

  •  
  •   julycx 2024-11-20 11:31:16 +08:00 2073 次点击
    这是一个创建于 393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    chrome 在编译后 out/amd 下文件很大

    windows 平台可以 mini_installer 打成更小的 exe

    linux 提示没有 mini_installer 命令

    直接把整个 out/amd 打包成.deb 文件会导致文件很大 2 个 G 只打包 out/amd/chrome 成.deb 会提示缺少各种依赖 请问打包成 linux 平台的使用的 chrome 核心 有 windows 平台的这种 mini_installer 吗

    第 1 条附言    2024-11-20 17:07:02 +08:00
    标题取得部队 不是 chrome 是 Chromium
    第 2 条附言    2024-11-29 09:37:53 +08:00
    找到解决方法 给后来人:
    https://groups.google.com/a/chromium.org/g/chromium-dev/c/ZoJbiIxHf0o

    gn gen out/Default --args="is_official_build=true symbol_level=0" && ninja -C out/Default chrome && python tools/mb/mb.py isolate out/Default chrome && python tools/mb/mb.py zip out/Default chrome chrome-linux-x64.zip
    11 条回复    2024-11-21 10:23:57 +08:00
    LXGMAX
        1
    LXGMAX  
       2024-11-20 14:00:13 +08:00
    因为编译出来的文件是代 debug symbol 的,使用 aarch64 gcc strip 工具将二进制文件精简即可
    julycx
        2
    julycx  
    OP
       2024-11-20 14:40:39 +08:00
    @LXGMAX 感谢回复你提到的使用 aarch64 gcc strip 工具将二进制文件精简即可
    这一部分似乎是有问题的
    按照你说的将 out/amd/chrome
    该二进制文件进行精简
    哪怕我不精简 直接把 out/amd/chrome 复制放到乌班图里去跑 也会报错缺少各种依赖
    直接将 out/amd/ 目录打包放在乌班图
    在该目录下运行 out/amd/chrome 就可以
    julycx
        3
    julycx  
    OP
       2024-11-20 15:23:32 +08:00
    @LXGMAX
    单独复制 chrome 二进制文件到乌班图 运行./chrome
    报错 icu_util.cc Invalid file descriptor to ICU data received
    后来发现打包 out/amd/到乌班图运行
    out/amd/chrome
    可正确运行

    这才是我疑惑的点
    hefish
        4
    hefish  
       2024-11-20 15:48:38 +08:00
    libc6 的版本不一样吧。
    hefish
        5
    hefish  
       2024-11-20 15:49:43 +08:00
    @julycx 前在 debian 里编译的 go 应用,传到 alpine 里面也不能跑。 在 alpine 里重新编译了才行。 感觉是底层的 glibc 库的原因。
    julycx
        6
    julycx  
    OP
       2024-11-20 16:11:58 +08:00
    @hefish 很有可能但是没办法 我是在官方指定的 unbuntu 版本去编译
    然后放到国产系统 uos 里去跑 编译好的文件夹整体打包可以直接运行
    但是只 copy chrome 二进制文件去跑就提示缺少依赖
    国外技术论坛也没有找到解决方法 似乎 linux 版本确实不支持编译可单一执行文件
    chingyat
        7
    chingyat  
       2024-11-20 16:54:53 +08:00   1
    @hefish #5 alpine 不能跑是因为 alpine 不用 glibc 而用 musl
    hefish
        8
    hefish  
       2024-11-20 16:55:51 +08:00
    @chingyat 嗯嗯,是这个意思。。
    chingyat
        9
    chingyat  
       2024-11-20 16:56:37 +08:00
    @julycx #3 你需要把依赖一起复制过去
    chingyat
        10
    chingyat  
       2024-11-20 16:57:51 +08:00
    @chingyat #7 如果需要打包成单文件可以尝试 AppImage
    dwSun
        11
    dwSun  
       2024-11-21 10:23:57 +08:00
    试试 upx 看看,各平台都有
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     974 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:44 PVG 06:44 LAX 14:44 JFK 17:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86