Ubuntu Budgieの初期設定, 様々なアプリ,ツール,Pythonの環境整備等 (備忘録) 

外国に来てからすぐにPCが壊れたので,またUbuntu Budgieの設定を行う.第2回目の初期設定記事.第一回はこちら
この記事では,僕が使用するアプリケーションやデータ解析環境の整備などをメモしていく.具体的には,vim, bash, unar, nomacs, dropbox, zoom, wps office, slack, discord,virtualbox, python, docker, docker-compose, git, pip, VS code, Zotero, pandocなどのインスール設定について簡潔に必要な部分だけ解説している.

環境

・PC : HUAWEI matebook 15
・OS : Ubuntu 20.04.05 LTS, (flavorとしてUbuntu Budgie)

OS installする際の注意点

・英語の設定にしておく人も一番最初の設定は日本語でインストールすること.でないと日本語が打てなくなってしまうため.

Ubuntu Budgieインストール後の基本設定

  • Google chromeのインストール.(Chromiumが初期のブラウザーのおすすめから消えていて残念.)
  • PC設定言語を英語に,日本語をMozcに変更する.またかな入力に変更.

Budgie Desktop Settings

  • Widgets: Pocillo-dark-slim
  • Icons: ubuntu-mono-dark
  • Cursors: DMZ-Black
  • Dark theme: On
  • Number of virtual desktops: 4
  • Home directory: On
  • Rubbish Bin: On
  • Mounted volumes: On
  • Fonts: Ubuntu Regular 11pt and Ubuntu Mono Regular 11pt.
  • Allow raising volume above 100%: On

About Panels

  • Create Left panel, remove top panel.
  • Automatic hide: Intelligent
  • Set the following Applets:
    • Start: AppMenu, Show Desktop Button, AppIndicator Applet
    • Center: Notifications, Places, Clock, Visual Space
    • End: Network, Status Indicator, Night Light, WeatherShow, Separator, Recently Used, RotationLock, HotCorners, User Indicator, Separator

Budgie Control Center

  • Mouse & Touchpad: Adjust mouse Speed, Touchpad Speed
  • Keyboard
    • Switch to workspace 1,2,3,4: Super+1,2,3,4
    • Move window to workspace 1,2,3,4: Shift+Super+1,2,3,4
  • Hot corner:
    • Bottome-right: google-chrome
  • File manager
    • Go to preferences of file manager and set “list view” as default.

Applicationのインストール等

  • Line: Google chromeのextensionを入れる.
  • Gmail: 必要なアカウントにログイン.
  • ChromeのBookmark: Simplenote, Scrapbox, GitHub, Whatsapp, Notion, このブログ, DeepL, Cambridge Dictionary, tiny-tiny rss, SearXNG

Bashを通じてインストールする設定

sudo apt-get install terminator # bashを複数画面で使用するため
# この2行は,Ctrl+Alt+tでterminatorを開くため.あと,右クリックでheaderの色を赤から青に変更する.
# またsystem clipboard にcopyが移るようにpreferences -> Profiles からCopy on selection をチェックする.
gsettings set org.gnome.desktop.default-applications.terminal exec terminator
gsettings set org.gnome.desktop.default-applications.terminal exec-arg '' 

# Vim
sudo apt install vim  
sudo apt-get install vim-gtk3 # vimでyankしたときに,system clipboardにもデータがcopyする用.
# .vimrcに set clipboard=unnnamedplusを書き込むとyankするとsystem clipboardにもデータが貼られる.

# unar
sudo apt install unar # zipの文字化けを回避するためのunarchiver

# nomacs
sudo apt install nomacs # pngなどのviewer

# Dropbox
sudo apt install nautilus-dropbox
dropbox status # dropboxが動いているか確認用のコマンド.

# Zoom
sudo apt install gdebi
sudo apt install ./zoom_amd64.deb # 次のurlより持ってきて,https://zoom.us/download?os=linux

# WPS office, 次のurlより持ってきて,https://www.wps.com/ja-JP/office/linux/
sudo dpkg -i wps-office_*_amd64.deb

# Slack
sudo snap install slack

# Discord
sudo snap install discord

bashの設定

bashrcでは見せれないものがあるので,僕がよく使うaliasesに関して,.bash_aliasesにまとめてある.下を.bashrcにあるか確認する.また,git用のコードも加えておく.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# for parse git 
parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\] \n$ "

以下の内容を.bash_aliasesに登録して使用している.

# basic aliases
alias open="xdg-open"
alias o.="xdg-open ."
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

