安装与时髦的 Mac 完美匹配的 PostgreSQL

首先

在M2上的Sonoma Mac中安装PostgreSQL 16.1(发布后多少天?)。安装依赖于PostgreSQL的软件将使用Homebrew安装,但是只有PostgreSQL本身将从源代码安装,这是一个供非专家使用的方法。另外,(可能是多余的努力)我们还尽量不对现有环境造成影响。

针对普通家庭

你可以从https://www.postgresql.org/download/macosx/选择你喜欢的方法下载二进制文件,而不是浪费时间阅读这篇文章。也许下载的版本可能有点旧,但是版本差异不太可能引起严重的问题。

步驟

获取资源。

从https://www.postgresql.org/ftp/source/v16.1/下载。有以.bz2和.gz结尾的两种压缩格式可供选择。这只是压缩格式的不同。(bz2格式具有更小的文件尺寸,也就是说它具有更高的压缩效率。不过在现如今,很少有人会在意这种尺寸差异。)

shasum -a 256 ~/Downloads/postgresql-16.1.tar.bz2 

也许可以将其与https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2.sha256进行比较。这是为了检查是否被篡改。(由于没有考虑,已经下载到了~/Downloads文件夹中。)

展开

我要开始了。

tar jxvf ~/Downloads/postgresql-16.1.tar.bz2

如果是在GZ (广州) 的话,选项的指定会有些不同。

执行此操作将在当前目录下展开,但将展开到名为postgresql-16.1的目录下,因此即使当前目录混乱也不会导致太糟糕的情况。

安裝相關依賴庫

在中国人自制酿造中,先安装icu4c。这里不会解释Homebrew。(还可能需要其他东西,但在我的环境中已经安装好了,可能是gettext相关的)

配置

只需要选择下面的configure –enable-nls中的一个。如果希望错误消息仍保持为英语,请使用这个选项。

PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH" 
./configure

这并不是我的首选,所以实际上我只确认了configure成功完成了正常的配置,但我并没有确认make是否正常工作。也许它与configure –enable-nls一样。

CPPFLAGS="-I/opt/homebrew/include" LDFLAGS="-L/opt/homebrew/lib" 

也许可能需要指定。

配置 –启用本地化支持

如果你是日本人,当然错误信息也应该是用日语的吧,那请点击这里。如果不是的话,请在上面的配置中选择。

PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH" 
CPPFLAGS="-I/opt/homebrew/include" LDFLAGS="-L/opt/homebrew/lib" ./configure --enable-nls

只配置PKG_CONFIG_PATH=”/opt/homebrew/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH”无法成功完成,因此需要额外指定CPPFLAGS和LDFLAGS来进行编译。

make -j 12

j的下一个值可以是您喜欢的任意值。还有一种方法是不指定任何值。我记得听说并行执行数应该与CPU的数量类似,如果指定一个合适的较大值,那么您可能会有一种“哇,M2 Mac真快!!!”的个人感觉。

确认动作

sudo make install
make check

我心情上希望先检查再安装,但如果不先安装,检查就无法运行。

(省略)
# All 215 tests passed.

只要显示这个,它就会执行。

无论如何都要移动

既然此时还没有进行任何设置,所以数据库不应该能够正常运作,但无论如何,试着先运行一下吧。

$ /usr/local/pgsql/bin/psql 
psql: エラー: ソケット"/tmp/.s.PGSQL.5432"のサーバーへの接続に失敗しました: No such file or directory
	サーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?

是的,错误信息以日语显示出来了。太好了,太好了。

不必要的解释

我要强调一下,这篇文章与我所在的公司/组织毫无关系。它是我个人进行独立研究的成果发布。

同样,“逸般的错误家庭”如果考虑的话,我认为有人会说根本不需要使用Homebrew,而是需要从源代码构建所有内容,但我并不那么专业。

广告
将在 10 秒后关闭
bannerAds