tech.log

memo.txt

ドメインが変わったときのGitlabの設定変更

使ってたドメインの1個が先日失効したのだけれどまあ特に困らんやろと思って更新しなかったのだけれどそれはgitlabで使ってたドメインでgitlabがVPS上で孤立してしまったので別のドメインに変えましたよって話。

UbuntuにGitLabをインストール - tech.log

導入時の流れをブログに残しておいて本当によかった。 記事を読めば手順はわかるんだけど、一応やったことをメモしておく。

gitlab.yml <- ドメインの書き換え(2個gitlab.ymlあった)

sudo /etc/init.d/gitlab restart <- gitlab再起動

/etc/nginx/conf.d/gitlab.conf <- ドメインの書き換え

sudo nginx -s stop

sudo nginx <- Nginx再起動

これでドメイン変わった。生き返った。

ローカルにある個々のリポジトリのリモートも変えなきゃいけないけどそれは適宜やります

Macのスクリーンショットのファイル名、保存先変更

OSX 10.8.5にて確認

保存先の変更

$ defaults write com.apple.screencapture location /path/to/dir

ファイル名の変更

$ defaults write com.apple.screencapture name "prefix"

※ ファイル名は、指定した文字列+日付時刻 になる

反映させるために

$ sudo killall SystemUIServer

僕は

$ defaults write com.apple.screencapture location ~/Dropbox/screenshots
$ defaults write com.apple.screencapture name ""

にしました。名前は頭に「スクリーンショット」とか付けられても邪魔なだけなので日付だけに。

f:id:hirayummy:20131117120635p:plain

見やすくてgood

UbuntuにGitLabをインストール

UbuntuにGitLabをインスコ

Gitやりましょう

参考

Ubuntu 12.04.2 LTSにGitLab5.2をインストール

Ubuntu 12.04 に GitLab 5.2 と Redmine 2.3 を構築

インストール

まんま参考URLに則ってやってみる

  • パッケージを最新に更新
$ sudo apt-get update
$ sudo apt-get upgrade
  • 依存パッケージをインストール
$ sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev postfix
  • Ruby 1.9系をインストール
$ sudo apt-get install ruby1.9.1
    ...
$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

1.9.1なの?1.9.3なの?

  • Gitユーザを追加
$ sudo adduser --disabled-login --gecos 'GitLab' git

ちなみに --gecos はそのユーザの本名のフィールドらしい

ここからは作ったgit用アカウントで作業する

$ sudo su git
$ cd
  • gitlab-shellをインストール
$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd
$ cd gitlab-shell/
$ git checkout -b v1.4.0 v1.4.0
Switched to a new branch 'v1.4.0'
$ cp  config.yml.example config.yml
$ vim config.yml         // <- ドメインを変更
$ ./bin/install
  • gitlabをインストール
$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ git checkout -b v5.2.1 v5.2.1
$ cp config/gitlab.yml{.example,}   // <- この書き方初めて知った
$ vim config/gitlab.yml         // <- ドメイン変更
$ chown -R git log/
$ chown -R git tmp/
$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ mkdir public/uploads/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/
$ chmod -R u+rwX public/uploads/
$ cp config/puma.rb{.example,}
$ git config --global user.name 'GitLab'
$ git config --global user.email 'gitlab@localhost'
$ cp config/database.yml{.mysql,}
$ mysql -u root -p
mysql> create user 'gitlab'@'localhost' identified by '********';
mysql> create database if not exists `gitlabhq_production` default character set `utf8` collate `utf8_unicode_ci`;
mysql> grant select , lock tables , insert , update , delete , create , drop , index , alter on `gitlabhq_production`.*  to 'gitlab'@'localhost';
mysql> exit;

そしてdatabase.ymlに追加したアカウント情報を書く

  • 接続チェック
$ mysql -u gitlab -p -D gitlabhq_production
  • gemから必要なものをインストール
$ sudo gem install charlock_holmes --version '0.6.9.4'
Building native extensions.  This could take a while...
ERROR:  Error installing charlock_holmes:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/charlock_holmes-0.6.9.4 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/gem_make.out

んw

mkmfってruby-devに入ってるらしい

$ sudo apt-get install ruby-dev
$ sudo gem install charlock_holmes --version '0.6.9.4'
Building native extensions.  This could take a while...
ERROR:  Error installing charlock_holmes:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/charlock_holmes-0.6.9.4 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/gem_make.out

んんw

ruby1.9.1-devらしいです

$ sudo apt-get install ruby1.9.1-dev
$ sudo gem install charlock_holmes --version '0.6.9.4'
Building native extensions.  This could take a while...
Successfully installed charlock_holmes-0.6.9.4
1 gem installed

入った。 次でまたひっかかる。

$ sudo bundle install --deployment --without development test postgres

mysql2のインストールでこけている。ググった結果

Ubuntuでmysql2 gemが入らない。

$ sudo apt-get install libmysqld-dev 
$ sudo gem install mysql2 -v '0.3.11'
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.11
1 gem installed

