20201027のMacに関する記事は5件です。

MAC Linux 環境構築 エラーメモ

目的

Linux導入時にでたエラー

環境

・Mac OS catalina ver10.15.7
・VirtualBox ver6.0.14
・Vagrant

使用したアプリケーション

・iTerm2

https://www.iterm2.com/

・VirtualBox ver6.0.14
https://www.vagrantup.com/

エラー箇所

vagrant box add ubuntu/bionic64 --box-version 20200130.1.0

installを行うとセキュリティーとプライバシーから機能拡張からブロックされました
と表示されるので”セキュリティー”環境設定から開き

スクリーンショット 2020-10-27 20.58.42.png

閉じちゃった時は?マークからシステム環境設定へ

許可をしておかないとinstallに失敗しこんなエラーがでた

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "06d68c13-7910-4f8f-a263-e9424395d7cf", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'username_default_1549175601821_34118' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, inter

許可しておく事で解決しました。

この記事は以下の情報を参考にして執筆しました。

引用
Vagrant upでエラーが出て躓いた時の解決方法

まとめ

・調べて先人様の知恵を参考にさせていただきました
・エラー文をよく読んで考える

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

GitHubでブランチを切ったあとになぜmasterをマージするのかの理由と、macだけで出て解決大変だった Permission denied (publickey). を解決した話

Git hubで作業する際に、初学者の僕が疑問に思っていた pull, push, merge をしていく理由について少し理解できたので、備忘録で記載しています。あと、macユーザーですがめちゃくちゃ pull, push, merge ではまったPermission denied (publickey).の解決方法も提示します。

まず、なぜ pull, push, merge なんてややこしいことをたくさんやらないといけないのかということです。今の時代共同作業だったら、google docs みたいにみんなでポンポン同時並行で出来ちゃえばいいのに、最先端のエンジニア領域でこんなめんどくさいことやっているんだろうと疑問に思いました。

まず大前提として master は何の汚れも無い(バグが絶対にないことを期待される)完全体です。

