elementary os 5.0 juno に色々入れて使えるようにする備忘録です.
前回の記事
で,elementary OS 5.0 juno を最低限使える状態にしました.しかし,これだけだとまだまだ実際に使うのには色々困りますので,さらにいろいろやってみた備忘録となります.昔お世話になった人曰く,
Unix は「盆栽」
なんだそう(激しく同意).だとすると,前回は植えただけなんで,今回は見られる形に整えるということですね.
なお,以下の記事を色々参考にさせていただきました.
Git を入れる
以下,何を導入するにも必ず必要になるので,最初に入れるのが吉です.
$ sudo apt install git
LDAC/APT-X/AAC などのコーデックに Bluetooth を対応させる
実際の使い方などは,関連記事
をご覧ください.以下は最低限の作業のみ示します.
$ sudo apt install software-properties-common $ sudo add-apt-repository ppa:eh5/pulseaudio-a2dp $ sudo apt update $ sudo apt install libavcodec58 libldac pulseaudio-modules-bt $ sudo apt upgrade
たったこれだけです.現時点ではまだ Windows も MacOS もまだ LDAC/APT-X HD/APT-X/AAC/SBC 全対応はしてませんので,やる価値は十分にあります.実際,音,全然違いますしね.
なお,GUI で接続,切断するより,ターミナルから CUI で操作するほうが確実に接続・切断が出来ます.私はどちらかと言うとターミナル族なので,全く気にはなりません.
100% 以上の音量に対応する
100% 以上の音量に対応する必要性がなんであるのか等は,関連記事,
をご覧ください.上の記事には CUI での設定方法を紹介していますが,以下の記事と同様に設定することで GUI で 100% 以上の音量を設定できます.
まず,dconf editor をインストールし起動します.なお,dconf というのは Gnome の設定を保存しているシステムみたいです.
$ sudo apt-install dconf-editor $ dconf-editor
起動後以下のように設定していきます.
- io → elementary → desktop → wingpanel → sound → max-volume とたどる
- Use Default を False に設定
- 最大音量を % で設定する(実際に設定できる % の最大値は上の方に表示されています)
- org → gnome → desktop → sound とたどる
- allow-volume-above-100-percent を ON にする
設定後,再ログインすることで,GUI で 100% 以上の音量を選べるようになります.
あとで気がついたんですが,これは elementary tweak を入れたほうが簡単でした.
$ sudo add-apt-repository ppa:philip.scott/elementary-tweaks $ sudo apt install elementary-tweaks
これを入れるとダークモードとか「閉じる」ボタンの表示なんかも簡単に出来るみたいですし,他にも気の利いた設定ができるので,入れて損は無いと思います.
L2TP/IPSec VPN に対応させる
elementary OS 5.0 juno が標準的に対応する VPN の方式は PPTP と OpenVPN のみです.
PPTP はさすがにセキュリティ的な問題がありますし,OpenVPN は設定が難しくて私は出来る気がしません.と言うことで,MacOS,iOS が標準的にサポートしている L2TP/IPSec はせめて使いたい.
これは,記事
にある通り,
$ sudo apt install intltool libtool network-manager-dev libnm-util-dev libnm-glib-dev libnm-glib-vpn-dev libnm-dev libnm-gtk-dev libnma-dev ppp-dev libsecret-1-dev xl2tpd strongswan libnss3-dev $ sudo git clone https://github.com/nm-l2tp/network-manager-l2tp.git $ cd network-manager-l2tp $ sudo autoreconf -fi $ sudo intltoolize $ sudo ./configure \ --disable-static --prefix=/usr \ --sysconfdir=/etc --libdir=/usr/lib/x86_64-linux-gnu \ --libexecdir=/usr/lib/NetworkManager \ --localstatedir=/var \ --with-pppd-plugin-dir=/usr/lib/pppd/2.4.7 $ sudo make $ sudo make install
のようにすれば使えるようになります(職場の Gateway で実際につながることを確かめた).
Chrome を導入する
これ,無いと確かに始まりません.
なお,上の記事だと gdeb が必要となっていましたが,私は以下の通り,google のリポジトリを追加して導入しました.
$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - $ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' $ sudo apt update $ sudo apt install google-chrome-stable
googler の導入
ターミナル派の私には手放せないターミナルで google 検索をするスクリプトです.残念ながら apt で入れることのできるバージョンは(多分 google の仕様の変更)使えなくなってるので,素直に git のリポジトリから導入します.単に必要なリンクを張るだけです.
$ cd /usr/local/src $ sudo git clone https://github.com/jarun/googler.git $ cd /usr/local/bin $ sudo ln -s /usr/local/src/googler/googler . $ sudo mkdir /usr/local/man/man1 $ sudo ln -s /usr/local/src/googler/googler.1 /usr/local/man/man1/.
リモートデスクトップクライアントの導入
お仕事だとやっぱり Windows を使うので,リモートデスクトップクライアントは必須です.Linux で使えるクライアントのいくつかを試してみましたが,いちばん remmina が使いやすかった.
ただし,AppCenter,もしくは apt で入れられる ver. は少し使いにくかったので,以下の通りリポジトリを追加して最新バージョンを使うことにしました.
$ sudo apt-add-repository ppa:remmina-ppa-team/remmina-next $ sudo apt update $ sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice
アイコンもシャープになってますね.
Visual Studio Code の導入
いままで Atom を使ってたんですが,wsl と組み合わせて使うことを考える(仕事のメイン環境は WSL + Windows 10 です)と Microsoft 謹製の Visual Studio Code の方が良いんじゃないかなと考え,これを期に乗り換えることにしました.
導入手順は,
にあるのと全く同じです.
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg $ sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/ $ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' $ sudo apt-get update $ sudo apt-get install code
なお,今のところ導入した拡張機能は
- Japanese Language Pack for Visual Studio Code
- line-endings
の2つだけです.いまのところですが,Atom よりも動作がかなり軽快な感じがします(拡張機能が増えるとどうなるかは分かりませんけど).あと,elementary OS 標準の code というエディタも軽くて悪くないと思います.
latex の導入
これは何も考えずに全部入れて,お仕事メインマシンの Ubuntu 18.04 on WSL for Windows 10 の /usr/local/share/texmf 以下をごっそりコピーしました.elementary OS も Ubuntu 18.04 LTS ベースですからね.
$ sudo apt install texlive-full
なお,デフォルトの PDF ビューアーは Gnome evince
みたいですが(AppCenter だと Document Viewer となっている),軽くてシンプルなのでとても使いやすいです.
Docker の導入
これももう避けて通れません.環境汚さずに色々試せますしね.
導入手順は,
にあるのと全く同じです.
$ sudo apt-get install apt-transport-https ca-certificates software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" $ sudo apt-get install docker-ce $ sudo systemctl start docker # docker-compose $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
なお,私の場合は一般ユーザー権限で docker コンテナを操作できるよう,docker グループにユーザーを以下の通り追加しました.
$ sudo gpasswd -a hyt docker
SageMath の導入
SageMath というのはオープンソースな色々な数学パッケージの集合体で,これ入れるだけでありとあらゆる数学アプリを導入できるというものなんですが,そのせいで,すごく依存関係が複雑で大変なパッケージです.こういうものは docker のコンテナとして導入するべきでしょう.と言うか,このためだけでも Docker を導入する価値あります.
実際,以下のように docker のコマンド一発で導入できます.
$ docker pull sagemath/sagemath # 統計言語 R の起動例 $ docker run -it sagemath/sagemath R
また,実際に使うときは Jupiter notebook と組み合わせて使うのが便利です.
$ docker run -p 8888:8888 sagemath/sagemath-jupyter
昔入れたときは大変だったんですが……嘘みたいに簡単ですねぇ……
小物をいろいろ導入
いつも使っているシェルは zsh + prezto なんですが,その前に入れとかないといけない小物を色々入れておきます.
$ sudo apt install tmux lv bmon iftop vim nkf jpegoptim peco zsh imagemagick # pt の導入 $ cd /usr/local/src $ sudo wget https://github.com/monochromegane/the_platinum_searcher/releases/download/v2.1.5/pt_linux_amd64.tar.gz $ sudo tar -zxvf pt_linux_amd64.tar.gz $ cd /usr/local/bin $ sudo ln -s /usr/local/src/pt_linux_amd64/pt . $ sudo ln -s /usr/bin/peco percol
ターミナルマルチプレクサ の tmax の設定は以下の通りです.
また,vim の設定は,
$ cat ~/.vimrc set termencoding=utf-8 set encoding=utf-8 set fileencodings=utf-8,iso-2022-jp,shift-jis,euc-jp set statusline=[%n]\ %f\ %(\ %M%R%H)%)\=Pos=<%l\,%c%V>\ ASCII=%b\ HEX=%B set viminfo='20,\"50 set autowrite nobackup nowritebackup set autoindent smartindent set showmatch warn set showcmd ruler set paste set ttyfast set wrap wrapscan set wildmenu set ts=8 sts=8 sw=8 smarttab noexpandtab set backspace=2 scrolloff=2 cmdheight=1 laststatus=2 set updatecount=0 set ignorecase smartcase set suffixes+=.orig,.rej,.class,.exe,.bin set shellslash norestorescreen noerrorbells set wildmode=longest,list set formatoptions+=m set nocompatible
の通りに,ターミナルで日本語を使うために ~/.inputrc を
$include /etc/inputrc # Case-insensitive tab completion set completion-ignore-case on # Allow 8-bit input/output set meta-flag on set convert-meta off # set input-meta on # set output-meta on
の通りに設定しました.
prezto の導入
prezto は zsh の便利な設定を簡単に導入できるフ,レームワークです.正直 zsh の設定をマトモにできる気がしないのでとってもありがたい.
初めて導入するなら prezto の元ページにあるとおりやれば良いだけですが,私の場合は複数の端末で個人的な設定を同期させられるよう個人的な git リポジトリで設定全体を管理しています.これについては記事
をご覧ください.また,ターミナルで快適に過ごすために interactive grep tool な percol の設定を ~/.zshrc に追記しています.この設定については percol のページ
をご覧ください.
オレオレルート証明書の導入
個人的に利用しているいろいろなサーバー(例えば gitlab とか)に逐一正式な証明書を導入すると費用がバカになりません.だからと言って,正式な証明書でない旨の警告画面をいつも見なきゃならないのもウザったくて嫌なので,システムにオレオレルート証明書(hyt-CA.crt)を以下の手順で導入します.
$ sudo mkdir /usr/local/share/ca-certificates/extra $ sudo cp hyt-CA.crt /usr/local/share/ca-certificates/extra/ $ sudo update-ca-certificates
これで OS 標準のブラウザの Epiphany とか git とかから個人的なサーバーを利用しても警告が表示されなくなるのですが,Chrome はシステムのルート証明書を参照せず,独自のルート証明リストを参照するようで,警告が引き続き表示されます.これは,Chrome の「設定 → 詳細設定 → プライバシーとセキュリティ → 証明書の管理 → 認証局」でオレオレルート証明書をインポートすることで表示されなくなります.
なお,私のオレオレ証明書の発行とか運用については,記事
をご覧ください.
ssh server の導入
これは,
$ sudo apt install openssh-server
とするだけです.まぁ,クライアントなので立ち上げない方が良いような気もしますが……もはや習慣ですかね.
OneDrive の利用
残念ながら Microsoft 製の OneDrive クライアントは公開されていないので,OneDrive Free Client
を使いますが,これ,完全に CUI のクライアントで,かなり設定が面倒です.なお,ここでは OneDrive Business と OneDrive Personal の2つのアカウントのファイルをそれぞれホームディレクトリの
- ~/OneDrive/Business
- ~/OneDrive/Personal
に同期させる手順を示します.
まず,コマンド onedrive をビルドしなければなりませんが,これは基本的には,
に載せられている手順に従います.一応私の手順は以下の通りです.面倒な部分は D 言語のコンパイラを準備しないといけない部分です.
$ sudo apt install libcurl4-openssl-dev libsqlite3-dev pkg-config libnotify-dev $ curl -fsS https://dlang.org/install.sh | bash -s dmd Downloading https://dlang.org/d-keyring.gpg ######################################################################## 100.0% Downloading https://dlang.org/install.sh ######################################################################## 100.0% The latest version of this script was installed as ~/dlang/install.sh. It can be used it to install further D compilers. Run `~/dlang/install.sh --help` for usage information. Downloading and unpacking http://downloads.dlang.org/releases/2.x/2.089.0/dmd.2.089.0.linux.tar.xz ######################################################################## 100.0% Using dub 1.18.0 shipped with dmd-2.089.0 Run `source ~/dlang/dmd-2.089.0/activate` in your shell to use dmd-2.089.0. This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1. Run `deactivate` later on to restore your environment. $ source ~/dlang/dmd-2.089.0/activate (dmd-2.089.0)~ $ cd /usr/local/src (dmd-2.089.0)~ $ sudo git clone https://github.com/abraunegg/onedrive.git (dmd-2.089.0)~ $ sudo chown -R hyt.hyt onedrive (dmd-2.089.0)~ $ ./configure --enable-notifications (dmd-2.089.0)~ $ make clean (dmd-2.089.0)~ $ make (dmd-2.089.0)~ $ sudo make install,
なお,インストールが終わったら,ユーザーのホームディレクトリに出来た dlang フォルダは消しても構いません.
次に同期の設定を行います.
まずやらなければならないのは OneDrive のサイトで認証を済ませることです.これは,ターミナルで,
$ onedrive
として,表示される URL にアクセスして得られる URL を再びターミナルに表示されている
Enter the response uri:
以下に貼り付けることで行いますが,この部分については,
の「初回起動時のアカウントログイン」の頁が分かりやすいと思います.ただし,複数の OneDrive アカウントを同期させたい今回のような場合は,上の記事の「OneDrive Free Clientの基本的な使い方」をいきなり実行するとあとで困ったことになることに注意してください.
さて,ここではまず OneDrive Personal のアカウントの認証を上の手順で終えたとします.
このとき,OneDrive の設定はホームディレクトリの ~/.config/onedrive 以下に保存されていますので,まず,これを
$ cd .config $ mv onedrive onedrive-personal
のように移動します.また,次の内容のファイルを ~/.config/onedrive-personal/config として作成します.
# Configuration for OneDrive Linux Client # This file contains the list of supported configuration fields # with their default values. # All values need to be enclosed in quotes # When changing a config option below, remove the '#' from the start of the line # For explanations of all config options below see docs/USAGE.md or the man page. # sync_dir = "~/OneDrive/Personal" # skip_file = "~*|.~*|*.tmp" # monitor_interval = "45" # skip_dir = "" # log_dir = "/var/log/onedrive/" # drive_id = "" # upload_only = "false" # check_nomount = "false" # check_nosync = "false" # download_only = "false" # disable_notifications = "false" # disable_upload_validation = "false" # enable_logging = "false" # force_http_11 = "false" # force_http_2 = "false" # local_first = "false" # no_remote_delete = "false" # skip_symlinks = "false" # debug_https = "false" # skip_dotfiles = "false" # dry_run = "false" # min_notify_changes = "5" # monitor_log_frequency = "5" # monitor_fullscan_frequency = "10" # sync_root_files = "false" # user_agent = ""
ほとんどの項目がコメントアウトされていますが,これはデフォルト値がどうなっているのかを見やすくするためです.唯一,sync_dir = “~/OneDrive/Personal” がコメントアウトされていますが,これは,~/OneDrive/Personal にファイル同期することを示すためのものです.
必要あるなら,
を参考にしながら,デフォルト値を書き換えコメントアウトします.必要な設定が出来たら,
$ onedrive --synchronize --verbose --confdir="~/.config/onedrive-personal"
のようにすれば同期が始まりますが,このままだと,次回起動時に自動的に同期されませんので,サービスとして起動するようさらに設定しなければなりません(ここではユーザーがログインしたらサービスが開始されるよう設定します.システムのサービスとして常に同期するよう設定する方法については上の元サイトの解説を参照してください).これは次の手順で行います.
まず,/usr/lib/systemd/user/onedrive.service を ~/.config/systemd/user にコピーし,適当なファイル名に変更します.
$ cp /usr/lib/systemd/user/onedrive.service ~/.config/systemd/user/. $ cd ~/.config/systemd/user/onedrive-personal.service
さらに,このファイル名を変更したファイルの内容を以下のように書き換えます.
[Unit] Description=OneDrive Free Client Documentation=https://github.com/abraunegg/onedrive After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/bin/onedrive --monitor --confdir=/home/hyt/.config/onedrive-personal Restart=on-failure RestartSec=3 RestartPreventExitStatus=3 [Install] WantedBy=default.target
最後に,
$ systemctl --user enable onedrive-personal $ systemctl --user start onedrive-personal
の様にして,サービスの登録と起動を行えば OneDrive Personal 同期の設定は完了ですし,Business アカウント,もしくはそれ以上のアカウントについても全く同様の手順を踏めば OK です.
KeeWeb を導入する
マルチプラットフォームの keepass 形式のパスワード管理ソフトです.元サイトは,
で,トップページから普通に deb 形式のインストーラーをダウンロードできますので,このダウンロードしたファイルをターミナルから,
$ sudo dpkg -i ./KeeWeb-1.12.3.linux.x64.deb
のようにするだけでインストール出来ます.
おわりに
ここまで設定すれば私の場合は本格的に仕事に活用できるようになりました.かなり長くなってしまいましたが,だからこそ,書き残してないと何やったかすぐ分かんなくなりますしね.
と言うことで,とりあえず,elementary OS 5.0 juno 設定の備忘録はここまでとなりますが,実際使ってみてどうなのかについては全く記していませんので,その辺りの感想については以下の記事をご覧ください.
以上!