mysql2入った。

改めて。

$ sudo bundle install --deployment --without development test postgres

通った。

$ sudo bundle exec rake gitlab:setup RAILS_ENV=production
    ...
    
Administrator account created:

login.........admin@local.host
password......5iveL!fe
  • 起動スクリプトの設置
$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo chmod +x /etc/init.d/gitlab
$ sudo update-rc.d gitlab defaults 21
  • 起動
$ sudo /etc/init.d/gitlab start

起動は出来たみたい。

上の方の設定ファイルでgit.0q0.bizに設定してあったからブラウザからアクセスしてみるもそんなドメイン見つからんてChromeに怒られてしまった。

3分くらい悩んでから、サブドメインの設定してないことに気づいてお名前.comにて設定をした。

だいぶ待っても反映されなかったので一旦就寝。

翌日。 ブラウザでアクセスすると、"Welcome to nginx!"の表示。

gitlab/lib/support/nginx/gitlabを/etc/nginx/conf.d/gitlabにコピーしたけど、nginx.confでは.confのついたファイルを読み込む設定だったので読み込まれていなかった。

$ sudo mv /etc/nginx/conf.d/gitlab /etc/nginx/conf.d/gitlab.conf

これでアクセスすると502エラーが出たけど、gitlabが起動してないだけだったので起動したら繋がった。

gitlabのAdministratorの初期アカウントは

admin@local.host
5iveL!fe

とりあえずパスワードだけ長めに変更。

ユーザー追加は右上の"Admin area"から"New user"。

いろいろつっかかりまくったのでメモ。

コカコーラ バニラ 飲んでみたよ

冷凍プリンしたくてファミマに行ったら見つけたので買ってみた

※ 10年前の商品の復刻版みたいですね。9歳の僕は飲まなかったようです。

ありか無しかで言うと、個人的にはありでした。

JavaScriptでリッチっぽいグラフ書きたいから書いた

highcharts.js

http://www.highcharts.com/

公式のデモとかドキュメントを参考に簡単なラインチャートを作ってみます。

まずはhead内に。DLして配置しなくても使わせてくれるからナイス。

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>

次にグラフを置きたいところにdivを置いておく。

   <div id="linechart" style="width:500px ; height:500px"></div>

そして、jQuery

jQueryよくわかんないけど、とりあえず書いてみます。 データは適当です。

 $(function() {
        $('#linechart').highcharts({
          chart: {
            type: 'line'
          },
          title: {
            text: 'Highcharts Demo'
          },
          subtitle: {
            text: 'Subtitle'
          },
          xAxis: {
          },
          yAxis: {
            title: {
              text: "Number of View"
            }
          },
          series: [
          {
            name: '2013',
            data: [
            [0,4],
            [1,5],
            [2,9],
            [3,2],
            [4,3],
            [5,7],
            [6,11],
            [7,6],
            [8,10],
            [9,9],
            [10,12],
            ]
          },
          {
            name: '2012',
            data: [
            [0,2],
            [1.4,8],
            [2.5,6],
            [3.2,5],
            [4.6,5],
            [5.4,8],
            [6.1,10],
            [7.7,9],
            [8.6,11],
            [9.1,6],
            [10.4,9],
            ]
          },
          ]
        })
      });

ブラウザから見た結果(画像クリックでHTMLページに移動します)

f:id:hirayummy:20130722002016p:plain

アニメーションもしてくれるので難しいコードを書かずともリッチっぽい図やグラフを使えて捗る。

とりあえずラインチャートだけ使いたかったから簡単にまとめました。

Twitter API 1.0の廃止でNet::Twitter::Liteが使えなくなりました

ずっと前から1.0止めるよ止めるよって言われてたけど結局ずるずる対応を先延ばしにした結果、ついに先日の1.0廃止に伴って動かしてたbotなどが一斉に止まってしまったので対応しました。

とは言っても、既にNet::Twitter::LiteのAPI 1.1対応版がCPANにあるので、インストールしてプログラムを少し書き換えるだけ。

Net::Twitter::Lite - search.cpan.org によると

You probably want Net::Twitter::Lite::WithAPIv1_1 which has support for Twitter API v1.1. If you're using a service with an API compatible with Twitter's deprecated API v1, then you're in the right place.

つまり「API1.0を使ってるなら、1.1に対応したNet::Twitter::Lite::WithAPI1_1を使ってね」ということらしい。

ちなみにbotが動かなくなってからずっと、ツイート送信に対して410エラーが返されていた。
Wikipediaによると、ステータスコード410 Goneとは、

消滅した。ファイルは恒久的に移動した。どこに行ったかもわからない。
404 Not Foundと似ているが、こちらは二度と復活しない場合に示される。

Goneつまりもう去ってしまってここには戻らないということ。

どうでもいいけど、410 Goneって字面でなんとなく心がザワザワして不安になる感じ分かる人はいらっしゃるだろうか。