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

32 天前
 julycx

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

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

linux 提示没有 mini_installer 命令

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

1363 次点击
所在节点    Linux
11 条回复
LXGMAX
32 天前
因为编译出来的文件是代 debug symbol 的,使用 aarch64 gcc strip 工具将二进制文件精简即可
julycx
32 天前
@LXGMAX 感谢回复你提到的使用 aarch64 gcc strip 工具将二进制文件精简即可
这一部分似乎是有问题的
按照你说的将 out/amd/chrome
该二进制文件进行精简
哪怕我不精简 直接把 out/amd/chrome 复制放到乌班图里去跑 也会报错缺少各种依赖
直接将 out/amd/ 目录打包放在乌班图
在该目录下运行 out/amd/chrome 就可以
julycx
31 天前
@LXGMAX
单独复制 chrome 二进制文件到乌班图 运行./chrome
报错 icu_util.cc Invalid file descriptor to ICU data received
后来发现打包 out/amd/到乌班图运行
out/amd/chrome
可正确运行

这才是我疑惑的点
hefish
31 天前
libc6 的版本不一样吧。
hefish
31 天前
@julycx 之前在 debian 里编译的 go 应用,传到 alpine 里面也不能跑。 在 alpine 里重新编译了才行。 感觉是底层的 glibc 库的原因。
julycx
31 天前
@hefish 很有可能但是没办法 我是在官方指定的 unbuntu 版本去编译
然后放到国产系统 uos 里去跑 编译好的文件夹整体打包可以直接运行
但是只 copy chrome 二进制文件去跑就提示缺少依赖
国外技术论坛也没有找到解决方法 似乎 linux 版本确实不支持编译可单一执行文件
chingyat
31 天前
@hefish #5 alpine 不能跑是因为 alpine 不用 glibc 而用 musl
hefish
31 天前
@chingyat 嗯嗯,是这个意思。。
chingyat
31 天前
@julycx #3 你需要把依赖一起复制过去
chingyat
31 天前
@chingyat #7 如果需要打包成单文件可以尝试 AppImage
dwSun
31 天前
试试 upx 看看,各平台都有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1091113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX