ponkiti's blog

主に自分用、イベント参加メモや備忘録として利用

brew services コマンドで Error: Unknown command: services というメッセージが出る

今年の前半あたりに利用した時は使えたような気がするのだけど、どうやら今はbrew servicesコマンドは使用できないようだ。

先程、古い情報で記事をポストしてしまったが、先程の記事でいう「その他」のlaunchctlを利用する方法で自動起動の設定をするしかないらしい。

参考

HomebrewでインストールしたMySQLを自動起動させる(情報が古い)

追記:brew servicesコマンドは使えないらしい。

Sequel ProでMySQLのローカル環境にアクセスしようとして、Can't connect to MySQL server on '127.0.0.1'と出るのでMySQLサーバが起動していないのは分かるけれど、毎回起動させるのが面倒だから自動起動の設定をしておくことに。

MySQLのローカル環境はたまにしか使わないため、忘れた頃にアクセスし、一瞬考えてmysql.server start実行。いい加減もっと楽をしないと。

対処法

自動起動を設定

brew services start mysql

自動起動を解除

brew services stop mysql

一覧を表示

brew services list

その他

Homebrewでインストールすると、post-installメッセージにMySQLの起動の設定方法が書いてあるらしいのだけど、過去MySQLをインストールした時のメモを確認したら、書いてあった(!)。インストール時のメッセージはちゃんと確認しておきましょう・・・。私はbrew servicesコマンドを利用した方法しか知らなかった。

Homebrewで MySQL 5.6.19 をインストールした時のpost-installメッセージ

To have launchd start mysql at login:
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
    mysql.server start

参考

Gitで fatal: remote origin already exists. というメッセージが出る場合

対処法

git remote add origin 〜を実行してfatal: remote origin already exists.が出た場合、git remote rm originでoriginを削除し、再度originを登録すればよい。

$ git remote rm origin
$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git
$ git push -u origin master

整理

git remote add origin 〜.git/configファイルに [remote "origin"] の設定を追記するコマンドなので、すでに.git/configファイルに [remote "origin"] の設定が存在する場合は、(当たり前なのだが・・・)fatal: remote origin already exists.となる。

$ cat .git/config
[core]
     repositoryformatversion = 0
     filemode = true
     bare = false
     logallrefupdates = true
