简体   繁体   中英

Installation of sql relay fails

I just created a docker container and tried to install SQL Relay inside it.

I've checked the prerequisites here and followed the installation documents here .

However, at the end of make install of sqlrelay, I saw an error like this:

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

What might be wrong with my installation?

Here's the docker file I used to start my installation:

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

Here are the outputs of ./configure , make , and make install inside sqlrelay-0.66.0 folder:

configure_log

make_log

make_install_log

If you need more information of my installation process, just let me know. I can provide it.

I think you should use ADD instead of COPY in your lines such as

COPY rudiments-0.56.0.tar.gz /

Your COPY just copies the .tar.gz, but does not unpack them

as with ADD

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

This is extracted from

What is the difference between the `COPY` and `ADD` commands in a Dockerfile?

I have recently hit the same issue. The issue I found was that the init Makefile was incorrectly detecting the use of systemctl on Ubuntu Trusty and putting the scripts there. Later on the script would try to find the scripts in init.d and fail.

The solution is to edit the Makefile: sqlrelay-XXX/init/Makefile

Replace:

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

With:

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

Make a similar change to the uninstall option later in the script and it will now correctly install on Ubuntu.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM