- 投稿日:2019-01-26T22:58:39+09:00
(macOS) Vagrant + CentOS + pyenv + anaconda でホストOSから jupyter notebookを使う
macOSをクリーンインストールする度に再設定するのでメモ
環境
以下の環境で動作確認済み
ホスト
- macOS 10.14.3
- VirtualBox 6.0.2
- Vagrant 2.2.3
ゲスト
- CentOS 7.6 (1810)
- pyenv 1.2.9
- anaconda 3-5.3.1
- Python 3.7.2
VirtualBoxのインストール
- 公式サイト(https://www.virtualbox.org/wiki/Downloads) からmaxOS用のインストーラをダウンロード
- ダウンロードしたdmgファイルをダブルクリックし、インストール実行
- terminalに以下のコマンドを入力し、バージョン確認
$ VBoxManage -v 6.0.2r128162Vagrantのインストール
- 公式サイト(https://www.vagrantup.com/downloads.html) からmaxOS用のインストーラをダウンロード
- ダウンロードしたdmgファイルをダブルクリックし、インストール実行
- terminalに以下のコマンドを入力し、バージョン確認
$ vagrant --version Vagrant 2.2.3Vagrantの設定
Vagrant用ディレクトリを作成し、ボックスの作成・初期化 (box addは不要)
# ホームディレクトリから開始 $ cd ~ # Vagrantディレクトリを作成 $ mkdir Vagrant # Vagrantに移動 $ cd Vagrant # Vagrantの下にcentOSディレクトリを作成 $ mkdir centOS # centOSに移動 $ cd centOS # vagrant init 実行 $ vagrant init centos/7Vagrantfileの編集
vagrant init
を実行すると、カレントディレクトリ(ここではcentOSディレクトリ)にVagrantfileができているのでテキストエディタで開き、以下の2行をアンコメント('#'を削除してコメントアウトを取り消し)# config.vm.network "forwarded_port", guest: 80, host: 8080 <中略> # config.vm.network "private_network", ip: "192.168.33.10"↓
config.vm.network "forwarded_port", guest: 80, host: 8080 <中略> config.vm.network "private_network", ip: "192.168.33.10"ゲストOSの立ち上げ
以下のコマンドでCentOS7を起動
$ vagrant up
CentOSにssh接続
起動に成功したらsshでログイン
$ vagrant ssh
pyenvとAnacondaのインストール
ログインしたら最初にyumの更新とgitインストール
$ sudo yum -y update $ sudo yum -y install gitpyenvをgitから取得
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
pyenvの環境変数を設定
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profilememo
環境変数を.bashrcに書き込むと、bashが正常に動かなく(コマンドが全てcommand not found
に)なったので
.bash_profileに書き込んだところ正常に動作したanacondaのインストール
# anacondaのバージョン一覧確認 $ pyenv install -l | grep ana # 最新版インストール(少し時間がかかる) $ pyenv install anaconda3-5.3.1 $ pyenv rehash # anacondaのPythonをデフォルトに設定 $ pyenv global anaconda3-5.3.1 # anacondaの環境変数を設定 $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile # Pythonのバージョン確認 $ pyenv versions system * anaconda3-5.3.1 (set by /home/vagrant/.pyenv/version) # condaのアップデート $ conda update conda # 下記が表示されたら'y'を入力してEnter Proceed ([y]/n)?jupyter notebookの起動
jupyter notebookはanacondaに同梱されているので、ここではそのまま使う
(anacondaで仮想環境を作る場合は別途設定)# jupyter notebookを起動 $ jupyter notebook --no-browser --ip=0.0.0.0 # 下記が表示されたらtoken(xxxxxxxxxxxxxxxxxxxxxxxxxの部分)をコピーしておく Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://(localhost.localdomain or 127.0.0.1):8080/?token=xxxxxxxxxxxxxxxxxxxxxxxxxjupyter notebookへアクセス
ホストOSに戻り、ブラウザで以下のURLを開く
初回アクセス時にtokenの入力とパスワード設定を聞かれるので、コピーしておいたtokenを入力し、
パスワードを設定する
500 : Internal Server Error
が表示された場合は、ゲストOSのterminalに戻り
[⌃C]でjupyter notebookを一旦終了し、再度起動する
以下の記事、サイトを参考にさせて頂きました
https://qiita.com/sk427/items/9f215931c8249ada75cd
https://qiita.com/1000ch/items/93841f76ea52551b6a97
https://qiita.com/N-K-Kota/items/a36902d43c48d054bb6f
https://qiita.com/supersaiakujin/items/50def6f33b79f9a61b18
https://mashi-prog.hatenablog.com/entry/2018/06/09/105911
- 投稿日:2019-01-26T22:27:08+09:00
macのプロンプトにブランチを表示させる
背景
gitの操作をターミナルで行なっているのに、作業しているブランチが見えないのは不便ですよね。
ということで今回はプロンプトにブランチをいい感じに表示させる方法を紹介します。対象者
- UNIX系のコマンドに慣れている、もしくは調べれば分かる人
- Gitの基礎ワードが分かる、もしくは調べれば分かる人
作業環境
MacOS Sierra Ver 10.12.6
git version 2.19.0事前準備
ブランチを表示させるには
git-prompt.sh
(プロンプトに各種追加情報を表示可能にするスクリプト)が必要です。まずは
mdfind
コマンドで上記ファイルが存在することを確認しましょう。
既にインストールされていれば、以下のようにファイルパスが表示されます。$ mdfind git-prompt.sh /usr/local/git/contrib/completion/git-prompt.sh /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh
インストールされていなければ、リンクを参考にするとインストールできると思います。
設定方法
ブランチ名を表示させるために
.bashrc
を編集します。
.bashrc
は通常ログインシェルがbashを起動したときに読み込むファイルでホームディレクトリに配置されています。.bashrc
が存在しない場合はリンクを参考にしてファイルを作成してください。それではここから設定していきましょう。
.bashrc
にプロンプト表示設定を入れる。
ターミナルで以下のコマンドを実行して.bashrc
に設定を追記します。$ cat << EOF >> .bashrc source /usr/local/git/contrib/completion/git-prompt.sh #git-prompt.sを読み込む export PS1='\[\[\033[32m\]\u:\[\033[34m\]\W\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '※ なお
PS1
はプロンプトの表示フォーマットを指定する環境変数ですので、上記のコマンドを実行後プロンプトが以下の形式に変わります。
[ログインユーザ]:[カレントディレクトリのベース名] [ブランチ名]
もし現在の設定を引き継ぎたい場合は
$(__git_ps1)\[\033[00m\]\$
のみをexport PS1=~
に追記してください。
.bashrc
の設定を反映させる
ターミナルで以下のコマンドを実行し手順1で設定した内容をプロンプトに反映させます。$ source .bashrcコマンドを実行したら、ローカルリポジトリへ移動してみてください。
プロンプトにブランチ名が表示されていると思います。User_Name:current_dir $ cd [ローカルリポジトリ名] User_Name:current_dir (branch_name #) $さいごに
設定作業おつかれさまでした。
今回はブランチ名をプロンプトに表示できるよう設定方法を書きましたが、人によってはブランチ名以外にも表示させたいことがあると思います。
環境変数PS1
の設定次第で表示内容だけでなく、色なども自由にカスタマイズできるので興味のある方は調べてみてください。
- 投稿日:2019-01-26T21:53:34+09:00
AppleとUnixのお話
MicrosoftとUnix (https://qiita.com/sutton/items/5b2b7e2e57b674abe4f5) のお話を書いたら、いいねしてもらったのでそのままAppleとUnixのお話も書いてみようと思います。Macは数台持ってます(G3のibook クラムシェルが一番古い)があまり詳しくないので表面だけさらっと。
OSXも今でこそBSDベースのUNIX OSですが、WindowsとLinuxが水と油で相いれない存在だった過去よりもさらにAppleとUnixはその存在が対極上に存在した会社だったため、ちょっと意外なお話もでてくるかと思います。
(独り言)例によって、口調の統一や誤字脱字のチェック等の推敲は気が向いたらやるんで、適当にスルーしてください
AU/X
90年代、CPUもIntel/AMD系ではなく、その前のIBM PowerPCの時代を飛び越えて、もう一つ昔の世代、モトローラ社の68kを使用していた時代にApple (Apple Computer/アップルコンピュータ社)により開発、販売されていたUNIX OS。最初のリリースは1988年。
SystemV系のUNIXベースで、X-Windowの他に旧MacOSのFinderやAPIが搭載されており、旧MacOSのソフトウェアも動作しました。この時代にMacOSのアプリケーションが動作するUnixベースの美しいOSがあったなんてすばらしいですね。
この時代のパソコンは今の写真のような絵を表示できる能力はなく8色とか16色とか256色みたいな時代でしたが、この時代でも少ない色数でセンスの良い美しいGUIを搭載しているのがいかにもAppleらしいです。PowerPC移行時の1995年に最終版がリリースされて開発は終了しました。
AIX for Apple Network Server
1996年にAppleからリリースされたAppleのサーバに搭載されていたOS。IBMのAIXベース。旧MacOSとAIXを統合する計画もあったようですが、計画は白紙に。
mkLinux
アップルとLinuxコミュニティーで開発されていたMacintosh用のLinux。mkLinuxと命名されているもののLinuxカーネルは使用されておらず、カーネルにMacOSと同じMach(XNU)が採用され、その上にLinux環境が移植されていきました。
NTカーネル上でLinuxが動作するWSLやFreeBSDのカーネルでLinux環境が構築されたDebian GNU/kFreeBSDと同じようなOSで興味深いのですが、プロジェクトはかなり前(2002年頃)に実質的に停止しています。
Mac OS X Server 1.0系
スティーブジョブズ復帰後、間もなくリリースされたBSDベースのOS。コードネームはRhapsody。旧MacOSのようなGUIが搭載されていた。BSD Unixとして一般的なツールやデーモンの他に、NeXT由来のOPENSTEP APIや旧MacOSエミュレータ、OmniWeb、WebObjects、Quick Time Streaming Serverなどが搭載されていた。対応するアーキテクチャとしてPowerPCの他、Intel x86版も発表された。今のOSXとはまだ別のOSと考えて良い程度にはいろいろ異なり、OSXのアプリも動作しない。
Darwin
MacOSXの中からXNUカーネルとUnixのベース部分だけを切り出してオープンソースで開発されているMacOS(iOS/watchOS含む)のベースとなるオープンソースのOS。ISOをダウンロードしてインストールすれば、普通のUnixとして使えるが、最近は新しいバージョンのISOファイルは公開されていない。PureDarwinなどの派生プロジェクトは生きてるのかな。
MacOS X (MacOS / OSX) / Mac OS Server
GUIデザインが美しく、文字がキレイで、しかも開発ツールもたっぷり付いてくるみんな大好きなOSX。説明不要ですね。
説明不要とかなんとかいいつつも、思い出したのが旧MacOSに代わる次世代OSの開発計画が立ち上がった際には、Apple社内でベースとなるOSで挙げられていたのはなんとWindows NT、そしてSolarisとBeOS。そこにアップルを追い出された故スティーブジョブズ氏が売り込みNeXTが正式に採用。今のアップルの大躍進のきっかけとなったOSなんですね。対応アーキテクチャはPowerPCでスタートし、Intel x86に移行、現在はAMD64アーキテクチャで動作。
iOS / WatchOS / tvOS
MacOSベースの組み込み用OSで iPhone iPad iPod touch apple watch AppleTVなどに搭載。対応アーキテクチャはARM系。
小話(UNIXを身に着けて歩く時代が来た)
UNIXが非常に高価で科学者、理系の教員・学生、エンジニア、CGデザイナーと極一部の人にしか使われていなかった時代を思い出すと、今の時代は若い女性から年配の方も含めてたくさんの人がBSD Unixベースの小さなコンピュータを持ち歩いたり、時計として身に着けて町を歩いているなんて信じられない時代が来たんだなーと思います。
以上、MicrosoftとUnixのお話に続いて、AppleとUnixの歴史でした。
- 投稿日:2019-01-26T15:57:35+09:00
MacでPaste Imageが使えない時
症状
Macのスクリーンショット機能(Shift+⌘+4+control)でスクリーンショットを撮影し、VSCodeの拡張機能であるPaste Imageを使って、Markdownに画像の挿入が出来ずに困っていた。
解決方法
最終的にキーバイントを変えて対応した。
https://qiita.com/kinchiki/items/dabb5c890d9c57907503
を参考にして
⌘+Alt+V → control + ⌘ + a
に変更した
- 投稿日:2019-01-26T11:47:25+09:00
【個人メモ】pyenv
pyenvのインストール
brew install pyenv
注)ファイルの作成場所は~/.pyenvインストール可能なバージョンを確認
pyenv install --list
2系のインストール(なくても良いけど)
pyenv install 2.7.15
3系のインストール
pyenv install 3.7.2
システム内で切り替え可能なバージョンの確認
pyenv versions
バージョンの切り替え(システム全体とカレントディレクトリのみに分けて設定できる)
pyenv global 3.7.2
pyenv local 2.7.15