====== Ubuntu 18.04LTS の開発環境構築 ====== MA-E3xx version 4.0 は **Ubuntu18.04LTS** を使用しているので、おなじライブラリをインストールできる環境を構築します。\\ クロスのライブラリもインストールすることになるので、別の開発環境を用意します。 \\ ===== Ubuntu18.04LTS(bionic) の環境作成 ===== 例として LXC で作成しますが、Docker や KVM などで作成してもかまいません。 ryzen7:~$ sudo lxc-create -n bionic64 -t ubuntu -- -r bionic Checking cache download in /var/cache/lxc/bionic/rootfs-amd64 ... Installing packages in template: apt-transport-https,ssh,vim,language-pack-en,language-pack-ja Downloading ubuntu bionic minimal ... W: Target architecture is the same as host architecture; disabling QEMU support I: Running command: debootstrap --arch amd64 --verbose --components=main,universe --include=apt-transport-https,ssh,vim,language-pack-en,language-pack-ja bionic /var/cache/lxc/bionic/partial-amd64 http://archive.ubuntu.com/ubuntu I: Retrieving InRelease I: Checking Release signature I: Valid Release signature (key id 790BC7277767219C42C86F933B4FE6ACC0B21F32) ... 略 ... invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of start. Current default time zone: 'Etc/UTC' Local time is now: Wed Dec 26 03:57:58 UTC 2018. Universal Time is now: Wed Dec 26 03:57:58 UTC 2018. ## # The default user is 'ubuntu' with password 'ubuntu'! # Use the 'sudo' command to run tasks as root in the container. ## ryzen7:~$ \\ 環境ができたら、ユーザーの追加やネットワークなど、適切に設定しておきます。 \\ ===== パッケージの導入 ===== ==== Multiarch(armhf) の設定 ==== マルチアーキテクチャサポート を有効化します。 bionic64:~$ sudo dpkg --add-architecture armhf bionic64:~$ sudo dpkg --print-foreign-architectures armhf \\ ==== apt source の更新 ==== armhf のパッケージを入手できるように、''/etc/apt/sources.list'' を編集します。 deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse deb [arch=amd64] http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic-updates main restricted universe multiverse deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic-security main restricted universe multiverse \\ 更新したら、update しておきます。 root@bionic64:~# apt update ヒット:1 http://archive.ubuntu.com/ubuntu bionic InRelease 取得:2 http://ports.ubuntu.com/ubuntu-ports bionic InRelease [242 kB] 取得:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] 取得:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB] 取得:5 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB] 取得:6 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [83.2 kB] 取得:7 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf Packages [968 kB] 取得:8 http://ports.ubuntu.com/ubuntu-ports bionic/main Translation-ja [266 kB] 取得:9 http://ports.ubuntu.com/ubuntu-ports bionic/main Translation-en [516 kB] 取得:10 http://ports.ubuntu.com/ubuntu-ports bionic/restricted armhf Packages [8,360 B] 取得:11 http://ports.ubuntu.com/ubuntu-ports bionic/restricted Translation-en [3,584 B] 取得:12 http://ports.ubuntu.com/ubuntu-ports bionic/universe armhf Packages [8,269 kB] 取得:13 http://ports.ubuntu.com/ubuntu-ports bionic/universe Translation-en [4,941 kB] 取得:14 http://ports.ubuntu.com/ubuntu-ports bionic/universe Translation-ja [1,140 kB] 取得:15 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse armhf Packages [129 kB] 取得:16 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse Translation-en [108 kB] 取得:17 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse Translation-ja [8,432 B] 取得:18 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf Packages [375 kB] 取得:19 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main Translation-en [177 kB] 取得:20 http://ports.ubuntu.com/ubuntu-ports bionic-updates/restricted armhf Packages [6,460 B] 取得:21 http://ports.ubuntu.com/ubuntu-ports bionic-updates/restricted Translation-en [3,076 B] 取得:22 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe armhf Packages [560 kB] 取得:23 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe Translation-en [171 kB] 取得:24 http://ports.ubuntu.com/ubuntu-ports bionic-updates/multiverse armhf Packages [3,128 B] 取得:25 http://ports.ubuntu.com/ubuntu-ports bionic-updates/multiverse Translation-en [3,356 B] 取得:26 http://ports.ubuntu.com/ubuntu-ports bionic-security/main armhf Packages [155 kB] 取得:27 http://ports.ubuntu.com/ubuntu-ports bionic-security/main Translation-en [88.9 kB] 取得:28 http://ports.ubuntu.com/ubuntu-ports bionic-security/universe armhf Packages [109 kB] 取得:29 http://ports.ubuntu.com/ubuntu-ports bionic-security/universe Translation-en [62.2 kB] 取得:30 http://ports.ubuntu.com/ubuntu-ports bionic-security/multiverse armhf Packages [644 B] 取得:31 http://ports.ubuntu.com/ubuntu-ports bionic-security/multiverse Translation-en [996 B] 18.7 MB を 13秒 で取得しました (1,400 kB/s) パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 パッケージはすべて最新です。 root@bionic64:~# \\ ==== 開発ツールの導入 ==== root@bionic64:~# apt install build-essential パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: cpp cpp-7 dirmngr dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan4 libasn1-8-heimdal libassuan0 libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-7-dev libgdbm-compat4 libgdbm5 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libksba8 libldap-2.4-2 libldap-common libnpth0 libperl5.26 libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db libstdc++-7-dev libubsan0 libwind0-heimdal make patch perl perl-modules-5.26 pinentry-curses 提案パッケージ: cpp-doc gcc-7-locales dbus-user-session pinentry-gnome3 tor debian-keyring g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-7-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg parcimonie xloadimage scdaemon git bzr gdbm-l10n libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql libstdc++-7-doc make-doc ed diffutils-doc perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl pinentry-doc 以下のパッケージが新たにインストールされます: build-essential cpp cpp-7 dirmngr dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan4 libasn1-8-heimdal libassuan0 libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-7-dev libgdbm-compat4 libgdbm5 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libksba8 libldap-2.4-2 libldap-common libnpth0 libperl5.26 libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db libstdc++-7-dev libubsan0 libwind0-heimdal make patch perl perl-modules-5.26 pinentry-curses アップグレード: 0 個、新規インストール: 56 個、削除: 0 個、保留: 0 個。 37.2 MB のアーカイブを取得する必要があります。 この操作後に追加で 164 MB のディスク容量が消費されます。 続行しますか? [Y/n] ... 略 ... \\ クロスコンパイラを導入します。 root@bionic64:~# apt install gcc-multilib-arm-linux-gnueabihf g++-multilib-arm-linux-gnueabihf パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: binutils binutils-arm-linux-gnueabihf binutils-common binutils-x86-64-linux-gnu cpp-7 cpp-7-arm-linux-gnueabihf g++-7 g++-7-arm-linux-gnueabihf gcc-7 gcc-7-arm-linux-gnueabihf gcc-7-arm-linux-gnueabihf-base gcc-7-cross-base lib32asan5 lib32atomic1 lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32quadmath0 lib32stdc++-7-dev lib32stdc++6 lib32ubsan1 libasan5 libasan5-armhf-cross libatomic1 libatomic1-armhf-cross libbinutils libc-dev-bin ... 略 ... \\ ''git'' を導入しておきます。 root@bionic64:~# apt install git パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: git-man libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 publicsuffix 提案パッケージ: gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn 以下のパッケージが新たにインストールされます: git git-man libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 publicsuffix アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 0 個。 5,217 kB のアーカイブを取得する必要があります。 この操作後に追加で 35.2 MB のディスク容量が消費されます。 続行しますか? [Y/n] \\ ==== Oracle Java 11 の導入 ==== 後ほどビルドする OpenJDK の容量削減に ''jlink'' を使用するため、JDK をインストールしておきます。\\ まず、''add-apt-repository'' コマンドを使用できるようにパッケージを導入します。 root@bionic64:~# apt install software-properties-common パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: iso-codes powermgmt-base python-apt-common python3-apt python3-software-properties unattended-upgrades 提案パッケージ: isoquery python3-apt-dbg python-apt-doc bsd-mailx default-mta | mail-transport-agent needrestart 以下のパッケージが新たにインストールされます: iso-codes powermgmt-base python-apt-common python3-apt python3-software-properties software-properties-common unattended-upgrades アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。 2,810 kB のアーカイブを取得する必要があります。 この操作後に追加で 20.8 MB のディスク容量が消費されます。 続行しますか? [Y/n] \\ PPA を追加します。 root@bionic64:~# add-apt-repository ppa:linuxuprising/java Oracle Java 11 installer Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required. The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java Created for users of https://www.linuxuprising.com/ Installation instructions (with tips and tricks), feedback, suggestions, bug reports etc.: https://www.linuxuprising.com/2018/10/how-to-install-oracle-java-11-in-ubuntu.html About Oracle Java 10: This version reached the end of public updates, therefore it's no longer available for download. The Oracle Java 10 packages in this PPA no longer worked due to this, so I have removed them. Switch to Oracle Java 11 or OpenJDK 11 instead, which is long term support. 詳しい情報: https://launchpad.net/~linuxuprising/+archive/ubuntu/java [ENTER] を押すと続行します。Ctrl-c で追加をキャンセルできます。 取得:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB] ヒット:2 http://archive.ubuntu.com/ubuntu bionic InRelease 取得:3 http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic InRelease [15.9 kB] ヒット:4 http://ports.ubuntu.com/ubuntu-ports bionic InRelease 取得:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] ヒット:6 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease ヒット:7 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease 取得:8 http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic/main amd64 Packages [1,452 B] 取得:9 http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic/main Translation-en [604 B] 190 kB を 2秒 で取得しました (102 kB/s) パッケージリストを読み込んでいます... 完了 \\ Oracle Java 11 をインストールします。 root@bionic64:~# apt install oracle-java11-installer パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: gsfonts gsfonts-x11 java-common libfontenc1 libfreetype6 libpng16-16 oracle-java11-set-default wget x11-common xfonts-encodings xfonts-utils 提案パッケージ: binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho ttf-arphic-uming firefox | firefox-2 | iceweasel | mozilla-firefox | iceape-browser | mozilla-browser | epiphany-gecko | epiphany-webkit | epiphany-browser | galeon | midbrowser | moblin-web-browser | xulrunner | xulrunner-1.9 | konqueror | chromium-browser | midori | google-chrome 以下のパッケージが新たにインストールされます: gsfonts gsfonts-x11 java-common libfontenc1 libfreetype6 libpng16-16 oracle-java11-installer oracle-java11-set-default wget x11-common xfonts-encodings xfonts-utils アップグレード: 0 個、新規インストール: 12 個、削除: 0 個、保留: 0 個。 4,698 kB のアーカイブを取得する必要があります。 この操作後に追加で 8,520 kB のディスク容量が消費されます。 続行しますか? [Y/n]