LoginSignup
5
5

More than 3 years have passed since last update.

Ubuntu Desktop 18.04 開発環境の構築メモ

Last updated at Posted at 2019-09-30

はじめに

開発環境としての 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=0GRUB_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] ボタンを押下する

image.png

あとは適宜対応。

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
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5