web-dev-qa-db-ja.com

sed:Makefileを読み取れません:そのようなファイルまたはディレクトリはありません

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コマンドの何が問題でしたか?

3
user977828

configureスクリプトを実行するまで、Makefileは作成されません。 sedコマンドを配置してみてくださいconfigureの呼び出し。

sed編集が正常に機能しているかどうかは確認していませんが、主な問題は、スクリプトのその時点でMakefileがまだ存在していないことです。

GNUとBSD sedではセマンティクスが異なるため、一般にsed -iは避けます。sed ... file >tmpfile && mv tmpfile fileの方が安全です。

3
Kusalananda