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

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

  •  
  •   julycx · 40 天前 · 1378 次点击
    这是一个创建于 40 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条附言  ·  40 天前
    标题取得部队 不是 chrome 是 Chromium
    第 2 条附言  ·  31 天前
    找到解决方法 给后来人:
    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  
       40 天前
    因为编译出来的文件是代 debug symbol 的,使用 aarch64 gcc strip 工具将二进制文件精简即可
    julycx
        2
    julycx  
    OP
       40 天前
    @LXGMAX 感谢回复你提到的使用 aarch64 gcc strip 工具将二进制文件精简即可
    这一部分似乎是有问题的
    按照你说的将 out/amd/chrome
    该二进制文件进行精简
    哪怕我不精简 直接把 out/amd/chrome 复制放到乌班图里去跑 也会报错缺少各种依赖
    直接将 out/amd/ 目录打包放在乌班图
    在该目录下运行 out/amd/chrome 就可以
    julycx
        3
    julycx  
    OP
       40 天前
    @LXGMAX
    单独复制 chrome 二进制文件到乌班图 运行./chrome
    报错 icu_util.cc Invalid file descriptor to ICU data received
    后来发现打包 out/amd/到乌班图运行
    out/amd/chrome
    可正确运行

    这才是我疑惑的点
    hefish
        4
    hefish  
       40 天前
    libc6 的版本不一样吧。
    hefish
        5
    hefish  
       40 天前
    @julycx 之前在 debian 里编译的 go 应用,传到 alpine 里面也不能跑。 在 alpine 里重新编译了才行。 感觉是底层的 glibc 库的原因。
    julycx
        6
    julycx  
    OP
       40 天前
    @hefish 很有可能但是没办法 我是在官方指定的 unbuntu 版本去编译
    然后放到国产系统 uos 里去跑 编译好的文件夹整体打包可以直接运行
    但是只 copy chrome 二进制文件去跑就提示缺少依赖
    国外技术论坛也没有找到解决方法 似乎 linux 版本确实不支持编译可单一执行文件
    chingyat
        7
    chingyat  
       40 天前   ❤️ 1
    @hefish #5 alpine 不能跑是因为 alpine 不用 glibc 而用 musl
    hefish
        8
    hefish  
       40 天前
    @chingyat 嗯嗯,是这个意思。。
    chingyat
        9
    chingyat  
       40 天前
    @julycx #3 你需要把依赖一起复制过去
    chingyat
        10
    chingyat  
       40 天前
    @chingyat #7 如果需要打包成单文件可以尝试 AppImage
    dwSun
        11
    dwSun  
       39 天前
    试试 upx 看看,各平台都有
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:56 · PVG 23:56 · LAX 07:56 · JFK 10:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.