20210915のMacに関する記事は4件です。

VagrantでRuby on Railsの開発環境構築をしたメモ

はじめに Railsをいじったことが少しありますが、改めて勉強し直したいと思い、Railsチュートリアルをやろうとするも、開発環境構築でかなり苦戦したので、自分用のリンクメモです。先人の皆様ありがとうございます‥! もっと良い方法など教えていただけると嬉しいです 環境 macOS Catalina 10.15.7 VirtualBox 6.1 Vagrant 2.2.18 Ubuntu 18.04 Ruby 2.6.8 Ruby on Rails 6.0.3 rbenv 1.1.2-2-g4e92322 全体像 この辺の図でやることのイメージがつきました。 VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編)に載っています。 やったこと 1. VirtualBoxとVagrantのインストール 公式サイトからソフトウェアをインストール VirtualBox Vagrant 2. 作業フォルダの作成 ディレクトリ名は任意 自分の場合は{User名}配下に作成 $ mkdir Vagrant $ cd Vagrant $ mkdir rails_dev 3. Vagrantfileの作成 作業フォルダでVagrantfile作成する $ vagrant init bento/ubuntu-18.04 4. Vagrantfileの修正 修正ポイント①(31行目) ポートはrails仕様で3000番ポートが使用されるため、仮想環境の3000番ポートをローカルPCの3000番ポートに転送(ポートフォワード)を行う 修正ポイント②(35行目) ホスト側(Mac)から見れるようにIPアドレスの開放を行う 修正ポイント③(46行目) 前提として、Vagrantはホスト、ゲスト間でファイルを同期できる ホスト側で好みのエディタで作業できるように、ゲスト側の作業ディレクトリと同期する設定を行う <ホスト側(Mac)の相対パス> <ゲスト側(Ubuntu)の絶対パス> となることに注意 Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. config.vm.box = "bento/ubuntu-18.04" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # NOTE: This will enable public access to the opened port # config.vm.network "forwarded_port", guest: 80, host: 8080 # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine and only allow access # via 127.0.0.1 to disable public access config.vm.network "forwarded_port", guest: 3000, host: 3000 # Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder "./work", "/home/vagrant/work", create: "true" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # # config.vm.provider "virtualbox" do |vb| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # # Customize the amount of memory on the VM: # vb.memory = "1024" # end # # View the documentation for the provider you are using for more # information on available options. # Enable provisioning with a shell script. Additional provisioners such as # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline: <<-SHELL # apt-get update # apt-get install -y apache2 # SHELL end 5. Vagrantを起動、接続する 起動して、接続します $ vagrant up $ vagrant ssh 6. Ruby on Railsのインストール versionやファイル名は変えましたが、下記サイトの「動作確認用の新規アプリケーションの作成」までを踏襲しました。 Vagrantの共有フォルダ設定ができていれば、rails newを実施すると、ホスト側(Mac)のディレクトリにRailsファイルができています 7. Gemfileの修正 Railsチュートリアルの「1.3.1 Bundler」以降をたどりました 8. rails serverの実施 ゲスト側(Ubuntu)で下記実施して、http://localhost:3000/にアクセスできると思います $ bundle exec rails s -b 0.0.0.0 99. エラーが出たら ひたすらエラーメッセージでググりましょう、、、ググっているうちに分かることも多いです リンク 流れの全体感 【環境構築】Ruby on Rails 6 開発環境を1時間以内に手に入れる VagrantでRailsのローカル開発環境構築する VagrantでRuby On Rails開発環境を構築~デプロイ Vagrant周り(Vagrantfileの修正内容など) [Rails][Vagrant]Vagrantの rails server で起動しているアプリケーションにローカルPCからブラウザアクセスする VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編) Vagrantで共有フォルダ設定(ファイル共有)する方法【VirtualBox】 vagrant upしようとすると「To fix this, modify your current project’s Vagrantfile to use another port. Example, where ‘1234’ would be replaced by a unique host port:」というエラーがでる。 Rails周り 【Rails 6.0.0.rc2】rails s したら RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment Exiting で怒られた。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Eclipseで「公開が複数のエラーで失敗しました」が消えない

