目錄
前言
今天在一臺數據庫主機上想安裝 rlwrap 插件(上下文切換,退格優化),方便運維操作,但是 rlwrap 需要前置安裝 readline-devel,因為是內網環境,也不方便掛載鏡像 ISO、沒有 YUM 源的情況下,如何才能安裝呢?

本文記錄一下操作過程,便于以后查看。
下載 rpm 包
有兩種方式可以獲取到 readline-devel 包,yum install --downloadonly 和在線鏡像源下載。
downloadonly
找一臺可以訪問網絡的主機,配置好在線鏡像源,這里我選擇的是清華大學的鏡像源網站:https://mirrors.tuna.tsinghua.edu.cn/help/centos-vault/

支持一鍵配置在線軟件源,十分方便,我這里主機系統是 centos 7.9.2009,所以這里小版本就填對應的版本號即可,將一鍵配置命令復制到主機上執行即可:
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors4.tuna.tsinghua.edu.cn/centos-vault/7.9.2009|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors4.tuna.tsinghua.edu.cn/centos-vault/7.9.2009|g" \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
yum makecache
下載 readline-devel 包:
## 下載到 /pkg 目錄下
yum install --downloadonly --downloaddir=/pkg readline-devel
下載完成后在 /pkg 目錄下會生成 rpm 包:
- ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
- readline-devel-6.2-11.el7.x86_64.rpm
下載之后,上傳 rpm 包到需要安裝的 centos7.9 主機上進行安裝即可:
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm
這個方式好的點在于可以把 readline-devel 所需的依賴包 ncurses-devel 給級聯下載出來,適用于不了解 readline-devel 安裝需要哪些依賴包。
在線鏡像源下載
如果知道 readline-devel 安裝需要哪些依賴包,那就可以直接去在線鏡像源下載即可,更加方便快捷。
以 centos7.9 為例,打開:https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.9.2009/os/x86_64/Packages/,搜索需要下載的依賴包進行右鍵下載即可:


下載之后,上傳 rpm 包到需要安裝的 centos7.9 主機上進行安裝即可:
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm
不同大版本的 rpm 包也不一樣,需要根據主機版本進行下載,小版本通用,但是 redhat 和 centos 是通用的。
我這里列一下 centos6/7/8/9/10 的下載路徑:
- centos6:
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.10/os/x86_64/Packages/ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.10/os/x86_64/Packages/readline-devel-6.0-4.el6.x86_64.rpm
- centos7:
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.9.2009/os/x86_64/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.9.2009/os/x86_64/Packages/readline-devel-6.2-11.el7.x86_64.rpm
- centos8:
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111/BaseOS/x86_64/os/Packages/ncurses-devel-6.1-9.20180224.el8.x86_64.rpm
- https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111/BaseOS/x86_64/os/Packages/readline-devel-7.0-10.el8.x86_64.rpm
- centos9:
- https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/AppStream/x86_64/os/Packages/ncurses-devel-6.2-12.20210508.el9.x86_64.rpm
- https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/AppStream/x86_64/os/Packages/readline-devel-8.1-4.el9.x86_64.rpm
- centos10:
- https://mirrors.tuna.tsinghua.edu.cn/centos-stream/10-stream/AppStream/x86_64/os/Packages/ncurses-devel-6.4-14.20240127.el10.x86_64.rpm
- https://mirrors.tuna.tsinghua.edu.cn/centos-stream/10-stream/AppStream/x86_64/os/Packages/readline-devel-8.2-11.el10.x86_64.rpm
建議手動下載這些 rpm 包后保存到本地,這樣內網安裝 rlwrap 也是輕輕松松了!
安裝 rlwrap 插件
rlwrap 插件安裝就很簡單了,官網下載 https://github.com/hanslub42/rlwrap/releases,我比較喜歡 v0.46 版本,大家根據自己的喜好來!
下載后上傳到主機上進行安裝即可:
tar -xf rlwrap-0.46.tar.gz
cd rlwrap-0.46
./configure -q && make -s && make install -s
安裝完成之后,配置一下 rlwrap,比如 Oracle 數據庫配置:
cat<<-EOF>>/home/oracle/.bash_profile
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias adrci='rlwrap adrci'
EOF
source /home/oracle/.bash_profile
然后就可以打開 sqlplus 愉快的切換上下文翻頁了!
寫在最后
現在 AI 開發很方便,完全可以把這些提升數據庫運維效率的優化寫成一個一鍵腳本,進行一鍵優化:
[root@lucifer ~]# sh lo.sh
[2025-09-02 15:54:51] 開始Oracle數據庫主機優化...
[2025-09-02 15:54:51] 開始配置root用戶的.bash_profile...
[2025-09-02 15:54:51] 已備份 /root/.bash_profile
[2025-09-02 15:54:51] root用戶.bash_profile配置完成
[2025-09-02 15:54:51] 開始配置oracle用戶的.bash_profile...
[2025-09-02 15:54:51] 已備份 /home/oracle/.bash_profile
[2025-09-02 15:54:51] oracle用戶.bash_profile配置完成
[2025-09-02 15:54:51] 開始安裝lrzsz...
[2025-09-02 15:54:51] lrzsz已經安裝,跳過安裝步驟
[2025-09-02 15:54:51] 開始檢查rlwrap安裝狀態...
[2025-09-02 15:54:51] rlwrap未安裝,開始安裝流程...
[2025-09-02 15:54:51] 檢查系統信息...
[2025-09-02 15:54:51] 當前系統版本: Red Hat Enterprise Linux Server release 6.9 (Santiago)
[2025-09-02 15:54:51] 檢查rlwrap編譯依賴...
[2025-09-02 15:54:51] ncurses-devel未安裝,檢查/tmp目錄下的rpm包...
[2025-09-02 15:54:51] 找到ncurses-devel rpm包: ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
[2025-09-02 15:54:51] readline-devel未安裝,檢查/tmp目錄下的rpm包...
[2025-09-02 15:54:51] 找到readline-devel rpm包: readline-devel-6.0-4.el6.x86_64.rpm
[2025-09-02 15:54:51] 開始安裝依賴rpm包...
[2025-09-02 15:54:51] 安裝: ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
[2025-09-02 15:54:52] ncurses-devel-5.7-4.20090207.el6.x86_64.rpm 安裝成功
[2025-09-02 15:54:52] 安裝: readline-devel-6.0-4.el6.x86_64.rpm
[2025-09-02 15:54:52] readline-devel-6.0-4.el6.x86_64.rpm 安裝成功
[2025-09-02 15:54:52] rlwrap編譯依賴檢查通過
[2025-09-02 15:54:52] 檢查rlwrap安裝文件...
[2025-09-02 15:54:52] rlwrap源碼包檢查完成
[2025-09-02 15:54:52] 解壓rlwrap源碼...
[2025-09-02 15:54:52] 編譯和安裝rlwrap...
[2025-09-02 15:54:58] rlwrap安裝成功
[2025-09-02 15:54:58] 創建rlwrap軟鏈接...
[2025-09-02 15:54:58] rlwrap軟鏈接創建成功
[2025-09-02 15:54:58] rlwrap安裝驗證成功
[2025-09-02 15:54:58] 檢查oracle用戶的rlwrap別名配置...
[2025-09-02 15:54:58] 需要添加rlwrap別名: sqlplus
[2025-09-02 15:54:58] 需要添加rlwrap別名: rman
[2025-09-02 15:54:58] 需要添加rlwrap別名: adrci
[2025-09-02 15:54:58] 已備份 /home/oracle/.bash_profile
[2025-09-02 15:54:58] 已添加: alias sqlplus='rlwrap sqlplus'
[2025-09-02 15:54:58] 已添加: alias rman='rlwrap rman'
[2025-09-02 15:54:58] 已添加: alias adrci='rlwrap adrci'
[2025-09-02 15:54:58] oracle用戶rlwrap別名配置完成
[2025-09-02 15:54:58] ===== Oracle數據庫主機優化完成 =====
配置已完成,包含以下優化:
Root用戶別名:
so - 切換到oracle用戶
sg - 切換到grid用戶
Oracle用戶別名:
sas - 以sysdba身份連接數據庫
awr - 運行AWR報告
ash - 運行ASH報告
alert - 編輯alert日志
bdf - 顯示磁盤使用情況
acd - 切換到trace目錄
dblog - 實時查看alert日志
Oracle用戶rlwrap別名:
sqlplus - 帶歷史記錄的sqlplus
rman - 帶歷史記錄的rman
adrci - 帶歷史記錄的adrci
請執行以下命令使配置生效:
source /root/.bash_profile
su - oracle -c 'source ~/.bash_profile'
已安裝的工具:
lrzsz - 支持rz/sz文件傳輸功能
rlwrap - 支持命令行歷史和編輯功能
rlwrap功能說明:
- 支持命令歷史記錄(上下方向鍵)
- 支持命令行編輯功能
- oracle用戶可直接使用: sqlplus, rman, adrci
- 手動使用示例: rlwrap sqlplus / as sysdba
[2025-09-02 15:54:58] 優化腳本執行完成!
大家感興趣的也可以用 AI 寫一個最適合自己的一鍵優化工具,提升運維幸福感!




