- 投稿日:2020-02-11T23:26:39+09:00
Intel Parallel Studio XE のインストール
What's this?
Intel Parallel Studio XE のインストールガイド
と言っても大した内容ではないけど.
環境はmac OS 10.14.6 Mojave
で,Intel® Parallel Studio XE Composer Edition for C++ macOS (2020 Initial Release)
とIntel® Parallel Studio XE Composer Edition for Fortran macOS (2020 Initial Release)
をインストールします.Intel Parallel Studio XE Composer Edition for C++ のインストール
- Intel Developper Zoneのここから自分が使用しているOS(ここでは
macOS
)を選ぶ.(アカウントがない人は作ってください)C++ macOS
を選ぶ.Full Package
,Customizable Package
のどちらでも好きな方をダウンロードする.このとき, Serial numberを控えておく.- ダウンロードした
m_ccompxe_online_*.dmg
を開いて, 指示に従ってインストールする. これでほぼ終わり(簡単).Intel Parallel Studio XE Composer Edition for Fortran のインストール
今時Fortran使うの?って思うかもしれませんが, 実際使うことあるので一応ね...
「Fortranなんて使わんわ」って人は無視してください.
手順はIntel Parallel Studio XE Composer Edition for C++とほぼ同じです.
1.Fortran macOS
を選ぶ.
2.Full Package
,Customizable Package
のどちらでも好きな方をダウンロードする.このとき, Serial numberを控えておく.
3. ダウンロードしたm_fcompxe_online_*.dmg
を開いて, 指示に従ってインストールする.環境変数の設定
$HOME/.bash_profile
を編集して, ターミナルを起動するたびに環境変数を読み込むようにする.
$HOME/.bash_profile
に次の1行を追加(デフォルトの/opt/intel/
にインストールしたものとする).source /opt/intel/bin/compilervars.sh intel64
mkl
やtbb
を使う場合は次も追加する.source /opt/intel/mkl/bin/mklvars.sh source /opt/intel/tbb/bin/tbbvars.shこれで全て完了.
c,c++
のソースコードをコンパイルする場合は$ icc *.c $ icpc *.cpp
Fortran
のソースコードをコンパイルする場合は$ ifort *.f90
- 投稿日:2020-02-11T22:12:35+09:00
MacでGitを最新版にアップデートする
はじめに
MacにプリインストールされているGitのバージョンが低かったのでアップデートした際のメモです。
Update
まずは現状のバージョンを確認。
$ git --version git version 2.10.1(うーん、低かった...)
調べたところ、brewでアップデートおよび管理するのが一番手軽そうだったのでbrewにてインストール。
事前にbrewのインストール済みパッケージを確認したい場合には以下のコマンドを実行。$ brew lsでは、導入開始。
$ brew install git : : Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/git Target /usr/local/bin/git already exists. You may want to remove it: rm '/usr/local/bin/git' To force the link and overwrite all conflicting files: brew link --overwrite git To list all files that would be deleted: brew link --overwrite --dry-run git : : Error: Permission denied @ apply2files - /usr/local/.....予想に反してやたらとエラーが...
とりあえず、慌てずにバージョンを確認。$ git --version git version 2.10.1 $ brew ls | grep git git $ brew info git git: stable 2.25.0 (bottled), HEAD :Gitのバージョンは変わってないが、brewによりバージョン2.25.0のインストールはされている。
エラーメッセージの通り、インストールはできたがシンボリックリンクが作れなかったってことだ。
というわけで、エラーメッセージに記載のコマンドでシンボリックリンクをオーバーライドしてみる。$ brew link --overwrite git Linking /usr/local/Cellar/git/2.25.0_1... 208 symlinks created $ git --version git version 2.25.0これで今度こそバージョンアップ完了!
もう一つ出ていたエラー
Permission denied @ apply2files
はbrewのIssue #45009のコメント が参考になりそう。
あとでトライしてみる。
- 投稿日:2020-02-11T18:28:10+09:00
ローカルからリモート Jupyter を一つのコマンド/アプリケーションで使う (Mac)
以下のコードはこの Gist にも上げてある。
目的
最近では JupyterLab とか Visual Studio Code とか便利なサービスも増えてきたが、動作が重かったりしてなんだかんだいまだにバニラの Jupyter をブラウザで開いている、という人はそれなりにいるんじゃないかと思う。
計算資源だったりの観点から、リモートの Jupyter を (起動はサーバで行って) ローカルのブラウザで開くという需要はかなりあって、実際それは SSH Forwarding を使うことで実現できる。
この SSH Forwarding を使った、ローカルからのリモート Jupyter の接続方法については数多くの記事があるが、そのほとんどが
- リモートで
$ jupyter notebook
コマンドを実行して Jupyter を起動- ローカルで
$ ssh ...
コマンドを実行してポートフォワーディングしてブラウザを開くと Jupyter の画面が現れるという2段階のステップを取っている。最終的にやりたいのは「ブラウザでリモート Jupyter のタブを開くこと」だけなのに、これを毎回やるのは正直面倒くさい。さらに言うなら、上のコマンド打ち込むためにターミナルを開くことすら本質的ではない。
この記事では、まずこの処理をすべて行うスクリプトを作って、さらに Mac の Automator を使ってそのスクリプトを実行するアプリケーションを作る。これによって例えば、ターミナル等を経由しなくても Spotlight からすぐにリモートの Jupyter を起動できる。Windows/Linux では試していないが、スクリプトまではある程度共通して使えると思う。
前提知識
- SSH ポートフォワーディングを使ったリモート Jupyter の使い方
- Automator の基本的な使い方
本題
例えば以下のページを参考に、あらかじめリモートで Jupyter の設定をしておく。
この時点で、以下のような流れでローカルからリモートの Jupyter に接続できるようになっているはず。
- リモートで
$ jupyter notebook
- ローカルで
$ ssh -N -f -L ローカルでのポート番号:localhost:リモートのJUPYTERで設定したポート番号 ホスト名
- ローカルのブラウザで
http://localhost:ローカルでのポート番号
にアクセスこれらを全部やってくれるスクリプトを書いて、ローカルのホームディレクトリに
remote_jupyter.sh
という名前で保存する (リモートのログインシェルの設定ファイルを$HOME/.bash_profile
でハードコードしていたりするので、異なる場合は適宜修正する; 中身の詳細については次節で少し触れる):local-$HOME/remote_jupyter.shHOST_NAME=ホスト名 PORT_ID_LOCAL=ローカルでのポート番号 PORT_ID_REMOTE=リモートのJUPYTERで設定したポート番号 # Specify "direct" or "sge" EXEC_TYPE="sge" # Commands for checking existing jupyter process and for running jupyter # Put `run_jupyter.sh` at the home directory in the remote environment if using a job scheduler if [ ${EXEC_TYPE} = "direct" ]; then CHECK_JUPYTER="ps x" RUN_JUPYTER="nohup jupyter notebook >/dev/null 2>&1 &" elif [ ${EXEC_TYPE} = "sge" ]; then CHECK_JUPYTER="qstat" # Options other than those specified here should be given in the remote file RUN_JUPYTER="qsub -N jupyter_nb -pe smp 4 -l hostname=${HOST_NAME} run_jupyter.sh" else echo "Invalid value of `EXEC_TYPE`: ${EXEC_TYPE}" exit 1 fi # Open the port lsof -s TCP:LISTEN -i :${PORT_ID_LOCAL} | awk 'NR > 1 {print $2}' | uniq | while read PID; do kill -KILL ${PID}; done # Run jupyter if not existing N_JUPYTER_PROC=$(ssh ${HOST_NAME} "${CHECK_JUPYTER}" | grep "jupyter" | wc -l) if [ ${N_JUPYTER_PROC} = 0 ]; then ssh ${HOST_NAME} "source ~/.bash_profile; ${RUN_JUPYTER}" sleep 10 fi # Start connection and then open a chrome tab ssh -N -f \ -L localhost:${PORT_ID_LOCAL}:localhost:${PORT_ID_REMOTE} \ -o PermitLocalCommand=yes \ -o LocalCommand="open -a '/Applications/Google Chrome.app' http://localhost:${PORT_ID_LOCAL}" \ ${HOST_NAME} \ &このスクリプトには 5 行目の
EXEC_TYPE
で Jupyter の実行のしかたを選べる。デフォルトのEXEC_TYPE="sge"
だと、SGE でジョブとして投げて実行する (当然だがリモート環境に SGE がインストールされている必要がある; スクリプトを適宜修正すれば SLURM なども使える)。この場合、リモートのホームディレクトリに以下のスクリプトファイルをrun_jupyter.sh
という名前で置いておく必要がある (SGE のオプションは適宜変更する):remote-$HOME/run_jupyter.sh#!/bin/bash #$ -o sge.log #$ -j y #$ -S /bin/bash #$ -cwd #$ -V #$ -q all.q jupyter notebookジョブの CPU 数は最初の
remote_jupyter.sh
の-pe smp 4
の部分で指定できる。上のままだと 4 コア。一方で、
EXEC_TYPE="direct"
に変更すると、リモートで Jupyter をシェルから直接実行する (SSH ログインして$ jupyter notebook
を実行するのと同じ)。この時点で、ローカルのターミナルのホームディレクトリで以下のコマンドを実行するとブラウザが起動して Jupyter のタブが開くようになっているはず:
$ ./remote_jupyter.sh
あとは Automator を開いて、「アプリケーション」 -> 「シェルスクリプトを実行」から以下のコマンドを指定してアプリケーションを例えば
jupyter_remote.app
という名前で作成すれば、Spotlight ->jupyter_remote
(実際には Mac がアプリケーション名を補完してくれるのでju
くらいで十分) と打ち込むだけでブラウザで Jupyter のタブが開くようになる。Automator-scriptnohup $HOME/remote_jupyter.sh > /dev/null 2>&1 &(余談) 何をやっているのか?
上のスクリプト (
remote_jupyter.sh
) で何をしているのかを少しだけ書く。まず、
lsof -s TCP:LISTEN -i :${PORT_ID_LOCAL} | awk 'NR > 1 {print $2}' | uniq | while read PID; do kill -KILL ${PID}; doneの部分では、変数
PORT_ID_LOCAL
で指定されたポート番号がローカルで使用済みの場合に、SSH 接続する前にそのポートを開放する。これは例えば今回のスクリプトを使って複数回 Jupyter を起動したい場合に必要で、前回の SSH 接続が残ったままで新しい SSH 接続ができなくなることを防ぐ。その後、
N_JUPYTER_PROC=$(ssh ${HOST_NAME} "${CHECK_JUPYTER}" | grep "jupyter" | wc -l) if [ ${N_JUPYTER_PROC} = 0 ]; then ssh ${HOST_NAME} "source ~/.bash_profile; ${RUN_JUPYTER}" sleep 10 fiの部分で、リモートですでに実行されている Jupyter プロセスもしくはジョブがないか調べる。もしあれば何もせず、既存のものをそのまま使用する。もしなければ、新しく Jupyter を実行する。(
sleep 10
不要かも。)最後の、
ssh -N -f \ -L localhost:${PORT_ID_LOCAL}:localhost:${PORT_ID_REMOTE} \ -o PermitLocalCommand=yes \ -o LocalCommand="open -a '/Applications/Google Chrome.app' http://localhost:${PORT_ID_LOCAL}" \ ${HOST_NAME} \ &この部分はよくある Jupyter SSH Forwarding のだいたいそのままで、接続後に Chrome を開くようにしている。
- 投稿日:2020-02-11T18:19:23+09:00
[備忘録]初めてのPython 開発環境を用意する
診療放射線技師、医学物理士をやっている者です。
プログラミングを学習していく過程を備忘録として記事に残していきます。
今後誰かの参考になれば幸いです。スキルとして漠然とプログラミングを始めたくて、最初に手をつけたのがProgateでした。
ホリエモンがオススメしていた影響です。
いろんな言語のチュートリアルを一通りクリアして、Pythonをメインに勉強することにしました。
Web、アプリ、データ分析など汎用的に使えそうで、人口も多そうだったのと、
仕事柄機械学習が研究テーマとしてホットだったことが決め手です。今回は、実際に自分のPCでPythonを動かしたはじめの一歩についてです。
全ては環境構築から
PCを用意
Pythonを扱っていくにあたり、まずは自分のPC上でPythonを動かす環境を用意する必要があります。
(※私はMacユーザーです。)<必要なもの>
・PC高いPCは(とりあえずは)必要ないようです。
PC一つでプログラミングを始められるのは、敷居が低くてありがたいです。Anacondaをインストール
手元にPCを用意できれば、次にPythonをインストールします。
と言っても、実はMacにはPythonが標準搭載されている、らしい。
インストールしなくても使えないことはないのですが、バージョンが古いもののようなので、最新のバージョンをインストールしたいところです。(やりたい処理によってはバージョン2.7(2系)の方が適切である場合もあります。初心者はとりあえずバージョン3.7(3系)をインストールしてしまって問題ないと考えています。)Pythonをインストールする方法がいくつかある中で、私は定番のAnacondaを使いました。
AnacondaにはPython本体の他に、機械学習においてよく使われるライブラリ等もセットで入っており、よく分からない初心者でもとりあえずこれさえあれば始められます。「Python欲張りセット」と言ったところでしょうか。
以下のURLから無料で簡単にAnacondaをダウンロードできます。
https://www.anaconda.com/distribution/手順に従ってAnacondaのインストーラーのダウンロード、
Anacondaのインストールを行います。動作確認
インストールが完了すると、PATHも通り、すぐに使える状態だと思います。
(※Mac OSのバージョンによっては、自分でPATHを追加する必要があります!)ターミナルを起動できたら、以下を打ち込んでEnterを押します(コマンドを実行)。
python --version
"Python 3.7.4" と表示されます。
次は、
conda --version
"conda 4.7.11"と表示されます。
問題なく動作しています。さらに詳しいAnacondaのインストール方法は、ネット上で優しい方々がたくさん共有してくれています。
またターミナルの使い方も勉強しておくと後々困らないです。初めてのPythonファイルを実行
早速Pythonデビューしてみます。
標準ソフトでも構いませんので、適当なテキストエディタで次のコードを入力し、"hello.py"という名前でデスクトップに保存します。(私は"Atom"というテキストエディタを使っています)
".py"というのがPythonファイルの拡張子です。hello.pyprint("Hello")次にPythonファイルを実行してみます。実行にはターミナルを使用します。
ファイルを実行するには、ターミナル上でそのファイルが存在するディレクトリに移動する必要があります。
今回の場合はデスクトップに保存したので、デスクトップに移動すれば実行できます。
あるフォルダ内にファイルを保存したなら、そのフォルダに移動する必要があります。
ターミナルを起動すると、ホームディレクトリにいる状態からスタートです。
通常、デスクトップはホームディレクトリの直下にあるので、次のコマンドを実行してデスクトップに移動できるはずです。cd desktop
デスクトップにある"Test"というフォルダに移動したい場合は
cd desktop/Test
で移動できます。
ひとつ前のディレクトリ(親ディレクトリ)に戻りたいときは、cd ..
で戻れます。"cd"の後ろのスペースを忘れないように。
正しくディレクトリに移動できたら、実行あるのみです。
次のコマンドを実行します。Python hello.py
ターミナル上に"Hello"と表示されれば成功です。
"Python ファイル名"と打ち込んでEnterを押すことでPythonファイルを実行できます。
無事に自分のPCでPythonを動かす環境を構築できました。
- 投稿日:2020-02-11T17:18:14+09:00
AWS CLIでWordPress環境を構築する~part3~
概要
AWS学習目的で、下記記事のレシピを参考にAWS CLIでの環境構築を行う。
【Amazon3時間クッキング】材料費500円でAWSにWordPress環境を構築するレシピ ~part3~この記事では以下の作業を行う。
- サブネットの作成(プライベートセグメント)
- キーペアの作成
- セキュリティグループの作成(DBサーバー用)
- ルールの追加
- EC2インスタンスの作成(DBサーバー用)
- NATゲートウェイの作成
- メインのルートテーブルにNATゲートウェイのルートを追加
- MySQLのインストール
- 初期設定
- データベース作成
- ユーザー作成と権限の設定
- WordPressのインストール
- PHPのインストール
- MySQL Clientのインストール
- WordPressのデプロイ
環境
- macOS Catalina
前提条件
- AWSアカウント
- AWS CLI
- aws configureで設定済み
- AWS CLIでWordPress環境を作成する~part1~の作業を実施
- AWS CLIでWordPress環境を作成する~part2~の作業を実施
構築
サブネットの作成(プライベートセグメント)
項目 値 CIDRブロック 10.0.2.0/24 名前 test-PrivateSegment # パブリックセグメントのアベイラビリティゾーンの取得 $ aws ec2 describe-subnets --subnet-ids subnet-02558655ff2936296 { "Subnets": [ { "AvailabilityZone": "ap-northeast-1c", "AvailabilityZoneId": "apne1-az1", "AvailableIpAddressCount": 250, "CidrBlock": "10.0.1.0/24", "DefaultForAz": false, "MapPublicIpOnLaunch": false, "State": "available", "SubnetId": "subnet-02558655ff2936296", "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576", "AssignIpv6AddressOnCreation": false, "Ipv6CidrBlockAssociationSet": [], "Tags": [ { "Key": "Name", "Value": "test-PublicSegment" } ], "SubnetArn": "arn:aws:ec2:ap-northeast-1:403733593576:subnet/subnet-02558655ff2936296" } ] } # サブネットの作成 $ aws ec2 create-subnet --vpc-id vpc-07154996e6c851750 --cidr-block 10.0.2.0/24 --availability-zone ap-northeast-1c { "Subnet": { "AvailabilityZone": "ap-northeast-1c", "AvailabilityZoneId": "apne1-az1", "AvailableIpAddressCount": 251, "CidrBlock": "10.0.2.0/24", "DefaultForAz": false, "MapPublicIpOnLaunch": false, "State": "pending", "SubnetId": "subnet-069512764e560f68e", "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576", "AssignIpv6AddressOnCreation": false, "Ipv6CidrBlockAssociationSet": [], "SubnetArn": "arn:aws:ec2:ap-northeast-1:403733593576:subnet/subnet-069512764e560f68e" } } # 名前の設定 $ aws ec2 create-tags --resources subnet-069512764e560f68e --tags Key=Name,Value=test-PrivateSegmentキーペアの作成
項目 値 名前 test-db-key 秘密鍵のファイル名 test-db-key.pem # ディレクトリの移動 cd ~/.ssh # キーペアの作成 $ aws ec2 create-key-pair --key-name test-db-key --query 'KeyMaterial' --output text > test-db-key.pem # 権限の変更 $ chmod 600 test-db-key.pem # Webサーバーに転送 $ scp -i ~/.ssh/test-key.pem ~/.ssh/test-db-key.pem ec2-user@54.249.79.116:~/.ssh/セキュリティグループの作成
項目 値 グループ名 DB-Segment 説明 DB Server security group # セキュリティグループの作成 $ aws ec2 create-security-group --group-name DB-Segment --description "DB Server security group" --vpc-id vpc-07154996e6c851750 { "GroupId": "sg-0e8a4425f79c7e9ce" }ルールの追加
タイプ プロトコル ポート範囲 ソース SSH TCP 22 0.0.0.0/0 MYSQL/Aurora TCP 3306 0.0.0.0/0 # SSHの有効化 $ aws ec2 authorize-security-group-ingress --group-id sg-0e8a4425f79c7e9ce --protocol tcp --port 22 --cidr 0.0.0.0/0 # MYSQL/Auroraの有効化 $ aws ec2 authorize-security-group-ingress --group-id sg-0e8a4425f79c7e9ce --protocol tcp --port 3306 --cidr 0.0.0.0/0EC2インスタンスの作成
DBサーバー用のEC2インスタンスを作成する。
項目 値 AMI Amazon Linux 2 AMI (HVM), SSD Volume Type インスタンスタイプ t2.micro 自動割り当てパブリックIP 無効化 プライベートIP 10.0.2.10 名前 DB-Server AMIのイメージIDはここで確認をする。
項目 既定値 ストレージタイプ gp2 ストレージサイズ 8G ストレージタイプやサイズなどは既定値で作成をする。
# EC2インスタンスの作成 $ aws ec2 run-instances --image-id ami-011facbea5ec0363b --count 1 --instance-type t2.micro --key-name test-db-key --security-group-ids sg-0e8a4425f79c7e9ce --subnet-id subnet-069512764e560f68e --private-ip-address 10.0.2.10 { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-011facbea5ec0363b", "InstanceId": "i-08f568e483f5aa14f", "InstanceType": "t2.micro", "KeyName": "test-db-key", "LaunchTime": "2020-02-11T05:43:28.000Z", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "ap-northeast-1c", "GroupName": "", "Tenancy": "default" }, "PrivateDnsName": "ip-10-0-2-10.ap-northeast-1.compute.internal", "PrivateIpAddress": "10.0.2.10", "ProductCodes": [], "PublicDnsName": "", "State": { "Code": 0, "Name": "pending" }, "StateTransitionReason": "", "SubnetId": "subnet-069512764e560f68e", "VpcId": "vpc-07154996e6c851750", "Architecture": "x86_64", "BlockDeviceMappings": [], "ClientToken": "", "EbsOptimized": false, "Hypervisor": "xen", "NetworkInterfaces": [ { "Attachment": { "AttachTime": "2020-02-11T05:43:28.000Z", "AttachmentId": "eni-attach-015e62e441a1e9e2f", "DeleteOnTermination": true, "DeviceIndex": 0, "Status": "attaching" }, "Description": "", "Groups": [ { "GroupName": "DB-Segment", "GroupId": "sg-0e8a4425f79c7e9ce" } ], "Ipv6Addresses": [], "MacAddress": "0a:12:3f:55:49:96", "NetworkInterfaceId": "eni-028a866898abcebea", "OwnerId": "403733593576", "PrivateIpAddress": "10.0.2.10", "PrivateIpAddresses": [ { "Primary": true, "PrivateIpAddress": "10.0.2.10" } ], "SourceDestCheck": true, "Status": "in-use", "SubnetId": "subnet-069512764e560f68e", "VpcId": "vpc-07154996e6c851750", "InterfaceType": "interface" } ], "RootDeviceName": "/dev/xvda", "RootDeviceType": "ebs", "SecurityGroups": [ { "GroupName": "DB-Segment", "GroupId": "sg-0e8a4425f79c7e9ce" } ], "SourceDestCheck": true, "StateReason": { "Code": "pending", "Message": "pending" }, "VirtualizationType": "hvm", "CpuOptions": { "CoreCount": 1, "ThreadsPerCore": 1 }, "CapacityReservationSpecification": { "CapacityReservationPreference": "open" }, "MetadataOptions": { "State": "pending", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } ], "OwnerId": "403733593576", "ReservationId": "r-0260cad0308d0bbee" } # 名前の設定 $ aws ec2 create-tags --resources i-08f568e483f5aa14f --tags Key=Name,Value=DB-ServerNATゲートウェイの作成
# ElasticIP新しいアドレスの割当 $ aws ec2 allocate-address --domain vpc { "PublicIp": "18.177.56.100", "AllocationId": "eipalloc-04495c62f9ec8db78", "PublicIpv4Pool": "amazon", "NetworkBorderGroup": "ap-northeast-1", "Domain": "vpc" } # NATゲートウェイの作成 $ aws ec2 create-nat-gateway --subnet-id subnet-02558655ff2936296 --allocation-id eipalloc-04495c62f9ec8db78 { "NatGateway": { "CreateTime": "2020-02-11T05:55:55.000Z", "NatGatewayAddresses": [ { "AllocationId": "eipalloc-04495c62f9ec8db78" } ], "NatGatewayId": "nat-08e449a89a50dd47b", "State": "pending", "SubnetId": "subnet-02558655ff2936296", "VpcId": "vpc-07154996e6c851750" } }メインのルートテーブルにNATゲートウェイのルートを追加
項目 値 送信先 0.0.0.0/0 ターゲット NATゲートウェイ # メインのルートテーブルを出力 $ aws ec2 describe-route-tables --filter Name="association.main",Values="true" { "RouteTables": [ { "Associations": [ { "Main": true, "RouteTableAssociationId": "rtbassoc-0b25cde6f32c2e053", "RouteTableId": "rtb-03a6ba4c68af0a710", "AssociationState": { "State": "associated" } } ], "PropagatingVgws": [], "RouteTableId": "rtb-03a6ba4c68af0a710", "Routes": [ { "DestinationCidrBlock": "10.0.0.0/16", "GatewayId": "local", "Origin": "CreateRouteTable", "State": "active" } ], "Tags": [], "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576" } ] } # ルートの追加 $ aws ec2 create-route --destination-cidr-block 0.0.0.0/0 --route-table-id rtb-03a6ba4c68af0a710 --nat-gateway-id nat-08e449a89a50dd47b { "Return": true }ssh接続
# Webサーバーに接続 $ ssh -i ~/.ssh/test-key.pem ec2-user@54.249.79.116 # DBサーバに接続 $ ssh -i ~/.ssh/test-db-key.pem ec2-user@10.0.2.10MySQLのインストール
10.0.2.10# RPMファイルのインストール $ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y # MySQLのインストール $ sudo yum install mysql-community-server -y # MySQLサービスの起動 $ sudo systemctl start mysqld.service # MySQLサービスのステータス確認 $ systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 火 2020-02-11 06:38:54 UTC; 29s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 32524 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 32600 (mysqld) Status: "Server is operational" CGroup: /system.slice/mysqld.service └─32600 /usr/sbin/mysqld 2月 11 06:38:47 ip-10-0-2-10.ap-northeast-1.compute.internal systemd[1]: St... 2月 11 06:38:54 ip-10-0-2-10.ap-northeast-1.compute.internal systemd[1]: St... Hint: Some lines were ellipsized, use -l to show in full.MySQLの初期設定
10.0.2.10# 初期パスワードの出力 $ cat /var/log/mysqld.log | grep password # 初期設定を行う $ mysql_secure_installationWordPress用のデータベースの作成
10.0.2.10# MySQLに接続 $ mysql -u root -p # データベースの作成 $ CREATE DATABASE wpdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; # ユーザーの作成 $ create user 'wpadmin'@'localhost' identified by '■■■■■■■■■'; $ create user 'wpadmin'@'10.0.1.10' identified by '■■■■■■■■■'; # デーベースの操作権限を与える $ grant all privileges on wpdb.* to 'wpadmin'@'localhost'; $ grant all privileges on wpdb.* to 'wpadmin'@'10.0.1.10'; # ユーザーの確認 $ select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | wpadmin | 10.0.1.10 | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | | wpadmin | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)WordPressのインストール
PHPのインストール
10.0.1.10# PHPのインストール $ sudo amazon-linux-extras install php7.3 -y # 拡張モジュールの出力 $ yum list php* | grep amzn2extra-php7.3 # 拡張モジュールのインストール $ sudo yum -y install php-mysqlnd php-mbstringMySQL Clientのインストール
10.0.1.10# RPMファイルのインストール $ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y # MySQLクライアントのインストール $ sudo yum -y install mysql-community-client # WebサーバーからMySQLの接続確認 $ mysql -h 10.0.2.10 -u wpadmin -pWordPressのデプロイ
10.0.1.10# 作業用ディレクトリの作成 $ mkdir ~/work # 作業用ディレクトリに移動 $ cd ~/work # WordPressのダウンロード $ wget https://ja.wordpress.org/latest-ja.tar.gz # 展開 $ tar xzvf latest-ja.tar.gz # 展開したwordpressディレクトリに移動 $ cd wordpress/ # ファイルをApacheのDocumentRootディレクトリ配下にコピー $ sudo cp -r * /var/www/html/ # 所有者の変更 $ sudo chown apache:apache /var/www/html -R # Apacheの再起動 $ sudo systemctl restart httpd実際にアクセスして確認をする
http://54.249.79.116参考
- 投稿日:2020-02-11T17:12:04+09:00
AWS CLIでWordPress環境を構築する~part2~
概要
AWS学習目的で、下記記事のレシピを参考にAWS CLIでの環境構築を行う。
【Amazon3時間クッキング】材料費500円でAWSにWordPress環境を構築するレシピ ~part2~この記事では以下の作業を行う。
- キーペアの作成
- セキュリティグループの作成(Webサーバー用)
- ルールの追加
- EC2インスタンスの作成(Webサーバー用)
- Apacheのインストール
環境
- macOS Catalina
前提条件
- AWSアカウント
- AWS CLI
- aws configureで設定済み
- AWS CLIでWordPress環境を作成する~part1~の作業を実施済み
構築
キーペアの作成
項目 値 名前 test-key 秘密鍵のファイル名 test-key.pem # ~/.sshディレクトリが存在しない場合は作成 mkdir ~/.ssh # 権限変更 chmod 700 ~/.ssh # フォルダの移動 $ cd ~/.ssh # キーペアの作成 $ aws ec2 create-key-pair --key-name test-key --query 'KeyMaterial' --output text > test-key.pem # 権限の変更 $ chmod 600 test-key.pemセキュリティグループの作成
項目 値 グループ名 Web-Segment 説明 Web Server security group # セキュリティグループの作成 $ aws ec2 create-security-group --group-name Web-Segment --description "Web Server security group" --vpc-id vpc-07154996e6c851750 { "GroupId": "sg-04520c52a1d8cc27f" } # 名前の設定 $ aws ec2 create-tags --resources vpc-07154996e6c851750 --tags Key=Name,Value=Web-Segmentルールの追加
タイプ プロトコル ポート範囲 ソース SSH TCP 22 0.0.0.0/0 HTTP TCP 80 0.0.0.0/0 # SSHの有効化 $ aws ec2 authorize-security-group-ingress --group-id sg-04520c52a1d8cc27f --protocol tcp --port 22 --cidr 0.0.0.0/0 # HTTPの有効化 $ aws ec2 authorize-security-group-ingress --group-id sg-04520c52a1d8cc27f --protocol tcp --port 80 --cidr 0.0.0.0/0EC2インスタンスの作成
Webサーバー用のEC2インスタンスを作成する。
項目 値 AMI Amazon Linux 2 AMI (HVM), SSD Volume Type インスタンスタイプ t2.micro 自動割り当てパブリックIP 有効化 プライベートIP 10.0.1.10 名前 Web-Server AMIのイメージIDはここで確認をする。
項目 既定値 ストレージタイプ gp2 ストレージサイズ 8G ストレージタイプやサイズなどは既定値で作成をする。
# EC2インスタンスの作成 $ aws ec2 run-instances --image-id ami-011facbea5ec0363b --count 1 --instance-type t2.micro --key-name test-key --security-group-ids sg-04520c52a1d8cc27f --subnet-id subnet-02558655ff2936296 --private-ip-address 10.0.1.10 --network-interfaces '[ { "DeviceIndex": 0, "AssociatePublicIpAddress": true } ]' { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-011facbea5ec0363b", "InstanceId": "i-006e5f99c93e59b6a", "InstanceType": "t2.micro", "KeyName": "test-key", "LaunchTime": "2020-02-11T04:06:17.000Z", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "ap-northeast-1c", "GroupName": "", "Tenancy": "default" }, "PrivateDnsName": "ip-10-0-1-10.ap-northeast-1.compute.internal", "PrivateIpAddress": "10.0.1.10", "ProductCodes": [], "PublicDnsName": "", "State": { "Code": 0, "Name": "pending" }, "StateTransitionReason": "", "SubnetId": "subnet-02558655ff2936296", "VpcId": "vpc-07154996e6c851750", "Architecture": "x86_64", "BlockDeviceMappings": [], "ClientToken": "", "EbsOptimized": false, "Hypervisor": "xen", "NetworkInterfaces": [ { "Attachment": { "AttachTime": "2020-02-11T04:06:17.000Z", "AttachmentId": "eni-attach-0b6cc084839510e3b", "DeleteOnTermination": true, "DeviceIndex": 0, "Status": "attaching" }, "Description": "", "Groups": [ { "GroupName": "Web-Segment", "GroupId": "sg-04520c52a1d8cc27f" } ], "Ipv6Addresses": [], "MacAddress": "0a:d9:42:fc:f4:e4", "NetworkInterfaceId": "eni-0ae3beb1595c7e0f1", "OwnerId": "403733593576", "PrivateIpAddress": "10.0.1.10", "PrivateIpAddresses": [ { "Primary": true, "PrivateIpAddress": "10.0.1.10" } ], "SourceDestCheck": true, "Status": "in-use", "SubnetId": "subnet-02558655ff2936296", "VpcId": "vpc-07154996e6c851750", "InterfaceType": "interface" } ], "RootDeviceName": "/dev/xvda", "RootDeviceType": "ebs", "SecurityGroups": [ { "GroupName": "Web-Segment", "GroupId": "sg-04520c52a1d8cc27f" } ], "SourceDestCheck": true, "StateReason": { "Code": "pending", "Message": "pending" }, "VirtualizationType": "hvm", "CpuOptions": { "CoreCount": 1, "ThreadsPerCore": 1 }, "CapacityReservationSpecification": { "CapacityReservationPreference": "open" }, "MetadataOptions": { "State": "pending", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } ], "OwnerId": "403733593576", "ReservationId": "r-043b930eee6f8945b" } # 名前の設定 $ aws ec2 create-tags --resources i-006e5f99c93e59b6a --tags Key=Name,Value=Web-Server # パブリックIPを出力 $ aws ec2 describe-instances --instance-id i-006e5f99c93e59b6a --query "Reservations[].Instances[][PublicIpAddress]" [ [ "54.249.79.116" ] ]ssh接続する
$ ssh -i ~/.ssh/test-key.pem ec2-user@54.249.79.116Apacheのインストール
10.0.1.10# Apacheのインストール $ sudo yum -y install httpd # Apacheサービスの起動 $ sudo systemctl start httpd # Apacheサービスのステータス確認 $ systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since 火 2020-02-11 04:08:49 UTC; 7s ago Docs: man:httpd.service(8) Main PID: 3616 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─3616 /usr/sbin/httpd -DFOREGROUND ├─3617 /usr/sbin/httpd -DFOREGROUND ├─3618 /usr/sbin/httpd -DFOREGROUND ├─3619 /usr/sbin/httpd -DFOREGROUND ├─3620 /usr/sbin/httpd -DFOREGROUND └─3621 /usr/sbin/httpd -DFOREGROUND 2月 11 04:08:49 ip-10-0-1-10.ap-northeast-1.compute.internal systemd[1]: St... 2月 11 04:08:49 ip-10-0-1-10.ap-northeast-1.compute.internal systemd[1]: St... Hint: Some lines were ellipsized, use -l to show in full.実際にアクセスして確認をする
http://54.249.79.116参考
- 投稿日:2020-02-11T17:10:07+09:00
AWS CLIでWordPress環境を構築する~part1~
概要
AWS学習目的で、下記記事のレシピを参考にAWS CLIでの環境構築を行う。
【Amazon3時間クッキング】材料費500円でAWSにWordPress環境を構築するレシピこの記事では以下の作業を行う。
- VPCの作成
- サブネットの作成(パブリックセグメント)
- インターネットゲートウェイの作成
- ルートテーブルの作成
環境
- macOS Catalina
前提条件
- AWSアカウント
- AWS CLI
- aws configureで設定済み
構築
VPCの作成
項目 値 リージョン アジアパシフィック(東京) CIDRブロック 10.0.0.0/16 名前 test-VPC # VPCの作成 $ aws ec2 create-vpc --region ap-northeast-1 --cidr-block 10.0.0.0/16 { "Vpc": { "CidrBlock": "10.0.0.0/16", "DhcpOptionsId": "dopt-81eaa2e6", "State": "pending", "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576", "InstanceTenancy": "default", "Ipv6CidrBlockAssociationSet": [], "CidrBlockAssociationSet": [ { "AssociationId": "vpc-cidr-assoc-0a6334afa0f843a96", "CidrBlock": "10.0.0.0/16", "CidrBlockState": { "State": "associated" } } ], "IsDefault": false, "Tags": [] } } # 名前の設定 $ aws ec2 create-tags --resources vpc-07154996e6c851750 --tags Key=Name,Value=test-VPCサブネットの作成(パブリックセグメント)
項目 値 CIDRブロック 10.0.1.0/24 名前 test-PublicSegment # サブネットの作成 $ aws ec2 create-subnet --vpc-id vpc-07154996e6c851750 --cidr-block 10.0.1.0/24 { "Subnet": { "AvailabilityZone": "ap-northeast-1c", "AvailabilityZoneId": "apne1-az1", "AvailableIpAddressCount": 251, "CidrBlock": "10.0.1.0/24", "DefaultForAz": false, "MapPublicIpOnLaunch": false, "State": "pending", "SubnetId": "subnet-02558655ff2936296", "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576", "AssignIpv6AddressOnCreation": false, "Ipv6CidrBlockAssociationSet": [], "SubnetArn": "arn:aws:ec2:ap-northeast-1:403733593576:subnet/subnet-02558655ff2936296" } } # 名前の設定 $ aws ec2 create-tags --resources subnet-02558655ff2936296 --tags Key=Name,Value=test-PublicSegmentインターネットゲートウェイの作成
項目 値 名前 test-IGW # ゲートウェイの作成 $ aws ec2 create-internet-gateway { "InternetGateway": { "Attachments": [], "InternetGatewayId": "igw-069600493ea4658d1", "Tags": [] } } # 名前の設定 $ aws ec2 create-tags --resources igw-069600493ea4658d1 --tags Key=Name,Value=test-IGW # VPCにインターネットゲートウェイをアタッチ $ aws ec2 attach-internet-gateway --vpc-id vpc-07154996e6c851750 --internet-gateway-id igw-069600493ea4658d1カスタムルートテーブルの作成
項目 値 名前 test-PublicRouteTable 送信先 0.0.0.0/0 # カスタムルートテーブルの作成 $ aws ec2 create-route-table --vpc-id vpc-07154996e6c851750 { "RouteTable": { "Associations": [], "PropagatingVgws": [], "RouteTableId": "rtb-0e03cccb92108b0d1", "Routes": [ { "DestinationCidrBlock": "10.0.0.0/16", "GatewayId": "local", "Origin": "CreateRouteTable", "State": "active" } ], "Tags": [], "VpcId": "vpc-07154996e6c851750", "OwnerId": "403733593576" } } # 名前の設定 $ aws ec2 create-tags --resources rtb-0e03cccb92108b0d1 --tags Key=Name,Value=test-PublicRouteTable # インターネットゲートウェイへのすべてのトラフィック (0.0.0.0/0) をポイントするルートテーブルでルートを作成 $ aws ec2 create-route --route-table-id rtb-0e03cccb92108b0d1 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-069600493ea4658d1 { "Return": true }ルートテーブル サブネットの関連付け
$ aws ec2 associate-route-table --subnet-id subnet-02558655ff2936296 --route-table-id rtb-0e03cccb92108b0d1 { "AssociationId": "rtbassoc-04f4894cba1ed2dab", "AssociationState": { "State": "associated" } }参考
- 投稿日:2020-02-11T17:01:47+09:00
Mac ゴミ箱に入れたディレクトリが削除できない..
問題:ダウンロードしたファイルの入ったディレクトリを削除できない
→「項目〇〇は使用中のため削除できない」とのメッセージが出る
結果:ファイルに権限を与えたら削除できました
(参考)
http://yagays.github.io/blog/2013/07/13/directory-permission/
https://support.apple.com/ja-jp/guide/mac-help/mchlp1203/macなんやかんや時間がかかってしまったので、その過程を備忘録として書きます。
1.削除したいディレクトリの構成
- maindir + dir1 - file1 + dir2 - file22.試したこと(いずれも失敗)
・関係ありそうなアプリを停止してからの削除
→ アクティビティモニタで該当アプリを選択し終了させた
(参考)https://support.apple.com/ja-jp/HT201464
・セーフモード起動からのゴミ箱を空にする
(参考)https://support.apple.com/ja-jp/HT2015833.ターミナルから直接コマンドを入力し、削除する方法を試みた
#ファイル削除の入力コマンド (警告なし。ディレクトリとその中身を問答無用で削除する。実行前要確認) rm -rf ディレクトリ名(参考)ターミナルコマンドまとめ
https://qiita.com/ryouzi/items/f9dee1540a04a0bfb9a3実行結果は、Permission deniedされた。
#実行結果 $ rm -rf /maindir [削除したいディレクトリパス] rm:/maindir/dir1/file1: Permission denied rm:/maindir/dir2/file2: Permission deniedなぜか拒否された、、一度ディレクトリの権限について調べてみた。
:file1$ ls -l total 0 srwx------ 1 daemon daemon 0 2 4 08:36 file1 #その他ユーザーの権限がない模様(参考)chmodコマンド
https://do-zan.com/mac-terminal-chmod/ターミナルからchmodコマンドで権限付与を試みたがうまくいかず。
4.Finderからファイルに権限を付与をしてみた
1)ゴミ箱にある削除したいデータを右クリックし情報をみる
2)アクセス権を確認。今回の場合読み出しのみとなっていたので、ロックを解除し「読み書き」を選択する
そのあとターミナルで該当ディレクトリまでcdし、rm -rfコマンドを入力して削除できました。
- 投稿日:2020-02-11T17:00:34+09:00
【Mac】PC起動時にRTSP対応のカメラ映像を自動再生
概要
Macを起動した際に自動でストリーミング配信映像を再生する方法について書きたいと思います。
展示会や説明会などでPCを起動したら自動でストリーミング配信映像を流したい時に活用
- 手順
- ffplayでストリーミング映像を表示出来るか確認
- ffplayを実行するスクリプトを書く
- Macで上記スクリプトを起動時に実行するように設定
- 確認方法
実施手順
① ffplayでストリーミング映像を表示出来るか確認
まずffplayを実行するためにbrewでダウンロード。ffmpegをDLすると一緒にffplayが入ります。$ brew install ffmpeg次にffplayでRTSPプロトコルの映像を再生
$ ffplay rtsp://ユーザ名:パスワード@IPアドレス:ポート番号/動画再生URL 例)$ ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp② ffplayを実行するスクリプトを書く
シェルスクリプトを書く$ cat rtsp.sh #!/bin/bash # 下記rtspは適宜置き換える /usr/local/bin/ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp実行権限を付ける
$ chmod +x rtsp.sh③ Macで上記スクリプトを起動時に実行するように設定
~/Library/LaunchAgents配下にplistを作成。今回はrtsp.plistという名前で作成
※ /Users/ユーザ名/rtsp.shの部分は②で作成したシェルスクリプトを指定$ cat rtsp.plist <?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>Label</key> <string>test</string> <key>Program</key> <string>/Users/ユーザ名/rtsp.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist>plistの設定を反映させる
$ launchctl load ~/Library/LaunchAgents/rtsp.plist④ 確認方法
Macを再起動してストリーミングが自動で再生出来たらOK。
再起動に時間がかかる場合は以下のコマンドを実行することで確認が出来ます。$ launchctl unload ~/Library/LaunchAgents/rtsp.plist $ launchctl load ~/Library/LaunchAgents/rtsp.plist
- 投稿日:2020-02-11T16:56:53+09:00
【Mac】PC起動時にRTSP対応のカメラ映像を自動再生
概要
Macを起動した際に自動でストリーミング配信映像を再生する方法について書きたいと思います。
展示会や説明会などでPCを起動したら自動でストリーミング配信映像を流したい時に活用
- 手順
- ffplayでストリーミング映像を表示出来るか確認
- ffplayを実行するスクリプトを書く
- Macで上記スクリプトを起動時に実行するように設定
- 確認方法
実施手順
① ffplayでストリーミング映像を表示出来るか確認
まずffplayを実行するためにbrewでダウンロード。ffmpegをDLすると一緒にffplayが入ります。$ brew install ffmpeg次にffplayでRTSPプロトコルの映像を再生
$ ffplay rtsp://ユーザ名:パスワード@IPアドレス:ポート番号/動画再生URL 例)$ ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp② ffplayを実行するスクリプトを書く
シェルスクリプトを書く$ cat rtsp.sh #!/bin/bash # 下記rtspは適宜置き換える /usr/local/bin/ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp実行権限を付ける
$ chmod +x rtsp.sh③ Macで上記スクリプトを起動時に実行するように設定
~/Library/LaunchAgents配下にplistを作成。今回はrtsp.plistという名前で作成
※ /Users/ユーザ名/rtsp.shの部分は②で作成したシェルスクリプトを指定$ cat rtsp.plist <?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>Label</key> <string>test</string> <key>Program</key> <string>/Users/ユーザ名/rtsp.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist>plistの設定を反映させる
$ launchctl load ~/Library/LaunchAgents/rtsp.plist④ 確認方法
Macを再起動してストリーミングが自動で再生出来たらOK。
再起動に時間がかかる場合は以下のコマンドを実行することで確認が出来ます。$ launchctl unload ~/Library/LaunchAgents/rtsp.plist $ launchctl load ~/Library/LaunchAgents/rtsp.plist
- 投稿日:2020-02-11T15:36:22+09:00
Macのhomebrewでmysqlクライアントのみインストールする
Macのローカルに作った開発環境のmysqlに接続はしたいけどサーバーはインストールしたくなかったのでメモ
homebrewの確認
homebrewはインストール済みであることが前提です
$ brew -v Homebrew 2.2.2 Homebrew/homebrew-core (git revision fdb53; last commit 2020-01-03) Homebrew/homebrew-cask (git revision d9c8; last commit 2020-01-03)mysql確認
$ mysql --version -bash: mysql: command not found入ってません。
インストール
brew install mysql --client-only ... Error: invalid option: --client-onlyあれ、エラーになってしまうようですね。どうやらこのコマンドだと私の環境ではインストールできないようです。
以下のコマンドでインストール出来ました。
brew install mysql-client
インストールできました。
... ######################################################################## 100.0% ==> Pouring mysql-client-8.0.18.high_sierra.bottle.tar.gz ==> Caveats mysql-client is keg-only, which means it was not symlinked into /usr/local, because it conflicts with mysql (which contains client libraries). If you need to have mysql-client first in your PATH run: echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile For compilers to find mysql-client you may need to set: export LDFLAGS="-L/usr/local/opt/mysql-client/lib" export CPPFLAGS="-I/usr/local/opt/mysql-client/include"パスを通す
ログにもありますが、パスを通さないと、「mysql」コマンドで呼び出せないようです。
$ mysql --version -bash: mysql: command not found以下のように.bash_profileに書き込んで、sourceコマンドで即時反映させればOKです。
$ echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile確認
$ mysql --version mysql Ver 8.0.18 for osx10.13 on x86_64 (Homebrew)おつかれさまでした。
- 投稿日:2020-02-11T15:31:50+09:00
AutomatorでYoutube動画自動再生してみた
- 投稿日:2020-02-11T09:16:56+09:00
"brew doctor"で"A newer Command Line Tools release is available."と出るがアップデートが無い場合
症状
brew doctor
を実行すると、コマンドラインツールズが最新化されているにも関わらず、最新になっていない旨のメッセージが出る。
ソフトウェアアップデートには何も出てこない。$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry or file an issue; just ignore this. Thanks! Warning: A newer Command Line Tools release is available. Update them from Software Update in System Preferences or https://developer.apple.com/download/more/.対処
削除してから再インストール
$ sudo rm -rf /Library/Developer/CommandLineTools $ xcode-select --install参考