- 投稿日:2019-12-02T23:41:48+09:00
driver failed programming external connectivity on endpointとなった時の対処法(redwood-broker 編)
概要
docker-compose
でなんらかの理由により強制終了し、再度起動してもdriver failed programming external connectivity on endpoint
と言われる時の対処法原因
他のプロセスが使用しようとしているポート番号とかぶっています。
多くの場合
まずはこちらをご覧ください。
それでも解決しない時
- 何がプロセスを利用しているのか調べる 1-1. ネットワークユーティリティを起動(mac OS High Sierraでは、
/System/Library/CoreServices/Applications/
にあります) 1-2. Portscanタブをクリック 1-3. 確認したいポートを指定して、scan
を実行redwood-broker
が出て来たら、Docker
を再起動、Macを再起動してもredwood-broker
は消えませんでしたが、Docker
を再起動すると消えます。- その他の場合は、Googleさんに聞いてください。
- 投稿日:2019-12-02T20:48:07+09:00
macOSのEmacsキーバインドを使いこなそう
はじめに
最近の若い人は最初に触れるコンピュータがMacという人もいると思います。
そこでぜひ知っておいた方がいいのがEmacsキーバインドです。
このEmacsキーバインドについて軽く書いてみます。
あとオマケとして、ちょっとしたスクリプトも載せておきます。Emacsキーバインドとは
Emacsはvi(Vim)と並び、Unix系OSで広く使われているテキストエディタです。
便宜上テキストエディタと書いていますが、拡張性が非常に高く、何でもできちゃいます。
テキストエディタというよりは、今で言うIDE(統合開発環境)に近いものです。自分はEmacsは使わなくなりましたが、そのEmacsに由来するキーバインドは今でもよく使っています。
macOS以外のEmacsキーバインドが使える有名なものとしてはbashが挙げられます。macOSのEmacsキーバインドの由来
macOSではEmacsキーバインドが使えますが、
その由来はMac OS X・・・ではなく、もっと前にさかのぼります。それは、Steve JobsがAppleを追われた際に作った会社、NeXTです。
こんなコンピュータを作っていました。このNeXT社の作ったNEXTSTEPというOSにEmacsキーバインドが組み込まれていました。
そして時は流れ、1997年にAppleがNeXT社を買収し、
NEXTSTEPはMac OS Xとして乗っ取り生まれ変わりました。Emacsキーバインドが使えるアプリ
macOSのネイティブアプリの基盤となっている、Cocoaを使っているアプリはまず間違いなく使えます。
逆に言えば、Cocoaを使っていないアプリ、
具体的には独自にWidgetを作っているフレームワークでは対応していないことが多いです。
例えばJavaやAdobe AIRで作られたものはダメです。
JetBrains製品は独自に対応していますが、一部標準と違うのでカスタマイズが必要です。ちなみに、iOSでも外付けキーボードを使えばEmacsキーバインドが使えます。
使えるEmacsキーバインド
これだけのキーバインドがEmacs由来(のはず)です。
- カーソル移動
- Ctrl + F: 1文字右
- Ctrl + B: 1文字左
- Ctrl + P: 1行上
- Ctrl + N: 1行下
- Ctrl + A: 行の先頭
- Ctrl + E: 行の末尾
- Ctrl + Option + F: 1単語後
- Ctrl + Option + B: 1単語前
- Ctrl + V: 1ページ前
- Ctrl + L: カーソルを中央になるようにスクロール
- 削除
- Ctrl + H: 前の文字を削除
- Ctrl + D: 後の文字を削除
- Ctrl + K: 行末まで削除(カット)
- Ctrl + Y: 貼り付け(yank)
- その他
- Ctrl + T: カーソル前後の文字を入れ替え
- Ctrl + O: 改行追加
全部は覚えなくてもいいです(自分も使ってません)が、覚えておくと便利です。
GoogleスプレッドシートでEmacsキーバインド
Emacsキーバインドではウェブブラウザでも使えます。
しかし不届きものがいました。それは、Googleスプレッドシートです。Ctrl + Eすら使えません。
これではあまりに使いにくいということで、頑張って対応してみました。
一部動きませんが、だいたい動きます。おわりに
NEXTSTEPの直系のOSが今まで残ってて、
自分がそれを使っているとは24年前には思いませんでした( ´ω`)
- 投稿日:2019-12-02T19:47:26+09:00
MySQL 8.0.18でパスワードリセットしてもrootユーザにログインできなくなった時の解決方法
目的
- 何をしてもMySQLのrootユーザにログインできなくなった時の解決方法を書く
結論
- MySQLをアンインストール→インストールしてrootユーザのパスワードを再登録した。
実施概要
- MySQLのファイル削除とアンインストールとインストール
- パスワードの再設定とログイン確認
実施詳細
MySQLのファイル削除とアンインストールとインストール
下記コマンドを実行してMySQLのファイルを削除する。(DB内のデータも消すことになるので注意!何もせず下記コマンドを実行するとデータベースに保存されている内容が全て吹き飛ぶ)
$ sudo rm -rf /usr/local/var/mysql下記コマンドを実行してMySQLをアンインストールする。
$ brew uninstall mysql下記コマンドを実行してMySQLをインストールする。
$ brew install mysqlパスワードの再設定とログイン確認
下記コマンドを実行してMySQLを起動する。
$ mysql.server restart下記コマンドを実行してMySQLに入る。
$ mysql -u root -p下記コマンドを実行してパスワードを設定する。
mysql>USE mysql; mysql>ALTER USER 'root'@'localhost' identified BY '任意のパスワード';下記コマンドを実行してMySQLを抜ける。
mysql>exit下記コマンドを実行後、パスワードの入力を求められるため入力してログインできるか確認する。
$ mysql -u root -p下記のようになればOKである。
mysql>あとはcreateしてmigrateすればテーブル構造は元どおりになる。
- 投稿日:2019-12-02T15:42:39+09:00
Terminal.app で ANSI Colors を正確にレンダリングするハック (Dynamic Library & Method Swizzling)
はじめに
さて、前回は Terminal.app は ANSI Colors を正確にレンダリングできない
と初投稿させて頂きました。ざっくりおさらいすると、
- macOS の標準アプリ Terminal.app ではカラーテーマで指定された色 (ANSI Color) に勝手に補正がかかってしまい、正確に表現できない
と言う内容でした。今回はその解決編です。
- テスト環境は
macOS Mojave 10.14.6 (18G1012)
- 今回はなんと! Advent Calendar にも初参加になります!
- 正直 Advent Calendar の概念を理解してませんが楽しそうだから良いよね。
Hack Terminal.app
? 簡単な方法はないものか?
実際にハックするとなると SIP (System Integrity Protection) の無効化は避けられないでしょう。それは面倒だし SIP の無効化は必要を迫られる度、代替案でやりくりし、やった事がなかったので何か良い迂回策はないか思考を巡らせました。
- 背景色の指定があるテキストは正確に表現されるのだから、
.zshrc
なりを弄って、状況を監視し常にコンソール全画面に背景色を指定するようにすれば良いんではないか?
- そんなうまいこといく筈もなく、断念。エッジケースとかに対応する事も考えるとすごく面倒そう。
- Color adjustment option like Terminal.app
- こちらは前の記事でも紹介した、 iTerm にカラー補正機能をむしろ追加しようよ、と言うもの。これを参考に Terminal.app でテキストを表示した時の色を逆算すればいいのでは? と思ったが、そうすると当たり前だが今度は背景色が指定され、正確に表示されている方のテキスト・背景色がおかしくなってしまった。断念。
そんなうまい話はなかった。
観念してハックしよう。? でも・・・どうやって?
- 筆者は、 iOS 8 ~ 10 だったか、正確には覚えていませんが脱獄をしメソッドをフック。システムの動作を変えたりして遊んだ事があった
- iOS 開発ではあるが Swift & Obj-C で Method Swizzling や Objective-C runtime で遊んだりした事もある
- ヘッダーの宣言を基にするか、クラス名とセレクタ名さえ分かれば割と簡単にプライベートメソッドをいじったり出来る事も少しは分かっている
- 検索に必要なキーワードは恐らく
Code Injection
Mac Method Swizzling
とかそんなんつまり、プライベートクラスへのアクセス方法 や、 Method Swizzling とか、Hook させる などの概念は少しは分かっていました。
しかし、普段業務では iOS / iPadOS しか対象でないものだから、 macOS でそんな事はやった事はない。AppKit, Cocoa にもあんまり慣れてない。 とっかかりがない。
- こう言う事ってプログラミングをしているとたまにありますね。実現させたい事を実現させるために必要な概念と結果はある程度想像がついてはいるが、肝心のそこにたどり着くための「1歩目」あるいは「中間」がすっぽり抜けていて、どう事始めすれば良いか分からない状況。 まさにそれでした。
とりあえずまずは同じような発想で Terminal.app を弄っているプロジェクトがないかどうかを、前回の記事で発見したこの宣言:
TTView-Private-Methods.h- (id)adjustedColorWithColor:(id)arg1 withBackgroundColor:(id)arg2 force:(BOOL)arg3; - (id)adjustedColorWithRed:(double)arg1 green:(double)arg2 blue:(double)arg3 alpha:(double)arg4 withBackgroundColor:(id)arg5 force:(BOOL)arg6;を基に Github で検索をかけ、しらみつぶしにプロジェクトを探していきました。
すると、あった。同じアプローチのプロジェクトたち
- jenghis/terminal-patch
- まさに全く同じ事を実現する為の Python で書かれたスクリプト。しかしそのままではうまく動作せず。Python はある程度書けるものの恥ずかしながら バイトオフセット を指定してうんたらかんたらと言うのには慣れていないので弄ってはみたものの断念。
- earwin/trucolor
- こちらもまさに同じ事を実現する為の SIMBL plugin 。SIMBL 。懐かしい。SafariStand をよく使ってました。しかし、個人的には 他の機構に依存する のは嫌いなのでこちらも断念。
そして、最後にこちら:
- BlueCocoa/moeterminal
- テキストカラーとは関係なく、ターミナルの背景に画像を設定できるようにする物のよう。このプロジェクト単独で動作するような仕組みになっている。
ヘぇ〜、面白いねと思って README を読んでいると気になるワードが・・・
調べると:
dylib
dynamic library
のことDYLD_INSERT_LIBRARIES
- コードをダイナミックにインジェクト (Code Injection) する為の環境変数
? まさにこれですやんん ‼️
DYLD_INSERT_LIBRARIES
さぁ、こっからが本番ですよ。
さて、 DYLD_INSERT_LIBRARIES 。これは変数なんです。
簡潔に言うと:
- ダイナミックライブラリー
.dylib
- ダイナミックフレームワーク
.framework
いずれかを作成し、バイナリを起動させる前にそれらを 変数に指定する事で バイナリがそれらを ダイナミックに読み込み、コードインジェクションが可能になる。
Example.shDYLD_INSERT_LIBRARIES=fooBarHack.dylib /Applications/FooBar.app/Contents/MacOS/FooBarこんな感じにしてバイナリを起動させると、
fooBarHack.dylib
がダイナミックに読み込まれ評価される。結果、コードインジェクションなり Swizzling が可能となる。もっと詳しくは
man dyldにて。
そして、この手法を説明している記事の中で一番メジャーなのが下記のようだ:確かに簡潔で分かりやすい。
早速実装してみましょう!Implementation
- Method Swizzling Impl
TerminalHack.m#import <AppKit/NSColor.h> #import <objc/runtime.h> @interface NSObject (Terminal) @end @implementation NSObject (Terminal) + (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ Class ttViewClass = NSClassFromString(@"TTView"); Class selfClass = [self class]; method_exchangeImplementations(class_getInstanceMethod(ttViewClass, NSSelectorFromString(@"adjustedColorWithColor:withBackgroundColor:force:")), class_getInstanceMethod(selfClass, @selector(__adjustedColorWithColor:withBackgroundColor:force:))); method_exchangeImplementations(class_getInstanceMethod(ttViewClass, NSSelectorFromString(@"adjustedColorWithRed:green:blue:alpha:withBackgroundColor:force:")), class_getInstanceMethod(selfClass, @selector(__adjustedColorWithRed:green:blue:alpha:withBackgroundColor:force:))); }); } /// Returns input NSColor as it is - (id)__adjustedColorWithColor:(id)color withBackgroundColor:(id)backgroundColor force:(BOOL)force; { return color; } /// Returns NSColor from RGBA - (id)__adjustedColorWithRed:(double)r green:(double)g blue:(double)b alpha:(double)a withBackgroundColor:(id)backgroundColor force:(BOOL)force; { return [NSColor colorWithRed:r green:g blue:b alpha:a]; } @end
- ライブラリバイナリ生成
gcc-build.sh# Build Dylib gcc -framework AppKit -o ./libTerminalHack.dylib -dynamiclib ./TerminalHack.m
- ライブラリバイナリを差し込み、バイナリを起動
code-inject-launcher.sh# Copy Terminal.app to Desktop cp -rfv /Applications/Utilities/Terminal.app ~/Desktop # Launch with dylib DYLD_INSERT_LIBRARIES=./libTerminalHack.dylib ~/Desktop/Terminal.app/Contents/MacOS/Terminalこんな感じ。しかし・・・うまくいかない。ターミナルは立ち上がるが、ライブラリが読み込まれない。そもそも実装の仕方が間違っているのだろうか? と思い色々な書き方をしてみたがやはりダメ。ただの
NSLog
すら反応しない。コード署名
上記の記事の公開日時は
Dec 18, 2012
。当時の OS X と比べると今はセキュリティーが格段に厳しくなっているので無理なのだろうか? と思っていたところ、一つ思い出した事が。Retroactive
macOS Catalina になり、 Aperture, iPhoto, iTunes が使えなくなった。それを解決し使えるようにする為のアプリケーションがある。
面白いのでどの様に実装をしているのかを見た事があった。
そして、その制作過程を事細かに説明した記事も読んだ事があった。読んだ当時は iTunes にしか興味がなかったので流し見程度でした (因みに記事内では iTunes には触れていない。Info.plist のバージョンの値を変えて起動不可リストを回避すると言う簡単なものの為でしょう)。
だが、リポジトリのソースを見たときは iTunes 以外は結構複雑な事をしていた覚えがあったので、もしかして? ともう一度上記の記事を読み直す事にしました。すると、ビンゴ! まさに同じ手法を使っている。順を追っていくと、初めに紹介した記事のようにライブラリーを製作している。そして、
さて、どうやって Aperture をこのライブラリと起動しよう?
うんうん、せやねん
“DYLD_INSERT_LIBRARIES=” と入力し、フレームワークパスを入れる。で、Aperture のバイナリパスを入力するよ
え・・・? それさっきやってあかんかったやつやけど・・・?
結局進展せず、ここでハマりました。何度やってもうまくいかない。
こう言う時、Yakekuso.mNSLog(@"YEAHHHHHHHHHH!!!!"); NSLog(@"WOOOOOOHOOOOOO!!!");とかやっちゃう。でもやっぱりログされない。なぜ。
また実装の見直しをしたりしたが、ダメ。一旦落ち着いて、もう一度先ほどの記事を初めから読み直してみる。すると
codesignsudo codesign --remove-signature /Applications/Aperture.appこのような記述が。
Aperture の場合、Catalina で起動するとまず初めに
code signature
によるエラーで落ちてしまうそうです。標準アプリである Terminal.app の署名がエラーなんてことは起こりえないので、読み流してしまっていたのでした。もしや? と思いもう一度トライ。
Eureka!
Eureka!.sh# sudo isn't needed in my case somehow codesign --remove-signature ~/Desktop/Terminal.app DYLD_INSERT_LIBRARIES=./libTerminalHack.dylib ~/Desktop/Terminal.app/Contents/MacOS/TerminalYeah. きました。
そう、原因は アプリに署名が入っていたこと だったんです。署名を消さないことにはコードインジェクションは出来ない。コードサイン有り
codesigned$ codesign -vvvv Terminal.app Terminal.app: valid on disk Terminal.app: satisfies its Designated Requirementコードサイン無し
no-codesign$ codesign --remove-signature Terminal.app $ codesign -vvvv Terminal.app Terminal.app: code object is not signed at all In architecture: x86_64後者のようになっていれば良い。
Terminal.app with True Tone ANSI Colors
あとは、Method Swizzling が本当に正しく働き、色の自動補正が無効化されているかどうかを確認するだけです。
Before
After
結果発表
ハイもう大成功。前者は補正がかかり明るめの色になっているのが一目瞭然。
通常カラーと明るめカラーがほぼ同じになってもうてますやん。「色が違う? 何言ってんだこいつ」と思ってましたでしょ?。 本当に違ったんですよ。
え? 「色くらいでそこまでする必要ある?」 それは一番言うたらアカンやつや。因みに、メソッドは
TTView-Private-Methods.h- (id)adjustedColorWithColor:(id)arg1 withBackgroundColor:(id)arg2 force:(BOOL)arg3; - (id)adjustedColorWithRed:(double)arg1 green:(double)arg2 blue:(double)arg3 alpha:(double)arg4 withBackgroundColor:(id)arg5 force:(BOOL)arg6;のうち、どちらかだけを無効化するだけでも期待通りの動作をします。
が、念の為二つとも元の色が通るようにしています。最後に
学べた事
今回のハックをしてみて、色々な事を学ぶ事ができました。
- ライブラリは Xcode を使わなくてもバイナリ化出来る (
gcc
でコンパイル )dyld
とその変数達の存在- 署名済みのアプリにはその変数は通用しない
- 今日においても比較的簡単にアプリケーションにコードインジェクトをする事が出来る
ポインターがどうたらこうたら、メソッド宣言のオフセット、パッチを当てる・・・
そう言う難しい事をしないと、アプリケーションの改造など出来ないと思っていました。
しかし、動的にライブラリを読ませると言う事で同じような事が出来ることが分かりました。
多分、SIMBL も同じような仕組みを使ってプラグイン化を実現しているのだろうか? 知らんけどパフォーマンス
- 元のバイナリファイルを弄らなくても良いと言う点ではむしろこちらの方法の方が良い場合もあるかもしれません。 Dependency Injection 的なね。
- 但し、ダイナミックにライブラリを読み込ませるので、直でバイナリを弄るよりロード時間のパフォーマンスは下がります。 と言っても、今回のような場合では人間が感知出来るような差はないでしょう。
SIP
- 生成したアプリを SIP 管理下の領域 — 今回の場合は
/Applications/Utilities/Terminal.app
— と「置き換える」必要がなければ、特に SIP を無効化する必要はありません。GitHub
- 因みにこれらは近い内に自動でライブラリを読み込むようにする Terminal.app を生成するスクリプトなりを作り、 GitHub にて公開予定です。
それでは皆さま、Happy Terminal.app Life!
- 投稿日:2019-12-02T13:13:09+09:00
Neo4j でcsvを読み込んでみた.
Neo4jとの格闘の日々
研究で,グラフデータを扱うことになり,先輩たちがNeo4jを使っていたという思考停止理論からNeo4jを使うことに.
特定のデータを使って,グラフデータにする必要があったため,csvファイルを作って,ダウンロードさせた
結構調べたけど,なかなか出てこなかったので,備忘録程度に記す.
事前準備
Neo4jをインストール
Macで,brewが入っているなら,
$ brew install neo4jで一発
csvファイルを用意
とりあえず,やってみたとかだったら,kaggleとかからもってこればよし
いちおう,チュートリアル的なやつも用意されているらしい...LocalファイルのDLを許可
初期設定では,Local環境にあるCSVファイルは読み込めない様になっているので,
$ sudo vim /usr/local/Cellar/neo4j/3.5.12/libexec/conf/neo4j.confで,設定ファイルを開き,
dbms.security.allow_csv_import_from_file_urls=trueに変更する.
Neo4jをブラウザで使用
普通にTerminalで,
$ Neo4j startしたあとに
$ open http://localhost:7474こんな画面が開けたらOK
あとは,ブラウザにサイファークエリを書き込んでいきます.
LOAD CSV
LOAD CSV WITH HEADERS FROM "file:///api-node.csv" AS csvLine CREATE (n:API {id: toInt(csvLine.API_id), name: csvLine.name, category: csvLine.API_category, date: csvLine.date})ここで,注意してほしいのが,Local環境のcsvを読み込ませるときにそのcsvファイルを
/usr/local/Celler/neo4j/3.5.12/libexec/import/
配下にすることここに配置しないとエラーが起こる.
こんな感じで使っていくと良いw
- 投稿日:2019-12-02T12:52:25+09:00
【Mac】2段階認証sshの設定からVSCode-Insiderの利用まで
踏み台サーバーへのログインを目的の使用サーバーに簡単にログインする方法.踏み台サーバーをサーバー1,目的のサーバーをサーバー2とする. ターミナルは2つ使用するため,それぞれを1,2とする.
環境
- macOS Mojave 10.14.6
鍵の生成
以下のコマンドによりサーバー1の鍵を作成する.
Terminal1$ cd ~/.ssh $ ssh-keygen -t rsa -b 2048 -f /Users/Username/.ssh/keyname12点は適宜書き換え
- Username
- keyname1以下のような表示が出るのでEnter×2(パスワードはなし)
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again:すると鍵が生成される
Your identification has been saved in /Users/Username/.ssh/keyname1. Your public key has been saved in /Users/Username/.ssh/keyname1.pub. The key fingerprint is: ・ ・ ・これで
- keyname1
- keyname1.pubが生成されるので同様にサーバー2の公開鍵を作成する.
Terminal1$ ssh-keygen -t rsa -b 2048 -f /Users/Username/.ssh/keyname2
- keyname2
これで
- keyname2
- keyname2.pubが生成される.
鍵の配置と.ssh/config設定
ローカルからサーバー1に公開鍵を移動させる
Terminal1$ cat keyname1.pub | ssh user@IP "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
- keyname1
- user@IP
サーバー1のパスワードを聞かれるので入力する.
airi@133.9.66.202's password:vimでconfigを作成・編集する.
Terminal1$ touch config $ vi config以下のように書き込む.
.ssh/configHost server1 Hostname IP1 User user IdentityFile /Users/Username/.ssh/keyname1
- user
- Username
- server1
- IP1
- keyname1
これで以下のコマンドでサーバー1にログインできる
$ ssh humidaiターミナルをもう1つ開いてサーバー1にログインして鍵を確認する.
Terminal2$ ssh humidai $ cd .ssh $ cat authorized_keysssh-rsa...が入ってればok
次のコマンドで鍵をサーバー1に送信する.Terminal1$ scp keyname2.pub user@server1:/home/user/
- keyname2
- user
- server1
Terminal2$ cd .. $ lsこれでkeyname2.pubが送信されてるかどうか確認できる.この鍵をサーバー2に送信したい.
Terminal2$ scp keyname2.pub user@IP2:/home/user/
- keyname2
- user
- IP2
パスワードが聞かれたらサーバー2のパスワードを答える
次にサーバー2にログインし,鍵の移動を行う.
Terminal2$ ssh user@IP2 $ mkdir .ssh $ cat keyname2.pub > ~/.ssh/authorized_keys鍵の移動が終わったらvimでconfigを編集し,Hostを追加する.
Terminal1$ vi config
.ssh/configHost server1 ・ ・ ・ Host server2 Hostname IP2 User user IdentityFile /Users/Username/.ssh/keyname2 ProxyCommand ssh humidai nc %h %p
- user
- Username
- server2
- IP2
- keyname2
これで以下のコマンドでサーバー2にログインできる.
$ ssh server2
- server2
これが終わったらサーバー1・2からkeyname2.pubを削除すること.
$ rm betelgeuse.pubMinicondaのインストール
Minicondaのインストール
公式サイトでMiniconda Linux 64-bitをダウンロードする.ダウンロードに保存した状態でサーバー2に送信する.パスは保存場所により適宜変更すること.
$ scp Downloads/Miniconda3-latest-Linux-x86_64.sh user@server2:/home/user
- user
- server2
送信後はファイルを実行する.
$ ssh server2 $ bash Miniconda3-latest-Linux-x86_64.sh
- server2
ひたすらエンター.以下の質問が出てきたらyesを答えれば良い.
Do you accept the license terms? [yes|no]これにはそのままエンターでよかったはず.
Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no] [no] >>>次にpathの編集を行う.
$ vi .bashrcファイルの最後に以下を書き込む.
ssh/.bachrc・ ・ ・ export PATH=/home/user/miniconda3/bin:$PATH
- user
これでcondaが反応すれば完了!
$ source .bashrc $ condaVisual Studio Code Insiderの導入
参考にしたサイト
Visual Studio Code Insiderをダウンロード
ダウンロードできたら拡張機能検索窓で
remote developmant
を検索し,インストール.これで必要な拡張機能が一括でダウンロードされる.
Shift+Cmd+P
でコマンドパレットからRemote-SSH: Connect to Host
を利用することで接続が可能.ファイルの送受信について
- ファイルの送信
scp ファイル名 送信先のアドレス:ファイルを保存するディレクトリ
- ファイルの受信
scp とってくるところのアドレス:ファイル名 ファイルを保存するディレクトリ
- 投稿日:2019-12-02T02:00:46+09:00
Mac × MAMP × Laravelで接続した時に起こった事
事象
・なんかLaravelインストールしたらMAMPの「MY WEBSITE」に接続できなくなった
※正確に言うと、「The requested URL /~ was not found on this server.」の404エラーが出ました。原因
・Laravelインストールしたと思ったらできてなかった....
→composer導入した後に、インストールしたつもりになってた・Laravel側で複数設定が必要なファイルに対して追加できていなかった。
■database.php
→使用しているデータベースの情報を追加できていなかった・MAMP側の設定ファイルでLaravelの追加ができていなかった
■httpd-vhosts.conf
→設定されているPort番号がLaravelの行で設定している
Port番号と一致していなかった。
NameVitualHost *:oooo
※上記とここのファイルでLaravelの追加が必要
■httped.conf
→ここでVitural hostsの下の行でコメントアウトされている文章の#を外す
(ここは出来てきた)所感
・ターミナル時にコマンド実行して大量のメッセージが流れた時に、
読み取る前にやった気になってたかも
・MAMPを初めて導入した時より早く事象の解決が出来た気がした。//MAMP導入時→12,3時間くらい
//今回→6,7時間くらい参考元
PKunitoさんとCodedayの作者様、理解しやすい記事を作成いただいてありがとうございました。
・Laravel開発:1.環境構築をMAMPを使用して作成する
https://qiita.com/PKunito/items/6a3bb187ca3c67de4519・MAMPを使用してLaravelアプリをMySQLに接続する方法
https://codeday.me/jp/qa/20190324/474003.html
- 投稿日:2019-12-02T00:07:49+09:00
開発用Macの基本セットアップメモ
新Macに開発環境を構築するためのメモです。
※OSのバージョンにより、インストール途中にエラーが出る場合があり、その際にエラーメッセージでググればヒントが得られます。Xcode
Xcode:アップルの統合開発環境(IDE)。
後のHomebrewをインストールするのに必要です。App StoreからXcodeをインストール
インストールした後にライセンスに署名してインストールを完了させる。
$ sudo xcodebuild -licence accept
XcodeのCommand Line Toolsをインストール
$ xcode-select --install
★一旦Macを再起動
Homebrew
Homebrew:Mac用パッケージマネージャー。
インストールすればコマンド一つでアプリをインストールできるようになる。
インストールの人為ミスや以後のパッケージのメンテナンス手間を省ける。
http://brew.sh/index_ja.html
https://github.com/Homebrew/homebrew/tree/master/share/doc/homebrew#readmeHomebrewをインストール
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"備考:
+ ディフォルトのインストール先:/usr/local/Homebrew
(現時点)
+ ディフォルトのコマンドの実行パス:/usr/local/bin
+/usr/local/Homebrew
でなくインストール先がを変更した場合は、コマンドの実行パスを通す必要があります。
※例えばbシェルの場合、
$ vi ~/.bash_profile
.bash_profile
export PATH=<実際のパス>
Homebrew Caskをインストール
Homebrew Cask:dmgファイルやpkgファイルになっているものを含めてGUIアプリをコマンド一つでインストールできるHomebrewの拡張機能。
$ brew install cask
Mac開発に必要or便利なパッケージをインストール
$ brew install composer $ brew cask install visual-studio-code atom docker sourcetree sequel-pro cyberduck google-chrome firefox skype teamviewer gyazo avast-securityその他
隠しファイルをFinderに表示
$ defaults write com.apple.finder AppleShowAllFiles -boolean true
$ killall Finder
プリンターの設定
システム環境設定>プリンタとスキャナ>「+」で追加