[remote "origin"]
        url = ssh://git@github.com:ユーザ名/リポジトリ名.git
        fetch = +refs/heads/*:refs/remotes/origin/*

$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git
fatal: remote origin already exists.

この状態でgit remote rm originすると、.git/configファイルの [remote "origin”] の設定が削除される。

$ git remote rm origin

$ cat .git/config
[core]
     repositoryformatversion = 0
     filemode = true
     bare = false
     logallrefupdates = true

[remote "origin"] の設定を削除後にgit remote add origin 〜を実行すると、その設定が.git/configファイルに追記される。

$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git

$ cat .git/config
[core]
     repositoryformatversion = 0
     filemode = true
     bare = false
     logallrefupdates = true
[remote "origin"]
     url = git@github.com:ユーザ名/リポジトリ名.git
     fetch = +refs/heads/*:refs/remotes/origin/*

.git/configファイルにremote名(origin)やリモートレポジトリのURLが指定できていれば、git pushできる。

その他

.git/configファイルにリモートリポジトリを複数登録してある場合(下記の例では"origin"と"heroku")は、下記のように設定される。

$ cat .git/config 
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@github.com:ユーザ名/リポジトリ名.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[remote "heroku"]
    url = git@heroku.com:アプリケーション名.git
    fetch = +refs/heads/*:refs/remotes/heroku/*

リモートリポジトリの一覧を表示する。

$ git remote
heroku
origin

$ git remote -v
heroku  git@heroku.com:アプリケーション名.git (fetch)
heroku  git@heroku.com:アプリケーション名.git (push)
origin  git@github.com:ユーザ名/リポジトリ名.git (fetch)
origin  git@github.com:ユーザ名/リポジトリ名.git (push)

はてなブックマークのタグ名を編集する

タグの修正なんてたまにしかやらないだろうし、忘れそうなのでメモしておく。

今回は"ec2"を"EC2"に変更する。

1. はてなブックマークのマイページ上で、名前を変更したいタグを選択する。

f:id:pyoonn:20141029132800p:plain

2. 「<タグ> を編集」を選択する。

f:id:pyoonn:20141029133100p:plain

3. タグの編集画面が表示されるので、置換後のタグ名を入力し、「置換する」ボタンを選択する。

f:id:pyoonn:20141029133449p:plain

4. タグが変更された!

f:id:pyoonn:20141029133725p:plain

git initを取り消す

git initはカレントディレクトリをGitリポジトリに変換する。

カレントディレクトリに.gitディレクトリを作成してバージョン管理を行うので、意図とは異なるディレクトリをGitリポジトリにしてしまった場合、.gitディレクトリを削除すればよい。

$ rm -rf .git

Vagrantで立ち上げた仮想マシン(CentOS6)上で.vimrcのシンタックスハイライトが有効にならない

Vagrantを使い始めてから今の今まで、.vimrcに設定したsyntax onを有効にする方法が分からずに放置したままだった。とりあえず解決したので、その方法を書いておく。

環境

Vagrant(CentOS6)

対処方法

どうやらデフォルトではviの機能しか使えないため、vimの機能であるsyntax onはそもそも使えないらしい。なので、vimをインストールする必要がある。

[vagrant@localhost ~]$ sudo yum install vim

一度、仮想マシンからログアウトし、再起動する。 *1

[vagrant@localhost ~]$ exit

$ vagrant reload

SSH接続後、~/.vimrcファイルをviコマンドで開くと、syntax onが有効になる。

$ vagrant ssh

[vagrant@localhost ~]$ vi ~/.vimrc

これでRailsチュートリアルも捗るに違いない。そう、いい加減ソースコードが色分けされていないと見づらくて仕方がないとストレスが溜まってきたため、再度解決方法を試してみたのだ。つまった時は少し寝かせておくのがいいらしい。

*1:2014/12/17追記:Vagrantを再起動(vagrant reload)しなくても、ログイン後にSSH接続するだけでシンタックスハイライトが有効になるようだ。

複数の端末からHerokuにgit pushする

会社PCで一度Herokuにデプロイしていたが、自宅PCでローカルリポジトリのファイルを更新後、この自宅PCからHerokuにデプロイするためにgit pushしたらエラーが出た。結果的にはデプロイできたので、それまでの手順をメモしておく。

複数PC間でHerokuのある一つのアプリケーションを共有する方法について、意外と書かれていないのでデプロイするまでにかなり苦労した。

手順

もう一方のPCでも、Herokuに登録済みのメールアドレスとパスワードを設定する。

[vagrant@localhost sample_app]$ heroku login
Enter your Heroku credentials.
Email: メールアドレス
Password (typing will be hidden):
Authentication successful.

下記はうまく行かなかったケース。

[vagrant@localhost sample_app]$ git push heroku
fatal: 'heroku' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

GitHub同様、使用しているPCごとにHerokuに公開鍵を設定する必要がある。

  • ~/.sshディレクトリ直下に秘密鍵と公開鍵を作成しておくこと。
  • 標準の公開鍵名(id_rsa.pub)でない場合、heroku keys:add ~/.ssh/任意の公開鍵名と指定できる。
[vagrant@localhost sample_app]$ heroku keys:add
Found an SSH public key at /home/vagrant/.ssh/id_rsa.pub
Would you like to upload it to Heroku? [Yn] y
Uploading SSH public key /home/vagrant/.ssh/id_rsa.pub... done

複数のPCでHerokuを使えるようにするため、プラグインをインストールする。

[vagrant@localhost sample_app]$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git
Installing heroku-accounts… done

Herokuのアカウントに任意のアカウント名(今回はHomeforMac)を追加する。

[vagrant@localhost sample_app]$ heroku accounts:add HomeforMac
Enter your Heroku credentials.
Email: メールアドレス
Password (typing will be hidden):

Add the following to your ~/.ssh/config

Host heroku.HomeforMac
  HostName heroku.com
  IdentityFile /PATH/TO/PRIVATE/KEY
  IdentitiesOnly yes

プロジェクトにアカウントを設定する。設定したいプロジェクトのディレクトリでコマンドを実行すること。

[vagrant@localhost sample_app]$ heroku accounts:set HomeforMac

設定したアカウントを確認する。

[vagrant@localhost sample_app]$ git config heroku.account
HomeforMac

Herokuに登録済みのアプリケーション名(今回はrailstutorial-3-sampleapp)を指定して実行する。

[vagrant@localhost sample_app]$ heroku git:remote --app railstutorial-3-sampleapp
Git remote heroku added

git pushする。

[vagrant@localhost sample_app]$ git push heroku
(省略)
To git@heroku.com:railstutorial-3-sampleapp.git
   c5a3532..84c576b  master -> master

Herokuにデプロイできた!

参考