Homebrew - 安装/使用

1.应用场景

主要用于在MacOS中借助Homebrew进行软件工具的快速安装,帮助我们解决时间,提高效率。

2.学习/操作

Homebrew logo

1.文档阅读

The Missing Package Manager for macOS (or Linux) — Homebrew

macOS(或 Linux)缺失的软件包的管理器 — Homebrew

macOS Monterey 移除了自带的 PHP

2.整理输出

前言交代

因为Mac升级OS到12.1

不再支持内置各个编程语言的运行时环境,本人又有些不像单独安装。

干脆就安装Mac的软件管理器,如果电脑感到卡,再卸载。

PHP: 使用 macOS Monterey 之前内置的 PHP - Manual

2.1 安装 homebrew

终端中执行如下命令即可

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

注意

有时候,需要科学上网才行,使用国内源进行安装

/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

下载安装过程如下:

huangbaoyin@huangbaoyindeMacBook-Pro ~ %/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

               开始执行Brew自动安装程序

              [cunkai.wang@foxmail.com]

           ['2022-08-19 16:51:27']['12.5']

        https://zhuanlan.zhihu.com/p/111014448

请选择一个下载brew本体的序号,例如中科大,输入1回车。

源有时候不稳定,如果git克隆报错重新运行脚本选择源。

1、中科大下载源

2、清华大学下载源

3、北京外国语大学下载源

4、腾讯下载源

5、阿里巴巴下载源

请输入序号: 1

  你选择了中国科学技术大学brew本体下载源

  

!!!此脚本将要删除之前的brew(包括它下载的软件),请自行备份。

->是否现在开始执行脚本(N/Y) Y

--> 脚本开始执行

Mac os设置开机密码方法:

  (设置开机密码:在左上角苹果图标->系统偏好设置->用户与群组->更改密码)

  (如果提示This incident will be reported. 在用户与群组中查看是否管理员)

==> 通过命令删除之前的brew、创建一个新的Homebrew文件夹

请输入开机密码,输入过程不显示,输入完后回车

开始执行

  ---备份要删除的/opt/homebrew到系统桌面....

   ---/opt/homebrew 备份完成

-> 创建文件夹 /opt/homebrew

运行代码 ==> /usr/bin/sudo /bin/mkdir -p /opt/homebrew

此步骤成功

运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /opt/homebrew

运行代码 ==> /usr/bin/sudo /usr/sbin/chown huangbaoyin /opt/homebrew

运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew

git version 2.32.1 (Apple Git-133)

下载速度觉得慢可以ctrl+c或control+c重新运行脚本选择下载源

==> 从 https://mirrors.ustc.edu.cn/brew.git 克隆Homebrew基本文件

未发现Git代理(属于正常状态)

Cloning into '/opt/homebrew'...

remote: Enumerating objects: 221996, done.

remote: Total 221996 (delta 0), reused 0 (delta 0), pack-reused 221996

Receiving objects: 100% (221996/221996), 59.40 MiB | 10.96 MiB/s, done.

Resolving deltas: 100% (164896/164896), done.

此步骤成功

--创建Brew所需要的目录

运行代码 ==> /usr/bin/sudo /bin/chmod u+rwx /opt/homebrew/bin /opt/homebrew/bin/brew

....

....

简单截图

记得重启终端窗口或者执行: source /Users/huangbaoyin/.zprofile

但是在安装PHP时,一直提示出现apr的报错

最后还是使用科学上网的方式,重新安装了homebrew,

执行brew install php 解决

​​​​​​​

2.2 安装PHP

PHP: 使用软件包 - Manual

终端中执行

brew install php

关键信息:

To enable PHP in Apache add the following to httpd.conf and restart Apache:

    LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

    <FilesMatch \.php$>

        SetHandler application/x-httpd-php

    </FilesMatch>

Finally, check DirectoryIndex includes index.php

    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:

    /usr/local/etc/php/8.1/

