20210606のMacに関する記事は12件です。

【M1 mac】docker-composeでMySQLを使用した時のエラー解消法

Laravelのwebアプリ作成のためにdocker-composeで環境構築をしており、MySQLを使用しようとしたらエラーが発生しました。 無事にエラーを解消できたので、エラー解消方法についてメモします。 開発環境 M1 mac使用 docker-compose version'3' MySQL '5.7' docker-compose.ymlの記載内容 docker-compose.ymlには以下のような内容で記載していました。 version: '3' services: web:   〜中略〜 app:   〜中略〜 mysql: image: mysql:5.7 environment: MYSQL_DATABASE: sample MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql volumes: mysql-data: 発生したエラー 上記の内容の通り、docker-composeでMySQLを使用したところ以下のようなエラーが発生しました。 docker: no matching manifest for linux/arm64/v8 in the manifest list entries. エラーの原因と解消方法 調べたところM1macを使用していると発生するエラーとのこと。 解決方法としてdocker-compose.ymlにplatform指定をすれば良いらしい。 version: '3' services: web:   〜中略〜 app:   〜中略〜 mysql:          platform: linux/x86_64 #M1 mac対応のためこのコードを追記 image: mysql:5.7 environment: MYSQL_DATABASE: sample MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql volumes: mysql-data: これで無事にdocker-composeでMySQLを使用することができました!!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macでバックスラッシュ "\" が打てない時の対処法

バックスラッシュが "¥" になる  Macの初期設定では、キーボードの¥を押すと(当たり前だが)¥が入力される。  \は¥は文字コードが同じで基本的には同じものとして扱われる。だから、基本は困らない。  しかし当然、困ることもある。例えば、VScodeでC++言語の開発をしている場合、\と¥は別の記号と扱われるため、\を確実に入力する必要がある。  以下に対処法をまとめたので、参考にどうぞ。 作業環境(念のため) macOS Big Sur 11.4 iMac (Retina 5K,27-inch,Late 2015) 一時的に \を入力したい場合  この場合、設定を変える必要はなく、Alt + ¥を入力すれば良い。 常に\を入力したい場合  以下の手順でキーボード設定を変える。 システム環境設定を開く。 キーボード→入力ソースの順にクリックする。 購入直後のMacは以下のような画面になっているはず。 まずABCを削除する。選択した状態で下の-をクリックすればよい。 次に日本語-ローマ字入力をクリックする。 英字にチェックを入れる。ABCの代わりにこちらで半角入力する設定。 "¥"キーで入力する文字横のプルダウンを開き\(バックスラッシュ) を選択する。 画面を閉じて終了。入力できるかを確認する。 おわりに  ABCの設定を消すのがミソで、消し忘れると他の設定を変えても\が打てない。  良いコーディングライフを!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macでバックスラッシュ "\"が打てない時の対処法

バックスラッシュが¥になる  Macの初期設定では、キーボードの¥を押すと(当たり前だが)¥が入力される。  \は¥は文字コードが同じで基本的には同じものとして扱われる。だから、基本は困らない。  しかし当然、困ることもある。例えば、VScodeでC++言語の開発をしている場合、\と¥は別の記号と扱われるため、\を確実に入力する必要がある。  以下に対処法をまとめたので、参考にどうぞ。 作業環境(念のため) macOS Big Sur 11.4 iMac (Retina 5K,27-inch,Late 2015) 一時的に\を入力したい場合  この場合、設定を変える必要はなく、Alt + ¥を入力すれば良い。 常に\を入力したい場合  以下の手順でキーボード設定を変える。 システム環境設定を開く。 キーボード→入力ソースの順にクリックする。 購入直後のMacは以下のような画面になっているはず。 まずABCを削除する。選択した状態で下の-をクリックすればよい。 次に日本語-ローマ字入力をクリックする。 英字にチェックを入れる。ABCの代わりにこちらで半角入力する設定。 "¥"キーで入力する文字横のプルダウンを開き\(バックスラッシュ) を選択する。 画面を閉じて終了。入力できるかを確認する。 おわりに  ABCの設定を消すのがミソで、消し忘れると他の設定を変えても\が打てない。  良いコーディングライフを!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

flutter doctorがAndroid license status unknown.で失敗する場合の対応

はじめに iMacを購入したので、諸々の開発周りのセットアップをしようとしたのですが、flutterの環境構築でハマったので備忘録として投稿しますm(_ _)m flutterの環境構築 基本的には、公式ページのget startedの通りです。 (私が手順を実施する際には、Android StudioとXcodeは、事前にインストール済の状態でした。) Flutter SDKをダウンロードする ダウンロードしたSDKをUnzipする PATHを通す $ flutter doctorを実行して、問題がないか確認する こんな流れですが、$ flutter doctorでエラーが発生しました... 発生したエラー $ flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.2.1, on macOS 11.3 20E232 darwin-arm, locale ja-JP) [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3) ✗ Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses. See https://flutter.dev/docs/get-started/install/macos#android-setup for more details. [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] Android Studio (version 4.2) [✓] Connected device (2 available) Android license status unknown. よく分からないけど、とりあえず指示に従って、 $ flutter doctor --android-licenses を実行してみると、 $ flutter doctor --android-licenses Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156) at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81) at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73) at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 5 more java.lang.NoClassDefFoundError だと... 解決方法 Android Studioから、SDK Managerを選択して、 Android SDK Command-line Toolsをインストールすることで、 私の環境では $ flutter doctor --android-licenses 実行時のエラーが解消されました。 Android Studioから、SDK Managerを選択 Android SDK Command-line Tools にチェックをつけて、Applyを選択 改めて、$ flutter doctor --android-licenses を実行したら、 長いライセンスが表示されて、 Accept? (y/N):の確認が表示されました (ちゃんと読んで、)すべて同意をしたら、$ flutter doctorのエラーも解消されていました! これで、Flutterでアプリ開発できそうです(`・ω・´) さいごに Mac買い換えると、滅多にやらない対応があってハマりますね(^ω^)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

M1 Mac で Docker mysql イメージをビルドする

M1 Mac で Docker の mysql イメージをビルドするには linux/amd64 を明示的に指定する必要がある。 Dockerfile Dockerfile を利用している場合は FROM にオプションを渡すことができる。 FROM --platform=linux/amd64 mysql:5.7 docker-compose.yaml docker-compose.yaml を利用している場合は platform を設定する。 services: db: image: mysql platform: linux/amd64
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

プログラミング初心者が書いたGit/Githubの使い方

はじめに 現在プログラミングを勉強中の初心者が、初心者なりにGitとGithubの 基礎的な使い方についてまとめてみました。 備忘録的な感じでの記事になりますのでご了承くださいませ。 前提として私はMacのターミナルにて操作していきます! 流れとしては.... ローカルリポジトリの作成、編集、コミット ローカルリポジトリからリモートリポジトリへのプッシュ としていきます。 ローカルリポジトリの作成、編集、コミット まずはローカルリポジトリから作成していきます。 最初にデスクトップの中に練習用のディレクトリを作成します。 ここではgit_testという名前のディレクトリを作ります。 そしてターミナルで以下のコマンドを打ちgit_testまで移動します。 cd ~/Desktop mkdir git_test cd git_test 続いてgit_testに移動したら以下のコマンドを実行し ローカルリポジトリを作成します。 git init 上記が終わりましたら一度vscode上にてgit_testを開き編集します。 git_testディレクトリの中にtest.htmlというファイルも作成しましょう。 test.htmlの中に以下の文章を入力します。 <h1>こんにちは!</h1> そしてvscode上で一度保存します。 次にローカルリポジトリにコミットをします。 git add . git commit -m "何かコメントを書く" コミットを行うことにより、ファイルの変更や追加を ローカルリポジトリに反映させることが出来ます。 ローカルリポジトリからリモートリポジトリへのプッシュ 続いてはGitHub(https://github.com/ )にアクセスしリモートリポジトリを作成します。 右上のベルのアイコンをクリックし、New repositoryを選択します。 すると以下の画面に遷移します。 Repository nameの部分は好きな名前で登録して大丈夫です。 画面真ん中のPublicを選択すると誰でも閲覧可能となります。 実務ではPrivateの方を選択することが多いのではないかと思われますので 自分自身も設定には気をつけたいですね。 Create repositoryを選択すると上記の画面に移ります。 この際には必ずHTTPSを選択し、一番右側のボタンを押すとURLをコピーすることが出来ます。 そしてURLをコピーしましたらそのまま先ほどのターミナルに戻り、以下を実行します。 git remote add origin コピーしたURL git push origin master 上記までのコマンドが正常に行われると以下のようになります。 ローカルリポジトリからリモートリポジトリへのプッシュが完了した状態になります。 以上がローカルリポジトリからリモートリポジトリへプッシュするまでの基礎的な流れになります。 ブランチを切ってそれをマージするなどについてはまた後日追記したいと思います! ここまでご覧頂きありがとうございました。 引用元:https://tech-blog.rakus.co.jp/entry/20200529/git
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

プログラミング初心者が書いたGit/GitHubの使い方

はじめに 現在プログラミングを勉強中の初心者が、初心者なりにGitとGitHubの 基礎的な使い方についてまとめてみました。 備忘録的な感じでの記事になりますのでご了承くださいませ。 前提として私はMacのターミナルにて操作していきます! 流れとしては.... ローカルリポジトリの作成、編集、コミット ローカルリポジトリからリモートリポジトリへのプッシュ としていきます。 ローカルリポジトリの作成、編集、コミット まずはローカルリポジトリから作成していきます。 最初にデスクトップの中に練習用のディレクトリを作成します。 ここではgit_testという名前のディレクトリを作ります。 そしてターミナルで以下のコマンドを打ちgit_testまで移動します。 cd ~/Desktop mkdir git_test cd git_test 続いてgit_testに移動したら以下のコマンドを実行し ローカルリポジトリを作成します。 git init 上記が終わりましたら一度vscode上にてgit_testを開き編集します。 git_testディレクトリの中にtest.htmlというファイルも作成しましょう。 test.htmlの中に以下の文章を入力します。 <h1>こんにちは!</h1> そしてvscode上で一度保存します。 次にローカルリポジトリにコミットをします。 git add . git commit -m "何かコメントを書く" コミットを行うことにより、ファイルの変更や追加を ローカルリポジトリに反映させることが出来ます。 ローカルリポジトリからリモートリポジトリへのプッシュ 続いてはGitHub(https://github.com/ )にアクセスしリモートリポジトリを作成します。 右上のベルのアイコンをクリックし、New repositoryを選択します。 すると以下の画面に遷移します。 Repository nameの部分は好きな名前で登録して大丈夫です。 画面真ん中のPublicを選択すると誰でも閲覧可能となります。 実務ではPrivateの方を選択することが多いのではないかと思われますので 自分自身も設定には気をつけたいですね。 Create repositoryを選択すると上記の画面に移ります。 この際には必ずHTTPSを選択し、一番右側のボタンを押すとURLをコピーすることが出来ます。 そしてURLをコピーしましたらそのまま先ほどのターミナルに戻り、以下を実行します。 git remote add origin コピーしたURL git push origin master 上記までのコマンドが正常に行われると以下のようになります。 ローカルリポジトリからリモートリポジトリへのプッシュが完了した状態になります。 以上がローカルリポジトリからリモートリポジトリへプッシュするまでの基礎的な流れになります。 ブランチを切ってそれをマージするなどについてはまた後日追記したいと思います! ここまでご覧頂きありがとうございました。 引用元:https://tech-blog.rakus.co.jp/entry/20200529/git
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Shellについてざっくりまとめてみた

きっかけ この記事を書こうと思ったきっかけ。 所属している「もりけん塾」で、nodenvの勉強会があり、そこでいろいろ知らない用語が出てきた。 そして先生から「開発者として必須」と言われたので、せっかくの機会だし、調べてみようと思った。 実は昨日の勉強会は次の勉強会の前提知識になるので出た方はラッキーだったのですshell、.bash_profile, .bashrc or .zshrcなどの設定、環境変数、パスを通すみたいなのはフロントというより開発者として必須なので— フロントエンドエンジニア (@terrace_tech) May 29, 2021 shellとはざっくり shellは、ユーザとOSの中心部にあるカーネルとの中継を担ってくれるソフトウェアのこと。 ユーザからコマンドが入力されることで、OSの中核であるカーネルとやり取りし、カーネルのプログラムを呼び出す。 カーネルがプログラムを実行したら、shellに結果を伝えてターミナルに出力する。 ユーザとカーネルが直接やりとりすることはできず、必ずshellを通じてやりとりすることになっている。 ログインシェルとは ユーザがログインした直後に自動的に起動されるシェルのこと。 インタラクティブシェル(対話的シェル) コマンドラインで bash とか zsh と入力すると起動するシェルのこと。対話形式で入力する。 自分が使っているshellを調べる方法 $ echo $SHELL 私の場合は、/bin/zshと表示されるので、使っているシェルはzshです。 以前まではbashがログインシェルとして使われていたようですが、 MacOS Catalinaからはデフォルトのログインシェルが変更されており、ログイン時に読み込まれるのはzshとなっています。 shellの変更方法 こちらはあまり使うことはないと思いますが、一応備忘録として残しておく。 現在変更できるshellの一覧を確認 $ cat /etc/shells 僕の環境では # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/dash /bin/ksh /bin/sh /bin/tcsh /bin/zsh このように表示されました。よく見るsh、bash、zshなどが確認できます。 shellの設定ファイル 参考: zshrcとzprofileについて zshの設定ファイル 記述したものから順に読み込まれる。👇 .zshenv ログインシェル、インタラクティブシェル、シェルスクリプト、どれでも常に必要な設定を定義する zsh が起動して、必ず最初に読み込まれる設定ファイル 影響範囲が大きいので記述は必要最低限にするべき .zprofile ログインシェルに必要な設定だけを記述する zshenv の次に読み込まれる設定ファイル zsh ログイン時の一回だけ読み込まれる .zshrc ログインシェル、インタラクティブシェルの場合に読み込まれる 一般的に紹介されている記事ではこの設定ファイルにいろいろ記述することが多い。 .zlogin ログインシェルに必要な設定だけを記述する 最後に読み込まれる 役割は .zprofile とほぼ一緒。混乱を避けるため併用しないこと .zlogout exit コマンドで zsh を抜けたときに読み込まれる bashの設定ファイル 引用:本当に正しい .bashrc と .bash_profile の使ひ分け .bash_profile .bash_profile はログイン時にのみ実行されます。 具体的な用途は: 環境変数を設定する (export する変数) .bashrc .bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は: ・環境変数でない変数を設定する (export しない変数) ・エイリアスを定義する ・シェル関数を定義する ・コマンドライン補完の設定をする これらは bash を起動する度に毎回設定する必要があるものです。 shellを変更する zshからbashにしてみます。 // 使っているshellを確認 $ echo $SHELL -> /bin/zsh // shellの変更 $ chsh -s /bin/bash // shellを再起動 $ exec $SHELL -l  // 使っているshellを確認 $ echo $SHELL -> /bin/bash 紹介 私が所属している「もりけん塾」は、もりけん先生が運営するJavaScriptに特化したコミュニティーです。(とは言ってもいろんな方がいらっしゃいます。) フロントエンドエンジニアになりたい方にむけて、先生が道標となって初学者が迷わないように導いてくれます。コードの書き方、自走力を身に着けるにはとても良い環境です。 毎月1日に募集をかけていたのですが、ここ最近は募集かけなくても入塾したいとDMがくるそうです...!!(大人気) 先生のブログ 先生のTwitter
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AppleScriptでPowerPointを操作する Part2|表の操作

前回の記事で、AppleScriptでPowerPointの図形(Shape)の操作について紹介しました。 PowerPointの表を操作する内容について書いてみたら非常に長くなってしまいましたので、別記事としました。 基本的な内容は前回の記事を参照してください。 https://qiita.com/yuoya/items/314489c6c6c893cc7597 環境 macOS 11.4 (Big Sur) PowerPoint for Mac 16.49(Office 365、2021) 目指すところ PowerPointの表において、以下のような操作を実現する * 表を生成(ダイアログで行数と列数を指定、書式も事前に設定) * 列の追加(選択部分の左に列を追加。列数はダイアログで指定) * セルの結合(選択部分について) 表の生成 表の生成も基本的には図形の生成とほとんど同じです。 ただ行数、列数に自由度があるため、それを外から変えられるようにすること、 また枠線の設定については少し特殊な操作が必要なことが違います。 とりあえず3x3の表を生成 図形の時と同じように選択ページに3x3の表を生成してみましょう。 tell application "Microsoft PowerPoint" -- 表の位置とサイズ、行数列数を設定 set x_position to 30 set y_position to 30 set dia_width to 100 set dia_height to 100 set n_row to 3 -- 行数:3 set n_col to 3 -- 列数:3 --現在のスライド番号を取得 set n to slide index of slide range of selection of active window --現在のスライド内で操作 tell slide n of active presentation -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} end tell end tell 行数と列数をダイアログから取得する ダイアログ自体はdisplay dialogを用いれば簡単に生成し、値を取得することが可能です。 ただし一つのダイアログで複数変数を取得することはできません。 そこでカンマ区切りで表現し、2つの値を同時に得ることとします。 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result ansにカンマを含んだ文字列が格納されます。 これを分割してそれぞれの値にします。 文字列の区切りに対して、AppleScriptにはdelimitersが用意されているのでこれを用います。 set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set ans1 to text item 1 of ans -- 1つめの値を変数ans1 に格納 set ans2 to text item 2 of ans -- 2つめの値を変数ans2 に格納 set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す 行数と列数を指定した表の生成 それではここまで合わせたコードを作成してみましょう。 tell application "Microsoft PowerPoint" -- 表の位置とサイズを設定 set x_position to 15 set y_position to 15 set dia_width to 300 set dia_height to 100 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result --文字列の分割(ダイアログでカンマ区切りで入れた行と列を取得するため) set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set n_row to text item 1 of ans -- 1つめの値を変数n_rowに格納 set n_col to text item 2 of ans -- 2つめの値を変数n_colに格納 set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す set n to slide index of slide range of selection of active window --現在のスライド番号を取得 tell slide n of active presentation --現在のスライド内で操作 -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} end tell end tell 任意の行と列数の表を作成できるようになりました。 書式の設定 次に表の書式設定をしていきます。 VBAでは表のスタイルでタイトル行や縞模様の有無などを設定できるのですが、AppleScriptでそれに該当するものは見当たりませんでした。 地道にセル一つずつに書式を設定していきます。 背景色やフォント、アライメントなどはShapeの時と同じように、セルの中のプロパティを一つずつ設定すればよいのですが、枠線についてはセルのプロパティとして直接編集することができません。 get borderを用いて、セルの中の枠線(上、左、下、右、右斜め斜線、左斜め斜線)を設定し、それぞれにline formatを設定していく必要があります。 tell cell xx of row xx of table object --セル(xx,xx)内で操作 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {234, 234, 234} -- 背景色をグレーに set alignment of paragraph format of text range of text frame of shape of it to paragraph align center --文字のアライメントを中央揃えに -- ●枠線の設定(上) set currentCell to get it set topBorder to get border currentCell edge top border set line weight of topBorder to 1 set fore color of topBorder to {200, 200, 200} -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell 表の生成(最終版) ダイアログで、行数と列数を確認し、それに合わせた表を生成しています。 タイトル行、それ以外の行についてそれぞれフォント、アライメント、背景色、枠線の書式設定を行っています tell application "Microsoft PowerPoint" set x_position to 15 set y_position to 15 set dia_width to 300 set dia_height to 100 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result --文字列の分割(ダイアログでカンマ区切りで入れた行と列を取得するため) set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set ans1 to text item 1 of ans -- 1つめの値を変数ans1 に格納 set ans2 to text item 2 of ans set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す --display dialog "ans1:" & ans1 & ", ans2:" & ans2 set n_row to ans1 set n_col to ans2 set n to slide index of slide range of selection of active window --現在のスライド番号を取得 tell slide n of active presentation --現在のスライド内で操作 -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} -- ●tableの書式を設定 tell TheShapeTable -- ●タイトル行の書式設定 set nr to 1 repeat with nc from 1 to n_col tell cell nc of row nr of table object --セル内で操作 set content of text range of text frame of shape of it to "R" & nr & "C" & nc --文字入力 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {234, 234, 234} -- 背景色をグレーに set alignment of paragraph format of text range of text frame of shape of it to paragraph align center --文字のアライメントを中央揃えに -- ●枠線の設定(上) set currentCell to get it set topBorder to get border currentCell edge top border set line weight of topBorder to 1 set fore color of topBorder to {200, 200, 200} -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell end repeat -- ●一般行の書式設定 repeat with nr from 2 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object --セル内で操作 set content of text range of text frame of shape of it to "R" & nr & "C" & nc --文字入力 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {255, 255, 255} -- 背景色を白に --●セル内テキストの設定 tell paragraph format of text range of text frame of shape of it set alignment of it to paragraph align center --文字のアライメントを中央揃えに set line rule within of it to true --行間の設定を行の倍数に set space within of it to 1.1 --行間を1.1倍に set line rule before of it to false --段落前の設定をポイントに set space before of it to 3 --段落前を3ポイントに end tell -- ●枠線の設定 set currentCell to get it -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell end repeat end repeat end tell end tell end tell 表に行追加 log機能について AppleScriptのlog機能を用いて、どのセルが選択されているかを見ていきます。 log機能の使い方は、 start logを入れておき、出力したいところで log "xx"と記述するだけです。 ログを見るためにはスクリプトエディタのメニューより「ウィンドウ」>「ログの履歴」を表示しておく必要があります。 ログが表示されるのは[メッセージ]タグです。 選択しているセルの確認 AppleScriptでは選択セルをそのままオブジェクトで返してくる機能はないようです。ただしセルが選択されているかどうかを真偽値で表すプロパティは存在します。全てのセルをスキャンし、選択されているかどうかを確認してリストに格納します。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows --表の行数 set n_col to number of columns --表の列数 set selListR to {} --選択された行のリスト set selListC to {} --選択された列のリスト --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row --行をSCAN repeat with nc from 1 to n_col --列をSCAN tell cell nc of row nr of table object if selected of it then --選択されているかどうかの判定 set end of selListR to nr set end of selListC to nc log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat end tell log selListR log selListC end tell 行の追加(行の分割) 行を追加するコマンドが見当たらなかったため、セルの分割で擬似的に行追加としています。 特定のセル(XX列、YY行目)をX行、Y列に分割するコードは以下のようになります。 split cell XX of row YY number of rows X number of columns Y Yを1にし、全ての列に対して同じ行数分、分割をすることで、行の追加とほぼ同じ状態となります。 行の追加(最終版) 現在選択している上の行に対して行を追加するコードを記述していきます。 追加行数をダイアログで入力可能にしています。さらに現在の選択セル数を元に、デフォルトの行数を設定するようにしてみました。 また分割をするとセルの大きさが小さくなってしまうことがあるため、その対策も入れています。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows set n_col to number of columns set selListR to {} --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object if selected of it then set end of selListR to nr log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat -- 選択されている行を抜き出し----- set firstRow to first item of selListR set lastRow to last item of selListR set numRow to (lastRow - firstRow + 1) display dialog "挿入する行数" default answer numRow set numRow to text returned of result log "numRow is " & numRow tell table object --選択位置のセルの高さを取得 set cellHeight to height of row (firstRow - 1) set cellHeight2 to height of row lastRow log "Hight is " & cellHeight log "Hight2 is " & cellHeight2 --行全体の分割(ほぼ行追加) repeat with nc from 1 to n_col --split cell nc of row 2 number of rows 3 number of columns 1 split cell nc of row (firstRow - 1) number of rows (numRow + 1) number of columns 1 end repeat --分割したセルの高さを元に戻す set height of row (firstRow - 1) to cellHeight end tell end tell end tell 表のセル結合 選択しているセルの確認 先程の行追加とほぼ同じやり方で選択セルを確認します。 前回は行だけわかればよかったのですが、今回は行と列を両方取得しますので、 リストselListを数値でなく、セルオブジェクトのリストとしています。 セルの結合 セルをAAとセルBBを結合するコードは以下です。 merge AA merge with BB AAとBBは隣接している必要はありません。AAを左上、BBを右下とするその中の選択範囲に入る全てのセルがマージ対象となります。 セルの結合(選択範囲に対して) これらを踏まえてセル結合のコードは以下になります。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows set n_col to number of columns set selList to {} --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object if selected of it then set currentCell to get it log currentCell --選択範囲を保存 set end of selList to currentCell log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat -- 選択されているセルを抜き出し----- --選択されたセルの左上と右下(選択リストの最初と最後を選択) set firstCell to first item of selList set lastCell to last item of selList -- そのセルを結合 merge firstCell merge with lastCell end tell end tell 関連記事 参考リンク PowerPointの表をAppleScriptで取得(+Excelとの連携) https://www.tactsystem.co.jp/blog/post-101/ AppleScript全般 http://tonbi.jp/AppleScript/ AppleScript文字列の分割 https://blog.goo.ne.jp/vallie/e/54a08f7082cca4364c5d3eb48fa96447
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AppleScriptでPowerPointを操作する(2) 表の操作

前回の記事で、AppleScriptでPowerPointの図形(Shape)の操作について紹介しました。 PowerPointの表を操作する内容について書いてみたら非常に長くなってしまいましたので、別記事としました。 基本的な内容は前回の記事を参照してください。 https://qiita.com/yuoya/items/314489c6c6c893cc7597 環境 macOS 11.4 (Big Sur) PowerPoint for Mac 16.49(Office 365、2021) 目指すところ PowerPointの表において、以下のような操作を実現する * 表を生成(ダイアログで行数と列数を指定、書式も事前に設定) * 列の追加(選択部分の左に列を追加。列数はダイアログで指定) * セルの結合(選択部分について) 表の生成 表の生成も基本的には図形の生成とほとんど同じです。 ただ行数、列数に自由度があるため、それを外から変えられるようにすること、 また枠線の設定については少し特殊な操作が必要なことが違います。 とりあえず3x3の表を生成 図形の時と同じように選択ページに3x3の表を生成してみましょう。 tell application "Microsoft PowerPoint" -- 表の位置とサイズ、行数列数を設定 set x_position to 30 set y_position to 30 set dia_width to 100 set dia_height to 100 set n_row to 3 -- 行数:3 set n_col to 3 -- 列数:3 --現在のスライド番号を取得 set n to slide index of slide range of selection of active window --現在のスライド内で操作 tell slide n of active presentation -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} end tell end tell 行数と列数をダイアログから取得する ダイアログ自体はdisplay dialogを用いれば簡単に生成し、値を取得することが可能です。 ただし一つのダイアログで複数変数を取得することはできません。 そこでカンマ区切りで表現し、2つの値を同時に得ることとします。 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result ansにカンマを含んだ文字列が格納されます。 これを分割してそれぞれの値にします。 文字列の区切りに対して、AppleScriptにはdelimitersが用意されているのでこれを用います。 set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set ans1 to text item 1 of ans -- 1つめの値を変数ans1 に格納 set ans2 to text item 2 of ans -- 2つめの値を変数ans2 に格納 set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す 行数と列数を指定した表の生成 それではここまで合わせたコードを作成してみましょう。 tell application "Microsoft PowerPoint" -- 表の位置とサイズを設定 set x_position to 15 set y_position to 15 set dia_width to 300 set dia_height to 100 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result --文字列の分割(ダイアログでカンマ区切りで入れた行と列を取得するため) set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set n_row to text item 1 of ans -- 1つめの値を変数n_rowに格納 set n_col to text item 2 of ans -- 2つめの値を変数n_colに格納 set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す set n to slide index of slide range of selection of active window --現在のスライド番号を取得 tell slide n of active presentation --現在のスライド内で操作 -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} end tell end tell 任意の行と列数の表を作成できるようになりました。 書式の設定 次に表の書式設定をしていきます。 VBAでは表のスタイルでタイトル行や縞模様の有無などを設定できるのですが、AppleScriptでそれに該当するものは見当たりませんでした。 地道にセル一つずつに書式を設定していきます。 背景色やフォント、アライメントなどはShapeの時と同じように、セルの中のプロパティを一つずつ設定すればよいのですが、枠線についてはセルのプロパティとして直接編集することができません。 get borderを用いて、セルの中の枠線(上、左、下、右、右斜め斜線、左斜め斜線)を設定し、それぞれにline formatを設定していく必要があります。 tell cell xx of row xx of table object --セル(xx,xx)内で操作 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {234, 234, 234} -- 背景色をグレーに set alignment of paragraph format of text range of text frame of shape of it to paragraph align center --文字のアライメントを中央揃えに -- ●枠線の設定(上) set currentCell to get it set topBorder to get border currentCell edge top border set line weight of topBorder to 1 set fore color of topBorder to {200, 200, 200} -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell 表の生成(最終版) ダイアログで、行数と列数を確認し、それに合わせた表を生成しています。 タイトル行、それ以外の行についてそれぞれフォント、アライメント、背景色、枠線の書式設定を行っています tell application "Microsoft PowerPoint" set x_position to 15 set y_position to 15 set dia_width to 300 set dia_height to 100 display dialog "作成する行,列を数字で入力" default answer "3,3" set ans to text returned of result --文字列の分割(ダイアログでカンマ区切りで入れた行と列を取得するため) set org_delimi to text item delimiters of AppleScript -- オリジナルの区切り文字をとっておく set text item delimiters of AppleScript to "," -- ","で区切る set ans1 to text item 1 of ans -- 1つめの値を変数ans1 に格納 set ans2 to text item 2 of ans set text item delimiters of AppleScript to org_delimi -- 操作終了後にオリジナルの区切り文字に戻す --display dialog "ans1:" & ans1 & ", ans2:" & ans2 set n_row to ans1 set n_col to ans2 set n to slide index of slide range of selection of active window --現在のスライド番号を取得 tell slide n of active presentation --現在のスライド内で操作 -- tableを生成し、TheShapeTableと命名 set TheShapeTable to make new shape table at the end with properties {number of columns:n_col, number of rows:n_row, left position:x_position, top:y_position, width:dia_width, height:dia_height} -- ●tableの書式を設定 tell TheShapeTable -- ●タイトル行の書式設定 set nr to 1 repeat with nc from 1 to n_col tell cell nc of row nr of table object --セル内で操作 set content of text range of text frame of shape of it to "R" & nr & "C" & nc --文字入力 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {234, 234, 234} -- 背景色をグレーに set alignment of paragraph format of text range of text frame of shape of it to paragraph align center --文字のアライメントを中央揃えに -- ●枠線の設定(上) set currentCell to get it set topBorder to get border currentCell edge top border set line weight of topBorder to 1 set fore color of topBorder to {200, 200, 200} -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell end repeat -- ●一般行の書式設定 repeat with nr from 2 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object --セル内で操作 set content of text range of text frame of shape of it to "R" & nr & "C" & nc --文字入力 set vertical anchor of text frame of shape of it to anchor middle --左上詰めを中央に変更 set font size of font of text range of text frame of shape of it to 14 --フォントサイズを14に set font color theme index of font of text range of text frame of shape of it to second dark theme color --文字色をdark2に set fore color of fill format of shape of it to {255, 255, 255} -- 背景色を白に --●セル内テキストの設定 tell paragraph format of text range of text frame of shape of it set alignment of it to paragraph align center --文字のアライメントを中央揃えに set line rule within of it to true --行間の設定を行の倍数に set space within of it to 1.1 --行間を1.1倍に set line rule before of it to false --段落前の設定をポイントに set space before of it to 3 --段落前を3ポイントに end tell -- ●枠線の設定 set currentCell to get it -- ●枠線の設定(左) set leftBorder to get border currentCell edge left border set line weight of leftBorder to 1 set fore color of leftBorder to {200, 200, 200} -- ●枠線の設定(右) set rightBorder to get border currentCell edge right border set line weight of rightBorder to 1 set fore color of rightBorder to {200, 200, 200} -- ●枠線の設定(下) set bottomBorder to get border currentCell edge bottom border set line weight of bottomBorder to 1 set fore color of bottomBorder to {200, 200, 200} end tell end repeat end repeat end tell end tell end tell 表に行追加 log機能について AppleScriptのlog機能を用いて、どのセルが選択されているかを見ていきます。 log機能の使い方は、 start logを入れておき、出力したいところで log "xx"と記述するだけです。 ログを見るためにはスクリプトエディタのメニューより「ウィンドウ」>「ログの履歴」を表示しておく必要があります。 ログが表示されるのは[メッセージ]タグです。 選択しているセルの確認 AppleScriptでは選択セルをそのままオブジェクトで返してくる機能はないようです。ただしセルが選択されているかどうかを真偽値で表すプロパティは存在します。全てのセルをスキャンし、選択されているかどうかを確認してリストに格納します。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows --表の行数 set n_col to number of columns --表の列数 set selListR to {} --選択された行のリスト set selListC to {} --選択された列のリスト --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row --行をSCAN repeat with nc from 1 to n_col --列をSCAN tell cell nc of row nr of table object if selected of it then --選択されているかどうかの判定 set end of selListR to nr set end of selListC to nc log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat end tell log selListR log selListC end tell 行の追加(行の分割) 行を追加するコマンドが見当たらなかったため、セルの分割で擬似的に行追加としています。 特定のセル(XX列、YY行目)をX行、Y列に分割するコードは以下のようになります。 split cell XX of row YY number of rows X number of columns Y Yを1にし、全ての列に対して同じ行数分、分割をすることで、行の追加とほぼ同じ状態となります。 行の追加(最終版) 現在選択している上の行に対して行を追加するコードを記述していきます。 追加行数をダイアログで入力可能にしています。さらに現在の選択セル数を元に、デフォルトの行数を設定するようにしてみました。 また分割をするとセルの大きさが小さくなってしまうことがあるため、その対策も入れています。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows set n_col to number of columns set selListR to {} --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object if selected of it then set end of selListR to nr log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat -- 選択されている行を抜き出し----- set firstRow to first item of selListR set lastRow to last item of selListR set numRow to (lastRow - firstRow + 1) display dialog "挿入する行数" default answer numRow set numRow to text returned of result log "numRow is " & numRow tell table object --選択位置のセルの高さを取得 set cellHeight to height of row (firstRow - 1) set cellHeight2 to height of row lastRow log "Hight is " & cellHeight log "Hight2 is " & cellHeight2 --行全体の分割(ほぼ行追加) repeat with nc from 1 to n_col --split cell nc of row 2 number of rows 3 number of columns 1 split cell nc of row (firstRow - 1) number of rows (numRow + 1) number of columns 1 end repeat --分割したセルの高さを元に戻す set height of row (firstRow - 1) to cellHeight end tell end tell end tell 表のセル結合 選択しているセルの確認 先程の行追加とほぼ同じやり方で選択セルを確認します。 前回は行だけわかればよかったのですが、今回は行と列を両方取得しますので、 リストselListを数値でなく、セルオブジェクトのリストとしています。 セルの結合 セルをAAとセルBBを結合するコードは以下です。 merge AA merge with BB AAとBBは隣接している必要はありません。AAを左上、BBを右下とするその中の選択範囲に入る全てのセルがマージ対象となります。 セルの結合(選択範囲に対して) これらを踏まえてセル結合のコードは以下になります。 tell application "Microsoft PowerPoint" start log tell shape table 1 of shape range of selection of active window set n_row to number of rows set n_col to number of columns set selList to {} --どこが選択されているかをSCAN ------ repeat with nr from 1 to n_row repeat with nc from 1 to n_col tell cell nc of row nr of table object if selected of it then set currentCell to get it log currentCell --選択範囲を保存 set end of selList to currentCell log "R" & nr & "C" & nc & " is Selected!" end if end tell end repeat end repeat -- 選択されているセルを抜き出し----- --選択されたセルの左上と右下(選択リストの最初と最後を選択) set firstCell to first item of selList set lastCell to last item of selList -- そのセルを結合 merge firstCell merge with lastCell end tell end tell 関連記事 参考リンク PowerPointの表をAppleScriptで取得(+Excelとの連携) https://www.tactsystem.co.jp/blog/post-101/ AppleScript全般 http://tonbi.jp/AppleScript/ AppleScript文字列の分割 https://blog.goo.ne.jp/vallie/e/54a08f7082cca4364c5d3eb48fa96447
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RailsからHerokuにデプロイしようとしたらerror: failed to push some refs to 'https://git.heroku.com/xxx.git'というエラーが出た

開発環境 macOS Catalina Rails 6.1.3.2 Ruby 2.6.7 Herokuにデプロイしようとするとエラーが出る RailsからHerokuにデプロイした際に以下のようなエラーが... error: failed to push some refs to 'https://git.heroku.com/xxx.git' プッシュに失敗しましたと出ています。 解決方法 ブラウザからHerokuにログインし、作成したアプリケーション画面のOverviewタブの 右側にある「Latest activity」の「Build failed」となっているアクティビティの「 View build log」をクリック。 するとこのような記載がありました。 -----> Building on the Heroku-20 stack -----> Determining which buildpack to use for this app ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used. Detected buildpacks: Ruby,Node.js See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order -----> Ruby app detected -----> Installing bundler 2.2.16 -----> Removing BUNDLED WITH version in the Gemfile.lock -----> Compiling Ruby/Rails -----> Using Ruby version: ruby-2.6.7 -----> Installing dependencies using bundler 2.2.16 Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4 Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again. Bundler Output: Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again. ! ! Failed to install gems via Bundler. ! ! Push rejected, failed to compile Ruby app. ! Push failed エラー文を日本語訳して抜粋すると バンドルはプラットフォーム["x86_64-darwin-19"]しかサポートしていませんが、あなたのローカルプラットフォームはx86_64-linux です。 現在のプラットフォームをロックファイルに追加するには、bundle lock--add-platform x86_64-linuxでロックファイルに現在のプラットフォームを追加して、もう一度試してみてください。 となっており、その通りに実行。 % bundle lock--add-platform x86_64-linux そして変更を忘れずにコミットする。 % git add . % git commit -m 'Add platform' 再度Herokuにデプロイ。 % git push heroku master 無事にデプロイできましたー!!!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初めてのローカル環境構築(MacでHomebrewを経由しRailsを導入する)

はじめに railsチュートリアルを1周した後に、オリジナルアプリ作成のためにローカル環境を構築しました。 チュートリアル学習時は、cloud9を使用していた為、初めての作業でした。 初学者のため、必須ではないコマンドが含まれているかもしれませんが、どうかご了承ください。 なかなか苦戦しながら環境設定をしたので、同じ境遇の方に少しでも参考になると幸いです。 もし、修正箇所がございましたら、ぜひ、お知らせください。 作業内容 railsに新規アプリ作成 MySQLの設定および導入 Git・GitHubの設定 herokuサーバにアプリをデプロイ 前提 PC仕様 OS:macOS(Catalina) 選定技術 バックエンド:ruby(バージョン:2.7.3) フレームワーク:rails(バージョン:6.1.3.2) データベース:MySQL(バージョン:8.0.25) インフラ:heroku 1.homebrewの導入 はじめに、ターミナル(私の場合はVScodeのターミナル)に入力します。 上手くいけば、homebrewが使用可能になります。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" homebrewはAppleで提供してないツールをインストールする時に使う便利なソフトのようです。 詳しくは、下記URLを参考にしてください。 ■Homebrew公式ページ 念のため、homebrewがインストールできているか確認します。 brew -v 〜〜実行結果〜〜 Homebrew <バージョン> ここで、homebrewのバージョンが表示されれば、インストールされています。 2.Ruby,Railsのインストール まず、homebrew経由で必要なgem一式をインストールします。 (もしかすると不要かも:ここはrailsチュートリアルを参考にしました) brew install libtool libxslt libksba openssl libyaml rubyのバージョン管理ツールrbenvとrubyをインストールします。 これでrubyを土台にしてRubyGemを使って、railsが構成できる準備が整います。 brew install rbenv ruby-build rubyバージョンを指定して、インストール&コンパイルします。 rbenv install <バージョン> ここで、ターミナルで使用しているシェルを調べておきます。 echo $SHELL 〜〜実行結果〜〜 /bin/zsh 私の場合、上記通り、zshが動作しているようでした。 先程に調べたシェルに対して、rbenv初期化コードを書き込みます。 (おそらく、MacOSがCatalinaの方は、zshかと思います) echo 'eval "$(rbenv init -)"' >> ~/bin/zsh 初期化した内容をすぐに反映させます。 (ターミナルを再起動しても同じ動作となるはずです。) source .bash_profile 土台となるrubyをバージョン指定してインストールします。 (globalは全範囲で使われる設定で、localとするとディレクトリ毎で制御できるようです。) ※railsインストールする前に行います。 rbenv global <バージョン> 一度、rubyがインストールできているか確認します。 ruby -v railsのバージョンを指定して、インストールします。 (RubyGemsをもって、railsをインストールしている) gem install rails -v <バージョン> ちゃんと、railsがインストールできているか確認します。 rails -v これで、rubyとrailsがインストールできました!良かった良かった! 3.MySQLのインストールから設定まで 続いて、データベースの設定していきます。 まず、homebrewを使ってmysqlをインストールします。 brew install mysql mysqlがインストールできたか確認します。 brew info mysql さっそく、mysqlサーバーを起動させてみます。 (停止する時はstartではなくstopをコマンドとします。) mysql.server start root権限でログインします。 mysql -uroot ログインできた所で、セキュリティ設定を行います。 (現状はパスワード無しで、ログイン可能な為) mysql_secure_installation 上記コマンドを行うと、下記質問をMySQLから聞かれるので、それぞれ回答していきます。 (基本は全てy(YES)の回答で良いのかなと。) 質問内容 パスワードの設定を行うか                 → 回答:y パスワードの強度はどうするか               → 回答:0 ~ 2 (Low:0, Medium:1, Strong:2) 登録パスワードは入力してください             → 設定するパスワードを入力 入力されたパスワードで設定して良いか           → 回答:y 匿名ユーザーを削除するか                 → 回答:y リモートサーバーからrootユーザーへのアクセスを遮断するか → 回答:y テスト用のデータベースを削除するか            → 回答:y (最後)入力内容をすぐに反映するか            → 回答:y ここまでで、ちゃんとパスワード設定できているか確認します。 mysql -uroot -p 上記コマンドで「Enter password:」とプロンプト表示されれば、設定が上手くできています。 この後に、railsアプリケーションを作成するので、念のため、 homebrewでインストールされたものを一覧で確認しておきます。 brew list 開発する作業ディレクトリ(environment)を作成して、そこに移動します。 mkdir environment cd environment railsバージョンとデータベースをMySQLに指定して、アプリケーションを作成します。 rails _<バージョン>_ new <アプリケーション名> -d mysql 作成できたアプリケーションのディレクトリに移動します。 cd <アプリ名> アプリを作成すると、gemfileとdatabase.ymlが自動で編集されます。 Gemfileのdatabase欄にあるgemが「sqlite(デフォルト)」ではなく「mysql2」となっています。 アプリ名/Gemfile 〜省略〜 # Use mysql as the database for Active Record gem 'mysql2', '~> 0.5' 〜省略〜 config/database.ymlでは、usernameとpasswordが空白になっています。 そこで、先程MySQLで設定したものを記入していきます。 config/database.yml default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: <設定したユーザー名> password: <設定したパスワード> socket: /tmp/mysql.sock development: <<: *default database: アプリ名_development test: <<: *default database: アプリ名_test production: <<: *default database: アプリ名_production username: アプリ名 password: <%= ENV['アプリ名_DATABASE_PASSWORD'] %> 設定するusernameとpasswordですが、 セキュリティ上、root権限で開発作業を行うのは望ましくないので、 後には、新規ユーザーを作った方が良いかもしれません。 MySQLの新規ユーザー設定は、下記記事を参考にさせて頂きました。 @reeenapi さん、ありがとうございました。 ■RailsのDBを(初めから| |後から)MySQLに変更する ここで、railsにDBを作成しておきます。 rails db:create 【下記は、必要に応じて導入してみてください。】 ・rubyのコード解析ツール(rubocop) rubocop導入には、下記記事が参考にさせて頂きました。 @d0ne1s さん、ありがとうございました。 ■VSCodeでRubocopを使う もし、新しくコード解析ツールなどのgemを書いていればバンドルを起動しておきます。 bundle install これでMySQLのインストールと設定が完了しました! 4.Git/GitHubの設定 ここからは、変更履歴を残すGit/GitHubの設定をしていきます。 Gitがインストールされているか、念のため、確認します。 (railsでは標準で搭載されていたはずです) git --version まず、Gitの設定(名前)をします。 git config --global user.name "名前" 続いて、Gitの設定(メールアドレス)をします。 git config --global user.email Eメールアドレス 任意で、Gitのパスワードを1日(86,400秒)保持する設定します。 git config --global credential.helper "cache --timeout=86400" 一旦、Gitの設定状況を確認します。 git config -l railsアプリケーションのディレクトリに移動しておきます。 cd <アプリ名> ここで、Gitの初期化を行う。 (.gitファイルが生成されて記録が残る) git init .gitファイルが存在することを、念のため、確認します。 (ls:現ディレクトリ内のファイル一覧を表示, -a:隠しファイルも含める) ls -a gitの現況を確認します。 (未add・未commitの状態を把握) git status 新規作成および変更を加えた全ファイルをgitのステージングエリアへ追加します。 git add -A ステージングエリアの変更分に問題がなければ、コミットします。 (-mでメッセージ付ける) git commit -m "メッセージ" これまでのcommit履歴を表示します。 (オプションの--onelineは1行表示) git log (--oneline) ■GitHub公式ページ(まず、こちらでリポジトリを作成する) 上記URLからリポジトリを作成後、GitHubと現在のGitのリポジトリを紐付けます。 git remote add origin https://github.com/GitHubアカウント名/アプリ名.git Git commitで変更したファイルをGitHubへpushします。 git push -u origin master これで、Git/GitHubの設定が完了です! 5.Herokuの設定からデプロイまで herokuに関しては、下記記事の一部を実行しています。 @murakami-mm さん、ありがとうございました。 ■Herokuへのデプロイ方法【Heroku+Rails+MySQL】 まず、herokuのインストールします。 ■heroku公式ページ(参考) brew tap heroku/brew && brew install heroku いつものように、herokuがインストールできているかの確認します。 heroku -v インストールできていれば、herokuサーバにアプリケーションを作成します。 heroku apps:create アプリ名 作成したアプリに、MySQLベースのClearDBというデータベースを適用させます。 無料ですが、容量が5MBです。詳細は下記にあります。 ■heroku(ClearDB概要) heroku addons:create cleardb:ignite 次は、設定のためにClearDBのURLを確認します。 heroku config 〜〜実行結果〜〜 === アプリ名 Config Vars CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true そして、上記で取得したURLを参考にして、各種設定をしていきます。 heroku config:add DB_NAME='<データベース名>' heroku config:add DB_USERNAME='<ユーザー名>' heroku config:add DB_PASSWORD='<パスワード>' heroku config:add DB_HOSTNAME='<ホスト名>' heroku config:add DB_PORT='3306' heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true' 再度、設定確認のコマンドを打って、ちゃんと設定できているか確認します。 heroku config 最後に、ローカルリポジトリの内容をherokuへpushします。 git push heroku master git push Heroku masterコマンドを打つと、返答メッセージの文末あたりに 自分が作ったWEBアプリのURLが参照されます。 そのURLをクリックして、本番環境(heroku)でアプリが起動できているか確認してみてください!! 終わりに Qiita記事を中心に情報収集しながら、はじめて環境構築をした内容をまとめました。 現在、railsで新規アプリを実装していますが、毎日エラーと戦ってます。笑 今後は、学習内容のアウトプットのために、投稿記事を増やせればと思っています。 拙い文章でしたが、最後までお読みいただき、ありがとうございました!!!!! それでは、また。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む