Edited at

MacbookProにElementaryOS(Loki)をいれたときの記録

More than 1 year has passed since last update.

2014年モデルのMacbookPro RetinaにUbuntu系のElmentaryOSを入れたときのログです。

この内容と関係aにけど、友人と酒飲みながら片手間でよく確認せずにインストーラー触ってたら、もともと入ってたmacOSはすべて消えてました。


設定の退避

普段、DotfilesはXDG_CONFIG_HOME=~/.configに固めるようにしてるので、このディレクトリだけ先に圧縮して退避してから作業をはじめました。

ちなみに、公開できない情報を含むのでXDG_CONFIG_HOMEをGitHubで管理してない。


ElmentaryOSのインストール

USBに焼いたインストーラーからGUIをポチポチしてインストールを完了する。

最初の起動が完了したらOSのバージョンだけ見ておく。


ターミナル

cat /etc/lsb-release

> DISTRIB_ID="elementary"
> DISTRIB_RELEASE=0.4
> DISTRIB_CODENAME=loki
> DISTRIB_DESCRIPTION="elementary OS 0.4 Loki"

ElementaryOSとベースのUbuntuのバージョンは下記の対応になっているようだ。

バージョン
コードネーム
リリース日
ベース

0.1
Jupiter
2011年3月31日
Ubuntu 10.10

0.2
Luna
2013年8月10日
Ubuntu 12.04 LTS

0.3
Freya
2015年8月11日
Ubuntu 14.04 LTS

0.3.1
Freya
2015年9月3日
Ubuntu 14.04 LTS

0.3.2
Freya
2015年12月9日
Ubuntu 14.04 LTS

0.4
Loki
2016年9月9日
Ubuntu 16.04 LTS


aptの更新

いろいろとツールのインストールし始める前に、aptを更新して、とりあえず再起動する


ターミナル

sudo apt-get update

sudo apt-get upgrade
reboot


aptに非公式リポジトリを追加できるようにする

apt-get add-apt-repositoryを使えるようにします。


ターミナル

sudo apt-get install software-properties-common



AppCenter

デスクトップ左上のアプリケーションからAppCenterを起動します。いろいろアプリケーションが配信されていたりインストール済みアプリケーションの更新ができます。

自分はElementaryOSの更新をしてから、パッケージアップデーターを入れました。


ログインシェルの変更

zshを使ってるのでインストールします。


ターミナル

sudo apt-get install zsh


ログインシェルに反映します。


ターミナル

chsh

> kaizoa のログインシェルを変更中
> 新しい値を入力してください。標準設定値を使うならリターンを押してください
> ログインシェル [/bin/bash]: /bin/zsh


XDG_CONFIG_HOME(個人設定)を復元する

退避してたXDG_CONFIG_HOMEを落としてきて復元しました。


ターミナル

tar zxvf ~/Downloads/config.tar.gz

ln -fns ~/.config/zsh/zshenv ~/.zshenv
ln -fns ~/.config/ssh ~/.ssh
ln -fns ~/.config/git/config ~/.gitconfig

あとよく使うツールもついでにここで入れます。


ターミナル

sudo apt-get install \

apt-transport-https \
ca-certificates \
curl git tmux direnv jq awscli tig ranger


ファンクションキーの入れ替え

Macbook Pro の F1〜12 のファンクションキーがデフォルトだとFnキーと組み合わせないと押せないので、キーコンビネーションなしで認識されるようにします。


ターミナル

sudo sh -c 'echo options hid-apple fnmode=2 >| /etc/modprobe.d/hid-apple.conf'

sudo update-initramfs -u


スクラッチパッドの設定


ターミナル

sudo mkdir -m 755 /etc/X11/xorg.conf.d

sudo cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/
sudo chmod 644 /etc/X11/xorg.conf.d/50-synaptics.conf
sudo vi /etc/X11/xorg.conf.d/50-synaptics.conf


vi

Section "InputClass"

Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "PalmDetect" "0"
Option "PalmMinWidth" "10"
Option "PalmMinZ" "200"
Option "TapButton2" "3" # two-finger tap
Option "TapButton3" "0" # three-finger tap
Option "VertScrollDelta" "-110"
Option "HorizScrollDelta" "-90"
Option "HorizTwoFingerScroll" "1"
Option "FingerLow" "10"
Option "FingerHigh" "85"
Option "FingerPress" "255"
Option "MinSpeed" "0.8"
Option "MaxSpeed" "1.2"
Option "AccelFactor" "0.012"
Option "MaxTapTime" "220"
Option "MaxDoubleTapTime" "180"
Option "MaxTapMove" "100"
Option "HorizHysteresis" "75"
Option "VertHysteresis" "75"
Option "AreaLeftEdge" "-4720" # x-min: 4750
Option "AreaRightEdge" "4300" # x-max: 5280
Option "SHMConfig" "on"
Option "VertResolution" "70"
Option "HorizResolution" "45"
EndSection


日本語入力 - fcitx-mozc


ターミナル

sudo apt-get install fcitx-mozc


念の為、im-configで設定ダイアログから、fcitxを有効にして再ログインします。


ターミナル

im-config


ログインしたら、fcitx-configtoolで設定ダイアログを表示して、


  • Input Methodにmozcを追加

  • 切り替えのキーコンビネーションを設定


ターミナル

fcitx-configtool


デスクトップ上部のwingpanelに表示されるmozcアイコンは、バーと高さがあってないので24x24にGimpでリサイズしました。

(GimpはAppCenterから入れると楽)


ターミナル

sudo gimp /usr/share/fcitx/mozc/icon/mozc.png



elementary-tweaks

システム設定からPantheonの見た目を変えられる、elementary-tweaksを入れます。