To restart php after an upgrade:

  brew services restart php

Or, if you don't want/need a background service you can just run:

  /usr/local/opt/php/sbin/php-fpm --nodaemonize

查看PHP版本

➜ php-test-temp php -v

PHP 8.1.1 (cli) (built: Dec 17 2021 22:38:05) (NTS)

Copyright (c) The PHP Group

Zend Engine v4.1.1, Copyright (c) Zend Technologies

    with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies

➜ php-test-temp

查看扩展文件目录

➜ php-test-temp php-config --extension-dir

/usr/local/Cellar/php/8.1.1/pecl/20210902

➜ php-test-temp

查看配置文件目录

➜ 8.1 ls

conf.d       pear.conf    php-fpm.conf php-fpm.d   php.ini

➜ 8.1 pwd

/usr/local/etc/php/8.1

➜ 8.1

➜  php-test-temp php-config --ini-dir      

/usr/local/etc/php/8.1/conf.d

补充

安装不同的PHP版本,以及使用PHP版本

1. brew search php // 查看homebrew源支持的PHP本本

2.  安装PHP另一版本[项目需要] === PHP 7.2

这里已经安装了PHP 8.1

➜ ~ brew install php@7.2

出现报错

解决方法

homebrew - Error: php@7.3 has been disabled because it is a versioned formula - Stack Overflow

brew tap shivammathur/php

brew install shivammathur/php/php@7.2

截图

输出的关键信息

...

To enable PHP in Apache add the following to httpd.conf and restart Apache:

    LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so

    <FilesMatch \.php$>

        SetHandler application/x-httpd-php

    </FilesMatch>

Finally, check DirectoryIndex includes index.php

    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:

   /usr/local/etc/php/7.2/

php@7.2 is keg-only, which means it was not symlinked into /usr/local,

because this is an alternate version of another formula.

If you need to have php@7.2 first in your PATH, run:

  echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.zshrc

  echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.zshrc

For compilers to find php@7.2 you may need to set:

 export LDFLAGS="-L/usr/local/opt/php@7.2/lib"

  export CPPFLAGS="-I/usr/local/opt/php@7.2/include"

To restart shivammathur/php/php@7.2 after an upgrade:

  brew services restart shivammathur/php/php@7.2

Or, if you don't want/need a background service you can just run:

  /usr/local/opt/php@7.2/sbin/php-fpm --nodaemonize

==> Summary

?  /usr/local/Cellar/php@7.2/7.2.34_4: 515 files, 75.0MB

==> Running `brew cleanup php@7.2`...

Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.

Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

➜ ~

由于信息可知,安装目录在 /usr/local/opt/php@7.2

使用PHP 7.2启动Web服务

/usr/local/opt/php@7.2/bin/php -S localhost:8000 -t ./web

使用PHP 8.1启动Web服务

/usr/local/opt/php@8.1/bin/php -S localhost:8000 -t ./web

/usr/local/opt/php/bin/php -S localhost:8000 -t ./web

php -S localhost:8000 -t ./web

至于切换不同PHP的工具,TBD

后续补充

...

3.问题/补充

1. 迁移mac导致homebrew 无法使用

原因应是旧Mac是inter版本,新Mac是M1版本

解决办法:

Cannot install in Homebrew on ARM processor in Intel default prefix - 简书

安装brew install wget

先是编辑~/.zshrc

添加如下内容到尾部

# HomeBrew

export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles

export PATH="/opt/homebrew/bin:$PATH"

export PATH="/opt/homebrew/sbin:$PATH"

# HomeBrew END

执行

source ~/.zshrc

然后开始安装软件 wget

同时执行

wget -c baidu.com

可以看到下载了index.html

cat index.html

4.参考

The Missing Package Manager for macOS (or Linux) — Homebrew

macOS(或 Linux)缺失的软件包的管理器 — Homebrew

后续补充

...


版权声明:本文为william_n原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。