はじめに
開発環境としての Ubuntu Desktop 18.04 LTS 日本語 Remix のインストールメモです。
インストール先のマシンは以下です。
- HP Pavilion Gaming Desktop 790-0011jp
- ThinkPad E480
手順
パーテッションを分割後、USB メモリから Ubuntu をインストールする手順は省略します。
初回起動のログイン後からの作業記録です。
grub のデフォルト起動OSを Windows にする
今回は自宅の Windows 10 インストール済み環境にデュアルブート構成でインストールした。
Ubuntu インストール後、grub のデフォルトの自動起動を Windows にしたいため、以下を実施。
$ grep windows /boot/grub/grub.cfg
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-08B0-BFDE' {
$ sudo gedit /etc/default/grub
gedit で GRUB_DEFAULT=0
を GRUB_DEFAULT="Windows Boot Manager (on /dev/nvme0n1p1)"
に置換。
そして、以下を実行して設定を適用させる。
sudo update-grub
ホームディレクトリ内の日本語のディレクトリ名を英語に変更
「端末」から以下のコマンドを実行。
$ LANG=en_US.utf8 xdg-user-dirs-gtk-update
そして、上記実行後に「Update standard foloders to current language?」というウィンドウが出たので、「Update Names」ボタンを押下。
キーボードショートカットの変更
左 Ctrl キーと Caps Lock キーの入れ替え
以下を読みながら、いい感じにインストールしました。Emacs Input は OFF のままに。
システム時刻を UTC 管理から LocalTime 管理に変更
Windows 10 と Ubuntu のデュアルブート環境の場合、現状のこのままだと、Windows を起動すると、システム時刻が-9hになる。
以下のコマンドを実施して、Ubuntu のシステム時刻管理を LocalTime にする。
$ timedatectl status | grep local
RTC in local TZ: no
$ sudo timedatectl set-local-rtc true
$ timedatectl status | grep local
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
'timedatectl set-local-rtc 0'.
Homebrew のインストール
パッケージマネージャーの Homebrew をインストールします。
参考手順: Homebrew on Linux
「端末」から以下のコマンドを実行。
$ sudo apt-get install build-essential curl file git
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
「Press RETURN to continue or any other key to abort」と訊かれるので RETURNキーを押下します。
上記でインストールされるので、$PATH に brew を追加します。
$ echo '' >> ~/.profile
$ echo '# set PATH for Homebrew' >> ~/.profile
$ echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >>~/.profile
Ubuntu をログインし直した後に、brew -v
などで brew コマンドが実行できることを確認します。
Node.js 環境を作成
nvm のインストール
※ fish のインストール後です。
以下のコマンドを実行
> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
> fisher add jorgebucaran/fish-nvm
Node.js と npm のインストール
$ nvm install 12.11.0
$ nvm use 12.11.0
$ node -v
v12.11.0
$ npm -v
v6.11.3
Yarn のインストール
「インストール|Yarn」を参考にしてインストール。
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn
tldr コマンドのインストール
$ npm install -g tldr
Java のインストール
OpenJDK 11 のインストール
$ sudo apt install openjdk-11-jdk
Google Chrome のインストール
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo dpkg -i google-chrome-stable_current_amd64.deb
Dropbox のインストール
$ sudo apt install -y nautilus-dropbox
アクティビティ画面(ショートカット: Super + S)から Dropbox を起動し、以下の画面が表示されるので [OK] ボタンを押下する
あとは適宜対応。
git の設定
$ git config --global user.name "ユーザ名"
$ git config --global user.mail "メールアドレス"
ssh の設定
ファイルサーバーからGitHub の秘密鍵を ~/.ssh にコピーする。
その後、以下のコマンドを実行して、オーナーユーザーの読み取り権限のみを秘密鍵に設定。
$ chmod 400 ~/.ssh/id_rsa
Slack のインストール
$ sudo apt install gconf2 gconf-service
$ wget https://downloads.slack-edge.com/linux_releases/slack-desktop-4.0.2-amd64.deb
$ sudo dpkg -i slack-desktop-4.0.2-amd64.deb
最初は snap でインストールしたのだが、以下の問題にぶつかったので上記手順にした。
Emacs のインストール
$ sudo snap install emacs --classic
$ sudo apt install emacs-mozc-bin
$ sudo apt install silversearcher-ag
.emacs を以下のように設定。
; package.el
(require 'package)
;; MELPAを追加
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
;; MELPA-stableを追加
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
;; Marmaladeを追加
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
;; Orgを追加
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
;; 初期化
(package-initialize)
; 細かい設定
;; site-lisp path
(add-to-list 'load-path "~/.emacs.d/site-lisp")
;;not make backup files
(setq make-backup-files nil)
;; tab width 2
(setq-default tab-width 2 indent-tabs-mode nil)
; twittering-mode
(load "twittering-mode")
(setq twittering-allow-insecure-server-cert t)
(setq twittering-use-master-password t)
; web-mode
;; https://qiita.com/kwappa/items/6bde1fe2bbeedc85023e
;; どの拡張子を web-mode で開くかを指定
(add-to-list 'auto-mode-alist '("\\.php\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.css$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.js[x]?$" . web-mode))
;; 拡張子 .js でもJSX編集モードに
(setq web-mode-content-types-alist
'(("jsx" . "\\.js[x]?\\'")))
;; インデント
(add-hook 'web-mode-hook
'(lambda ()
(setq web-mode-attr-indent-offset nil)
(setq web-mode-markup-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq web-mode-code-indent-offset 2)
(setq web-mode-sql-indent-offset 2)
(setq indent-tabs-mode nil)
(setq tab-width 2)
))
;日本語入力
;; https://qiita.com/Maizu/items/fee34328f559c7dc59d8#emacs-mozc
;;半角全角キーで日本語入力をすると、日本語入力モードで `Ctrl + [なにか]` をやるときにうまく動作しない。
;;また、`Ctrl + \` での日本語入力モードだと、「ん」を入力するときにうまくいかない。
;;上記を解決するために emacs-mozc をインストールする。
(require 'mozc) ; mozcの読み込み
(set-language-environment "Japanese") ; 言語環境を"japanese"に
(setq default-input-method "japanese-mozc") ; IMEをjapanes-mozcに
(prefer-coding-system 'utf-8) ; デフォルトの文字コードをUTF-8に(require 'mozc)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(package-selected-packages (quote (mozc))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
; Helm
;; https://qiita.com/jabberwocky0139/items/86df1d3108e147c69e2c
(require 'helm-config)
(helm-mode 1)
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x b") 'helm-mini)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
;; rebind tab to run persistent action
(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action)
;; make TAB work in terminal
(define-key helm-map (kbd "C-i") 'helm-execute-persistent-action)
;; list actions using C-z
(define-key helm-map (kbd "C-z") 'helm-select-action)
; Helm-ag
;; 事前準備: sudo apt install silversearcher-ag
;; M-x helm-ag
M-x package-list-packages
で以下をインストールする
- mozc
- twittering-mode
- web-mode
- helm
- helm-ag
Visual Studio Code のインストール
$ sudo snap install code --classic
ただし、このあと起動を試みたが、起動しなかった。
~/.config/Code/logs
のログをみたら、以下の記述を確認。
[2019-09-29 23:25:13.006] [main] [error] Error: ENOSPC: no space left on device, watch '/snap/code'
at FSWatcher.start (internal/fs/watchers.js:164:26)
at Object.watch (original-fs.js:1232:11)
「Linux で VSCode を実行する - “Visual Studio Code is unable to watch for file changes in this large workspace” (error ENOSPC)」に類似の事例があったため、以下のように設定を適用。
$ cat /proc/sys/fs/inotify/max_user_watches
8192
$ sudo su -c "echo '' >> /etc/sysctl.conf"
$ sudo su -c "echo '# workaround for vscode' >> /etc/sysctl.conf"
$ sudo su -c "echo '# (https://vscode-doc-jp.github.io/docs/setup/linux.html)' >> /etc/sysctl.conf"
$ sudo su -c "echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf"
$ sudo sysctl -p
$ cat /proc/sys/fs/inotify/max_user_watches
524288
上記設定後、無事に Visual Studio Code の起動成功を確認。
設定画面で以下を設定。
{
"workbench.editor.enablePreview": false
}
Docker のインストール
以下を読みながら、いい感じにインストールしました
PHP のインストール
$ brew install php
$ php -v
PHP 7.3.9 (cli) (built: Sep 15 2019 19:09:22) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.9, Copyright (c) 1999-2018, by Zend Technologies
Hyper のインストール
以下サイトから deb ファイルをダウンロードする
その後、以下でインストール。
$ sudo dpkg -i Downloads/hyper_3.0.2_amd64.deb
fish のインストール
参考記事: fish shellが結構良かった話
$ sudo apt install fish
$ fish
$ fish_config
ブラウザで fish shell configuration が表示されるので、「prompt」で「Informative Vcs」を設定。
そして、~/.bashrc に以下を追記。
exec fish
対話式で bash を使いたい場面があったときに、上記設定をすると bash
を実行しても fish
が起動してしまうため、対話式で bash を fish 内で使うときは ~/.bashrc
を読み取らないように ~/.config/fish/config.fish
に以下を追記。
alias bash="bash --norc"
ThinkPad でスリープをすると、トラックパッドの2本指が効かなくなる問題への対策
現状は事象が発生したら、以下のスクリプトを都度実行。
#!/bin/sh
# I upgraded from 17.04 to 17.10 on a Lenovo T540p which has broken two finger touchpad scrolling and right clicking
# https://askubuntu.com/questions/967073/i-upgraded-from-17-04-to-17-10-on-a-lenovo-t540p-which-has-broken-two-finger-tou
modprobe -r psmouse
modprobe psmouse
参考資料
Ubuntu18.04で2本指スクロールが効かなくなる問題
Peek のインストール
デスクトップ画面を GIF キャプチャできるように Peek をインストールします。
$ sudo add-apt-repository ppa:peek-developers/stable
$ sudo apt update
$ sudo apt install peek
参考資料
GIF形式でのキャプチャが簡単にできるPeekをUbuntuにインストールする手順と使い方
lltsv のインストール
$ wget https://github.com/sonots/lltsv/releases/download/v0.3.0/lltsv_linux_amd64 -O lltsv
$ chmod a+x lltsv
$ mv lltsv ~/bin