Linux运维_Bash脚本_编译安装Glibc-2.38

Linux运维_Bash脚本_编译安装Glibc-2.38

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

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

使用方法

  • 下载源码包:

gawk-5.2.2.tar.xz

glib-2.78.4.tar.xz

  • 放于指定路径:

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

  • 执行 Bash Shell 脚本:

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

完整脚本

#! /bin/bash
# Create By GF 2024-03-14 18:52

# --------------------------------------------------
# Install First: 
# * GCC

# ------------------- Dependency -------------------
# Need File: gawk-5.2.2.tar.xz
# ------------------ Glibc - 2.38 ------------------
# Need File: glib-2.78.4.tar.xz

# ##################################################
STORAGE=/home/goufeng

# ############################################ Dependency ############################################

# Function: 编译安装(Compile Install) Gawk-5.2.2
# ##################################################
function Compile_Install_Gawk_5_2_2() {

    if [[ ! -d "/opt/gawk-5.2.2" ]]; then
    
        local VERIFY
        local STEP_UNZIPPED=0
        local STEP_CONFIGURED=0
        local STEP_INSTALLED=0
        
        # ------------------------------------------
        echo "[Confirm] Compile and Install ( gawk-5.2.2 )? (y/n)"
        # ..........................................
        read VERIFY
        # ..........................................
        if [[ $VERIFY != "y" ]]; then exit 1; fi
        
        # ------------------------------------------
        tar -Jxvf $STORAGE/gawk-5.2.2.tar.xz && STEP_UNZIPPED=1
        
        # ------------------------------------------
        cd $STORAGE/gawk-5.2.2 && ./configure --prefix=/opt/gawk-5.2.2 && STEP_CONFIGURED=1
        
        # ------------------------------------------
        make && make install && STEP_INSTALLED=1
        
        # ------------------------------------------
        if [[ $STEP_INSTALLED == 1 ]]; then
            # Default None .pc (Pkg-Config) File.
            # ......................................
            # Skip # if [[ ! -d "/usr/local/libexec" ]]; then mkdir /usr/local/libexec; fi
            # ......................................
            # Skip # ln -sf /opt/gawk-5.2.2/bin/* /usr/local/bin/
            # ......................................
            # Skip # rsync -av /opt/gawk-5.2.2/include/ /usr/local/include/
            # ......................................
            # Skip # rsync -av /opt/gawk-5.2.2/lib/ /usr/local/lib/
            # ......................................
            # Skip # rsync -av /opt/gawk-5.2.2/libexec/ /usr/local/libexec/
            # ......................................
            echo "gawk-5.2.2 has been Installed and Completed."
        fi
        
        # ------------------------------------------
        cd $STORAGE && rm -rf $STORAGE/gawk-5.2.2 && return 0
    else
        echo "[Caution] Path: ( /opt/gawk-5.2.2 ) Already Exists."
        # ------------------------------------------
        return 0
    fi
}

# ########################################### Glibc - 2.38 ###########################################

# Function: 编译安装(Compile Install) Glibc-2.38
# ##################################################
function Compile_Install_Glibc_2_38() {

    # Glib 和 Glibc 区别和联系 (Differences and connections between Glib and Glibc):
    # ..............................................
    # Glib 不是 Glibc, 尽管两者都是基于 (L)GPL 的开源软件。但这一字之差却误之千里, Glibc 是 GNU 实现的一套标准 C 的库函数, 而 Glib 是 GTK+ 的一套函数库。
    # Glib is not Glibc, although both are open-source software based on (L)GPL. But the difference in this word is a thousand miles. Glibc is a set of standard C library functions implemented by GNU, while Glib is a set of function libraries for GTK+.
    # ..............................................
    # 在 linux 平台上, 像其它任何软件一样, Glib 依赖于 Glibc。
    # On the Linux platform, like any other software, Glib relies on Glibc.
    # ..............................................
    # Glib 不是一个学院派的东西, 也不是凭空想出来的, 完全是在开发 GTK+ 的过程中, 慢慢总结和完善的结果。
    # Glib is not an academic thing, nor was it conceived out of thin air. It is entirely the result of gradually summarizing and improving during the development of GTK+.
    # ..............................................
    # 如果你是一个工作 3 年以上的 C语言 程序员, 现在让你讲讲写程序的苦恼, 你可能有很多话要说, 但如果你有时间研究一下 Glib, 你会发现, 很多苦恼已不再成其为苦恼, Glib 里很多东西正是你期望已经久的。
    # If you are a C language programmer who has been working for more than 3 years, now let's talk about the troubles of writing programs. You may have a lot to say, but if you have time to study Glib, you will find that many troubles are no longer just troubles, and many things in Glib are exactly what you have been hoping for.

    if [[ ! -d "/opt/glibc-2.38" ]]; then
    
        local VERIFY
        local STEP_UNZIPPED=0
        local STEP_CREATED=0
        local STEP_CONFIGURED=0
        local STEP_INSTALLED=0
        
        # ------------------------------------------
        echo "[Confirm] Compile and Install ( glibc-2.38 )? (y/n)"
        # ..........................................
        read VERIFY
        # ..........................................
        if [[ $VERIFY != "y" ]]; then exit 1; fi
        
        # ------------------------------------------
        tar -Jxvf $STORAGE/glibc-2.38.tar.xz && STEP_UNZIPPED=1
        
        # ------------------------------------------
        # The GNU C Library Must Configure in a Separate Build Directory.
        # GNU C Library 必须在单独的构建目录中进行配置。
        mkdir $STORAGE/glibc-2.38/build && STEP_CREATED=1
        
        # ------------------------------------------
        cd $STORAGE/glibc-2.38/build && ../configure --prefix=/opt/glibc-2.38 && STEP_CONFIGURED=1
        
        # ------------------------------------------
        make && make install && STEP_INSTALLED=1
        
        # ------------------------------------------
        if [[ $STEP_INSTALLED == 1 ]]; then
            # Default None .pc (Pkg-Config) File.
            # ......................................
            # Skip # if [[ ! -d "/usr/local/sbin" ]]; then mkdir /usr/local/sbin; fi
            # Skip # if [[ ! -d "/usr/local/libexec" ]]; then mkdir /usr/local/libexec; fi
            # ......................................
            # Skip # ln -sf /opt/glibc-2.38/bin/* /usr/local/bin/
            # ......................................
            # Skip # ln -sf /opt/glibc-2.38/sbin/* /usr/local/sbin/
            # ......................................
            # Skip # rsync -av /opt/glibc-2.38/include/ /usr/local/include/
            # ......................................
            # Skip # rsync -av /opt/glibc-2.38/lib/ /usr/local/lib/
            # ......................................
            # Skip # rsync -av /opt/glibc-2.38/libexec/ /usr/local/libexec/
            # ......................................
            echo "glibc-2.38 has been Installed and Completed."
        fi
        
        # ------------------------------------------
        cd $STORAGE && rm -rf $STORAGE/glibc-2.38 && return 0
    else
        echo "[Caution] Path: ( /opt/glibc-2.38 ) Already Exists."
        # ------------------------------------------
        return 0
    fi
}

function main() {

    # ----------- Compilation Environment ----------
    export PATH=$PATH:/opt/gawk-5.2.2/bin

    # ----------------- Dependency -----------------
    Compile_Install_Gawk_5_2_2
    # ---------------- Glibc - 2.38 ----------------
    Compile_Install_Glibc_2_38
}

main

总结

以上就是关于 Linux运维 Bash脚本 编译安装Glibc-2.38 的全部内容。

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

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mostcow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值