リポジトリはOSのバージョンに合わせたものを選ぶ必要があります。例はLokiに対応したリポジトリです。


ターミナル

sudo add-apt-repository ppa:philip.scott/elementary-tweaks

sudo apt-get update
sudo apt-get install elementary-tweaks

インストールするとシステム設定にtweaksのアイコンが表示されます。

わたしはアニメーションをOffにして、デスクトップのテーマを暗いやつにしました。


ブラウザのインストール - Chrome


ターミナル

cd ~/Downloads

sudo dpkg -i google-chrome-stable_current_amd64.deb


エディタのインストール - NeoVim

NeoVim


ターミナル

sudo add-apt-repository ppa:neovim-ppa/stable

sudo apt-get update
sudo apt-get install neovim
sudo apt-get install python-dev python-pip python3-dev python3-pip

NeoVimをシステム標準のエディタにします。


ターミナル

sudo update-alternatives --install /usr/bin/vi vi /usr/bin/nvim 60

sudo update-alternatives --config vi
sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60
sudo update-alternatives --config vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/nvim 60
sudo update-alternatives --config editor


プログラミングフォント

mzyy94/RictyDiminished-for-Powerlineをダウンロードします。


ターミナル

cd ~/Downloads

unzip RictyDiminished-for-Powerline-master.zip
cd RictyDiminished-for-Powerline-master
mkdir ~/.fonts
cp RictyDiminishedDiscord-Regular-Powerline.ttf RictyDiminishedDiscord-Regular.ttf RictyDiminished-Regular-Powerline.ttf RictyDiminished-Regular.ttf ~/.fonts
fc-cache -vf


Goのビルド環境

anyenv+goenvで最新バージョンを追えるようにしときます。


ターミナル

git clone https://github.com/riywo/anyenv ~/.anyenv



zshrcに追記する

export ANY_ENV_HOME=$HOME/.anyenv'

export PATH=$PATH:$ANY_ENV_HOME/bin; eval "$(anyenv init -)"

zshrcをsourceするかzshに再ログインします。


ターミナル

mkdir -p $ANY_ENV_HOME/plugins

git clone https://github.com/znz/anyenv-update.git $ANY_ENV_HOME/plugins/anyenv-update
git clone https://github.com/znz/anyenv-git.git $ANY_ENV_HOME/plugins/anyenv-git
anyenv update

goenvとgoをインストール


ターミナル

anyenv install goenv

goenv install 1.8.1
goenv global 1.8.1
goenv rehash
go version
> go version go1.8.1 linux/amd64


Docker

最新のce-edgeをDocker公式の方法を参考にインストールします。


ターミナル

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial edge"
sudo apt-get update
sudo apt-get install docker-ce

通常add-apt-repositoryの行のxenialのところはlsb_release -csの結果をディストリビューションのIDとして指定しますが、ElementaryOSの場合、それだとlokiになってしまってパッケージがないため手打ちでベースのディストリであるxenialを指定しています。

また、edgeと指定しているところをstableにすればチャンネルを変えることができます。

docker-composeもインストールします。


ターミナル

VER="1.12.0"

sudo sh -c "curl -L https://github.com/docker/compose/releases/download/$VER/docker-compose-`uname -s`-`uname -m` >| /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose

次にdockerコマンドをsudoなしで起動できるようにます。


ターミナル

sudo groupadd docker

sudo gpasswd -a $USER docker
sudo systemctl restart docker

再ログインすると反映されます。


IntellijIDEA

使うのでインストールします。


ターミナル

cd ~/Downloads #先にダウンロードしておく

tar zxvf ideaIU-2017.1.1.tar.gz
sudo mv idea-IU-171.4073.35 /usr/local
cd /usr/local/idea-IU-171.4073.35
./bin/idea.sh


ターミナル

標準のpantheon-terminalの完成度高いです。

ですが自分はドロップダウン型(quake型とかトップダウン型と呼ばれる)のターミナルが好きなので、xfce4-terminalに--drop-downオプションをつけて使用しています。

ドロップダウン型のターミナルには他にGuake、Tildaがあるようです。今後も最適な端末エミュレーターの模索は続きそう。


諸々の感想

これで久々のLinux作業環境がてにはいりました。


はまった

IntellijIDEAのインストール後にDeskctop Entryを作成してから、展開したディレクトリの場所を移動したらwingpanelが起動不能になり、最終的にデスクトップマネージャも起動できなくなりました。

きっとDesktop Entryを消せば問題は解決したのだろうけど面倒でOSインストールからやり直しました。

そもそもXを立ち上げないで起動する方法がわからないので近いうちに調べないと・・・


省電したい

macOSのときより、Chromeの電力消費が気になります。

Chromeがのo電力消費はともかく、powertopというものを使って省電力化できるらしいのでやりたい。


パッケージ管理とアプリケーションのインストール

ほとんどの場合、apt-get installでは入れたいアプリケーションが入らない、または入れたいバージョンが入らないのは普通に考えると面倒です。

最新を追っかけたいgoやdockerはapt使いたくないし、webサイトからdebファイルを落としてdpkg使うとかadd-apt-repositoryしないと入らないなど、初心者におすすめできない。けど嫌いじゃないです。


ドライバーまわりで一切てこづらなかったのは嬉しい

ElmentaryOS自体はMacbookProに普通にインストールしてドライバーまわりの調整を一切せずに使えてるので最高でした。きっとmacOSと相性のいいディストリなんだと思います。


LinuxでDockerが使えるのが嬉しい

仕事の開発環境はほぼDockerのため、Volume共有まわりのストレスが解消されるのはでかいです。


参考

https://ja.wikipedia.org/wiki/Elementary_OS

http://netbuffalo.doorblog.jp/archives/5031859.html

なんかいろいろ他にも参考にした気がします