はじめに Eclipseで実行時に「公開が複数のエラーで失敗しました」のエラーが発生し、実行できなかったため解決方法を残します! 方法 ■結論:Tomcatのクリーンを実施することで解決。 サーバータブにあるTomcat上で右クリック(サーバータブが表示されていない場合は、ウインドウ≫ビューの表示≫その他...≫「サーバー」と入力してEnter≫「サーバー」を選択して「開く」をクリック) 「クリーン...」をクリック 「クリーンを実行するとすべての公開状態および破棄され、初めから再公開されます。公開されたすべてのリソースをクリーンしますか?」が表示されたら「OK」をクリック DONE まとめ すべての場合に適用されるかは不明ですが、今回の場合はこの方法で解決しました!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

brewでインストール済のローカルMySQL5.7にログインしたらエラー「ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)」が出て、パスワード変更したら無事ログインできた

タイトルの通りです。 背景 HomebrewでMySQL5.7インストール済 rootユーザーでログインできなくなった(以前はできていた) パスワードを変更してみよう 変更前と同じDBがあるか確認もできました 環境 MacOS Bigsur(Ver 11.4) Homebrew 3.2.10 MySQL 5.7.34(Ver 14.14) 手順 rootユーザーログインエラー $ mysql -u root -p #エラー ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) mysqlをストップする $ brew services stop mysql@5.7 Stopping `mysql@5.7`... (might take a while) ==> Successfully stopped `mysql@5.7` (label: homebrew.mxcl.mysql@5.7) mysqlのステータスを確認する $ brew services list Name Status User Plist mysql@5.7 stopped PATHを確認する $ echo $PATH ...../usr/local/opt/mysql@5.7/bin:...... #コロンで区切ってある mysqld_safeで起動(セーフモード) $ /usr/local/opt/mysql@5.7/bin/mysqld_safe --skip-grant-tables #ここで、さっき確認したPATHが必要 #以下が出力される 2021-09-15T06:02:06.6NZ mysqld_safe Logging to '/usr/local/var/mysql/MacBook-Pro.local.err'. 2021-09-15T06:02:06.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql #そのまま以下を入力 update mysql.user set authentication_string=password("新しいパスワード") where user='root'; mysql再起動 sudo mysql.server start いざ、ログイン!! 「update」で新パスワードを設定した後に、画面がなかなか変わらなかったので、ターミナルの別ウィンドウを開いていじってたら、いつの間にか「~ $」(いつもの入力画面)に戻ってました。 ~ $ mysql -u root -p さいごに 新パスワードでログインできた!!! データベースも今まで通りでした。よかった〜 パスワードは変えてないはずだし、ログインできなくなった理由が分からなくて、もやもや。。。 とりあえず今まで通りのDB接続できるので進めます。 参考 Macにbrew installしたmysql Version5.7 rootパスワードを忘れた時の対処方法
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOSのzshではこれだけはやっておこう

