.bash_profileが反映されない!!

先日来 terminalの挙動がおかしくなっていました それは根本的には .bash_profileが反映されない、というものでした
したがって、たとえば composerにより laravel/installerをインストールしても、それが反映されないのです。正確に言えば、もっと訳の分からない挙動を示していいたのです
つまり、

$composer global require "laravel/installer"

として MacOSに Laravel installerをインストールします。そうすると bashの設定ファイル ~/.bash_profileの最後にきちんと以下の一文が書き込まれます

export PATH="/Users/******/.composer/vendor/bin:$PATH"

これにより terminalを再起動すれば、その部分も読み込まれ

$echo $PATH

とすれば、きちんと環境変数 PATHに追加されている筈です!

ところが、これが反映されないのです 何でだ??? もちろん

source ~/.bash_profile

として明示的に.bash_profileを読み込ませれば反映されますが、そうせねば反映されないのです。これは bashが壊れたか? とまじに思いました。

しかし、発見しました ネットでは見つけられなかったので誰か困っている方もおられると思いますのでここに記録しておきます。

ターミナルのメニュー
ターミナルのメニューから環境設定を選択する
環境設定メニュータブからシェルを選択
環境設定メニュータブからシェルを選択
シェルタブ選択すねると、「シェル無いで実行」というチェックボックスがある
シェルタブ選択すねると、「シェル無いで実行」というチェックボックスがある

このチェックボックスをチェックするとシェル内で新たなまっ更なシェルが立ち上がる感じで、~/.bash_profileが読み込まれません!!!

なんとなんとこんなオプションがあったなんて!!!

 

まだまだ分からないことだらけ

今朝実は北京経由で西安に入ります それで早朝ですが、突然 node.jsをインストールしようと思いました こんなものとうの昔にインストールしてあった筈ですが、さっきひょんなことで homebrewをアンインストーるして、再びインストールしたのです。そんな訳で homebrewでインストールしてあった node.jsも消えてしまったのです。

「うん? どうやれば node.jsインストールできるんだっけ?」

そこで google博士に聞いて見ました ここにヒットし、とても最近の uploadなのでこれが最高!と思いましたね、そして指示に従いインストールしたのです キモは最後の最新の node.jsをインストールするというこのコマンドです

$nodebrew install-binary latest

ところが、これがエラーが出てどうしてもインストールできないのです。sudoにより権限昇格しても駄目なのです!! 結構こんな時の僕の気分は深海の如く deep blueとなりますね。

それでもやはり朝でした 未だ元気な僕でした ふと思ったのです 何でこんなコマンド入れるのかな? もっと素直に

$brew install node

で良いのでは?

そこでやったところ一発で node.jsがインストールされ、今現在僕のターミナルでは

$node -v
v12.0.0

という具合に最新 node.jsが戻ってきます やったね!!!

僕のbashに一体全体何が起こったのか?

昨日TAVI三例とMitraClip一例の合間に突然のごとく気がついたのです また Visual Studio Code (VS Code)上でかんたんなHaskell programをテストがてらに書いていて、それを VS Codeのターミナルで走らせようと思ったところ、なんとなんと VS Codeターミナル画面から command promptが消失しているのです

これって、要するにコマンド打ち込めません $stack ghc ****.hsとして Haskellプログラムをコンパイルしようとても、なにせその $ が無いのです!!!

まさか、と思い Macのターミナルを立ち上げるとここにも $が無いのです これは大変な事態になりました 何も悪いことはしていません それなのに突然そんなことになったのです 前日はそんなことありませんでした

ひょっとして bashでなく zshでは大丈夫では? と zshを $より立ち上げようとするのですが何しろその $が無いっ!!

きっと、~/.bashあるいは ~/.bash_profileという bashの設定ファイルが壊れたためか? と思いそれを何とか VS Codeの「開く」という graphical interfaceで開こうとしても、今度は 隠しファイル(先頭に .がついたファイルで通常の Macからは見ることも存在も知ることができないファイル)を調べようとしても、何しろそれが見れないのです。そこで、今度は「コマンド」+「シフト」+「.」を押したところ、隠しファイルを見ることができましたので、それで両方の設定ファイルを調べても何も変わっていないのです

今度はとりあえず、「ターミナル」の「環境設定」から立ち上がりシェルを zshに変更し、とりあえずターミナルで zshを立ち上げそれにより操作をしました。まずは、この環境設定から、zsh上で $/bin/bash –version により現在のシステムbashの versionを調べると version 3.2.57(1)となっていました

