外国に来てからすぐに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の部分は適宜変更すること.
imapimap 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関連の開発環境のまとめ.
コメント