Linux运维_Bash脚本_构建安装Meson-1.0.1和Ninja-1.11.1

2024-03-04 06:28

本文主要是介绍Linux运维_Bash脚本_构建安装Meson-1.0.1和Ninja-1.11.1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux运维_Bash脚本_构建安装Meson-1.0.1和Ninja-1.11.1

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

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

使用方法

  • 下载源码包:

meson-1.0.1.tar.gz

re2c-3.1.tar.gz

ninja-1.11.1.tar.gz

  • 放于指定路径:

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

  • 执行 Bash Shell 脚本:

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

完整脚本

#! /bin/bash
# Create By GF 2024-02-20 21:42# Install First: GNU-Tools (Contains: pkg-config, m4, autoconf, automake, libtool, gettext, flex, bison, libiconv, make)# ------------------ Meson - 1.0.1 -----------------
# Need File: meson-1.0.1.tar.gz
# ---------- Ninja - 1.11.1 - configure.py ---------
# Need File: re2c-3.1.tar.gz
# Need File: ninja-1.11.1.tar.gz# ##################################################
STORAGE=/home/goufeng# ########################################### Meson - 1.0.1 ########################################### Function: 构建安装(Build Install) Meson-1.0.1 (by Python3)
# ##################################################
function Build_Install_Meson_1_0_1_by_Python3() {if [[ ! -f "/usr/local/bin/meson" ]]; then# Meson 工具一般和 Ninja 工具一起使用。# Meson 可以使用 Python 的 Pip 工具安装: pip install --user meson# Meson 可以从源码进行构建安装: python3 setup.py build 以及 python3 setup.py install# Ninja 可以使用 Python 的 Pip 工具安装: pip install --user ninja# Ninja 可以从源码进行构建安装: python3 ./configure.py --bootstrap (需要下载含有 configure.py 的源码包)local VERIFYlocal STEP_UNZIPPED=0local STEP_BUILDED=0local STEP_INSTALLED=0# ------------------------------------------read -p "[Confirm] Build and Install ( meson-1.0.1 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/meson-1.0.1.tar.gz && STEP_UNZIPPED=1# ------------------------------------------cd $STORAGE/meson-1.0.1 && python3 setup.py build && STEP_BUILDED=1# ------------------------------------------cd $STORAGE/meson-1.0.1 && python3 setup.py install && STEP_INSTALLED=1# ------------------------------------------if [[ $STEP_INSTALLED == 1 ]]; thenln -sf /opt/Python-3.8.0/bin/meson /usr/local/bin/fi# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/meson-1.0.1 && return 0elseecho "[Caution] Bin: ( /usr/local/bin/meson ) Already Exists."# ------------------------------------------return 0fi
}# ################################### Ninja - 1.11.1 - configure.py ################################### Function: 编译安装(Compile Install) re2c-3.1
# ##################################################
function Compile_Install_re2c_3_1() {if [[ ! -f "/usr/local/bin/re2c" ]]; thenlocal VERIFYlocal STEP_UNZIPPED=0local STEP_AUTOGEN=0local STEP_CONFIGURED=0local STEP_INSTALLED=0# ------------------------------------------read -p "[Confirm] Compile and Install ( re2c-3.1 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/re2c-3.1.tar.gz && STEP_UNZIPPED=1# ------------------------------------------# * Problem: aclocal: warning: couldn't open directory 'm4': No such file or directory#   - Solve: 只是由于文件夹下没有 m4 文件夹导致, 只需要在当前文件夹下创建一个 m4 文件夹即可 (mkdir m4)。# ..........................................# * Problem: Makefile.am:477: error: Libtool library used but 'LIBTOOL' is undefined#            Makefile.am:477:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'#            Makefile.am:477:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.#            Makefile.am:477:   If 'LT_INIT' is in 'configure.ac', make sure#            Makefile.am:477:   its definition is in aclocal's search path.#            autoreconf: automake failed with exit status: 1#   - Solve: 原因是 automake 和 libtool 没有安装在同一目录中, 导致 aclocal 在路径中找不到 .m4 文件。#            解决方法 (1):#                1. 执行 aclocal --print-ac-dir 查看 aclocal 的路径, 例如显示 /opt/automake-1.15/share/aclocal#                2. 将 libtool 的 share/aclocal 目录中的 .m4 文件复制到 /opt/automake-1.15/share/aclocal (cp /opt/libtool-2.4.6/share/aclocal/*.m4 /opt/automake-1.15/share/aclocal/)#                3. 再次执行 autoreconf, 问题解决。#            解决方法 (2):#                1. 确保二进制 bin 文件: "aclocal" (包含在 automake 中) 和 "libtoolize" (包含在 libtool 中) 在可找到 PATH 中 (最好是同一路径下)#                2. 先执行 libtoolize, 会在当前目录自动生成要用到的 .m4 文件, 再执行 autoreconf, 问题解决。cd $STORAGE/re2c-3.1 && ./autogen.sh && STEP_AUTOGEN=1# ------------------------------------------cd $STORAGE/re2c-3.1 && ./configure --prefix=/opt/re2c-3.1 && STEP_CONFIGURED=1# ------------------------------------------make && make install && STEP_INSTALLED=1# ------------------------------------------if [[ $STEP_INSTALLED == 1 ]]; thenln -sf /opt/re2c-3.1/bin/re2c    /usr/local/bin/ln -sf /opt/re2c-3.1/bin/re2go   /usr/local/bin/ln -sf /opt/re2c-3.1/bin/re2rust /usr/local/bin/fi# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/re2c-3.1 && return 0elseecho "[Caution] Bin: ( /usr/local/bin/re2c ) Already Exists."# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) Ninja-1.11.1-by-Py-Configure (by Python3)
# ##################################################
function Build_Install_Ninja_1_11_1_by_Py_Configure_by_Python3() {if [[ ! -f "/usr/local/bin/ninja" ]]; then# Ninja 工具一般配合 Meson 工具使用。# Meson 可以使用 Python 的 Pip 工具安装: pip install --user meson# Meson 可以从源码进行构建安装: python3 setup.py build 以及 python3 setup.py install# Ninja 可以使用 Python 的 Pip 工具安装: pip install --user ninja# Ninja 可以从源码进行构建安装: python3 ./configure.py --bootstrap (需要下载含有 configure.py 的源码包)local VERIFYlocal STEP_UNZIPPED=0local STEP_BUILDED=0# ------------------------------------------read -p "[Confirm] Build and Install ( ninja-1.11.1 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar zxvf $STORAGE/ninja-1.11.1.tar.gz && STEP_UNZIPPED=1# ------------------------------------------# * Problem: warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.#   - Solve: Install re2c.# ..........................................# * Caution: 构建完成后, 构建目录下将生成 ninja 二进制可执行文件。cd $STORAGE/ninja-1.11.1 && python3 ./configure.py --bootstrap && STEP_BUILDED=1# ------------------------------------------# * Caution: 安装 Ninja, 其实就是让系统在需要的时候能找到 Ninja 这个二进制文件并运行。if [[ $STEP_BUILDED == 1 ]]; thencp $STORAGE/ninja-1.11.1/ninja /usr/local/bin/fi# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/ninja-1.11.1 && return 0elseecho "[Caution] Bin: ( /usr/local/bin/ninja ) Already Exists."# ------------------------------------------return 0fi
}function main() {# --------------- Meson - 1.0.1 ----------------Build_Install_Meson_1_0_1_by_Python3# -------- Ninja - 1.11.1 - configure.py -------Compile_Install_re2c_3_1Build_Install_Ninja_1_11_1_by_Py_Configure_by_Python3
}main

总结

以上就是关于 Linux运维 Bash脚本 构建安装Meson-1.0.1和Ninja-1.11.1 的全部内容。

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

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

这篇关于Linux运维_Bash脚本_构建安装Meson-1.0.1和Ninja-1.11.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772271

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了