alias c.="cd .."
alias c..="cd ../.."
alias t1="tree -L 1"
alias t2="tree -L 2"
alias t3="tree -L 3"

# list size of each file (total) 
alias lsize='for f in * ; do du -hs "$f" ; done'

# for convenient purpose
alias jpt_lab="jupyter lab"
alias pwdcp="pwd | pbcopy"
# git/github alias
alias gCM="git checkout master"
alias gC="git checkout"

alias gPull="git pull origin"
alias gPullM="git pull origin master"
alias gPush="git push origin"
alias gPushM="git push origin master"

alias gB="git branch"
alias gS="git status"

alias lg1="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
alias lg2="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
alias lg3="git log --graph --pretty=oneline --abbrev-commit "

function git_check_conflicts(){
    branch=$1
    git merge --no-commit --no-ff branch
    echo $?
    git merge --abort
}

function mdview() {
    markdown $1 | lynx -stdin
}


Vimの設定

vimはここまででインストールされているとして,.vimrcの設定になる.vimのパッケージマネージャーは色々あるが,NeoBundleをここでは使う.この記事のスクリプトをそのままフォローすれば(特にinstall.shが用意されている点が秀逸),すぐにvimのパッケージを適用させることが可能だ.
NeoBundleの導入

以下が僕が使用している.vimrcの設定.USER_NAMEの部分は適宜変更すること.

imap  
imap  la
imap  i
imap  xi

nmap  o
nmap  o
nmap  :NERDTreeToggle
nmap  :tabprevious
nmap  :tabnext
nmap @@ :! clear; python %

" colorscheme blue
" let mapleader = " "

set nowrap

set hlsearch
set ignorecase
set smartcase

set smartindent

set ruler
set number
set list
set wildmenu
set showcmd

set shiftwidth=4
set softtabstop=4
set expandtab
set tabstop=4
set smarttab

set clipboard=unnamedplus
"NeoBundle Scripts-----------------------------
"https://qiita.com/puriketu99/items/1c32d3f24cc2919203eb
"
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath^=/home/USER_NAME/.vim/bundle/neobundle.vim/

" Required:
call neobundle#begin(expand('/home/USER_NAME/.vim/bundle'))

" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'

" Add or remove your Bundles here:
NeoBundle 'Shougo/neosnippet.vim'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'davidhalter/jedi-vim'
NeoBundle 'hynek/vim-python-pep8-indent'
NeoBundle 'scrooloose/syntastic'
NeoBundle 'scrooloose/nerdtree'

"Javascript plugins"
NeoBundle 'pangloss/vim-javascript'
NeoBundle 'leafgarland/typescript-vim' 
NeoBundle 'maxmellon/vim-jsx-pretty'
NeoBundle 'thinca/vim-quickrun'

" You can specify revision/branch/tag.
NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }

" Required:
call neobundle#end()

" Required:
filetype plugin indent on

" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
"End NeoBundle Scripts-------------------------


" syntastic options 
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_check_on_open=0 "ファイルを開いたときはチェックしない
let g:syntastic_check_on_save=1 "保存時にはチェック
let g:syntastic_check_on_wq = 0 " wqではチェックしない
let g:syntastic_auto_loc_list=1 "エラーがあったら自動でロケーションリストを開く
let g:syntastic_loc_list_height=6 "エラー表示ウィンドウの高さ

let g:syntastic_python_checkers = ['']
let g:syntastic_javascript_checkers = ['eslint'] "ESLintを使う
let g:syntastic_typescript_checkers = ['tsc']
let g:syntastic_always_populate_loc_list = 1


Virtualbox

意外と設定が鬼門,時間掛かる.

UbuntuだとMS Office 365などがマイクロソフト製品が使えないので,MSを使うようにDropboxで環境を整備する.
VirtualBox + Secure Boot + Ubuntu = fail という等式が成り立つようなので,少し面倒.まずは以下のコマンドを打っておく.これだけだと動かないし,エラーが出てくる.

sudo apt-get update
sudo apt-get install virtualbox
sudo apt-get install virtualbox—ext–pack
sudo apt-get install linux-headers-generic
sudo update-grub
sudo dpkg-reconfigure virtualbox-dkms

“Your system has UEFI Secure Boot enabled”が出てきた際には,そのままOKで進んでPasswordを入力すれば良い.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use ‘dmesg’ to find out why のQ&Aを参考に以下の手順を実行する.Step 4まで行うとVirtualboxがエラーなしで起動してくれた.

