sql中继安装失败

我刚刚创build了一个docker容器,并试图在其中安装SQL Relay。

我已经检查了这里的先决条件,并按照这里的安装文件。

但是,在make install sqlrelay的最后,我看到这样的错误:

 update-rc.d: /etc/init.d/sqlrelay: file does not exist update-rc.d: /etc/init.d/sqlrcachemanager: file does not exist make[1]: *** [install] Error 1 make[1]: Leaving directory `/sqlrelay-0.66.0/init' make: *** [install-init] Error 2 

我的安装可能有问题?

以下是我用来开始安装的docker文件:

 FROM ubuntu:trusty RUN apt-get update && \ apt-get install libxml2-dev libpcre3 libpcre3-dev libmysqld-dev -y RUN apt-get install mysql-server libmysqlclient-dev -y # sql relay prerequisites RUN apt-get install g++ make perl php5-dev python-dev ruby-dev \ tcl-dev openjdk-7-jdk erlang-dev nodejs-dev node-gyp mono-devel \ libmariadbclient-dev libpq-dev firebird-dev libfbclient2 libsqlite3-dev \ unixodbc-dev freetds-dev mdbtools-dev -y COPY rudiments-0.56.0.tar.gz / COPY sqlrelay-0.66.0.tar.gz / EXPOSE 80 

这里是./configuremake install里面sqlrelay-0.66.0文件夹的输出:

configure_log

make_log

make_install_log

如果您需要更多关于我的安装过程的信息,请告诉我。 我可以提供。

我认为你应该使用ADD而不是COPY ,如你所在的行

COPY rudiments-0.56.0.tar.gz /

您的COPY仅复制.tar.gz,但不解压缩

与ADD一样

If the <src> parameter of ADD is an archive in a recognised compression format, it will be unpacked

这是从中提取的

Dockerfile中的`COPY`和`ADD`命令有什么区别?

我最近遇到了同样的问题。 我发现的问题是init Makefile在Ubuntu Trusty中错误地检测到systemctl的使用,并将脚本放在那里。 稍后脚本会尝试在init.d中查找脚本并失败。

解决方法是编辑Makefile: sqlrelay-XXX/init/Makefile

更换:

 install: if ( test -d "/lib/systemd/system" ); \ 

附:

 install: if ( test -d "/lib/systemd/system_x" ); \ 

稍后在脚本中对uninstall选项进行类似的更改,现在可以在Ubuntu上正确安装。