linux上 rlwrap安装

rlwrap 可用来支持oraclesqlplus历史命令的回调功能,提高效率。

1 下载

http://utopia.knoware.nl/~hlub/uck/rlwrap/下载rlwrap-0.37.tar.gz,然后上传到

相应目录

2.安装

[root@localhost soft]# gzip -d rlwrap-0.37.tar.gz
[root@localhost soft]# tar -xvf rlwrap-0.37.tar

[root@localhost rlwrap-0.37]# ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking whether build environment is sane... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for perl... /usr/bin/perl
checking for strip... strip
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libutil.h usability... no
checking libutil.h presence... no
checking for libutil.h... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for sys/wait.h... (cached) yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking curses.h usability... no
checking curses.h presence... no
checking for curses.h... no
checking termcap.h usability... no
checking termcap.h presence... no
checking for termcap.h... no
checking for term.h... no
checking for ncurses/term.h... no
checking argument type of tputs putc function... char
checking whether your getopt() correctly understands double colons in option string... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether gcc needs -traditional... no
checking return type of signal handlers... void
checking for getopt_long... yes
checking for getopt_long... (cached) yes
checking for isastream... yes
checking for mkstemp... yes
checking for pselect... yes
checking for putenv... yes
checking for readlink... yes
checking for sched_yield... yes
checking for setenv... yes
checking for setitimer... yes
checking for setsid... yes
checking for setrlimit... yes
checking for sigaction... yes
checking for snprintf... yes
checking for strlcpy... no
checking for strlcat... no
checking for strnlen... yes
checking for system... yes
checking for openpty in -lutil... yes
checking for openpty... yes
checking for getpty... no
checking for grantpt... yes
checking for unlockpt... yes
checking for getpt... yes
checking for pty/tty type... checking pty.h usability... yes
checking pty.h presence... yes
checking for pty.h... yes
OPENPTY
configure: checking for pty ranges...
checking for tgetent... no
checking for tgetent in -lcurses... yes
checking for readline in -lreadline... no
configure: error:

You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!


[root@localhost rlwrap-0.37]# make
make: *** No targets specified and no makefile found.  Stop.

出现上面错误是因为缺少三个安装包:

libtermcap-devel-2.0.8-39.i386.rpm
readline-4.3-13.i386.rpm
readline-devel-4.3-13.i386.rpm

以上安装包在安装光盘中可以找到。

[root@localhost rlwrap-0.37]# rpm -qa|grep read
readline-4.3-13

 

安装以下三个包:

[root@localhost rpms]# rpm -Uvh readline*

[root@localhost rpms]# rpm -ivh libtermcap-devel-2.0.8-39.i386.rpm

检查是否安装成功:

[root@localhost rpms]# rpm -qa|grep readline
readline-4.3-13
readline-devel-4.3-13
[root@localhost rpms]# rpm -qa|grep libter
libtermcap-2.0.8-39
libtermcap-devel-2.0.8-39
[root@localhost rpms]#

重新安装:

[root@localhost rlwrap-0.37]# ./configure
[root@localhost rlwrap-0.37]# make
make  all-recursive
make[1]: Entering directory `/soft/rlwrap-0.37'
Making all in doc
make[2]: Entering directory `/soft/rlwrap-0.37/doc'
sed -e 's#@DATADIR@#/usr/local/share#'  rlwrap.man > rlwrap.1
make[2]: Leaving directory `/soft/rlwrap-0.37/doc'
Making all in src
make[2]: Entering directory `/soft/rlwrap-0.37/src'
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
mv -f .deps/main.Tpo .deps/main.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT signals.o -MD -MP -MF .deps/signals.Tpo -c -o signals.o signals.c
mv -f .deps/signals.Tpo .deps/signals.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT readline.o -MD -MP -MF .deps/readline.Tpo -c -o readline.o readline.c
mv -f .deps/readline.Tpo .deps/readline.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT pty.o -MD -MP -MF .deps/pty.Tpo -c -o pty.o pty.c
mv -f .deps/pty.Tpo .deps/pty.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT completion.o -MD -MP -MF .deps/completion.Tpo -c -o completion.o completion.c
mv -f .deps/completion.Tpo .deps/completion.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT term.o -MD -MP -MF .deps/term.Tpo -c -o term.o term.c
mv -f .deps/term.Tpo .deps/term.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT ptytty.o -MD -MP -MF .deps/ptytty.Tpo -c -o ptytty.o ptytty.c
mv -f .deps/ptytty.Tpo .deps/ptytty.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT utils.o -MD -MP -MF .deps/utils.Tpo -c -o utils.o utils.c
mv -f .deps/utils.Tpo .deps/utils.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT string_utils.o -MD -MP -MF .deps/string_utils.Tpo -c -o string_utils.o string_utils.c
string_utils.c: In function `colourless_strlen':
string_utils.c:626: warning: assignment discards qualifiers from pointer target type
mv -f .deps/string_utils.Tpo .deps/string_utils.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT malloc_debug.o -MD -MP -MF .deps/malloc_debug.Tpo -c -o malloc_debug.o malloc_debug.c
mv -f .deps/malloc_debug.Tpo .deps/malloc_debug.Po
gcc -DHAVE_CONFIG_H -I. -I..    -DDATADIR=\"/usr/local/share\"  -g -O2 -MT filter.o -MD -MP -MF .deps/filter.Tpo -c -o filter.o filter.c
mv -f .deps/filter.Tpo .deps/filter.Po
gcc -DDATADIR=\"/usr/local/share\"  -g -O2   -o rlwrap main.o signals.o readline.o pty.o completion.o term.o ptytty.o utils.o string_utils.o malloc_debug.o filter.o  -lutil  -lreadline -lcurses
make[2]: Leaving directory `/soft/rlwrap-0.37/src'
Making all in filters
make[2]: Entering directory `/soft/rlwrap-0.37/filters'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/soft/rlwrap-0.37/filters'
make[2]: Entering directory `/soft/rlwrap-0.37'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/soft/rlwrap-0.37'
make[1]: Leaving directory `/soft/rlwrap-0.37'
[root@localhost rlwrap-0.37]#

 

[root@localhost rlwrap-0.37]# make install
Making install in doc
make[1]: Entering directory `/soft/rlwrap-0.37/doc'
make[2]: Entering directory `/soft/rlwrap-0.37/doc'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 rlwrap.1 '/usr/local/share/man/man1'
make[2]: Leaving directory `/soft/rlwrap-0.37/doc'
make[1]: Leaving directory `/soft/rlwrap-0.37/doc'
Making install in src
make[1]: Entering directory `/soft/rlwrap-0.37/src'
make[2]: Entering directory `/soft/rlwrap-0.37/src'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c rlwrap '/usr/local/bin'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/soft/rlwrap-0.37/src'
make[1]: Leaving directory `/soft/rlwrap-0.37/src'
Making install in filters
make[1]: Entering directory `/soft/rlwrap-0.37/filters'
make[2]: Entering directory `/soft/rlwrap-0.37/filters'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man3" || /bin/mkdir -p "/usr/local/share/man/man3"
 /usr/bin/install -c -m 644 RlwrapFilter.3pm '/usr/local/share/man/man3'
