就先不说从 git raw content 服务器下载安装脚本因为网络原因劝退多少小白
我让他给我下个 gradle ,不能指定版本号不说,还给我下了将近 20 个二进制依赖
明明有 zulu 的 openjdk ,而且 gradle 要求只是 java>8 ,他给我下了个 java18 回来
sdkman 几下就搞定
1
feelinglucky 2023-06-26 15:58:27 +08:00 3
个人愚见:
1 、网络原因不是它的问题,是我们自己的‘特色’; 2 、brew 自己的依赖是自己处理的,所以它会下载自己的 jdk 然后 gradle ,这个也很好理解。其实我个人处理 gradle 项目,还是偏向推荐使用 gradle wrapper ,能独立环境并锁定版本,能省心不少; 3 、同 2 4 、顺便说一句,sdkman 顾名思义适用面和 brew 是不一样的,所以这个没必要褒一贬一,说到底就是个工具。 |
2
cxtrinityy 2023-06-26 16:04:57 +08:00
brew 可以指定大版本的最新版本, 不能指定小版本, 如 gradle@7, gradle@6, 或最新版 gradle, 具体到 7.4.1 就无能为力了
下个 java18 回来估计是按照 gradle 官方的 java 、gradle 兼容表来的, 你可能装了 gradle7.5? 见 https://docs.gradle.org/current/userguide/compatibility.html |
3
murmur OP @cxtrinityy
Gradle runs on all major operating systems and requires only a Java Development Kit version 8 or higher to run. 他的意思是从 java8-18 都测试过,版本高了不保证兼容,那也没必要给我下那么高版本的回来啊 |
4
20015jjw 2023-06-26 16:15:38 +08:00 via iPhone
brew 网络弄不好的大概率不配..
|
5
k9982874 2023-06-26 16:21:24 +08:00 via Android
mac 就是凭 brew 才能和 linux 在软件开发上一战
|
6
t783072156 2023-06-26 17:03:27 +08:00 1
网络原因。。。
|
7
cxtrinityy 2023-06-26 17:47:15 +08:00
@murmur 这个只能说各有所需, 包管理本着怎么妥帖怎么来的想法我觉得可以理解的,只不过刚好和你的需求相反, 装了哪个版本的 gradle, 可能用户也就需要支持对应版本的 java, brew 直接给你装对应支持的最高版本 java 也没啥问题
|
8
OliverDD 2023-06-26 17:48:39 +08:00 via iPhone
可以看看 macports ,更传统的包管理工具
|
9
easylee 2023-06-26 18:05:04 +08:00
除了安装几个内核编辑的工具用到了 brew (不用的话安装太麻烦),其他时候没用上过。
老哥不要纠结这个。 |
10
Jirajine 2023-06-26 18:07:51 +08:00
笑死,网络原因是你的原因,人家从一个公网可达的服务器下载,小白开箱就能用,你要是处于不能访问公网的环境中你当然要自己处理。
jdk 又不是系统自带的,brew 包的打包者怎么知道你有没有安装 jdk ,你安装的 jdk 是否兼容。 至于版本问题,gradle 既然兼容新版本的,那谁会在依赖列表里指定旧的版本。 |
11
murmur OP @Jirajine maven apt yum 这些包管理基本只要设置了源,几乎所有的流量都走镜像,基本不会遇到什么问题
brew 是设置了清华的源,将近一个 g 的 repo 也同步到本地了,还是会疯狂走 git 容器的服务器 就是论本地折腾 brew 也没有传统的包管理工具好使 |
12
Jirajine 2023-06-26 18:18:11 +08:00
@murmur 我没用镜像,但你这种情况要么镜像站没有镜像所有内容,要么是你没配置好预编译包的镜像?
https://mirrors.tuna.tsinghua.edu.cn/help/homebrew-bottles/ brew 确实算不上先进或者好用,但架不住它成熟完善,能在 macos 和 glibc 的 Linux 发行版上跑,最重要的是软件包丰富。 |
13
volvo007 2023-06-26 18:21:50 +08:00
brew 作者自己都说了,他自己也知道 brew 的问题,一开始只是一个练手项目
关于切换源,其实是可以的,可以用 git 修改源到原来的某个 head ,然后就能装了。但是确实不方便,不如老版本还能指定版本 |
14
weeei 2023-06-26 18:26:24 +08:00
macports 除了包少一些,其实更好用。
|
15
jorneyr 2023-06-27 05:04:51 +08:00
我让他给我下个 gradle ,不能指定版本号不说,还给我下了将近 20 个二进制依赖:
brew search gradle ==> Formulae gradle gradle-completion gradle-profiler gradle@6 gradle@7 grace gradio grails glade 多学习,少抱怨。 |
16
chuck1in 2023-06-27 08:23:07 +08:00 via iPhone
sdk man 有那么多的依赖吗?
|
17
seanzxx 2023-06-27 08:34:55 +08:00
brew 的优点很明显,软件覆盖广,软件更新很快,社区也很活跃,可以很轻松的安装一个软件的最近可用的版本。
开发通常需要用一个固定的版本,而不是最新的版本,而且电脑里面不同的项目可能要用不同的版本,就需要用专门的工具来管理,比如我用 asdf 来管理 python ,node 和 java 。 asdf 可以安装多个 jdk ,然后旧的项目用 jdk 8 ,新的项目用 jdk 17 ,设置好以后,进入项目目录,jdk 就会自动切换。 |
18
yuankui 2023-06-27 10:59:27 +08:00 1
@cxtrinityy 前几天跟同事学到一招,找到 brew 对应的 formula 的 rb 脚本,然后看他的历史记录,找到你需要的版本,直接 brew install 这个 commit raw file
|
19
cxtrinityy 2023-06-27 11:24:06 +08:00 via Android
@yuankui 这个还真不知道,刚才搜了下好像是有这用法,下次试试
|
21
murmur OP @chuck1in 等我把环境搭好了就是 pod gradle maven 那一套东西了,系统级的二进制依赖我更倾向于网上去下载 installer ,gradle 是第一次安装需要一个任意版本,我懒得去建个目录,事实证明还是随便官网下一个解压了更快
|
22
chuck1in 2023-06-27 12:38:53 +08:00
@murmur gradle 安装以后就是会安装一大堆依赖,好像很多人都说过这个问题,似乎比 maven 体积大多了。但是现在 java 很多都换成 gradle 了,也只好换了。
|
23
jiangshengse 2023-06-27 12:44:15 +08:00
之前安装某软件记录的方法,仅供参考
--- 目前 macOS 下的 brew 中的 Qemu 版本过高( 7.2.0 或更高),实验需要安装 7.0.0 版本( 2022-12-26 可用此版本) 如要在 macOS 下安装旧版本 Qemu ,可以参考 https://stackoverflow.com/a/64125796/20861890 1. 设置环境变量 ``` TAP=my-org/homebrew-old MODULE=qemu VERS=7.0.0 ``` 2. 检查环境变量 TAP ``` echo $TAP ``` 输出:`my-org/homebrew-old` 3. 检查环境变量 MODULE ``` echo $MODULE ``` 输出:`qemu` 4. 检测环境变量 VERS ``` echo $VERS ``` 输出:`7.0.0` 5. 开始安装指定版本 qemu ``` brew tap-new $TAP brew extract --version $VERS $MODULE $TAP brew install $TAP/$MODULE@$VERS ``` 6. 检查安装后的版本 ``` qemu-system-riscv64 --version ``` 输出: ``` QEMU emulator version 7.0.0 Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers ``` |
24
q1angch0u 2023-06-27 12:45:08 +08:00
brew 4.0 已经不用 git 存取 meta data 了。https://sspai.com/post/78587
|
25
luodan 2023-06-29 23:20:00 +08:00
brew 真的很好用,而且功能越来越完善,越稳定。
|