LoginSignup
59
89

Ubuntuインストールしたら行う初期設定チートシート

Posted at

UbuntuをPCにクリーンインストールするのはいいが、
最初は、ほぼ何もソフトが入っていない状態(それがいいのだが)

だから、何かしらのセットアップは行いたい。

ただ、普段Macとかに慣れていると、
久しぶりにUbuntuとかを触ると、
何をすればいいか忘れる...

なので、本記事ではUbuntuを入れたら
最低限設定したいことをまとめようと思う。

CapsLockの無効化してCtrlキーにする

さて、毎度のことですが、宇宙一使いみちがわからないCapsLockを
無効化する作業をしようと思います。

あと、もともとMacのキー配列に慣れてしまった私は、
無変換キーと変換キーの存在意義もよくわからないので、
Ctrlあたりに変えたいと思います。

まずは、各キーのキーコードを調べたいので、

xev

でキーコードを調べます。
CapsLockを押してみます

Screenshot from 2024-07-21 14-10-10.png

keycodeが66ということがわかります。

次に、Xmodmapを使ってキー配列を変更します。
設定ファイルは、~/.Xmodmapなので、

~/.Xmodmap
clear Lock
keycode 49 = Control_L
keycode 66 = Control_L
keycode 100 = Zenkaku_Hankaku
keycode 102 = Zenkaku_Hankaku
keycode 111 = Shift_R
add control = Control_L

xmodmap ~/.Xmodmap

これで再起動したら反映されるはずなのだが、
どういうわけか私の環境だとしつこくCapsLockがつきまとってきた。

なので、アプローチを変えて、
Gnome Tweaksで設定する

sudo apt install gnome-tweaks
gnome-tweaks

で起動して画像のように設定する

Screenshot from 2024-07-21 15-15-45.png

これで再起動したらCapsLockはやっと無効化(というよりCtrlキー)に変換できた

firefoxが気に入らなければ好きなブラウザを入れる

個人的にはFirefoxは結構好きなブラウザなので、
正直Firefoxをそのまま使うというのもありなのですが
(そのほうがなんとなくLinuxっぽい気もするし)、
Batの小銭稼ぎのために、
ここはやはりBraveを入れとこうと思います。

sudo apt-get update
sudo apt install curl

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list

sudo apt update

sudo apt install brave-browser

ちなみに、Braveはhtmlファイルにブックマックをエクスポートとインポートができるので、
それでブックマックを復元するのがいいかと思います。

私はこのHTMLファイルはGithubのPrivateリボジトリで管理しているので、
cloneするために次にgitの設定を行う。

gitの設定

まずはインストール

sudo apt install git
git config --global user.name 'user_name'
git config --global user.email "user@example.com"

ちゃんと設定できているか確認

git config --list

次にgitのssh設定をしたい。
まずはsshキーを作成

ssh-keygen

さてこいつの中身をコピーしたい。
Macとかならpbcopyで終了なのだが、
linuxの場合違うアプローチが必要だ。

linuxの場合、xselというものが使えるので
インストールする

sudo apt install xsel

インストールしたら、クリップボードに公開鍵をコピーする。

cat ~/.ssh/id_rsa.pub  | xsel --clipboard --input

追加したらGithubのsshキーの項目に追加する。
追加したら、

ssh -T git@github.com

これでHiと返ってくれば、
git cloneとかでsshで持ってこれる

vim/neovimの設定

もちろん、neovimとかの設定をしないことには
何も始まらない。

vimmerであれば、dotfileみたいなリボジトリを持っているであろうから、
そいつをcloneして、各々設定を適用させる。

sudo apt install neovim

init.luaとかの設定ファイルをcpする
※私の環境の例

mkdir ~/.config/nvim
cp init.lua ~/.config/nvim/
mkdir ~/.config/nvim/lua
cp -r lua ~/.config/nvim/

さてこれでnvimを起動すればプラグインとかインストールして終わりかと思いきや、
何やらエラーが。lazy.nvimは0.8以上のneovimのバージョンがいるが、
さきほど、apt installしたneovim0.6とかだった。

なので、一旦neovim削除する

sudo apt-get remove neovim

そして、ここに書かれている内容をもとに、
最新のneovimをインストールするようにする

curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux64.tar.gz

使っているシェルの設定ファイル(UbuntuとかならデフォルトはBash?)
.bashrcとかに下記を追記してパスを通す

export PATH="$PATH:/opt/nvim-linux64/bin"

