我尝试用 替换 a 中的一行Makefile
,sed -i -e 's|$(bindir)\/embossupdate|:|' Makefile
但我得到了sed: can't read Makefile: No such file or directory
FROM ubuntu:16.04
...
# EMBOSS (ftp://emboss.open-bio.org/pub/EMBOSS/)
ENV EMBOSS_VER 6.6.0
RUN apt-get install libhpdf-dev libpng12-dev libgd-dev -y
ADD EMBOSS-${EMBOSS_VER}.tar.gz /usr/local/
WORKDIR /usr/local/EMBOSS-${EMBOSS_VER}
RUN sed -i -e 's|$(bindir)\/embossupdate|:|' Makefile
RUN ./configure --enable-64 --with-thread --without-x
RUN make
RUN ldconfig
RUN make install
我的 sed 命令做错了什么?
答案1
在运行configure
脚本之前不会创建 Makefile。尝试放置sed
命令后的调用configure
。
我还没有检查sed
编辑是否做了它应该做的事情,但主要问题可能是 Makefile 在脚本中此时还不存在。
一般来说,我会避免,sed -i
因为它的语义对于 GNU 和 BSD 是不同的sed
。这样比较安全sed ... file >tmpfile && mv tmpfile file
。