make[2]: Leaving directory `/soft/rlwrap-0.37/filters'
make[1]: Leaving directory `/soft/rlwrap-0.37/filters'
make[1]: Entering directory `/soft/rlwrap-0.37'
make[2]: Entering directory `/soft/rlwrap-0.37'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/rlwrap" || /bin/mkdir -p "/usr/local/share/rlwrap"
/bin/mkdir -p '/usr/local/share/rlwrap/filters'
 /usr/bin/install -c -m 644  filters/README filters/RlwrapFilter.pm filters/RlwrapFilter.3pm filters/count_in_prompt filters/pipeto filters/logger filters/null filters/unbackspace filters/pipeline filters/ftp_filter filters/history_format filters/simple_macro filters/template filters/scrub_prompt filters/paint_prompt filters/censor_passwords filters/listing '/usr/local/share/rlwrap/filters'
/bin/mkdir -p '/usr/local/share/rlwrap/completions'
 /usr/bin/install -c -m 644  completions/testclient completions/coqtop '/usr/local/share/rlwrap/completions'
make  install-data-hook
make[3]: Entering directory `/soft/rlwrap-0.37'
chmod a+x /usr/local/share/rlwrap/filters/* 
make[3]: Leaving directory `/soft/rlwrap-0.37'
make[2]: Leaving directory `/soft/rlwrap-0.37'
make[1]: Leaving directory `/soft/rlwrap-0.37'
[root@localhost rlwrap-0.37]#

3 验证安装结果

[root@localhost rlwrap-0.37]#su – oracle

[oracle@localhost ~]$ rlwrap

4、安装报错

    rlwrap: error while loadingshared libraries: libreadline.so.5: cannot open shared object file: No suchfile or directory

   解决办法:

      oracle下的.bash_profile$PATH路径中增加/usr/local/bin路径

    PATH=/usr/local/bin:$PATH;export PATH

5 编辑oracle用户下的.bash_profile

增加

alias sqlplus=’rlwrap sqlplus’

alias rman=’rlwrap rman’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装和使用rlwrap的步骤如下: 1. 首先,将rlwrap安装包(rlwrap-0.43.tar.gz)上传到/opt目录下。 2. 解压安装包,使用以下命令: ``` tar -zxvf rlwrap-0.43.tar.gz ``` 3. 将解压后的文件夹移动到/usr/local/rlwrap目录下,使用以下命令: ``` mv rlwrap-0.43 /usr/local/rlwrap ``` 4. 进入/usr/local/rlwrap目录,使用以下命令进行编译安装: ``` cd /usr/local/rlwrap/ ./configure -q make make install ``` 5. 在完成安装后,可以编辑用户的.bash_profile文件,例如/home/oracle/.bash_profile,在尾部添加以下内容,以创建别名: ``` alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' ``` 6. 最后,使用rlwrap来包装sqlplus或rman命令,以增加命令行历史记录和自动补全功能。 请注意,这些步骤假设你已经具有适当的C编译器和依赖包。如果配置过程中出现错误,请参考配置日志(config.log)中的详细错误信息,以便解决问题。引用 引用 引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [rlwrap工具安装](https://blog.csdn.net/m0_46819834/article/details/125420009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux Centos7 Oracle rlwrap-0.42工具部署安装及下载](https://blog.csdn.net/lookboydfw/article/details/131233672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值