V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pppguest3962
V2EX  ›  程序员

在 Linux 的 shell 脚本里,如何调用 make && make install?

  •  
  •   pppguest3962 · Mar 23, 2022 · 2151 views
    This topic created in 1500 days ago, the information mentioned may be changed or developed.

    想做个 sh 脚本完成软件的准备工作
    其中有一步是对软件代码编译安装
    如:/tmp/mysql-5.1.71/configure --xxx 已经完成后
    要在 /tmp/mysql-5.1.71/的路径下执行 make && make install 在 sh 脚本里:
    ./testsh.sh: line 1: /tmp/mysql-5.1.73/make: No such file or directory

    请问正确姿势应该是怎么样?

    8 replies    2022-03-25 12:08:10 +08:00
    bootvue
        1
    bootvue  
       Mar 23, 2022   ❤️ 1
    写绝对路径
    1KN6sAqR0a57no6s
        2
    1KN6sAqR0a57no6s  
       Mar 23, 2022   ❤️ 1
    cd /tmp/mysql-5.1.73/
    /usr/bin/make
    /usr/bin/make install
    jaredyam
        3
    jaredyam  
       Mar 23, 2022   ❤️ 1
    [makefile - How to run make file from any directory? - Super User]( https://superuser.com/questions/370575/how-to-run-make-file-from-any-directory)
    adoal
        4
    adoal  
       Mar 23, 2022 via iPhone
    如#2 所说。但是 /usr/bin 是标准路径,正常情况下不会需要指定的。而且从出错信息来看寻找 make 的位置居然是在源码目录下,这太不正常了,感觉像是 PATH 被破坏了。还有它居然是在 sh 文件的 line 1 ?处处透露着诡异。
    不如把你写的 sh 内容原样贴上来大家帮你看下。这样盲猜不太好猜。
    ysc3839
        5
    ysc3839  
       Mar 23, 2022 via Android
    怀疑是 X-Y Problem https://coolshell.cn/articles/10804.html
    为什么需要使用源代码编译 MySQL ?预编译的不能用吗?
    AllenHua
        6
    AllenHua  
       Mar 24, 2022
    需要调用 make 的命令位置应该是在 /bin/make 才对吧……

    你得把 shell script 贴出来让大家看看才能更好 debug

    分享一个 CentOS7 下的一个编译安装 libsodium 加密库的 shell 脚本

    ```
    #!/bin/bash
    # install dependencies
    yum update -y
    yum install -y pcre pcre-devel git gettext gcc autoconf libtool automake make asciidoc xmlto c-ares-devel libev-devel

    export LIBSODIUM_VER=1.0.17
    wget https://download.libsodium.org/libsodium/releases/libsodium-$LIBSODIUM_VER.tar.gz
    tar xvf libsodium-$LIBSODIUM_VER.tar.gz
    pushd libsodium-$LIBSODIUM_VER
    ./configure --prefix=/usr && make
    #./configure && make && make check
    make install
    popd
    ldconfig
    ```
    echoechoin
        7
    echoechoin  
       Mar 24, 2022
    make -C /src
    julyclyde
        8
    julyclyde  
       Mar 25, 2022
    你执行的不是 make
    你执行的是./make
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 06:10 · PVG 14:10 · LAX 23:10 · JFK 02:10
    ♥ Do have faith in what you're doing.