VirtualboxでWindowsを起動する方法を説明するサイトはいっぱいあるので割愛.ただWindows 11はうまくインストール出来なかったので,リリースされてからしばらく経つまではWindows 10を使うのが無難そう.

次に,ホストOC(Ubuntu)とゲストOC(Windows)でファイルの共有を出来るように設定する.このサイトをフォローする.
Windows10ゲストのVirtualBoxで共有フォルダをマウントする方法

Pythonの環境設定

Pythonの分割した環境についてはDockerを用いて行うため,ここではグローバルな環境を整える.
ちなみにUbuntu Budgie 20.04.05 LTSではPython 3.8.10がデフォルトで入っていた.

git, pip, jupyterlab

# git
sudo apt install git-all  

# pip
sudo apt install python3-pip

# jupyterlab
sudo apt  install jupyter-core
pip install jupyterlab
# jupyter labで動かすにはexport PATH="$HOME/.local/bin:$PATH" をbashrcに書き込む.

# jupytervim
pip install jupyterlab-vim

Docker, docker-compose

Install Docker Engine on Ubuntuを参考にして,

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Install Composeを参考にして,docker composeも入れる.

sudo apt-get update
sudo apt-get install docker-compose-plugin

VS code

Download Visual Studio Codeよりダウンロード..debをダブルクリックしてインストール.File -> Preferences -> ExtensionsよりPython関連のExtensionと,VimのExtensionをインストール.

Zotero

Java関連のパッケージがRequireされるので,先にダウンロードしておく.

sudo apt install default-jre
sudo apt-get install libreoffice-java-common

java -version # for checking installation is successful.

Installation Instructions, Zotero Official pageに従う.Google ChromeのExtension(Zotero Connector)もインストール.ZoteroでLauncherからアクセス出来るようにするために以下のコードを回す.

./zotero
sudo mv Zotero_linux-x86_64/ /opt/zotero
cd /opt/zotero
./set_launcher_icon
ln -s /opt/zotero/zotero.desktop ~/.local/share/applications/zotero.desktop

次に,webdavでの同期設定を行う.適当にwebdavでの解説記事を参照のこと.urlとユーザー名,パスワード(僕の場合は自前のサーバーでdocker-compose.yamlに記載してあった)を控えておくこと.
Zotero & WebDAV(クラウドストレージ)で同期できる無料の文書管理・論文管理の環境を作る

webdavで同期出来たら同期しておくと良い.今回のようにデータが飛んだときに,すべて復元することが可能.zoteroのデータは無くなったと思っていたので本当に安心した.

PandocのCitationが出来るようにBibTex形式をExport出来るようにする.次のシリーズの記事が有用.
Zoteroから参考文献リストを自動エクスポートする (PandocとZoteroで参考文献:前編)

ちなみに,僕のCitation Keyの設定は,auth.lower + shorttitle(1,1) + year としている.

Pandoc

次の記事を参照.[Pandoc] markdownで論文として通用するレベルのwordへの変換を頑張る

手順としては,

  • pandoc release note, pandoc-crossref release note からbinaryファイルを手に入れる.(pandoc-crossrefとpandocのversionが合致するように注意.) pandocはダブルクリックで,pandoc-crossrefは以下のコードを回すことでインストール可能.
tar -xf pandoc-crossref-Linux.tar.xz
sudo mv pandoc-crossref /usr/local/bin/
sudo chmod a+x /usr/local/bin/pandoc-crossref
sudo mkdir -p /usr/local/man/man1
sudo mv pandoc-crossref.1  /usr/local/man/man1

他の必要なpandocのpackagesは以下.

pip install pantable
pip install -U pandoc-mustache
pip3 install git+https://github.com/pandocker/pandoc-docx-pagebreak-py

これで次のページのファイルが動くようになる.(directoryの名前だけ調整すること.)
toshiakiasakura/pandoc_plosone_sample_reproduction

———-雑感(`・ω・´)———
あと,TypescriptとかWeb開発用にnpmなどを入れる必要があるけど,そちらは触るときに入れることにした.結局,全部の設定終えるのに丸一日分の時間を使った.色々,定型や自動化が進めば進むほど設定が大変.これでもプログラムの環境にはDockerを使うようになったから楽にはなっているんだけど...

地味に一番毎回大変だと思うのは,Virtualboxのインストール.単純かと思いきや,入れるまでのステップがかなり面倒.また,入れたあともExtensionの関係で複雑になる.

ちなみに以下が僕のIT関連の開発環境のまとめ.

コメント

タイトルとURLをコピーしました