如何替换通过 Macports 安装的二进制文件?
How to replace binary installed via Macports?
我想用带有调试标志编译的 MariaDB 替换当前安装的 MariaDB。我可以在通过 Macports 安装的二进制文件上编译一个二进制文件和 copy/paste 还是有其他东西?
最简单的方法可能是编辑 MacPorts Portfile,添加您需要的标志,然后重新安装。您可以使用 port file mariadb-10.1
(如果这是您使用的版本)找到 Portfile,编辑它并在 if {$subport eq $name} { ... }
.[= 包含的块中附加您需要附加到 configure.args-append
的任何标志18=]
保存文件并运行 sudo port -sn upgrade --force mariadb-10.1
从源代码重新编译,其中
-s
指示 MacPorts 从源代码重新编译(以避免下载没有更改的二进制文件)
-n
指示 MacPorts 不修改所有依赖项
--force
尽管已经安装了 mariadb-10.1,但仍要重建。
请注意,如果您使用 rsync 方法同步您的端口树(这是默认设置),那么对 Portfile 的任何更改都将被还原。如果这不是您想要的,您可以设置 local portfile repository.
所以我就是这样做的。这是@neverpanic 的回答和来自 MariaDB #irc 频道的更多问题的混合:
- 找到 MariaDB 的端口文件:
port file mariadb-10.1
- 为构建添加调试标志。在
configure.args-append
下添加 -DCMAKE_BUILD_TYPE=Debug
并在最后一个变体之后添加一个新变体:variant debug { configure.optflags -O0 -g3 }
- 强制重建:
sudo port -sn upgrade --force mariadb-10.1 +debug
- 最后
port contents mariadb-10.1-server
找到 LaunchCtl plist 文件并在程序名称后添加 --debug
标志。
我想用带有调试标志编译的 MariaDB 替换当前安装的 MariaDB。我可以在通过 Macports 安装的二进制文件上编译一个二进制文件和 copy/paste 还是有其他东西?
最简单的方法可能是编辑 MacPorts Portfile,添加您需要的标志,然后重新安装。您可以使用 port file mariadb-10.1
(如果这是您使用的版本)找到 Portfile,编辑它并在 if {$subport eq $name} { ... }
.[= 包含的块中附加您需要附加到 configure.args-append
的任何标志18=]
保存文件并运行 sudo port -sn upgrade --force mariadb-10.1
从源代码重新编译,其中
-s
指示 MacPorts 从源代码重新编译(以避免下载没有更改的二进制文件)-n
指示 MacPorts 不修改所有依赖项--force
尽管已经安装了 mariadb-10.1,但仍要重建。
请注意,如果您使用 rsync 方法同步您的端口树(这是默认设置),那么对 Portfile 的任何更改都将被还原。如果这不是您想要的,您可以设置 local portfile repository.
所以我就是这样做的。这是@neverpanic 的回答和来自 MariaDB #irc 频道的更多问题的混合:
- 找到 MariaDB 的端口文件:
port file mariadb-10.1
- 为构建添加调试标志。在
configure.args-append
下添加-DCMAKE_BUILD_TYPE=Debug
并在最后一个变体之后添加一个新变体:variant debug { configure.optflags -O0 -g3 }
- 强制重建:
sudo port -sn upgrade --force mariadb-10.1 +debug
- 最后
port contents mariadb-10.1-server
找到 LaunchCtl plist 文件并在程序名称后添加--debug
标志。