想做个 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
请问正确姿势应该是怎么样?
1
bootvue 2022-03-23 20:20:33 +08:00 1
写绝对路径
|
2
1KN6sAqR0a57no6s 2022-03-23 20:22:11 +08:00 1
cd /tmp/mysql-5.1.73/
/usr/bin/make /usr/bin/make install |
3
jaredyam 2022-03-23 20:24:34 +08:00 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)
|
4
adoal 2022-03-23 21:47:44 +08:00 via iPhone
如#2 所说。但是 /usr/bin 是标准路径,正常情况下不会需要指定的。而且从出错信息来看寻找 make 的位置居然是在源码目录下,这太不正常了,感觉像是 PATH 被破坏了。还有它居然是在 sh 文件的 line 1 ?处处透露着诡异。
不如把你写的 sh 内容原样贴上来大家帮你看下。这样盲猜不太好猜。 |
5
ysc3839 2022-03-23 21:58:11 +08:00 via Android
怀疑是 X-Y Problem https://coolshell.cn/articles/10804.html
为什么需要使用源代码编译 MySQL ?预编译的不能用吗? |
6
AllenHua 2022-03-24 08:48:09 +08:00
需要调用 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 ``` |
7
echoechoin 2022-03-24 18:36:51 +08:00
make -C /src
|
8
julyclyde 2022-03-25 12:08:10 +08:00
你执行的不是 make
你执行的是./make |