これは MacOS Mojaveをインストールすると立ち上がる bashですが、何しろ現在の bashは version 5.0.11なので相当に古いものです

そこで次にzshより立ち上がるコマンドをbashにしたのです そして、homebrewで最新の bashをインストールしました

これにより $which bashとすると /usr/local/bin/bashとなり、bash –versionも version 5.0.11となりました

今は訳のわからないままこの状態で動かしています 一体全体何が突然起こったのでしょうか? どなたか Unixに詳しい方教えて下さい

Haskellに惑わされ – 5

さて Haskellで整数mと nを足す関数 add’というのを作りましょう もちろん一人ではできないので、書籍を読みながらですが・・・

Prelude>add' = \m n = m + n :: Int

ということになりますが、何やら訳のわらない記号が出てきました そもそも addという関数名に何で ‘ というものがついているのでしょうか? これは何と呼ぶのでしょうか Macのキーボードでは 7のキーをシフトして押すものです これはどうやら「アポストロフィー」と呼ばれるものです

間違いやすい記号で Macでは「@」のキーをシフトしながら押すと出てくるものでこれはどうやら シングルクォーテーションマークと呼ばれるものです

見かけは似ていてもプログラムの中で使用する場合には全く意味が異なりますので注意ですね!!

実はこれだけのプログラムを書くだけでも落とし穴があり、大抵の人はそこで早期に脱落するのです、たとえば

  1. そもそも’なのか `なのか どちらなのか
  2. 何で’なんて使うのか
  3. \という変な傾きの棒はどのように打ち込むのか
  4. :: Intとは何なのか

こんなところですね

これについては そろそろ外来診療せねばならないのでまた後でね

Haskellに惑わされ – 4

なかなか難しい局面に直面です

Haskellを走らせるのにどうやら stackというツールを最低でも使用すべきだ、と読んだので  http://www.haskell.org/ghc/ より haskellプログラムをインストールしたのです

インストールは簡単であり、僕の現在の場合、GHCi, version 8.6.3がインストールされました

その後読んだ文章では、どうやら stack というツールをインストールすべきだと書いてあったので、今度は

$brew install stack

として stackをインストールしました そして、訳の分からないまま

$stack setup
$stack path
$stack stack exec ghci

として stackの下で ghciを走らせると何と以下のように

GHCi, version 8.6.4: http://www.haskell.org/ghc/  :? for help
Prelude>

と出ました そうなんです versionが新しいものが走っているのです、では? では? 最初に直接インストールしたものは何処に??? どうやってその無駄な古いものを消せばよいのか???

なんだかさっぱり分からない

久しぶりに brew update/upgradeしてみたら・・・

Haskell systemを upgradeしようとしてまずは Homebrewで

$brew update
$brew upgrade

してみたのです そうしたらば、gccの upgradeで異様に時間がかかり、一見すると停止したように見えたのです しかしながら terminalの表示では compilerが作動しているように見えます。20分ぐらい待ったのですが埒あかないので検索したところ同じような経験された方のページがありましたので、それを参考に今しばらく待っていたところようやく先に進み終了しました。良かった

焦ったあ – MacBook Proのカーソルコントロールが効かなくなった!!

日立から深夜というか早朝鎌倉に戻った後も JICA報告会、部下の結婚式、治験相談などに明け暮れあっという間に時間が流れ、昨日は神奈川PTCA研究会101回目の記念講演がありました その前に聖マリアンナ医科大学で院内ライブを行う機会がありましたが、もう10年ぶりのことでした とても優秀なスタッフだと感じました 皆さん方に感謝です この写真は良い思い出です

聖マリアンナ医科大学の皆様方と

そして本日はこれから神戸に講演に向かっています

さて、昨日聖マリアンナ医科大学から一旦講演前に鎌倉に戻るタクシーの中でファイルを操作していたのですが、MacBook Proの動作が急におかしくなったのです 突然カーソルコントロールができなくなり、止む無く再起動するにも Cmd+Tabによりアプリを切り替え、既に立ち上がっていた Terminalに移動してそこで

$sudo shutdown -r now

とせねばならなくなったのです これには焦りました だって講演スライドを最終型に持っていく最中でこんなことが起こったのです 再起動すれば治るかなと思っていたのですが、何回か再起動しても立ち上がるのですが、やはりカーソルコントロールが効かず操作不可能となり駄目です

頭をめぐらし色々と考えました「原因は何か? ソフトかハードか?」「ソフトだとすれば、TimeMachineからリカバリーせねばならないが、それを行っている時間はあるか?」「ハードだとすれば、新たに MacBook Proを購入せねばならないがそれも時間がかかる」「まずは講演のことを考え、なんとか Terminalを用いて出来上がり寸前のファイルを USB Memoryにコピーして、そのファイルを Windows10で立ち上げよう」 そのように結論しました つまり

$cp ~/Documents/[講演ファイルのパス] /Volume/[USB Memoryのパス]/[ファイル名]

とすれば良い筈です

そんなことを頭を巡らし考えている内に病院についたので、また MacBook Proを立ち上げたのですが、今度はなんの問題も無くカーソルも動作するのです 快適です なんだか原因分からないけどうまく今は動いているのでいいやっ と作業を行い 18:00に講演会場に向かいました

ところがその移動一時間の間再び MacBook Proを立ち上げるとまたまたカーソルコントロールが効かなくなったのです 再度立ち上げ直しても同じです さあ困った これでは講演できません

ここであり得る原因を考えました どうもおかしい カーソルの権限がなにかに乗っ取られている これはどういう場合に起こるか? それを考え、一つ思いあたりました 自分のバッグに BlueTooth Mouseがあるのですが、もちろんその電源は普段切っています もしも、このマウスの電源が入ったならば、そして MacBook Proとそのマウスが BlueTooth圏内にあれば、そのマウスがカーソルコントロール権限を取得するのでは? これが仮説でした そして次第にその仮説が正しいだろうと思うようになったのです 何故ならば講演会場に座り、その時は僕のバッグは離れた場所に預かってもらっていたのですが、その時には MacBook Proは正常に作動したからなのです

そしてバッグを取り寄せ、マウスを確認したところ、やはり電源が Onになっていたのです 電源を Offにしたところ、全く問題なく MacBook Proは作動しだしたのです 解決です

思えば最近 MacBook Proを使用していてえらく CPUが作動していたり、カーソル反応動作が遅くなっていたり最近変な現象に遭遇し、そろそろ OS clean installせねばならないかな? などと思っていたのですが、その原因は何と BlueTooth Mouseの電源を無意識に Onにしているためだったのです 今はとても快適に MacBook Proが作動中ですよっ

MacBook Pro/MAMP mysqlにパスを通すには?

MacBook Proで Laravelをいじっています 直接 MySQLにコマンドを発行せねばならない場面があり、これまで直接 MySQLをいじくっている時には、phpMyadminを立ち上げ、その中で SQLを発行していました

しかし、これは本来のやり方ではなく、本来的には MySQLコマンドを用いるべきです しかし、MAMPを使用している時にこれをどのようにすれば良いのかさっぱり分かりませんでした 金沢に移動する新幹線の中、この中は長野から富山の間は電波が通じず、インターネットアクセスに難儀するのですが、何とか調べました
$ code ~/.bashrc ## ホームの.bashrcを編集します

そしてここからは visual studio codeの中ですが、そこで以下の文を最後に追加します
export PATH="$PATH:/Applications/MAMP/Library/bin/"

そして terminalに戻りもちろんこれを叩いて反映させます

$ source ~/.bashrc

これで直接ターミナルから mysqlと打ち込めば mysqlを動作することができます 便利ですね

Laravel を MacOSにインストール – つづき

さてようやく MacOS上で composerがインストールできました というか既に何ヶ月か前にインストールしていたのに忘れていたのです

そもそも composerは何か? と言えば、phpを用いて web programを書くときに必要な諸々をサクッとインストールしてくれる便利な小槌と思えばいいのです まず行うことは

$ cd ~/target-folder/

とすることにより、目標とする target-folderに移動します

次いで

$ composer create-project "laravel/laravel=5.5.*" projectName

とすることにより、Laravel version 5.5一式をこのフォルダにインストールします これは大量のファイルをダウンロードしますので数分間かかりますよっ

$ cd projectName

とすることにより今作成したプロジェクト・フォルダに移動します そうすると artisanという phpで書かれたコマンドがこのフォルダには既にインストールされていまので、

$ php artisan --V

とすれば、僕の場合には
Laravel Framework 5.5.44というものが戻ってきました 実はこの artisanというプログラムは local serverを立ち上げるものであり、これで local serverを立ち上げるとその後 Laravelでプログラムを開発する時に面倒なことを考えずにできるのです

$ php artisan serve

これで local serverが  ip address = 127.0.0.1, port = 8000で立ち上がりましたので、ブラウザのアドレス・バーで localhost:8000とするかあるいはhttp://127.0.0.1:8000と打ち込めば見事 Laravelのデモページが立ち上がります

Laravelデモページ

Laravel再開

一度は挫折した Laravelに再度チャレンジです Macでインストールするのと Windows10でインストールするのでは大分やり方が異なるようです

Windows10では まずは XAMPPをインストールした方が良いようですね それでは まずは Macから ここは Terminalでの作業になりますね

まずは composerのインストールです これは簡単ですよ
$brew install composer

ところがここで以下のような膨大なエラー出現しました

==> Downloading https://getcomposer.org/download/1.8.0/composer.phar
######################################################################## 100.0%
Error: parent directory is world writable but not sticky
Please report this bug:
  https://docs.brew.sh/Troubleshooting
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/tmpdir.rb:93:in `mktmpdir'
/usr/local/Homebrew/Library/Homebrew/utils/fork.rb:28:in `safe_fork'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:743:in `build'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:317:in `install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:326:in `install_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:256:in `block in install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:254:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:254:in `install'
/usr/local/Homebrew/Library/Homebrew/brew.rb:88:in `'

こんなことで慌ててはいけません 何だか rubyで書かれた Homebrew管理プログラムが色々とシステムに書き込もうとする時に「それは越権行為だ!」というようなエラーですね こういう時は Google叔父さんに聴いてみます 検索したのは

Error: parent directory is world writable but not sticky
Please report this bug:

というものですが、そうすると早速このページにヒットしました これに従い$ sudo chmod +t /private/tmp
$ sudo chmod +t ~/Library/Caches/Homebrew
とすると Treminalからは何の返答もありませんが、再度 $brew install composerと打つと

==> Downloading https://getcomposer.org/download/1.8.0/composer.phar
Already downloaded: /Users/transradial/Library/Caches/Homebrew/downloads/5f21a93cda75f6de1acae0850021a00add848552341d23d14aa9e6afc17de4dd--composer.phar
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/composer
Target /usr/local/bin/composer
already exists. You may want to remove it:
  rm '/usr/local/bin/composer'

To force the link and overwrite all conflicting files:
  brew link --overwrite composer

To list all files that would be deleted:
  brew link --overwrite --dry-run composer

Possible conflicting files are:
/usr/local/bin/composer
==> Summary
🍺  /usr/local/Cellar/composer/1.8.0: 3 files, 1.8MB, built in 2 seconds

というように何だか インストールされたみたいです ただ、僕の場合には既に composerがインストールされているのでそれを修正した方が良いよ と出ているようですので、この指示のとおりに$ rm '/usr/local/bin/composer'
$ brew link --overwrite composer
$ brew link --overwrite --dry-run composer
とすると見事にアンイストールできました そして今度は Laravelのインストーラーをインストールするために

$ composer global require "laravel/installer"

とすると 何やらたくさんのファイルが downloadされて インストール準備段階に入りました

実はこの段階でこのインストーラーなどのパスを通さねばなりません それで

export PATH="$PATH:$HOME/.composer/vendor/bin"

という一文を ~/.bashrcの最後に書き加えねばなりません これには vimとか visual studio code (VisutalStudio Code = VS Code)を用いねばシステム領域の書き換えはできませんので、

$ code

とコマンドラインから VS codeを立ち上げようとすると何と以下のエラー出現

/Users/transradial/.pyenv/shims/python: line 21: /usr/local/Cellar/pyenv/1.2.6/libexec/pyenv: No such file or directory
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory

さあ困った そこで、今度は”/usr/local/Cellar/pyenv/1.2.6/libexec/pyenv”で Google検索するとすぐにここにヒットしました この指示のとおりに

$ pyenv rehash

としたところ解決し、VS codeをコマンドラインから立ち上げることが可能となりました 要するに pyenvという python仮想環境が少し破壊されたので、それを自己修正したのですね さて、このようにそと VS codeでパスを無事通し、それを現在のコマンドラインに反映させるために

$ source ~/.bashrc

したところ、無事

$ laravel --version
Laravel Installer 2.0.1

となり さあこれで laravelをインストール可能となりました

さて、今度は Windows10でも行いたいと思いますが、こちらは仮想サーバーを別に立ち上げねばならないのかな? それとも php artisanコマンドで十分なのかな? 未だ検証していません これからの楽しみですが、時間があるかなあ???