sourceコマンドとかで設定ファイルを読み込み直して、
nvimと起動してpluginとかのインストールが始まればOK

最初は、node.jsとか入れていないので、
そのあたりのエラーは出るかもしれない

私の環境でnvimを実行すると

Screenshot from 2024-07-20 07-14-59.png

みたいなエラーが出ました

build-essentialをインストールしてみます

sudo apt update && sudo apt install build-essential

これでNo C compiler found周りのエラーは消えるはずです
※yadmのやつは、以前は(というかMacでは)エラーにならなかったのですが、
Linuxではinvalid configurationになるようなので、削除またはコメントアウトしました。

nodejs

ただ、coc.nvim周りでnode.jsがないとエラーになるので、
node.jsの設定もします。

詳しくは下記の記事を参考にnvmを入れて導入しようと思います

これで好きなバージョンのnode.jsを入れたら、
先程のnode is not executableみたいなエラーは消えるはずです

ripgrep(rg)、fd導入

nvimで:checkhealthコマンドを実行すると、
外部ツールとかで足りていないものがわかる。

代表的なものだと、telescope.nvimで使う、
ripgrepやfdとかなので、まずはこやつらを入れて、
telescope.nvimの力を引き出す

ripgrep(rg)

ubuntuの場合だと、

curl -LO https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb
sudo dpkg -i ripgrep_14.1.0-1_amd64.deb

でインストールできる

fd(fd-find)

sudo apt install fd-find

実は、これだけでnvimのcheckhealthは突破できるのだが、
fdコマンドでこのパッケージのコマンドを呼び出せないので、
公式に書いてあるとおり、fdコマンドをそのまま使いたい場合は
シンボリックリンクを貼る必要がある

mkdir ~/.local/bin # もしなければ
ln -s $(which fdfind) ~/.local/bin/fd

~/.local/binにはPATHを通しましょう

~/.bashrc
export PATH="$PATH:$HOME/.local/bin"

※fdにこだわらず、fdfindと打てば使えるので、
alias設定でも十分かもしれない

これでtelescope.nvimも十分使えるだろう

tmuxの設定

tmuxの詳細についてはこちらで

まずはインストール

sudo apt install tmux

インストールしたら、設定ファイルをcpして
読み込ませる

cp tmux.conf ~/.tmux.conf
tmux source-file ~/.tmux.conf

zshの設定

シェルは好き好きあると思うが、
私は無難にzshにしている。

まずはzshをインストール

sudo apt install zsh

zshが使えるか確認

cat /etc/shells

zshが入っていたら

chsh -s /bin/zsh

で次回からzshになるはず(変わっていなかったら再起動とかすれば反映されているはず)

シェルが変わっているかどうかは

echo $SHELL

で確認できる

zshにしたらあとは設定あるのみ。

設定ファイルをまとめた
dotfilesリボジトリをcloneして
cpする

私の場合の設定ファイルリボジトリ(dotfiles)

cp zshrc ~/.zshrc
source ~/.zshrc

oh-my-zshの設定

zsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

これやると、zshrcがたしか上書きされるので、
先にこれをインストールしてから、設定ファイルをcpしたほうがいいかもです...

zoxideのインストール

これも必須ツールなので入れようと思います。

curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | zsh

.zshrcに下記を追記する

eval "$(zoxide init zsh)"

ziコマンドも使いたいので、
fzfも入れます

sudo apt install fzf

これでzとziコマンドが使えるはず

Ruby、rbenvの設定

Ruby,Railsエンジニアならこれらも入れておきましょうか。

git cloneでのインストールにしておきまs

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

initします

~/.rbenv/bin/rbenv init

って実行したら終了かと思いきや、
なにやらエラー

Screenshot from 2024-07-21 16-16-56.png

なるほど、rbenvの設定があると、
.zshrcのrbenv initの部分をコメントアウトしてもう一度実行する。

すると、また同じエラーに...

どういうことだと思ったので、
rbenvのソースを見てみた

どうやら、grepでrbenv initにヒットしたらだめっぽいので、
コメントアウトじゃなくて消去しないとだめみたい

消して再度試したらうまく行った。

Macのときに追加するeval "$(rbenv init - zsh)"みたいな設定とは
地味に違う設定が.zshrcの末尾に追加されていた

ただ、ためしにrbenv installを実行してみても、
なにやらinstallコマンドがないとのエラーが出るので、
下記も実行する

git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

あとは、3.3.4でもインストールしてみる

rbenv install 3.3.4

ただこれを行うと、今度はzlib.hがないみたいなエラーが出るので、
そっちをインストールする

