当前位置:   article > 正文

macos安装brew_version_lt

version_lt

不多介绍brew了,网上一大堆介绍。centos的yum以及ubuntu的apt-get都是比较好用的软件包管理工具,国内安装速度还是比较快的。

这个brew还是第一次安装,翻墙链接原来的镜像,依然慢的要死,还失败了,迫不得已还是用国内的镜像吧,

就这条命令----->  /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

附一张图吧:

 

 

下面学习一下这个脚本:

  1. #HomeBrew自动安装脚本
  2. #cunkai.wang@foxmail.com
  3. #路径表.
  4. HOMEBREW_PREFIX="/usr/local"
  5. HOMEBREW_REPOSITORY="${HOMEBREW_PREFIX}/Homebrew"
  6. HOMEBREW_CACHE="${HOME}/Library/Caches/Homebrew"
  7. STAT="stat -f"
  8. CHOWN="/usr/sbin/chown"
  9. CHGRP="/usr/bin/chgrp"
  10. GROUP="admin"
  11. #获取前面两个.的数据
  12. major_minor() {
  13. echo "${1%%.*}.$(x="${1#*.}"; echo "${x%%.*}")"
  14. }
  15. #获取系统版本
  16. macos_version="$(major_minor "$(/usr/bin/sw_vers -productVersion)")"
  17. #获取系统时间
  18. TIME=$(date "+%Y-%m-%d %H:%M:%S")
  19. JudgeSuccess()
  20. {
  21. if [ $? -ne 0 ];then
  22. echo '\033[1;31m此步骤失败 '$1'\033[0m'
  23. if [[ "$2" == 'out' ]]; then
  24. exit 0
  25. fi
  26. else
  27. echo "\033[1;32m此步骤成功\033[0m"
  28. fi
  29. }
  30. # 判断是否有系统权限
  31. have_sudo_access() {
  32. if [[ -z "${HAVE_SUDO_ACCESS-}" ]]; then
  33. /usr/bin/sudo -l mkdir &>/dev/null
  34. HAVE_SUDO_ACCESS="$?"
  35. fi
  36. if [[ "$HAVE_SUDO_ACCESS" -ne 0 ]]; then
  37. echo "\033[1;31m开机密码输入错误,获取权限失败!\033[0m"
  38. fi
  39. return "$HAVE_SUDO_ACCESS"
  40. }
  41. abort() {
  42. printf "%s\n" "$1"
  43. exit 1
  44. }
  45. shell_join() {
  46. local arg
  47. printf "%s" "$1"
  48. shift
  49. for arg in "$@"; do
  50. printf " "
  51. printf "%s" "${arg// /\ }"
  52. done
  53. }
  54. execute() {
  55. if ! "$@"; then
  56. abort "$(printf "\033[1;31m此命令运行失败(再次运行脚本或者手动运行此命令测试权限):sudo %s\033[0m" "$(shell_join "$@")")"
  57. fi
  58. }
  59. # 管理员运行
  60. execute_sudo()
  61. {
  62. # local -a args=("$@")
  63. # if [[ -n "${SUDO_ASKPASS-}" ]]; then
  64. # args=("-A" "${args[@]}")
  65. # fi
  66. if have_sudo_access; then
  67. execute "/usr/bin/sudo" "$@"
  68. else
  69. execute "sudo" "$@"
  70. fi
  71. }
  72. #添加文件夹权限
  73. AddPermission()
  74. {
  75. execute_sudo "/bin/chmod" "-R" "a+rwx" "$1"
  76. execute_sudo "$CHOWN" "$USER" "$1"
  77. execute_sudo "$CHGRP" "$GROUP" "$1"
  78. }
  79. #创建文件夹
  80. CreateFolder()
  81. {
  82. echo '-> 创建文件夹' $1
  83. execute_sudo "/bin/mkdir" "-p" "$1"
  84. JudgeSuccess
  85. AddPermission $1
  86. }
  87. RmAndCopy()
  88. {
  89. if [[ -d $1 ]]; then
  90. echo ' ---备份要删除的文件夹到系统桌面....'
  91. if ! [[ -d /Users/$(whoami)/Desktop/Old_Homebrew/$TIME/$1 ]]; then
  92. mkdir -p /Users/$(whoami)/Desktop/Old_Homebrew/$TIME/$1
  93. fi
  94. cp -rf $1 /Users/$(whoami)/Desktop/Old_Homebrew/$TIME/$1
  95. echo " ---$1 备份完成"
  96. fi
  97. sudo rm -rf $1
  98. }
  99. RmCreate()
  100. {
  101. RmAndCopy $1
  102. CreateFolder $1
  103. }
  104. #git提交
  105. git_commit(){
  106. git add .
  107. git commit -m "your del"
  108. }
  109. #version_gt 判断$1是否大于$2
  110. version_gt() {
  111. [[ "${1%.*}" -gt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -gt "${2#*.}" ]]
  112. }
  113. #version_ge 判断$1是否大于等于$2
  114. version_ge() {
  115. [[ "${1%.*}" -gt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -ge "${2#*.}" ]]
  116. }
  117. #version_lt 判断$1是否小于$2
  118. version_lt() {
  119. [[ "${1%.*}" -lt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -lt "${2#*.}" ]]
  120. }
  121. #一些警告判断
  122. warning_if(){
  123. git_https_proxy=$(git config --global https.proxy)
  124. git_http_proxy=$(git config --global http.proxy)
  125. if [[ -z "$git_https_proxy" && -z "$git_http_proxy" ]]; then
  126. echo "未发现Git代理(属于正常状态)"
  127. else
  128. echo "\033[1;33m
  129. 提示:发现你电脑设置了Git代理,如果Git报错,请运行下面两句话:
  130. git config --global --unset https.proxy
  131. git config --global --unset http.proxy\033[0m
  132. "
  133. fi
  134. }
  135. echo '
  136. \033[1;32m开始执行Brew自动安装程序\033[0m
  137. \033[1;36m[cunkai.wang@foxmail.com]\033[0m
  138. ['$TIME']['$macos_version']
  139. \033[1;36mhttps://zhuanlan.zhihu.com/p/111014448\033[0m
  140. '
  141. #选择一个下载源
  142. echo '\033[1;32m
  143. 请选择一个下载镜像,例如中科大,输入1回车。
  144. 源有时候不稳定,如果git克隆报错重新运行脚本选择源。cask非必须,有部分人需要。
  145. 1、中科大下载源 2、清华大学下载源 3、北京外国语大学下载源 4、腾讯下载源(不显示下载进度) 5、阿里巴巴下载源(缺少cask源)\033[0m'
  146. read "MY_DOWN_NUM?请输入序号: "
  147. case $MY_DOWN_NUM in
  148. "2")
  149. echo "
  150. 你选择了清华大学下载源"
  151. USER_HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
  152. #HomeBrew基础框架
  153. USER_BREW_GIT=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
  154. #HomeBrew Core
  155. USER_CORE_GIT=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
  156. #HomeBrew Cask
  157. USER_CASK_GIT=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
  158. USER_CASK_FONTS_GIT=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-fonts.git
  159. USER_CASK_DRIVERS_GIT=https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-drivers.git
  160. ;;
  161. "3")
  162. echo "
  163. 北京外国语大学下载源"
  164. USER_HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
  165. #HomeBrew基础框架
  166. USER_BREW_GIT=https://mirrors.bfsu.edu.cn/git/homebrew/brew.git
  167. #HomeBrew Core
  168. USER_CORE_GIT=https://mirrors.bfsu.edu.cn/git/homebrew/homebrew-core.git
  169. #HomeBrew Cask
  170. USER_CASK_GIT=https://mirrors.bfsu.edu.cn/git/homebrew/homebrew-cask.git
  171. USER_CASK_FONTS_GIT=https://mirrors.bfsu.edu.cn/git/homebrew/homebrew-cask-fonts.git
  172. USER_CASK_DRIVERS_GIT=https://mirrors.bfsu.edu.cn/git/homebrew/homebrew-cask-drivers.git
  173. ;;
  174. "4")
  175. echo "
  176. 你选择了腾讯下载源"
  177. USER_HOMEBREW_BOTTLE_DOMAIN=https://mirrors.cloud.tencent.com/homebrew-bottles
  178. #HomeBrew基础框架
  179. USER_BREW_GIT=https://mirrors.cloud.tencent.com/homebrew/brew.git
  180. #HomeBrew Core
  181. USER_CORE_GIT=https://mirrors.cloud.tencent.com/homebrew/homebrew-core.git
  182. #HomeBrew Cask
  183. USER_CASK_GIT=https://mirrors.cloud.tencent.com/homebrew/homebrew-cask.git
  184. ;;
  185. "5")
  186. echo "
  187. 你选择了阿里巴巴下载源(阿里缺少cask源)"
  188. USER_HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles
  189. #HomeBrew基础框架
  190. USER_BREW_GIT=https://mirrors.aliyun.com/homebrew/brew.git
  191. #HomeBrew Core
  192. USER_CORE_GIT=https://mirrors.aliyun.com/homebrew/homebrew-core.git
  193. #HomeBrew Cask
  194. USER_CASK_GIT=https://mirrors.aliyun.com/homebrew/homebrew-cask.git
  195. ;;
  196. *)
  197. echo "
  198. 你选择了中国科学技术大学下载源"
  199. #HomeBrew 下载源 install
  200. USER_HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
  201. #HomeBrew基础框架
  202. USER_BREW_GIT=https://mirrors.ustc.edu.cn/brew.git
  203. #HomeBrew Core
  204. USER_CORE_GIT=https://mirrors.ustc.edu.cn/homebrew-core.git
  205. #HomeBrew Cask
  206. USER_CASK_GIT=https://mirrors.ustc.edu.cn/homebrew-cask.git
  207. ;;
  208. esac
  209. echo '\033[1;32m'
  210. read "MY_Del_Old?!!!此脚本将要删除之前的brew(包括它下载的软件),请自行备份。
  211. ->是否现在开始执行脚本(N/Y)"
  212. echo '\033[0m'
  213. case $MY_Del_Old in
  214. "y")
  215. echo "--> 脚本开始执行"
  216. ;;
  217. "Y")
  218. echo "--> 脚本开始执行"
  219. ;;
  220. *)
  221. echo "你输入了 $MY_Del_Old ,自行备份老版brew和它下载的软件, 如果继续运行脚本应该输入Y或者y
  222. "
  223. open /usr/local/
  224. exit 0
  225. ;;
  226. esac
  227. echo '==> 通过命令删除之前的brew、创建一个新的Homebrew文件夹
  228. (设置开机密码:在左上角苹果图标->系统偏好设置->"用户与群组"->更改密码)
  229. (如果提示This incident will be reported. 在"用户与群组"中查看是否管理员)
  230. \033[1;36m请输入开机密码,输入过程不显示,输入完后回车\033[0m'
  231. sudo echo '开始执行'
  232. # 让环境暂时纯粹,重启终端后恢复
  233. export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  234. RmCreate ${HOMEBREW_REPOSITORY}
  235. RmAndCopy /Users/$(whoami)/Library/Caches/Homebrew/
  236. RmAndCopy /Users/$(whoami)/Library/Logs/Homebrew/
  237. RmCreate ${HOMEBREW_PREFIX}/Caskroom
  238. RmCreate ${HOMEBREW_PREFIX}/Cellar
  239. RmCreate ${HOMEBREW_PREFIX}/var/homebrew
  240. directories=(bin etc include lib sbin share var opt
  241. share/zsh share/zsh/site-functions
  242. var/homebrew var/homebrew/linked
  243. Cellar Caskroom Homebrew Frameworks)
  244. for dir in "${directories[@]}"; do
  245. if ! [[ -d "${HOMEBREW_PREFIX}/${dir}" ]]; then
  246. CreateFolder "${HOMEBREW_PREFIX}/${dir}"
  247. fi
  248. AddPermission ${HOMEBREW_PREFIX}/${dir}
  249. done
  250. git --version
  251. if [ $? -ne 0 ];then
  252. sudo rm -rf "/Library/Developer/CommandLineTools/"
  253. echo '\033[1;36m安装Git\033[0m后再运行此脚本,\033[1;31m在系统弹窗中点击“安装”按钮
  254. 如果没有弹窗的老系统,需要自己下载安装:https://sourceforge.net/projects/git-osx-installer/ \033[0m'
  255. xcode-select --install
  256. exit 0
  257. fi
  258. echo '
  259. \033[1;36m下载速度觉得慢可以ctrl+c或control+c重新运行脚本选择下载源\033[0m
  260. ==> 克隆Homebrew基本文件(32M+)
  261. '
  262. warning_if
  263. sudo git clone $USER_BREW_GIT ${HOMEBREW_REPOSITORY}
  264. JudgeSuccess 尝试再次运行自动脚本选择其他下载源或者切换网络 out
  265. echo '==> 创建brew的替身'
  266. find ${HOMEBREW_PREFIX}/bin -name brew -exec sudo rm -f {} \;
  267. sudo ln -s ${HOMEBREW_PREFIX}/Homebrew/bin/brew ${HOMEBREW_PREFIX}/bin/brew
  268. JudgeSuccess
  269. echo '==> 克隆Homebrew Core(224M+)
  270. \033[1;36m此处如果显示Password表示需要再次输入开机密码,输入完后回车\033[0m'
  271. sudo mkdir -p ${HOMEBREW_PREFIX}/Homebrew/Library/Taps/homebrew/homebrew-core
  272. sudo git clone $USER_CORE_GIT ${HOMEBREW_PREFIX}/Homebrew/Library/Taps/homebrew/homebrew-core/
  273. JudgeSuccess 尝试再次运行自动脚本选择其他下载源或者切换网络 out
  274. echo '==> 克隆Homebrew Cask(248M+) 类似AppStore
  275. \033[1;36m此处如果显示Password表示需要再次输入开机密码,输入完后回车\033[0m'
  276. if [[ "$MY_DOWN_NUM" -eq "5" ]];then
  277. echo '\033[1;33m阿里源没有Cask 跳过\033[0m'
  278. else
  279. sudo mkdir -p ${HOMEBREW_PREFIX}/Homebrew/Library/Taps/homebrew/homebrew-cask
  280. sudo git clone $USER_CASK_GIT ${HOMEBREW_PREFIX}/Homebrew/Library/Taps/homebrew/homebrew-cask/
  281. if [ $? -ne 0 ];then
  282. sudo rm -rf ${HOMEBREW_PREFIX}/Homebrew/Library/Taps/homebrew/homebrew-cask
  283. echo '\033[1;31m尝试切换下载源或者切换网络,不过Cask组件非必须模块。可以忽略\033[0m'
  284. else
  285. echo "\033[1;32m此步骤成功\033[0m"
  286. fi
  287. fi
  288. echo '==> 配置国内镜像源HOMEBREW BOTTLE'
  289. if [[ -f ~/.zshrc ]]; then
  290. AddPermission ~/.zshrc
  291. fi
  292. echo "
  293. # HomeBrew
  294. export HOMEBREW_BOTTLE_DOMAIN=${USER_HOMEBREW_BOTTLE_DOMAIN}
  295. export PATH=\"/usr/local/bin:\$PATH\"
  296. export PATH=\"/usr/local/sbin:\$PATH\"
  297. # HomeBrew END
  298. " >> ~/.zshrc
  299. if [[ -f ~/.bash_profile ]]; then
  300. AddPermission ~/.bash_profile
  301. fi
  302. echo "
  303. # HomeBrew
  304. export HOMEBREW_BOTTLE_DOMAIN=${USER_HOMEBREW_BOTTLE_DOMAIN}
  305. export PATH=\"/usr/local/bin:\$PATH\"
  306. export PATH=\"/usr/local/sbin:\$PATH\"
  307. # HomeBrew END
  308. " >> ~/.bash_profile
  309. JudgeSuccess
  310. source ~/.zshrc
  311. source ~/.bash_profile
  312. echo '
  313. ==> 安装完成,brew版本
  314. '
  315. #判断系统版本
  316. if version_gt "$macos_version" "10.14"; then
  317. echo "$macos_version"
  318. else
  319. echo '\033[1;31m检测到你不是最新系统,会有一些报错,请稍等Ruby下载安装;\033[0m
  320. '
  321. fi
  322. AddPermission ${HOMEBREW_REPOSITORY}
  323. #先暂时设置到清华大学源,中科大没有Ruby下载镜像
  324. HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
  325. echo 'brew -v
  326. '
  327. brew -v
  328. if [ $? -ne 0 ];then
  329. echo '
  330. \033[1;31m失败 查看下面文章第二部分的常见错误
  331. https://zhuanlan.zhihu.com/p/111014448
  332. 如果没有解决,把运行脚本过程截图发到 cunkai.wang@foxmail.com --end
  333. \033[0m'
  334. exit 0
  335. else
  336. echo "\033[1;32mBrew前期配置成功\033[0m"
  337. fi
  338. echo '
  339. ==> brew update
  340. '
  341. HOMEBREW_BOTTLE_DOMAIN=${USER_HOMEBREW_BOTTLE_DOMAIN}
  342. brew update
  343. if [ $? -ne 0 ];then
  344. echo '
  345. \033[1;31m失败 去下面文章看一下第二部分的常见错误解决办法
  346. https://zhuanlan.zhihu.com/p/111014448
  347. 如果没有解决,把运行脚本过程截图发到 cunkai.wang@foxmail.com \033[0m
  348. '
  349. else
  350. echo "
  351. \033[1;32m上一句如果提示Already up-to-date表示成功\033[0m
  352. \033[1;32mBrew自动安装程序运行完成\033[0m
  353. \033[1;32m国内地址已经配置完成\033[0m
  354. 初步介绍几个brew命令
  355. 本地软件库列表:brew ls
  356. 查找软件:brew search google(其中google替换为要查找的软件关键字)
  357. 查看brew版本:brew -v 更新brew版本:brew update
  358. \033[1;32m
  359. 现在可以输入命令open ~/.zshrc -e 或者 open ~/.bash_profile -e 整理一下重复的语句(运行 echo \$SHELL 可以查看应该打开那一个文件修改)
  360. https://zhuanlan.zhihu.com/p/111014448 欢迎来给点个赞\033[0m
  361. "
  362. fi
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号