- 投稿日:2020-10-27T21:59:12+09:00
MAC Linux 環境構築 エラーメモ
目的
Linux導入時にでたエラー
環境
・Mac OS catalina ver10.15.7
・VirtualBox ver6.0.14
・Vagrant使用したアプリケーション
・iTerm2
・VirtualBox ver6.0.14
https://www.vagrantup.com/エラー箇所
vagrant box add ubuntu/bionic64 --box-version 20200130.1.0installを行うとセキュリティーとプライバシーから機能拡張からブロックされました
と表示されるので”セキュリティー”環境設定から開き閉じちゃった時は?マークからシステム環境設定へ
許可をしておかないと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許可しておく事で解決しました。
この記事は以下の情報を参考にして執筆しました。
まとめ
・調べて先人様の知恵を参考にさせていただきました
・エラー文をよく読んで考える
- 投稿日:2020-10-27T17:10:17+09:00
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/)
なので
master
が汚れないように、開発されたコード部分をmaster
へ取り込む際に、「検証する人(=レビュアー)」がいます。その検証者がチェックして、OK
であればmaster
に反映されます。完全体ということで、
master
は他のブランチを担当している人たちの修正が統合され、どんどん成長していく一方で、ブランチによっては昔に作られたまま長らく放置されたり、独自でプログラミングしてる状況のものがあります。
そのため、いざ長期に切り離して作っていたブランチを反映させようとすると
master
自体がずっと先にいっていますので、「他の人によって更新された膨大な量の変化」を検証者がチェックしなくてはいけなくなります。「すでにチェックされ、統合された部分の再チェックをしてしまう」工数を省くために、ブランチ担当者が
master
の現在の状態をmerge
して、現状のmaster
との差分(=自分が本当に開発した部分)だけを見てもらうようにします。でこんな話を書いたのは、長らく、
mac
でpull, push, merge
をしようとしてもPermission denied (publickey).
にハマって全然できていなかったからです。
windows
はないのですが、mac
は、キーチェーン登録 をしないといけないようで、その実行をしたら解決しました。$ ssh-add -Kこれをterminalで実行したら、VSCode上からのUI操作からでもPushがうまくいきましたとさ。
- 投稿日:2020-10-27T12:36:17+09:00
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」をインストールします。
この拡張機能は対応している言語の実行を、再生ボタンを押すか、ショートカットキーでできるようになるため、非常に楽になる機能です。
インストールができたら、歯車のマークをクリックし、一番下の「Extention Settings」を選択します。
次に、「User」と「Workspace」とあると思いますが、
「User」の中の「Run in Terminal」にチェックを付けます。
次に、「Workspace」の方を選択します。
そして「Code-runner:Executor Map」という欄の中の「Edit in settings.json」をクリックします。
開いたsettings.json の中を探すと以下のようなコードがありますので、、
settings.json"python": "python -u",これを次のように書き換えて保存します。
settings.json"python": "rlwrap python -u",こうすることで、「Code Runner」でpythonを実行した際にも自動で「rlwrap」がつくので、毎回入力せずに済みます。
- 投稿日:2020-10-27T09:11:52+09:00
個人的に便利なアプリや開発ツールをまとめてみた(開発ツール編)
今回は、「開発ツール編」として筆者が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」というソフトウェアに依存しており、途中でこのソフトウェアのインストールを求められますので、インストールしてください。
※画像は参考ですが、同じようにソフトウェアアップデートが立ち上がりインストールを求められます。
以下のように出力されたら完了。
一応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より便利で高機能なので導入しておいて損はないと思います。
筆者は全然使いこなせていないですが、かなり生産性が上がるみたいで少し余裕ができたら学んでいきたいと思っております。インストール手順
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を起動してショートカットを変更して導入は完了です。
白源
エディタ上で見やすいフォントを色々試したのですが、個人的に一番見やすくて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を追加してください。
後述するicebergの項で配色に関しては設定しますので、ここではステータスバーとフォントの設定を行います。
まずPreferences→Profileにある+マークで新しいプロファイルを作成しましょう。名前は適当でいいです。筆者は「iceberg」としました。
次にTextタブを開き下にあるFontを、先ほど入れた「白源」にします。
また、ステータスバーの表示位置がデフォルトでは上なので、Preferences→AppearanceのStatus bar locationで下などに変更できる。
Sessionタブに移り、一番下のStatus bar enabledにチェックをつけます。
あとはConfigure Status Barボタンを押して表示させたいアイテムをActive Componentsにドラッグして、Advancedで色とフォントの設定を行います。
筆者の場合は、背景色とアイテムの区切り線の色はicebergの背景色と同じ#161821にして、フォントも白源としました。
(iMacの場合、バッテリー表示は不要ですがMacbookとかと設定を同期したい場合はつけてもいいかもしれません。)
設定できたらOKを押して閉じます。
作ったプロファイルは、左下のOther Actionsを押してデフォルトに設定してください。
その後再起動すると反映されます。
また、このプロファイルは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.8prezto
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行目あたりの箇所を編集します。
.zpreztorczstyle ':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.tomldein.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でインポートを行うと適用される。
Git
ソースコードなどの変更履歴を追跡できるバージョン管理システム。
インストール手順
Homebrew経由でインストールします。
まず元から入っているgitのバージョンを調べて、Homebrewでインストールします。$ git --version git version 2.24.3(Apple git-128) $ brew install gitこのままでは元からMacに入っているgitが使われてしまうので、パスを通します。
$ vim ~/.config/zsh/.zshrc
.zshrcexport PATH="/usr/local/bin/git:$PATH"一度ターミナルを再起動して、gitのバージョンが変わっていれば成功です。
$ git --version git version 2.29.1rbenv
Rubyのバージョンを切り替えたり、管理することが簡単にできます。
とりあえず入れておいて損はない。インストール手順
Homebrewでインストール。$ brew install rbenv $ rbenv -v 1.1.2次にパスを通します。
またRBENV_ROOT変数にrbenvのshimsとversionsがあるディレクトリの位置を指定します。
最後のrbenv initは必須です。$ vim ~/.config/zsh/.zshrc
.zshrcexport 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.2Docker
仮想環境で開発を行うプラットフォームを提供するツール。
インストール手順
以下からDocker for Macをダウンロードしてインストールする。
公式サイトまとめ
Dockerを使って実際に仮想環境を作成する方法は、以下の記事を参考にしてください。
Vimの他のプラグインや、細かい設定は省いていますがここは個人の好みが含まれるため、色々設定してみるといいかもしれません。
筆者もまだ試している状態なので、揃ってきたら記事にしたいと思います。最後までお読みいただきありがとうございました!
- 投稿日:2020-10-27T00:19:35+09:00
pyenvにpythonの実行コマンドPATHが通らなくて詰まった話
概要
pyenvのPythonに実行PATHを通したかったけど、既知の方法では全くうまくいかず、つまりに詰まって、1日溶かしてしまった話。
下記のことを行ったとき、この現象が発生しました。
- TimeMachineを用いて、既存MacbookProからMac miniへ環境移行を行う
- 以前の環境ではpyenvを用いていたので、
which python
にて/Users/USER NAME/.pyenv/shims/python
になってほしい- なぜか、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
やったぜ!!!
最後に
先人は偉大