Skip to content

Instantly share code, notes, and snippets.

@SansGuidon
Last active February 13, 2020 23:39
Show Gist options
  • Save SansGuidon/660e55cfbb8f8e82e77d06618802ea79 to your computer and use it in GitHub Desktop.
Save SansGuidon/660e55cfbb8f8e82e77d06618802ea79 to your computer and use it in GitHub Desktop.
SWI-Prolog and Logtalk on CentOS/RHEL 7

Install SWI-Prolog

yum groupinstall -y "Development Tools" \
        && yum -y install epel-release \
	&& yum clean all
yum -y install \
		git \
		ninja-build \
		libunwind \
		freetype-devel \
		gmp-devel \
		java-1.8.0-openjdk-devel \
		jpackage-utils \
		libICE-devel \
		libjpeg-turbo-devel \
		libSM-devel \
		libX11-devel \
		libXaw-devel \
		libXext-devel \
		libXft-devel \
		libXinerama-devel \
		libXmu-devel \
		libXpm-devel \
		libXrender-devel \
		libXt-devel \
		ncurses-devel \
		openssl-devel \
		pkgconfig \
		readline-devel \
		libedit-devel \
		unixODBC-devel \
		zlib-devel \
		uuid-devel \
		libarchive-devel \ 
		libyaml-devel \
		cmake3 \
	&& ln -snf /usr/bin/cmake3 /usr/bin/cmake \
	&& yum clean all
git clone --depth 1 https://github.com/SWI-Prolog/swipl.git \
	&& cd swipl \
	&& git submodule update --init \
	&& mkdir build \
	&& cd build
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -G Ninja ..
ninja-build install

Install Logtalk

yum -y install https://logtalk.org/files/logtalk-3.28.0-1.noarch.rpm \
	&& yum clean all

Run SWI-Prolog with Logtalk integration

ln -nsf /usr/local/share/logtalk-3.28.0-stable/integration/swilgt.sh /usr/bin/logtalk
logtalk

Simply build the docker image

docker build -t swiprolog-centos .

FROM centos
RUN yum groupinstall -y "Development Tools" \
&& yum -y install epel-release \
&& yum clean all
RUN yum -y install \
git \
ninja-build \
libunwind \
freetype-devel \
gmp-devel \
java-1.8.0-openjdk-devel \
jpackage-utils \
libICE-devel \
libjpeg-turbo-devel \
libSM-devel \
libX11-devel \
libXaw-devel \
libXext-devel \
libXft-devel \
libXinerama-devel \
libXmu-devel \
libXpm-devel \
libXrender-devel \
libXt-devel \
ncurses-devel \
openssl-devel \
pkgconfig \
readline-devel \
libedit-devel \
unixODBC-devel \
zlib-devel \
uuid-devel \
libarchive-devel \
libyaml-devel \
cmake3 \
&& ln -snf /usr/bin/cmake3 /usr/bin/cmake \
&& yum clean all
WORKDIR /swipl/build
RUN git clone --depth 1 https://github.com/SWI-Prolog/swipl.git \
&& cd swipl \
&& git submodule update --init \
&& mkdir build \
&& cd build
RUN cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -G Ninja ..
RUN ninja-build install
RUN yum -y install https://logtalk.org/files/logtalk-3.28.0-1.noarch.rpm \
&& yum clean all
RUN ln -nsf /usr/local/share/logtalk-3.28.0-stable/integration/swilgt.sh /usr/bin/logtalk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment