JavaScriptを有効にしてください

【Docker】M1MacでJUMAN・KNPを動かす

 ·  ☕ 2 min read

はじめに

どうしても手元のM1 MacでKNP・Juman++を動かしたいとき, ごく稀にありますよね.
そういうときにパッとDockerfileでも書いて, knpやjumanをDocker上で動かそうとすると, なぜか以下のようなエラーが吐かれることがあります.

1
cc: error: unrecognized command-line option '-m64'

とか

1
cannot guess build type; you must specify one

ということで, M1 Macでも動くDockerfileを用意しました.

Dockerfile

ソイヤッ…!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
FROM python:3.8.10
LABEL maintainer="[email protected]"

WORKDIR /root
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update --fix-missing &&\
    apt-get install -y --fix-missing apt-utils dialog &&\
    apt-get install -y emacs less

RUN apt-get upgrade -y --fix-missing &&\
    apt-get install -y --fix-missing make &&\
    apt-get install -y --fix-missing wget &&\
    apt-get install -y --fix-missing gcc &&\
    apt-get install -y --fix-missing g++ &&\
    apt-get install -y --fix-missing bzip2 &&\
    apt-get install -y --fix-missing libboost-dev &&\
    apt-get install -y --fix-missing google-perftools &&\
    apt-get install -y --fix-missing libgoogle-perftools-dev

# JUMANPP
RUN wget 'http://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz&name=jumanpp-1.02.tar.xz' -O /tmp/jumanpp.tar.xz &&\
    tar xJvf /tmp/jumanpp.tar.xz -C /tmp &&\
    cd /tmp/jumanpp-1.02 &&\
    cat src/Makefile.am | sed s/-m64//g > Makefile.am.new && mv Makefile.am.new src/Makefile.am &&\
    cat src/Makefile.in | sed s/-m64//g > Makefile.in.new && mv Makefile.in.new src/Makefile.in &&\
    ./configure --prefix=/usr/local/ && make && make install &&\
    rm -rf /tmp/* &&\
    rm -rf /var/cache/apk/*

# JUMAN
RUN wget 'http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/juman/juman-7.01.tar.bz2' -O /tmp/juman.tar.bz2 &&\ 
    tar xf /tmp/juman.tar.bz2 -C /tmp &&\
    cd /tmp/juman-7.01 &&\ 
    ./configure --prefix=/usr/local/ --build=arm && make && make install &&\
    rm -rf /tmp/* &&\
    rm -rf /var/cache/apk/* &&\
    apt-get update && apt-get install -y --fix-missing libjuman4

# KNP
RUN apt-get install -y --fix-missing zlib1g-dev &&\
    echo "download knp ..." &&\
    wget 'https://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=https://nlp.ist.i.kyoto-u.ac.jp/nl-resource/knp/knp-4.20.tar.bz2&name=knp-4.20.tar.bz2' -O /tmp/knp.tar.bz2 -q &&\
    tar xf /tmp/knp.tar.bz2 -C /tmp &&\
    cd /tmp/knp-4.20 / &&\
    ./configure --prefix=/usr/local/ --with-juman-prefix=/usr/local/ --build=arm && make && make install &&\
    rm -rf /tmp/* &&\
    rm -rf /var/cache/apk/*

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install pyknp graphviz

RUN apt-get clean &&\
    apt-get autoclean -y &&\
    apt-get autoremove -y &&\
    apt-get clean &&\
    rm -rf /tmp/* /var/tmp/* &&\
    rm -rf /var/lib/apt/lists/* &&\    
    rm -f /etc/ssh/ssh_host_*

CMD /bin/bash
共有

YuWd (Yuiga Wada)
著者
YuWd (Yuiga Wada)
機械学習・競プロ・iOS・Web