sed: Makefile을 읽을 수 없습니다: 해당 파일이나 디렉터리가 없습니다

sed: Makefile을 읽을 수 없습니다: 해당 파일이나 디렉터리가 없습니다

나는 라인을 다음으로 바꾸려고 시도 Makefile했지만sed -i -e 's|$(bindir)\/embossupdate|:|' Makefilesed: 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

Makefile은 스크립트가 실행될 때까지 생성되지 않습니다 configure. sed명령을 내려보세요뒤쪽에부르다 configure.

sed편집이 예상대로 수행되는지 확인하지 않았지만 주요 문제는 아마도 스크립트의 이 시점에서 Makefile이 존재하지 않는다는 것입니다.

sed -i일반적 으로 GNU와 BSD의 의미가 다르기 때문에 이를 피하겠습니다 sed. 이것이 더 안전합니다 sed ... file >tmpfile && mv tmpfile file.

관련 정보