Linux运维_Bash脚本_构建安装ReadLine-6.2.4(setup.py)

Linux运维_Bash脚本_构建安装ReadLine-6.2.4(setup.py)

Bash (Bourne Again Shell) 是一个解释器,负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件,并于 1989 年发布的免费软件,作为 Sh (Bourne Shell) 的替代品。

您可以在 Linux 和 MacOS 机器上使用 Bash,甚至可以通过适用于 Linux 的 Windows 子系统在 Windows 10 机器上使用。

使用方法

  • 下载源码包:

readline-6.2.4.tar.gz

  • 放于指定路径:

这里 Bash Shell 脚本的全局变量 STORAGE 指定的存放源码包的路径 /home/goufeng 可进行修改。

  • 执行 Bash Shell 脚本:

输入 /[路径名]/[脚本名].sh 即可进行自动编译部署,过程中提示输入 (y/n) 输入 y 则进行下一步,这样分阶段确认的原因是为了确保能够看到上一个源码编译结果中可能的错误和提示。

完整脚本

#! /bin/bash
# Create By GF 2024-03-07 13:12# --------------------------------------------------
# Install First:
# * ncurses
# * Python >= 3.x# -------------------- ReadLine --------------------
# Need File: readline-6.2.4.tar.gz# ##################################################
STORAGE=/home/goufeng# ############################################# ReadLine ############################################## Function: 构建安装(Build Install) ReadLine-6.2.4 (by Python3)
# ##################################################
function Build_Install_ReadLine_6_2_4_by_Python3() {# ----------------------------------------------# Python 中的 ReadLine 库说明:# Python 的 readline 模块是 GNU Readline Library 的一个封装, Readline 软件包是一个提供命令行编辑和历史纪录功能的库集合。# ..............................................# 如果没有 readline 模块的话, 比如运行 ipython 无法使用 Tab 键自动补全, 无法使用命令历史功能来方便地进行程序的调试。# ----------------------------------------------# Linux 中的 expr index 说明:# 使用 expr index "$string" "$substring" 来判断字符串 $string 中是否包含子字符串 $substring。# Use the expr index "$string" and "$substring" to determine whether the string $string contains a substring $substring.# ..............................................# 如果子字符串存在, 则返回子字符串在原字符串中的位置 (从 1 开始), 否则返回 0。# If the substring exists, return the position of the substring in the original string (starting from 1), otherwise return 0.local EXISTS_LINE=$(pip3 list | grep "readline")local EXISTS_NAME=$(expr index "$EXISTS_LINE" "readline")local EXISTS_VERSION=$(expr index "$EXISTS_LINE" "6.2.4")if [[ $EXISTS_NAME == 0 && $EXISTS_VERSION == 0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED=0local STEP_BUILDED=0local STEP_INSTALLED=0# ------------------------------------------read -p "[Confirm] Build and Install ( readline-6.2.4 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/readline-6.2.4.tar.gz && STEP_UNZIPPED=1# ------------------------------------------# * Problem: /usr/bin/ld: can not find -lncurses#   - Solve: 因为 Python 的 readline 依赖于 Linux 的 ncurses 库, 如果没有这个库, 编译 readline 的时候会提示 can not find -lncursescd $STORAGE/readline-6.2.4 && python3 setup.py build && STEP_BUILDED=1# ------------------------------------------cd $STORAGE/readline-6.2.4 && python3 setup.py install && STEP_INSTALLED=1# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/readline-6.2.4 && return 0elseecho "[Caution] Python Program: ( readline-6.2.4 ) Already Exists."# ------------------------------------------return 0fi
}function main() {# ------------------ ReadLine ------------------Build_Install_ReadLine_6_2_4_by_Python3
}main

总结

以上就是关于 Linux运维 Bash脚本 构建安装ReadLine-6.2.4(setup.py) 的全部内容。

更多内容可以访问我的代码仓库:

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】iftop命令详解

目录 一、iftop简介 二、安装iftop命令 2.1 命令查看测试环境系统信息 2.2 查看iftop版本与命令帮助 三、iftop的基本使用 3.1 直接使用iftop命令 3.2 iftop的显示说明 3.3 指定监控某块网卡 3.4 显示某个网段进出封包流量 3.5 按照流量排序 3.6 过滤显示连接 3.7 …

米酒生产加工污水处理需要哪些工艺设备

米酒生产加工过程中产生的污水是一项重要的环境问题,需要采用适当的工艺设备进行处理。下面将介绍一些常用的污水处理工艺设备。 首先,生产过程中的污水需要进行初级处理,常见的设备包括格栅和砂池。格栅用于去除污水中的大颗粒杂质&#xff…

穿越程序员的迷宫:前端花园、后端洞穴与数据科学的密室

穿越程序员的迷宫:前端花园、后端洞穴与数据科学的密室 当你步入程序员的职业赛道,就像踏入一座错综复杂的迷宫。这座迷宫中,有前端的美丽花园,后端的黑暗洞穴,还有数据科学的神秘密室。每一个转角都可能藏着新的机遇…

