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

(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のインストール

$ VBoxManage -v
6.0.2r128162

Vagrantのインストール

$ vagrant --version
Vagrant 2.2.3

Vagrantの設定

Vagrant用ディレクトリを作成し、ボックスの作成・初期化 (box addは不要)

 # ホームディレクトリから開始
$ cd ~
 # Vagrantディレクトリを作成
$ mkdir Vagrant
 # Vagrantに移動
$ cd Vagrant
 # Vagrantの下にcentOSディレクトリを作成
$ mkdir centOS
 # centOSに移動
$ cd centOS
 # vagrant init 実行
$ vagrant init centos/7

Vagrantfileの編集

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 git

pyenvを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_profile

memo
環境変数を.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=xxxxxxxxxxxxxxxxxxxxxxxxx

jupyter notebookへアクセス

ホストOSに戻り、ブラウザで以下のURLを開く

http://192.168.33.10:8080

初回アクセス時に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

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

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が存在しない場合はリンクを参考にしてファイルを作成してください。

それではここから設定していきましょう。

  1. .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=~に追記してください。

  2. .bashrcの設定を反映させる
    ターミナルで以下のコマンドを実行し手順1で設定した内容をプロンプトに反映させます。

    $ source .bashrc
    

    コマンドを実行したら、ローカルリポジトリへ移動してみてください。
    プロンプトにブランチ名が表示されていると思います。

User_Name:current_dir $ cd [ローカルリポジトリ名]
User_Name:current_dir (branch_name #) $ 

さいごに

設定作業おつかれさまでした。
今回はブランチ名をプロンプトに表示できるよう設定方法を書きましたが、人によってはブランチ名以外にも表示させたいことがあると思います。
環境変数PS1の設定次第で表示内容だけでなく、色なども自由にカスタマイズできるので興味のある方は調べてみてください。

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

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の歴史でした。

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

MacでPaste Imageが使えない時

症状

Macのスクリーンショット機能(Shift+⌘+4+control)でスクリーンショットを撮影し、VSCodeの拡張機能であるPaste Imageを使って、Markdownに画像の挿入が出来ずに困っていた。

解決方法

最終的にキーバイントを変えて対応した。

https://qiita.com/kinchiki/items/dabb5c890d9c57907503
を参考にして
⌘+Alt+V → control + ⌘ + a
に変更した

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

【個人メモ】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

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