如何在Mac操作系统上用GNU readline替换libedit readline



在我的Mac操作系统(Moneterey 12.1(上,我看到$NetBSD:readline.h,v 1.33 2012/05/15,我想它是libedit库的一部分。我想使用readline.h,它是GNU readline库的一部分。有可能做到吗?我应该执行哪些步骤?可能是我使用了一些不正确的术语或误解了一些概念。我将感谢你的帮助。

好吧,我找到了一个适合我的解决方案。第一步,我安装了GNU Readline,如图所示。就我而言,我做到了:

wget ftp://ftp.gnu.org/gnu/readline/readline-8.1.tar.gz
tar xvfz readline-8.1.tar.gz
cd readline-8.1
./configure --prefix=/usr/local/readline/8.1
make
make install
ln -s /usr/local/readline/8.1/include/readline /usr/local/include/
ln -s /usr/local/readline/8.1/lib/libhistory.a /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libhistory.so /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libhistory.so.8 /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libhistory.so.8.1 /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libreadline.a /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libreadline.so /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libreadline.so.8 /usr/local/lib/
ln -s /usr/local/readline/8.1/lib/libreadline.so.8.1 /usr/local/lib/

然后我重新编译Ruby,并使用GNU readline进行编译,就像这里讨论的那样:

rvm get head
rvm reinstall ruby --disable-binary --with-opt-dir=$(brew --prefix readline)

最后,在编译我的项目时,我使用了-lcurses选项(-lreadline -lcurses(,如这里所讨论的。