(図でいうと緑の線 出所:https://backlog.com/ja/git-tutorial/stepup/01/)
image.png

なので master が汚れないように、開発されたコード部分を master へ取り込む際に、「検証する人(=レビュアー)」がいます。その検証者がチェックして、OK であれば master に反映されます。

完全体ということで、master は他のブランチを担当している人たちの修正が統合され、どんどん成長していく一方で、ブランチによっては昔に作られたまま長らく放置されたり、独自でプログラミングしてる状況のものがあります。
image.png

そのため、いざ長期に切り離して作っていたブランチを反映させようとすると master 自体がずっと先にいっていますので、「他の人によって更新された膨大な量の変化」を検証者がチェックしなくてはいけなくなります。

「すでにチェックされ、統合された部分の再チェックをしてしまう」工数を省くために、ブランチ担当者が master の現在の状態を merge して、現状の master との差分(=自分が本当に開発した部分)だけを見てもらうようにします。

でこんな話を書いたのは、長らく、macpull, push, merge をしようとしても Permission denied (publickey). にハマって全然できていなかったからです。

windows はないのですが、mac は、キーチェーン登録 をしないといけないようで、その実行をしたら解決しました。

$ ssh-add -K

これをterminalで実行したら、VSCode上からのUI操作からでもPushがうまくいきましたとさ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macでpython実行時に方向キーを押すと"^[[A^[[B^[[C^[[D"となってしまう対処法

環境

macOS:Catalina 10.15.7
python:3.8.5
VScode:1.50.1

問題点

VScodeのterminalにてpython実行時に、方向キーを押すと、"^[[A^[[B^[[C^[[D"と入力されてしまい、過去に一度入力した値でももう一度入力しなければいけなかった。

^[[A^[[B^[[C^[[D

解決策

今回は、「rlwrap」を導入することによってこの問題を回避します。
導入にあたって、「homebrew」を使用しますが、今回はこの「Homebrew」のインストールは割愛させていただきます。(Homebrewのインストールに関しての記事は既にたくさんあるため。)

手順

まず、「command+space」で「Terminal」と検索し、Terminal を起動。
そこで以下のように入力します。

brew install rlwrap

特に問題なければ、「rlwrap」がインストールされているはずなので、正常にインストールされたかを確認します。

$ rlwrap -v
rlwrap 0.43

こんな感じでバージョンが表示されれば大丈夫です。

あとは、pythonを実行する時に

$ rlwrap python a.py

と前に付け加えるだけです!
(python以外の言語では試していないのでわかりません!
ごめんなさい!)

おまけ

VScodeを使用している人だけにはなりますが、便利な設定がありますので紹介させていただきます。

まず、拡張機能の「Code Runner」をインストールします。
この拡張機能は対応している言語の実行を、再生ボタンを押すか、ショートカットキーでできるようになるため、非常に楽になる機能です。
スクリーンショット 2020-10-27 11.26.35.png

インストールができたら、歯車のマークをクリックし、一番下の「Extention Settings」を選択します。
次に、「User」と「Workspace」とあると思いますが、
「User」の中の「Run in Terminal」にチェックを付けます。
スクリーンショット 2020-10-27 12.52.43.png

次に、「Workspace」の方を選択します。
そして「Code-runner:Executor Map」という欄の中の「Edit in settings.json」をクリックします。
スクリーンショット 2020-10-27 11.29.49.png

開いたsettings.json の中を探すと以下のようなコードがありますので、、

settings.json
"python": "python -u",

これを次のように書き換えて保存します。

settings.json
"python": "rlwrap python -u",

こうすることで、「Code Runner」でpythonを実行した際にも自動で「rlwrap」がつくので、毎回入力せずに済みます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

個人的に便利なアプリや開発ツールをまとめてみた(開発ツール編)

今回は、「開発ツール編」として筆者がRailsで開発環境を構築するときに導入する開発ツールをまとめてみました。
いつかまたセットアップする機会がきたときに役に立てばいいと思っております!

neovimを使ってRails開発が行えるところまでをゴールとします。

前回のアプリ編もどうぞ

導入するもの

名前 用途
Homebrew パッケージマネージャ
Alfred 万能ランチャーアプリ
白源 フォント
iTerm2 高機能ターミナル
zsh シェル
prezto zsh用コンフィグフレームワーク
neovim エディタ
iceberg テーマ
Git バージョン管理
rbenv Rubyのバージョン管理
Docker 仮想プラットフォーム

Homebrew

MacOSXシステム上でソフトウェアの導入を単純化してくれるパッケージマネージャ。
これで導入したソフトウェア群を、brewfileを用いて他環境へ簡単に移行することが可能です。
必要なものを一カ所に集めてくれるので、管理の手間が省けて便利ですね。
これから記載するものはほとんどこのツールを用いて導入していくので、最初にインストールしておくのが吉。

インストール手順
公式サイトの通り、ターミナル上で下記コマンドを実行するだけです。
Command + SpaceでSpotlight検索を起動して、「Terminal」と入力するとターミナルが起動します。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

途中、パスワードを求められますのでMacにログインしているユーザのパスワードを入力してください。

$ Password:

また、Homebrewは「Command line tools for Xcode」というソフトウェアに依存しており、途中でこのソフトウェアのインストールを求められますので、インストールしてください。
※画像は参考ですが、同じようにソフトウェアアップデートが立ち上がりインストールを求められます。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_43096_b5586c82-304a-c2a6-27de-8961ea684e0d.png

以下のように出力されたら完了。
一応doctorコマンドで正常にインストールできたか確認します。

==> Next steps:
- Run `brew help` to get started
- Further documentation:
    https://docs.brew.sh

$ brew doctor
Your system is ready to brew.

Alfred

Alfredはアプリ編に記載したかったのですが、Homebrewを使ってどのような環境であっても必ず持って行きたいアプリなのでこちらに記載しました。
Mac標準のSpotlightと同じようにアプリランチャーとしても働きますし、システムの機能をショートカットから呼出してファイルを一括で編集したり、スニペット登録機能があったり色々な機能があります。
課金すると上記のスニペット登録機能・ファイル操作機能が使えますが、そもそもSpotlightより便利で高機能なので導入しておいて損はないと思います。
筆者は全然使いこなせていないですが、かなり生産性が上がるみたいで少し余裕ができたら学んでいきたいと思っております。

theme@2x.jpg

インストール手順
Homebrewを使ってインストールします。
Homebrewは基本的にCUIをインストールするものなのですが、homebrew-caskという拡張機能を使用することによりGUIをインストールすることが可能となります。

この拡張機能をまず有効にしましょう。
下記のコマンドを実行すると、Homebrewにcaskが追加されます。

$ brew cask

本来はcaskのあとにインストールしたいアプリの名前を入れる必要があり、「Error: Invalid usage: No subcommand given.」と出力されますが、コマンドの実行方法がおかしいってだけでcaskは追加されるので気にしないでください。

その後、Alfredをcaskを介してインストールします。
もちろん上記のcaskのインストールを飛ばしてこちらを実行してもらっても構わないです。

$ brew cask install Alfred
alfred was successfully installed!

Spotlightと同じCommand + Spaceで起動したい場合は、インストール出来たらMacのシステム環境設定→キーボード→ショートカットを開きSpotlightのショートカットを無効化してください。
その後、Alfredを起動してショートカットを変更して導入は完了です。
スクリーンショット 2020-10-22 23.26.53.png

白源

エディタ上で見やすいフォントを色々試したのですが、個人的に一番見やすくてCUI上でアイコンをフォントとして出力するNerd Fontsに対応しているのでおすすめ。
プログラミング用のフォントとして有名なRictyをカスタマイズしているので完成度が高く、今でも定期的に更新され視認性がどんどん上がっていっており、非常に活発なフォントなのであります。
詳しくは作者様の記事をご覧ください。

インストール手順
cask同様にフォント用のHomebrewの拡張機能をインストールして、そちらを介して白源フォントをインストールします。

$ brew tap homebrew/cask-fonts
$ brew cask install font-hackgen-nerd

以降の項目でこちらのフォントは使用しますので、ここでは導入のみにとどめます。
もしお気に入りのフォントがあるなら、cask-fontsをインストール後に下記コマンドでHomebrewで扱われているか調べて、そちらを利用しても構いません。

$ brew search フォント名

iTerm2

Mac標準のターミナルを高機能にしたもの。
後述するエディタ用テーマ「iceberg」が、ターミナルではフルカラー出力に対応しておらず色味が思い通りに表示されなかったので導入した。
以下の記事を見てtmuxを入れなくてもコピーモードで色々できるんだなと思ったのも大きい。

インストール手順
下記を実行してインストール。

$ brew cask install iTerm2

導入はこれでいいですが、例えばダウンロードとかのディレクトリにアクセスしたときにiTermにアクセス許可を与えるかどうかの通知が表示されます。
この通知がいろんなディレクトリにアクセスしたときに表示されるので気になる人は、システム環境設定→セキュリティとプライバシーのフルディスクアクセスにiTerm.appを追加してください。
スクリーンショット 2020-10-23 2.29.59.png

後述するicebergの項で配色に関しては設定しますので、ここではステータスバーとフォントの設定を行います。
まずPreferences→Profileにある+マークで新しいプロファイルを作成しましょう。名前は適当でいいです。筆者は「iceberg」としました。
スクリーンショット 2020-10-24 8.55.22.png

次にTextタブを開き下にあるFontを、先ほど入れた「白源」にします。
スクリーンショット 2020-10-24 9.01.25.png

また、ステータスバーの表示位置がデフォルトでは上なので、Preferences→AppearanceのStatus bar locationで下などに変更できる。
スクリーンショット 2020-10-24 9.34.48.png

Sessionタブに移り、一番下のStatus bar enabledにチェックをつけます。
スクリーンショット 2020-10-24 9.09.07.png

あとはConfigure Status Barボタンを押して表示させたいアイテムをActive Componentsにドラッグして、Advancedで色とフォントの設定を行います。
筆者の場合は、背景色とアイテムの区切り線の色はicebergの背景色と同じ#161821にして、フォントも白源としました。
(iMacの場合、バッテリー表示は不要ですがMacbookとかと設定を同期したい場合はつけてもいいかもしれません。)
スクリーンショット 2020-10-24 9.12.18.png
スクリーンショット 2020-10-24 9.34.13.png

設定できたらOKを押して閉じます。
作ったプロファイルは、左下のOther Actionsを押してデフォルトに設定してください。
その後再起動すると反映されます。
スクリーンショット 2020-10-24 9.38.02.png

また、このプロファイルはOther Actionsで、JSONとしてエクスポートできますので、他のPCでインポートすれば設定を同期できるので覚えておくと便利です。

zsh

Catalinaを使っていたら導入する必要はありませんが、Homebrewで最新バージョンをインストールしてそちらを利用します。

インストール手順
Catalinaの場合、ログインシェルがzshなのでそのコマンドの位置と、バージョンを見ておきます。

$ which zsh
/bin/zsh
$ /bin/zsh --version
zsh 5.7.1

次に、Homebrewを介してzshをインストールしてそれをログインシェルとするために、/etc/shellsをvimで編集します。
パスワードを求められるのでログインユーザーのパスワードを入力してください。

$ brew install zsh
$ sudo vim /etc/shells
Password:

開いたらファイルの一番下に「/usr/local/bin/zsh」を追記して、下記コマンドでシェルを変更します。

$ chsh -s /usr/local/bin/zsh

実行できたらターミナルを再起動。
起動したらもう一度、zshの位置とバージョンを確認して、変更が確認できたら完了です。

$ which zsh
/usr/local/bin/zsh
$ zsh --version
zsh 5.8

prezto

zshrcファイルをあれこれいじるのが面倒な場合、preztoを入れればある程度便利に設定を行ってくれます。
またプロンプトも少しおしゃれにできます。

インストール手順
ターミナルを起動して下記を実行していきます。

# 先に変数を定義してpreztoの配置場所及び、設定ファイルの保存場所を決めておく
$ ZDOTDIR="~/.config/zsh"

# prezto本体をクローンする
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

# 設定ファイルを生成する
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

# シェルをデフォルトにする
$ chsh -s /usr/local/bin/zsh

# ZDOTDIRの箇所に生成された.zshenvをルートディレクトリに移動し、編集します。
$ mv ~/.config/zsh/.zshenv ~/.zshenv
$ vim .zshenv
.zshenv
# 省略
# 設定ファイル保存先
export ZDOTDIR="$HOME/.config/zsh"

次にpreztoに便利なモジュールを追加します。

$ vim ~/.config/zsh/.zpreztorc

32行目あたりの箇所を編集します。

.zpreztorc
zstyle ':prezto:load' pmodule ¥
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'syntax-highlighting' \ # これを追加
  'autosuggestions' \ # これも追加
  'prompt'

シェルを再起動すれば完了。

neovim

vimを拡張した派生エディタ。
JetbrainsなどのIDE、VSCODEとこれが現時点で最良の選択なのかなーっと思ってます。
正直、あれこれカスタマイズしてメンテナンスしていかないといけないので、それらが一番楽なのはIDEです。
ただVimの操作ってすごい楽なんですよね。で、IDEもVSCODEもそれらのメリットを享受できるけど、完璧じゃないんです。
ここはもう好みの問題だとは思いますが。

インストール手順
下記コマンドを実行。

$ brew install nvim

インストール自体は完了しており、続けて設定ファイルを作成する。

$ mkdir ~/.config/nvim
$ touch ~/.config/nvim/dein.toml
$ touch ~/.config/nvim/dein_lazy.toml
$ touch ~/.config/nvim/init.vim
$ vi ~/.config/nvim/init.vim

作成したら設定を色々編集していくのだが、dein.vimを導入し、最低限のものをまとめたのが以下になる。
dein.vimはプラグインマネージャで、vimに拡張機能をもたらすモジュールを一括管理してくれる。
以下のように書き換えて、再度neovimを起動したら自動的にインストールしてくれる。
エラーなどは気にしなくてよい。

init.vim
" dein.vim settings
let s:dein_dir = expand('~/.cache/dein')
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim' 
" dein installation check
if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . s:dein_repo_dir
endif

" begin settings
if dein#load_state(s:dein_dir)
  call dein#begin(s:dein_dir) 
  " .toml file
  let s:rc_dir = expand('~/.config/nvim')
  if !isdirectory(s:rc_dir)
    call mkdir(s:rc_dir, 'p')
  endif
  let s:toml = s:rc_dir . '/dein.toml'
  let s:lazytoml = s:rc_dir . '/dein_lazy.toml'

  " read toml and cache
  call dein#load_toml(s:toml, {'lazy': 0})
  call dein#load_toml(s:lazytoml, {'lazy': 1})

  " end settings
  call dein#end()
  call dein#save_state()
endif

" plugin installation check
if dein#check_install()
  call dein#install()
endif

" plugin remove check
let s:removed_plugins = dein#check_clean()
if len(s:removed_plugins) > 0
  call map(s:removed_plugins, "delete(v:val, 'rf')")
  call dein#recache_runtimepath()
endif

filetype plugin indent on
syntax enable

" リーダーキーの変更
let mapleader = "\<Space>"

colorscheme iceberg
set termguicolors
set encoding=utf-8
set nrformats=
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set autoindent
set smartindent
set nobackup
set noswapfile
set clipboard&
set clipboard^=unnamed
set number
set norelativenumber
set title
set nocursorline
set list
set listchars=tab:\|\ ,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
set showmatch
set matchtime=1
set hlsearch
set whichwrap=b,s,<,>,[,]
set tags=./tags;
set completeopt=menuone,noinsert
set viminfo+=n~/.config/nvim/.viminfo

" j,kキーで表示行移動
nnoremap <silent> k gk
nnoremap <silent> gk k
nnoremap <silent> j gj
nnoremap <silent> gj j

" 折り返し移動
set whichwrap=b,s,<,>,[,]

" 補完のEnterでは挿入しない
inoremap <expr><CR> pumvisible() ? "<C-e>" : "<CR>"

iceberg

色々テーマはあるが、寒色で目に優しい配色が気に入っている。
公式サイトを見て気に入ったら使ってみてほしい。

インストール手順
iTerm2とneovimそれぞれに導入していく。
まずはneovim。

dein.tomlを開いて、icebergを追加。
ほかにdein.vim自体と、vimのステータスバーを格好良くするairlineを追加。

vi ~/.config/nvim/dein.toml
dein.toml
[[plugins]]
repo = 'Shougo/dein.vim'

[[plugins]]
repo = 'cocopon/iceberg.vim'

[[plugins]]
repo = 'vim-airline/vim-airline'

その後、neovimを起動したら自動的にインストールされる。

次にiTerm2の設定をしていく。
vimでiTermのカラー設定用ファイルを作成して、以下の記述通りに保存する。

$ vi iceberg.itermcolors
iceberg.itermcolors
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Ansi 0 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.12941177189350128</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.094117648899555206</real>
        <key>Red Component</key>
        <real>0.086274512112140656</real>
    </dict>
    <key>Ansi 1 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.47058823704719543</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.47058823704719543</real>
        <key>Red Component</key>
        <real>0.88627451658248901</real>
    </dict>
    <key>Ansi 10 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.55686277151107788</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.7921568751335144</real>
        <key>Red Component</key>
        <real>0.75294119119644165</real>
    </dict>
    <key>Ansi 11 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.5372549295425415</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.69411766529083252</real>
        <key>Red Component</key>
        <real>0.91372549533843994</real>
    </dict>
    <key>Ansi 12 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.81960785388946533</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.67450982332229614</real>
        <key>Red Component</key>
        <real>0.56862747669219971</real>
    </dict>
    <key>Ansi 13 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.82745099067687988</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.62745100259780884</real>
        <key>Red Component</key>
        <real>0.67843139171600342</real>
    </dict>
    <key>Ansi 14 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.80784314870834351</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.76862746477127075</real>
        <key>Red Component</key>
        <real>0.58431375026702881</real>
    </dict>
    <key>Ansi 15 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.87058824300765991</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.83137255907058716</real>
        <key>Red Component</key>
        <real>0.82352942228317261</real>
    </dict>
    <key>Ansi 2 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.50980395078659058</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.7450980544090271</real>
        <key>Red Component</key>
        <real>0.70588237047195435</real>
    </dict>
    <key>Ansi 3 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.47058823704719543</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.64313727617263794</real>
        <key>Red Component</key>
        <real>0.88627451658248901</real>
    </dict>
    <key>Ansi 4 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.7764706015586853</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.62745100259780884</real>
        <key>Red Component</key>
        <real>0.51764708757400513</real>
    </dict>
    <key>Ansi 5 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.78039216995239258</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.57647061347961426</real>
        <key>Red Component</key>
        <real>0.62745100259780884</real>
    </dict>
    <key>Ansi 6 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.7607843279838562</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.72156864404678345</real>
        <key>Red Component</key>
        <real>0.5372549295425415</real>
    </dict>
    <key>Ansi 7 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.81960785388946533</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.78431373834609985</real>
        <key>Red Component</key>
        <real>0.7764706015586853</real>
    </dict>
    <key>Ansi 8 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.5372549295425415</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.43921568989753723</real>
        <key>Red Component</key>
        <real>0.41960784792900085</real>
    </dict>
    <key>Ansi 9 Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.5372549295425415</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.5372549295425415</real>
        <key>Red Component</key>
        <real>0.91372549533843994</real>
    </dict>
    <key>Background Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.12941177189350128</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.094117648899555206</real>
        <key>Red Component</key>
        <real>0.086274512112140656</real>
    </dict>
    <key>Badge Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>0.5</real>
        <key>Blue Component</key>
        <real>0.0</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.1491314172744751</real>
        <key>Red Component</key>
        <real>1</real>
    </dict>
    <key>Bold Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.87843137979507446</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.70980393886566162</real>
        <key>Red Component</key>
        <real>0.54901963472366333</real>
    </dict>
    <key>Cursor Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.81960785388946533</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.78431373834609985</real>
        <key>Red Component</key>
        <real>0.7764706015586853</real>
    </dict>
    <key>Cursor Guide Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>0.25</real>
        <key>Blue Component</key>
        <real>1</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.9268307089805603</real>
        <key>Red Component</key>
        <real>0.70213186740875244</real>
    </dict>
    <key>Cursor Text Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>1</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>1</real>
        <key>Red Component</key>
        <real>0.99607843160629272</real>
    </dict>
    <key>Foreground Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.81960785388946533</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.78431373834609985</real>
        <key>Red Component</key>
        <real>0.7764706015586853</real>
    </dict>
    <key>Link Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.73423302173614502</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.35916060209274292</real>
        <key>Red Component</key>
        <real>0.0</real>
    </dict>
    <key>Selected Text Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.81960785388946533</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.78431373834609985</real>
        <key>Red Component</key>
        <real>0.7764706015586853</real>
    </dict>
    <key>Selection Color</key>
    <dict>
        <key>Alpha Component</key>
        <real>1</real>
        <key>Blue Component</key>
        <real>0.25882354378700256</real>
        <key>Color Space</key>
        <string>sRGB</string>
        <key>Green Component</key>
        <real>0.17254902422428131</real>
        <key>Red Component</key>
        <real>0.15294118225574493</real>
    </dict>
</dict>
</plist>

このファイルをiTermのPreferences→Profile→Color Presetsでインポートを行うと適用される。
スクリーンショット 2020-10-25 20.59.20.png

Git

ソースコードなどの変更履歴を追跡できるバージョン管理システム。

インストール手順
Homebrew経由でインストールします。
まず元から入っているgitのバージョンを調べて、Homebrewでインストールします。

$ git --version
git version 2.24.3(Apple git-128)

$ brew install git

このままでは元からMacに入っているgitが使われてしまうので、パスを通します。

$ vim ~/.config/zsh/.zshrc
.zshrc
export PATH="/usr/local/bin/git:$PATH"

一度ターミナルを再起動して、gitのバージョンが変わっていれば成功です。

$ git --version
git version 2.29.1

rbenv

Rubyのバージョンを切り替えたり、管理することが簡単にできます。
とりあえず入れておいて損はない。

インストール手順
Homebrewでインストール。

$ brew install rbenv
$ rbenv -v
1.1.2

次にパスを通します。
またRBENV_ROOT変数にrbenvのshimsとversionsがあるディレクトリの位置を指定します。
最後のrbenv initは必須です。

$ vim ~/.config/zsh/.zshrc
.zshrc
export RBENV_ROOT="~/.local/share/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

次にこのrbenvを通してRubyをインストールします。

# 下記コマンドでインストール可能なRubyのバージョンが一覧で見られます
$ rbenv install -l

# バージョンを決めたらインストールします
$ rbenv install 2.7.2

# インストールしたバージョンを実行可能にします
$ rbenv global 2.7.2

# 下記コマンドを実行して、指定したバージョンにアスタリスクがついていたらおk
$ rbenv versions
  system
* 2.7.2

Docker

仮想環境で開発を行うプラットフォームを提供するツール。

インストール手順
以下からDocker for Macをダウンロードしてインストールする。
公式サイト

まとめ

最終的にこのようになります。
スクリーンショット 2020-10-27 0.06.59.png

Dockerを使って実際に仮想環境を作成する方法は、以下の記事を参考にしてください。

Vimの他のプラグインや、細かい設定は省いていますがここは個人の好みが含まれるため、色々設定してみるといいかもしれません。
筆者もまだ試している状態なので、揃ってきたら記事にしたいと思います。

最後までお読みいただきありがとうございました!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

pyenvにpythonの実行コマンドPATHが通らなくて詰まった話

概要

pyenvのPythonに実行PATHを通したかったけど、既知の方法では全くうまくいかず、つまりに詰まって、1日溶かしてしまった話。
下記のことを行ったとき、この現象が発生しました。

  1. TimeMachineを用いて、既存MacbookProからMac miniへ環境移行を行う
  2. 以前の環境ではpyenvを用いていたので、which python にて /Users/USER NAME/.pyenv/shims/pythonになってほしい
  3. なぜか、pythonのPATHが /usr/bin/pythonとMacのデフォルトになっていた。。。

というわけで、pythonのPATHを/Users/USER NAME/.pyenv/shims/pythonに通し直す話。これやらんとpythonのversionが変わらなくて不便でしゃあない。

既知の手順

zshを用いていたので、.zshrcには下記の設定はもちろんしてある。(参考: https://github.com/pyenv/pyenv)

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

理論上はsource .zshrcを行えば、PATHは確実に通るはず。。。
確認してみると。。。

$ which python
/usr/bin/python

Huh?? FUCK!!! 通ってないやんけ!!

ははーん、あれだな。PATHの順序がおかしいのでは?

$ vim /etc/paths

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

ちゃんと、/usr/local/binの順序が先に来とるな。。。。
ちなみに/usr/binが先に来てると、そっちの実行ファイルが優先的にPATHが通ります。

こうなったら、脳死でpyenvをuninstallして、installしなおそう。
ただ単に brew uninstall pyenv とかやっても設定ファイルがあちらこちらにあるので、
下記の記事を参考に全部潰しました。
https://qiita.com/yasudadesu/items/1177aa93229e7c4b7a45

んで、改めて.zshrcをsoruce .zshrcしても、なお治らず。。。
はい、降参しました。

神記事があった

似たような事象を起こした方が記事にしてくれていた、多大なる感謝をm
https://dev.classmethod.jp/articles/pyenv-command-not-found/

要は、リンクの再関連付けをしてみると良いとのこと

$ brew unlink pyenv
$ brew link pyenv
$ source .zshrc

来てくれ。。。祈る気持ちでPythonのPATHを確認。

$ which python
/Users/USER NAME/.pyenv/shims/python

やったぜ!!!

最後に

先人は偉大

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む