1. 程式人生 > >【轉載】sqlplus中上下方向鍵回調歷史命令--rlwrap安裝

【轉載】sqlplus中上下方向鍵回調歷史命令--rlwrap安裝

specified passwords list url erase void oct sed nba

rlwrap 可用來支持Oracle下sqlplus歷史命令的回調功能,提高效率。 1、下載 從http://utopia.knoware.nl/~hlub/uck/rlwrap/下載rlwrap-0.37.tar.gz,然後上傳到相應目錄 0.37版本在redhat6上安裝的時候會報沒有依賴包,其實是高版本的依賴包軟件找不到,不想擺弄了。我在網上其他地方搜了一個 rlwrap-0.42,可以在redhat6上直接裝。 2.安裝 2.1主要步驟是: ./configure make make install 2.2下面包含了具體的安裝調試信息 [[email protected] soft]# gzip -d rlwrap-0.37.tar.gz
[[email protected] soft]# tar -xvf rlwrap-0.37.tar [[email protected] 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! [[email protected] 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 以上安裝包在安裝光盤中可以找到。 [[email protected] rlwrap-0.37]# rpm -qa|grep read readline-4.3-13 安裝以下三個包: [[email protected] rpms]# rpm -Uvh readline* [[email protected] rpms]# rpm -ivh libtermcap-devel-2.0.8-39.i386.rpm 檢查是否安裝成功: [[email protected] rpms]# rpm -qa|grep readline readline-4.3-13 readline-devel-4.3-13 [[email protected] rpms]# rpm -qa|grep libter libtermcap-2.0.8-39 libtermcap-devel-2.0.8-39 [[email protected] rpms]# 重新安裝: [[email protected] rlwrap-0.37]# ./configure [[email protected] 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 [email protected]@#/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‘ [[email protected] rlwrap-0.37]# [[email protected] 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‘ [[email protected] rlwrap-0.37]# 3、驗證安裝結果 [[email protected] rlwrap-0.37]#su – oracle [[email protected] ~]$ 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’ 6.其他 臨時解決辦法 避免 backspace 出現奇怪的符號,可以在xshell中 文件-->打開-->屬性-->鍵盤 delete鍵序列配置為:ASCII 127 backspace鍵序列配置為:backspace 在環境變量中增加 stty erase ‘^H‘

【轉載】sqlplus中上下方向鍵回調歷史命令--rlwrap安裝