2016-11-13 38 views
0

我試圖在基於Debian的容器上構建MariaDB。但它找不到z庫。錯誤找不到-lz在基於debian的容器上構建MariaDB

這裏是集裝箱圖像腳本:

FROM debian 

RUN apt-get update 
RUN apt-get install -y libncurses-dev 
RUN apt-get install -y build-essential; 
RUN apt-get install -y cmake; 

COPY mariadb-10.1.18.tar.gz /usr/bin/ 
WORKDIR /usr/bin/ 
RUN gzip -d mariadb-10.1.18.tar.gz 
RUN tar -xvf mariadb-10.1.18.tar 
RUN ln -s mariadb-10.1.18 mariadb 

WORKDIR /usr/bin/mariadb/ 
RUN mkdir install; mkdir install/data; mkdir install/var; mkdir install/etc; mkdir install/tmp 

RUN cd /usr/bin/mariadb/; 
RUN rm -f CMakeCache.txt; 
RUN cmake \ 
    -DCMAKE_INSTALL_PREFIX=/usr/bin/mariadb/install \ 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
    -DMYSQL_DATADIR=/usr/bin/mariadb/install/data \ 
    -DDOWNLOAD_BOOST=1 \ 
    -DWITH_BOOST=/usr/bin/mariadb/install/boost \ 
    -DMYSQL_UNIX_ADDR=/usr/bin/mariadb/install/tmp/mariadb.sock 

和控制檯輸出:

[ 77%] Building CXX object storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/log_print.cc.o 
Linking CXX shared library libft.so 
/usr/bin/ld: cannot find -lz 
collect2: error: ld returned 1 exit status 
storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/build.make:1323: recipe for target 'storage/tokudb/PerconaFT/ft/libft.so' failed 
make[2]: *** [storage/tokudb/PerconaFT/ft/libft.so] Error 1 
CMakeFiles/Makefile2:3438: recipe for target 'storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/all' failed 
make[1]: *** [storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/all] Error 2 
Makefile:147: recipe for target 'all' failed 
make: *** [all] Error 2 
The command '/bin/sh -c make' returned a non-zero code: 2 

回答

1

要麼改變容器腳本並指定CMake的參數-DWITH_ZLIB=bundled使用zlib的來源額外/ zlib的或安裝zlib通過apt-get install zlib-devel

+0

我曾嘗試添加此語句運行apt-get install -y zlib-devel給了我以下錯誤E無法找到包zl IB-devel'。和'zlib-dev'和'zlib'一樣。 – Stephane

+0

然後我嘗試使用'-DWITH_ZLIB = bundled'選項。但它給了我同樣的錯誤:'鏈接CXX共享庫libft.so /usr/bin/ld:找不到-lz'。 – Stephane

+0

你已經在你的機器上運行我的Dockerfile了嗎?看看你是否得到相同的消息... – Stephane

相關問題