Homebrew を使います まだ Homebrew をインストールしていない場合はこちら: zsh % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 1. パスの設定 M1 Mac (Apple Silicon) の場合は、Homebrew 向けにパスを通しておく必要があります。 zsh # デフォルトのパスを確認 zenn@mba ~ % echo $path /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/Apple/usr/bin /Library/Frameworks/Mono.framework/Versions/Current/Commands Intel Mac であればこのままでも差し支えありませんが、Apple Silicon Mac では Homebrew のインストール先が /opt/homebrew 以下となるので、ここへパスを通しておきます。 ホームディレクトリ (/Users/ユーザー名) に .zshrc を作成します。 ~/.zshrc typeset -U path PATH path=( /opt/homebrew/bin(N-/) /opt/homebrew/sbin(N-/) /usr/bin /usr/sbin /bin /sbin /usr/local/bin(N-/) /usr/local/sbin(N-/) /Library/Apple/usr/bin ) 優先してほしい順にパスを指定していきます。 Intel Mac では /usr/local/bin と /usr/local/sbin を優先させてください。 (N-/) は、もしそのディレクトリが存在していれば PATH に追加し、そうでなければ無視してくれるオプションです。 上のパス設定を反映させるには ~/.zshrc を読み込みます。 zsh zenn@mba ~ % source ~/.zshrc 2. zsh-completions のインストール コマンド入力にバシバシ補完を効かせてくれる zsh-completions をインストールします。 zsh zenn@mba ~ % brew install zsh-completions ~ 略 ~ => Caveats To activate these completions, add the following to your .zshrc: if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit compinit fi You may also need to force rebuild `zcompdump`: rm -f ~/.zcompdump; compinit Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting to load these completions, you may need to run this: chmod -R go-w '/opt/homebrew/share/zsh' ~ 略 ~ インストール時の Caveats には、/opt/homebrew/share/zsh (Intel Mac の場合は /usr/local/share/zsh) のみを go-w せよと表示されていますが、実際には share ディレクトリそのものを chmod -R go-w する必要があります。 zsh zenn@mba ~ % chmod -R go-w /opt/homebrew/share あとは Caveats の指示にしたがって、~/.zshrc への追記と補完キャッシュファイルの再生成をおこないます。 ~/.zshrc if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit && compinit fi zsh zenn@mba ~ $ source ~/.zshrc zenn@mba ~ $ rm -f ~/.zcompdump; compinit これでコマンド入力中に Tab キーまたは Ctrl+I を打鍵するとその後の候補を補完表示してくれます。 _ はカーソル位置を表しています。 zsh % sysctl _ # <-- ここで Tab または \C-I を入力 % sysctl _ audit hw kperf machdep security vfs debug kern ktrace net user vm % sysctl hw._ # <-- ここでふたたび Tab % sysctl hw._ activecpu cpufrequency l3cachesize busfrequency cpufrequency_max logicalcpu busfrequency_max cpufrequency_min logicalcpu_max busfrequency_min cpusubfamily memsize 3. プロンプトの表示を変更 プロンプトのデフォルト値を確認します。 zsh zenn@mba ~ $ echo $PROMPT %u@%h %1~ %# これらは以下のことを意味しています。 %u: ユーザー名 %h: ホスト名 %~: カレントディレクトリ(1 はディレクトリ深度) %#: 一般ユーザーのときは %、root になったときは # を表示 カレントディレクトリの表示形式にはいくつかのバリエーションがあります。 PROMPT 機能 実際の表示 %d フルパス /Users/zenn/Downloads/myapp:% _ %~ フルパス 2 ~/Downloads/myapp:% _ %c 相対パス myapp:% _ %2c ディレクトリ深度 2 Downloads/myapp:% _ ここでは次のように設定しました。 ~/.zshrc PROMPT="%n ($(arch)):%~"$'\n'"%# " $(): カッコ内のコマンド結果を表示します "$'\n'": プロンプトが長くなってしまったので途中に改行を挿入します zsh % source ~/.zshrc zenn (arm64):~/Downloads/myapp % _ 4. コマンド実行結果のあとに空行を挿入する コマンドの実行結果が表示されたあと、すぐにプロンプトが表示されるのはやや窮屈です。 zsh zenn (arm64):~/Downloads % ls -a . .. .DS_Store .localized myapp zenn (arm64):~/Downloads % _ zsh には、bash における PROMPT_COMMAND と同等のフック関数 precmd() が用意されています。 ~/.zshrc へ以下を追記します。 ~/.zshrc add_newline() { if [[ -z $PS1_NEWLINE_LOGIN ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } precmd() { add_newline } コマンド実行後に空行が挿入されるようになりました。 zsh zenn (arm64):~/Downloads % source ~/.zshrc zenn (arm64):~/Downloads % _ 5. プロンプトへ色を付ける zsh では簡単にプロンプトへ色をつけることができます。 まず、~/.zshrc の冒頭で色を扱うモジュールを有効化し、 ~/.zshrc autoload -Uz colors && colors プロンプト内の文字列に色を指定します。 構文 %F{色の名前または色番号}hoge%f %F ~ %f に挟まれた文字列 (hoge) に指定した色が付きます。 色の名前: black, red, green, yellow, blue, magenta, cyan or white ~/.zshrc PROMPT="%F{green}%n%f %F{cyan}($(arch))%f:%F{blue}%~%f"$'\n'"%# " 色番号を調べるには以下のスクリプトを実行してみてください。 palette.sh #!/bin/sh # # 256色のカラーパレットを表示する # bash と zsh にて実行可能 # target_shell=$1 if [ -z "$1" ]; then target_shell=$(basename "$SHELL") fi if [ "$target_shell" = "bash" ]; then bash <<< 'for code in {0..255}; do echo -n "[38;05;${code}m $(printf %03d $code)"; [ $((${code} % 16)) -eq 15 ] && echo; done' elif [ "$target_shell" = "zsh" ]; then zsh <<< 'for code in {000..255}; do print -nP -- "%F{$code}$code %f"; [ $((${code} % 16)) -eq 15 ] && echo; done' else echo "error: Invalid argument ($target)" echo "Usage: $0 [bash|zsh]" fi 6. プロンプトへ Git レポジトリの状態を表示する まず、zsh-git-prompt をインストールします。 zsh % brew install zsh-git-prompt ~ 略 ~ ==> Caveats Make sure zsh-git-prompt is loaded from your .zshrc: source "/opt/homebrew/opt/zsh-git-prompt/zshrc.sh" ~ 略 ~ Caveats の指示に従い、~/.zshrc の中でスクリプトを読み込み、 ~/.zshrc source $(brew --prefix)/opt/zsh-git-prompt/zshrc.sh プロンプトの中で git_super_status 変数を展開するだけです。 ~/.zshrc PROMPT='%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f $(git_super_status)' PROMPT+=""$'\n'"%# " $(git_super_status) は '' (シングルクオート)で囲まないと機能しません。 逆に "$'\n'" は ダブルクオートが必要です。 zsh zenn (arm64):~ % source ~/.zshrc zenn (arm64):~ (:|✔) % cd ~/Downloads/zenn ~/Downloads/zenn: (main|●1) % _ Git レポジトリ以外では $(git_super_status) を表示させたくない場合 precmd() フックへ、そのディレクトリが Git レポジトリかどうか判定する関数を追加します。 ~/.zshrc git_prompt() { if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" = true ]; then PROMPT='%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f $(git_super_status)' PROMPT+=""$'\n'"%# " else PROMPT="%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f "$'\n'"%# " fi } precmd() { git_prompt add_newline } ただし、この手法ではコマンド実行ごとに関数が実行されてしまうため、それなりにコストがかかります。 7. あたらしくインストールされたコマンドを即認識させる デフォルト状態の zsh では、あたらしくインストールされたコマンドをただちに認識してはくれません。 zsh ~% brew install yarn ~% yarn --version zsh: command not found: yarn ~/.zshrc の冒頭へ以下の行を追記しましょう。 ~/.zshrc zstyle ":completion:*:commands" rehash 1 8. tarball へ macOS の特殊ファイルを含めないようにする macOS で作成した tar.gz を Windows などの他の OS で解凍すると、.DS_Store ファイルや ._ (ドットアンダーバー) ファイルなどの特殊ファイルが tarball に含まれてしまっていることがよくあります。 これを防ぐためのエイリアス関数を用意しましょう。 ~/.zshrc tgz() { env COPYFILE_DISABLE=1 tar zcvf $1 --exclude=".DS_Store" ${@:2} } 使い方: zsh ~% tgz dotfiles.tgz .zshrc .gitconfig .ssh/ a .zshrc a .gitconfig a .ssh a .ssh/id_ed25519 a .ssh/id_ed25519.pub a .ssh/config a .ssh/known_hosts ~% ls dotfiles.tgz ここまでの ~/.zshrc 全文 ~/.zshrc autoload -Uz colors && colors zstyle ":completion:*:commands" rehash 1 typeset -U path PATH path=( /opt/homebrew/bin(N-/) /opt/homebrew/sbin(N-/) /usr/bin /usr/sbin /bin /sbin /usr/local/bin(N-/) /usr/local/sbin(N-/) /Library/Apple/usr/bin ) if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit && compinit source $(brew --prefix)/opt/zsh-git-prompt/zshrc.sh fi # PROMPT="%F{green}%n%f %F{cyan}($(arch))%f:%F{blue}%~%f"$'\n'"%# " # PROMPT='%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f $(git_super_status)' # PROMPT+=""$'\n'"%# " git_prompt() { if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" = true ]; then PROMPT='%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f $(git_super_status)' PROMPT+=""$'\n'"%# " else PROMPT="%F{034}%n%f %F{036}($(arch))%f:%F{020}%~%f "$'\n'"%# " fi } add_newline() { if [[ -z $PS1_NEWLINE_LOGIN ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } precmd() { git_prompt add_newline } tgz() { env COPYFILE_DISABLE=1 tar zcvf $1 --exclude=".DS_Store" ${@:2} } 関連記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む