sudo apt install zlib1g-dev
sudo apt install libffi-dev libssl-dev libyaml-dev #上だけだとまた依存ライブラリが足りない的なエラー出るのでこちらも

もう一度インストールしたら、
うまくいくはず。
あとは、globalに設定する

rbenv global 3.3.4

Dockerの設定

お次はDockerの設定

Macとかなら、
OrbStackという選択肢もあるが、
Ubuntuの場合、使えなさそうです。

MacとかならDocker DesktopをGUIでぽちぽちインストールして、
はい終了って感じなのですが、
Linuxの場合ちょっと手順が増えます。

Docker Engineのインストール

まず、Docker engineを入れます

やり方はいろいろありますが、
apt repositoryのやり方でインストールします。

まずは、apt repositoryの設定をします

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

次に、dockerのパッケージをインストールします。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

無事dockerが入っているか確認してみます

docker -v
sudo docker run -it ubuntu bash

ただ、このままだといちいちsudoを打たないといけないので、
下記を参考にsudoなしでも実行できるようにしたほうがいいかも

Homebrewの導入

めちゃくちゃ今更だが、
Homebrewも一応入れておいた方がいいかも?
(ぶっちゃけなくてもいい気もしますが)

 (echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/ユーザー名/.zshrc
 eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
 sudo apt-get install build-essential

alacrittyの導入設定

Macだと、ついついiTerm2に頼ってしまうが、
もちろん、Linuxでは使えない。

ターミナルの選択肢は色々あるといえばあるが、
おそらく一番無難であろうalacrittyを導入する

どっかの記事でalacrittyもHomebrewでインストールできる的な記載を見かけた気がして、試してみたが、普通にインストールできなかったので、
公式に書いてあるやり方でやってみることとする。

まずは、ソースコードを持ってくる

git clone https://github.com/alacritty/alacritty.git
cd alacritty

次にrustupとやらを入れる

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | zsh

※公式だと、zshではなくshだったが、なんかうまく行かなかったので、zshに変えています。

rustup override set stable
rustup update stable

次に依存パッケージを入れる

sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3

いよいよbuild

cargo build --release
infocmp alacritty

これでエラーが出るようなら、

sudo tic -xe alacritty,alacritty-direct extra/alacritty.info

次にデスクトップエントリー追加する

sudo cp target/release/alacritty /usr/local/bin
sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install extra/linux/Alacritty.desktop
sudo update-desktop-database

zshの設定

mkdir -p ${ZDOTDIR:-~}/.zsh_functions
echo 'fpath+=${ZDOTDIR:-~}/.zsh_functions' >> ${ZDOTDIR:-~}/.zshrc
cp extra/completions/_alacritty ${ZDOTDIR:-~}/.zsh_functions/_alacritty

AlbertとCopyQによるAlfredに代わるランチャーとクリップボード

Albertをインストールする

ubuntuの場合、バージョンごとにコマンドが違うようなので、
まず、使っているubuntuのバージョンを調べる

lsb_release -a 

私の環境だと、Ubuntu 22.04.4 LTSだった。

上記のAlbertにかかれていたコマンドを実行してみる

echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.list
curl -fsSL https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_manuelschneid3r.gpg > /dev/null
sudo apt update
sudo apt install albert

あとは起動すれば使えるはず

ちなみにどういうわけか、ubuntu 22.04だと、
ホットキーでalbertが有効にならなかったので、
ubuntu自体のキーボードショットカットを設定した。

Screenshot from 2024-07-15 14-40-03.png

スクリーンショットは、print screenボタンで取ることができる
※ubuntu 22.04だとShift + print screenの範囲選択ができない模様

クリップボード連携のために、
copyQも入れておく

sudo apt-get install copyq

ちょっとわかりにくいが、
AlbertのQueryの部分でCopyQをどうやって呼び出すかを設定できる。
この場合、cpでクリップボードの中身を確認できる。

ただ、ホットキーで呼び出して、
cpで中身をみたあと、エンターをおしても
はりつけされず、直前のコピー履歴として設定されるだけだったので、
ここはAlfredのように貼付けされるように設定できたらいいなと思っている。

ちなみに、copyqはcopyq toggleみたいなコマンドできどうすることもかの

Screenshot from 2024-07-15 14-57-30.png

Omakubを使えば解決!?

最近話題の(?)かのDHH大先輩が作成したomakubを試してみる。
こいつで最低限必要そうなやつを入れてみるのもありかも。

59
89
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
59
89