V2ray-core: release能不能用tar.gz格式?

Created on 14 Mar 2020  ·  10Comments  ·  Source: v2ray/v2ray-core

很多Linux系统是不自带unzip的,需要安装。tar.gz可以直接解压,一键脚本也可以免去安装unzip的步骤。是否有理由必须用zip?

Enhancement Stale

Most helpful comment

目前打包脚本遗留问题比较多,如果开始解决的话,应该会使用tar.xz

All 10 comments

https://v2ray.com/developer/intro/compile.html#scriptbuild

tgz 最后打包成tar.gz而不是zip格式

自己编译就好了。

自己编译就好了。

@IceCodeNew 自己编译和 Github releases 有任何关系吗?tar.gztar.xz 显然对 *nix 是更好的选择(我更推荐后者)。

(说真的,真搞不懂楼下 @okudayukiko 看不懂也要评论一句,这和安装脚本一点关系都没有。使用 tar 打包这类 *nix 二进制是普遍做法,随便找一个项目都是如此。)

自己编译就好了。

@IceCodeNew 自己编译和 Github releases 有任何关系吗?tar.gztar.xz 显然对 *nix 是更好的选择(我更推荐后者)。

你这话讲的很奇怪,官网上写的明明白白 GitHub release 就是用这页上面写的方式构建出来的,你反过来问我这两者之间有没有什么关系?
你的主要困惑在于你用的 Linux 发行版没有预置 unzip 工具,所以需要额外安装,但是我不知道你有没有试过,反正就在前几天我用官方的构建脚本加 tgz 参数打包出 tar.gz 包以后,bash <(curl -L -s https://install.direct/go.sh) -l v2ray.tar.gz 是无法安装的。
所以你的这个提议还需要官方修改安装脚本才能良好实现。后继有人如果愿意出面帮你解决这个问题,建议注意一下我上面说到的问题。


BTW 给我 thumb down 的人不知道你们玩够了没有,好心给指条路还不对了我。艹

发行包zip内还包含了地址库等其他文件。使用打包脚本可方便地制作出的发布包。

wget https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/user-package.sh) 
chmod 755 user-package.sh

以上脚本直接执行即可在当前目录生成类似v2ray-custom-linux-amd64-20190710-000000.zip的文件,即为发布包。
这个脚本可用一些参数编译出自行定制的发布包

  • windows 构建windows版本的发布包
  • darwin 构建darwin(MacOS)版本的发布包
  • tgz 最后打包成tar.gz而不是zip格式
  • 386 构建成32位程序
  • arm 构建适合arm架构CPU的程序,arm arm64
  • mips 同上,参照golang的交叉编译文档
  • nodat 不要包含地址库geoip.dat geosite.dat, 可以减小发布包的大小
  • noconf 不要包括范例json, systemd/systemv等配置文件
  • nosource 不要执行go get ...,避免已经拉取到本地的v2ray源码被覆盖
    以上参数没有次序要求,只需要按需传给脚本

你现在想要发布包是 tar.gz/tar.xz 格式,即为你想要自行定制发布包,这里我再重复一遍你想干的事官网已经写了该怎么做了。
第一条评论是我不对,我不该光是指路,我还该把饭喂到你嘴巴里,球球你们不要再给我差评了(棒读)

发行包zip内还包含了地址库等其他文件。使用打包脚本可方便地制作出的发布包。

wget https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/user-package.sh) 
chmod 755 user-package.sh

以上脚本直接执行即可在当前目录生成类似v2ray-custom-linux-amd64-20190710-000000.zip的文件,即为发布包。
这个脚本可用一些参数编译出自行定制的发布包

  • windows 构建windows版本的发布包
  • darwin 构建darwin(MacOS)版本的发布包
  • tgz 最后打包成tar.gz而不是zip格式
  • 386 构建成32位程序
  • arm 构建适合arm架构CPU的程序,arm arm64
  • mips 同上,参照golang的交叉编译文档
  • nodat 不要包含地址库geoip.dat geosite.dat, 可以减小发布包的大小
  • noconf 不要包括范例json, systemd/systemv等配置文件
  • nosource 不要执行go get ...,避免已经拉取到本地的v2ray源码被覆盖

以上参数没有次序要求,只需要按需传给脚本

你现在想要发布包是 tar.gz/tar.xz 格式,即为你想要自行定制发布包,这里我再重复一遍你想干的事官网已经写了该怎么做了。
第一条评论是我不对,我不该光是指路,我还该把饭喂到你嘴巴里,球球你们不要再给我差评了(棒读)

我是建议官方打包成tar.gz格式发布出来,而不是zip。我自己编译,还需要压缩吗?还扯什么一键脚本,我哪知道为什么安装不了,无非是默认压缩包是zip格式。我从来不用一键脚本,要的只是二进制文件。

发行包zip内还包含了地址库等其他文件。使用打包脚本可方便地制作出的发布包。

wget https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/user-package.sh) 
chmod 755 user-package.sh

以上脚本直接执行即可在当前目录生成类似v2ray-custom-linux-amd64-20190710-000000.zip的文件,即为发布包。
这个脚本可用一些参数编译出自行定制的发布包

  • windows 构建windows版本的发布包
  • darwin 构建darwin(MacOS)版本的发布包
  • tgz 最后打包成tar.gz而不是zip格式
  • 386 构建成32位程序
  • arm 构建适合arm架构CPU的程序,arm arm64
  • mips 同上,参照golang的交叉编译文档
  • nodat 不要包含地址库geoip.dat geosite.dat, 可以减小发布包的大小
  • noconf 不要包括范例json, systemd/systemv等配置文件
  • nosource 不要执行go get ...,避免已经拉取到本地的v2ray源码被覆盖

以上参数没有次序要求,只需要按需传给脚本

你现在想要发布包是 tar.gz/tar.xz 格式,即为你想要自行定制发布包,这里我再重复一遍你想干的事官网已经写了该怎么做了。
第一条评论是我不对,我不该光是指路,我还该把饭喂到你嘴巴里,球球你们不要再给我差评了(棒读)

我是建议官方打包成tar.gz格式发布出来,而不是zip。我自己编译,还需要压缩吗?还扯什么一键脚本,我哪知道为什么安装不了,无非是默认压缩包是zip格式。我从来不用一键脚本,要的只是二进制文件。

兄嘚,官方打包也要兼顾各种平台,你觉得windows上zip方便还是tar.gz方便?一般都是用脚本打包的,为了你的需求再重新压一遍?你多装一个package有这么难?

@kdrx Windows上右键解压tar.gz和解压zip有什么区别吗?兼顾各种平台,Linux占多少?Linux要装unzip,Windows什么都不用装。就算要装,没有一个压缩软件不支持tar.gz。

兄嘚,官方打包也要兼顾各种平台,你觉得windows上zip方便还是tar.gz方便?一般都是用脚本打包的,为了你的需求再重新压一遍?你多装一个package有这么难?

@kdrx 你可能不知道大多数打包是持续集成做的,并不是你以为的手动脚本。在持续集成里判断环境变量,为不同系统打不同的压缩包并不是什么难事。参见 trojan 的 Release: https://github.com/trojan-gfw/trojan/releases ,以及它的持续集成脚本配置文件:https://github.com/trojan-gfw/trojan/blob/master/azure-pipelines.yml 另外 tar 的许多优势,比如流式解压、保留文件权限等等是 zip 所没有的。

目前打包脚本遗留问题比较多,如果开始解决的话,应该会使用tar.xz

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days

Was this page helpful?
0 / 5 - 0 ratings