金相显微镜(金相镜)主要用于材料金相分析 我国市场集中度较低

金相显微镜(金相镜)主要用于材料金相分析 我国市场集中度较低 金相显微镜又称为金相镜,是指通过光学放大,对材料显微组织、低倍组织和断口组织等进行分析研究和表征的光学显微镜。金相显微镜通常由目镜、物镜、照明系统、旋转台等…

Unity 和 UE 的 .gitignore 文件

各种.gitignore版本 点击跳转 Unity .gitignore 模版 # This .gitignore file should be placed at the root of your Unity project directory # # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore # /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb…

视频监控平台EasyCVR+4G/5G应急布控球远程视频监控方案

随着科技的不断发展,应急布控球远程视频监控方案在公共安全、交通管理、城市管理等领域的应用越来越广泛。这种方案通过在现场部署应急布控球,实现对特定区域的实时监控,有助于及时发现问题、快速响应,提高管理效率。 智慧安防视…

idea步过,步入,步出,详解

在软件开发中,"Idea"通常指的是JetBrains公司开发的一款集成开发环境(IDE),用于编写、调试和运行各种编程语言的应用程序。下面是对"Idea"中的步过、步入和步出的详细解释: 步过(Step …

MySQL如何使用EXPLAIN优化SQL:输出内容参考手册

MySQL如何使用EXPLAIN优化SQL:输出内容参考手册 这篇文章差不多是MySQL官网的翻译版本,有任何不清楚的,或者翻译不到位的地方,都可以直接去官网查询原文档。 MySQL 8.0 Reference Manual - EXPLAIN Output Format EXPLAIN语句提…

为什么不推荐使用外键

定义外键之后,数据库的每次操作都需要去检查外键约束。对于插入来说,影响了插入速度;对于更新来说,级联更新是强阻塞,存在数据库更新风暴(Database Update Storm)的风险。 所谓 Database Updat…

2024健康服务展/营养健康展/山东功能性食品展会/大健康展

6大展馆,1200家参展商,20000款展品,100000买家,打造2024年度大健康行业价值盛会; 2024第6届中国(济南)国际大健康产业博览会(China-DJK山东健博会) The 2024 sixth Chin…

window vscode安装node.js

window vscode安装node.js 官网下好vscode 和nodejs 点这个安装 等待安装完毕 在VScode运行 npm -v node -v 显示版本号则成功

【剑指offer】70--矩形覆盖[C++]

目录 1. 题目描述 2. 解题思路 3.【C解法】 4. 输出结果 1. 题目描述 我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?注意:约定 n 0 时,输…

StarCoder 2:GitHub Copilot本地开源LLM替代方案

GitHub CoPilot拥有超过130万付费用户,部署在5万多个组织中,是世界上部署最广泛的人工智能开发工具。使用LLM进行编程辅助工作不仅提高了生产力,而且正在永久性地改变数字原住民开发软件的方式,我也是它的付费用户之一。 低代码/…

JVM-对象创建与内存分配机制深度剖析 3

JVM对象创建过程详解 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个 符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new…

【小黑送书—第十一期】>>如何阅读“计算机界三大神书”之一 ——SICP(文末送书)

《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简记为SICP)是MIT的基础课教材,出版后引起计算机教育界的广泛关注,对推动全世界大学计算机科学技术教育的发展和成熟产生了很大影响。…

园区内网配置——华为

部署思路 表1 设备登录安全策略部署 部署建议 功能描述 应用场景 配置本地Console口登录的安全功能 配置Console口用户界面的认证方式和用户级别等。 本地Console口登录设备时建议配置此功能,提升本地设备登录的安全性。 配置远程STelnet登录的安全功能 配置…

2024年AI辅助研发:科技新贵,工业变革的先锋

2024年AI辅助研发:科技新贵,工业变革的先锋 随着人工智能(AI)技术的持续发展与突破,我们站在了一个令人振奋的时代门槛上。2024年,AI辅助研发正迅速成为科技界和工业界共同瞩目的焦点。从实验室的微观世界…

nginx 的 location 模块

目录 一、匹配规则 1.基础匹配 2.精确匹配 3.前缀匹配 4.正则表达式匹配 二、优先级顺序 三、示例 1.精确匹配 2.前缀匹配 3.正则匹配 4.默认匹配 第一种情况:proxy_pass最后面没有斜杠,匹配路径有斜杠(/bbb/) 第二种情况: proxy_pass最后面…

日常开发Git命令

场景: 在远程库创建分支后,在本地开发后-合并代码-push到远程库 命令行 #查看现在分支 git branch #切换到master分支 git checkout master #拉取远程库修改 git pull git branch #切换到修改的分支 git checkout feature/s3-use-internel-name #merg…

c1-第三周

文章目录 1月份2.定义一个整形数组arr2.定义整形栈s3.输入一个字符串包括大小写和数字,将其中的大写英文字母改为小写,并且输出数字个数4.根据下面数据,编程实现要求功能: 9月1.编写程序实现以下功能或问题3.完成以下功能4.对运算…