サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
akishin.hatenablog.jp
手元の CentOS 7 に Markdown で書ける Wiki「Crowi」をインストールしてみました。 Crowi http://site.crowi.wiki/ crowi/crowi: Crowi - Wiki https://github.com/crowi/crowi Node.js のインストール Crowi は Node.js 製なので、まずは Node.js をインストールします。 Github の Dependencies に「Node.js (4.x)」とあったので 4 系を入れました。 nodesource の yum リポジトリを追加します。 # curl -sL https://rpm.nodesource.com/setup_4.x | bash - Node.js をインストールします。 また、 native addon 用にビルド用ツールもインストールし
普段使っている tmux のバージョンが環境毎に違うので、.tmux.conf 内で tmux のバージョンに応じて設定を切り替える方法を調べたのでメモ。 手元の Ubuntu 14.04 では tmux 1.8、Mac の方は 2.1 なのですが、以下のように設定したら同じ .tmux.conf でどちらのバージョンでも new-window 時にパスが引き継がれるようになりました。 ちなみに shell はどちらの環境でも zsh を使っています。 # for tmux 1.9 or higher if-shell "[[ `tmux -V` == *1.9* ]] || [[ `tmux -V` == *2.* ]]" \ 'unbind c; bind c new-window -c "#{pane_current_path}"' 参考 coderwall.com : establ
会社で使っている Qiita Team に投稿した記事を画像ファイルも一緒にエクスポートしたくて書いたスクリプトがあったのですが、せっかくなのでコードを整理して gem にして公開してみました。 https://rubygems.org/gems/qiita-export 以下でインストールできます。 % gem install qiita-export 使い方は以下のような感じです。 # 普通の Qiita の方の記事 % qiita-export -Uakishin -i -o ./outputdir # team の記事 % qiita-export -texample -Uakishin -i -a <API Token> -o ./outputdir ついでに Mac 版 Kobito の SQLite からエクスポートできる機能もつけてみました。 % qiita-export
Nginx に URI エンコード&デコードや Base64 エンコード&デコードなどの機能を追加する ngx_set_misc モジュールを組み込んだ RPM を作成してみたのでメモ。 Set Misc | NGINX http://mogile.web.fc2.com/nginx_wiki/modules/set_misc.html openresty/set-misc-nginx-module https://github.com/openresty/set-misc-nginx-module 素直に OpenResty 使えば?という声が聞こえてきそうな気もしますが、ここでは敢えて公式の SRPM に組み込んでみました。 環境は CentOS 7.1 x86_64 です。 # cat /etc/redhat-release CentOS Linux release 7.1.1503
最近 Capistrano3 を触っていてハマったので忘れないようにメモ。 昨日身に染みて分かったんですが、Capistrano での 「role: :db」って「RDBMS が動作しているサーバ」ではなく、あくまで「rake db:migrate を実行するサーバ」に対して指定するためのロールだったんですね。 Capistrano3 を使っていて、最初以下のような server 指定を書いていました。 server '192.0.2.1', user: 'vagrant', roles: %w{web app} server '192.0.2.2', user: 'vagrant', roles: %w{web app} server '192.0.2.3', user: 'vagrant', roles: :db, no_release: true # DBサーバを指定 「role:
久々の更新。 MySQL の特定のテーブルのデータ変更を検知して実行したい処理があったので、トリガを使ってなんとか出来ないか調べてみました。 system 関数を使う 最初 system 関数(\!) を使ってできそうな以下の記事を見つけました。 MySQL :: Re: Can triggers call SYSTEM? http://forums.mysql.com/read.php?99,170973,236208#msg-236208 が、mysql client 上からは上手く動くものの、アプリからの DB 変更に反応してくれず・・・。 ちょっと調べてみると以下のような記事がありました。 Using the following DOES NOT work! \! /bin/ls >> /log/yourlog.txt The !\ (bang or exclamation poi
テンプレートを自分で作るのがどうにも面倒に感じてなかなか手を出せずにいた Packer ですが、調べてみたら結構テンプレートを公開してくれている方がいるようです。 misheska/basebox-packer https://github.com/misheska/basebox-packer shiguredo/packer-templates https://github.com/shiguredo/packer-templates hnakamur/my-packer-template-files https://github.com/hnakamur/my-packer-template-files nickchappell/packer-templates https://github.com/nickchappell/packer-templates という訳で今更ながら試し
以前試した Packer 用のテンプレート misheska/basebox-packer が Box-Cutter に移動してしまい、若干使い方も変わったようなので試してみました。 packer 自体のインストールは割愛。 Box-Cutter https://github.com/box-cutter 上記の Organization アカウントの下にディストリビューション毎にプロジェクトが作成されているので、必要なものを clone します。 ここでは CentOS 用のプロジェクトを clone しました。 % git clone https://github.com/box-cutter/centos-vm.git 作成したいバージョンの json ファイルを編集します。 ファイル名で大体どれを弄ればいいかは分かるはず。 % cd centos-vm % vim centos65
商用サービスもあるオープンソースのイベントログ収集ツール Sentry をインストールしてみたのでメモ。 getsentry/sentry https://github.com/getsentry/sentry Airbrake やオープンソースの Errbit 辺りと同じ系統のサービスな感じです。 インストールした環境は CentOS 6.5 x86_64 です。 MySQL のインストール まずは MySQL をインストール。 5.1 で試したら途中 sentry upgrade 実行時にエラーになったので、公式リポジトリから 5.6 を入れました。 yum リポジトリを追加してインストール。 # yum install -y http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm # yum install
MySQL の Sharding 用ストレージエンジンである Spider を試してみました。 公式のバイナリに同梱されている MariaDB 10.0.10 を使っています。 試した環境は CentOS 6.5 x86_64 です。 MariaDB のインストール まずは MariaDB をインストールするために、yum リポジトリ定義ファイルを作成します。 # vi /etc/yum.repos.d/mariadb.repo 内容は以下。 # MariaDB 10.0 CentOS repository list - created 2014-04-02 07:21 UTC # http://mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.0/c
Rails の generator でマイグレーションファイルを生成する時に、カラムのサイズやインデックス追加を指定する事が出来るんですね。 恥ずかしながら今日まで知りませんでした。 例えば以下のような感じで生成すると % bundle exec rails g scaffold note title:string{10}:uniq content:text:index state:integer{2} deleted_at:datetime lock_version:integer 以下のようなマイグレーションファイルが作成されます。 class CreateNotes < ActiveRecord::Migration def change create_table :notes do |t| t.string :title, limit: 10 t.text :content t.i
前回インストールした Sentry に Ruby からイベントを登録してみます。 Ruby から Sentry を使うには、プロジェクトの設定画面の Ruby のところにも書いてあるように sentry-raven という gem を使います。 getsentry/raven-ruby https://github.com/getsentry/raven-ruby インストール gem から入れる場合は以下。 # gem install sentry-raven --no-rdoc --no-ri bundler から入れる場合は Gemfile を作成。 # bundle init # vi Gemfile 以下を追記します。 gem "sentry-raven" bundle install します。 # bundle install Ruby から使う 以下のような Ruby コード
自宅の LAN 内に GitLab サーバを立てたので、古い git リポジトリとかを移行しました。 またそのうちやるかも知れないので備忘録としてメモしておきます。 移行先リポジトリの作成 まずは GitLab 上に移行先となるリポジトリを作成しておきます。 リモートリポジトリの変更 ローカルに clone してあった移行対象リポジトリの参照先リモートリポジトリを確認。 >cd example >git remote -v origin ssh://[email protected]/usr/local/git/example.git (fetch) origin ssh://[email protected]/usr/local/git/example.git (push) 現在は旧リモートリポジトリを参照しているので、参照先を削除します。 >git remote rm origin >
タイトル通りですが、ちょっと古いコードの検証環境が欲しかったので、開発環境として使用している Ubuntu に rbenv で Ruby の 1.8.6 系をインストールしようとしたところ、予想外にハマって時間を取られたのでまとめておきます。 環境は Ubuntu 12.10(32bit)、rbenv 0.4.0-37-g7a10b64 で、 Ruby 1.9 や Ruby 2.0 が導入済みでした。 まずは普通にインストールを試してみます。 % rbenv install 1.8.6-p383 Downloading ruby-1.8.6-p383.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/4f49544d4a4d0d34e9d86c41e853db2e Installing ruby-1.8.6-p383... BUILD FAI
Vagrant 1.4.0 で追加された Docker provisioner などを試してみたいと思い、勇んでアップデートしてみたところ vagrant up でエラー。 ・ ・ ・ [default] Configuring and enabling network interfaces... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! /sbin/ifdown eth1 2> /dev/null Stdout from the command: Stderr from the command: どうも CentOS などの Redhat 系 OS を使っている場合に private_network
Docker がバージョン 0.7 から RedHat 系 OS に正式に対応した、という事なのでインストールして軽く触ってみました。 Requirements and Installation on Red Hat Enterprise Linux / CentOS - Docker Documentation http://docs.docker.io/en/latest/installation/rhel/ 試した OS は手元にあった CentOS 6.4 x86_64 です。 インストールといっても公式の手順にもある通り EPEL で入れられるようになったので、yum リポジトリを追加して入れるだけです。 まずは EPEL リポジトリを使えるようにします。 # rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KE
Veewee による Vagrant の Box 作成環境構築 Windows 版 その1 の続きになります。 前回構築した環境を使って、Veewee で実際に Box を作成していきます。 Box の作成 まずは以下を実行して Veewee が対応している box のテンプレートを表示します。 >bundle exec veewee vbox templates沢山出てきて見づらい場合は以下のページでも確認できます。 https://github.com/jedi4ever/veewee/tree/master/templates テンプレートを選んだら、選んだテンプレートの名前を指定して veewee vbox define を実行します。 ここでは「CentOS-6.4-x86_64-minimal」を使用して「centos64」という名前の box の雛形を作成しました。 >bun
CentOS 6.5 が出たみたいです。 RHEL 6.5互換となるLinuxディストリビューション「CentOS 6.5」リリース | SourceForge.JP Magazine http://sourceforge.jp/magazine/13/12/04/143000 Manuals/ReleaseNotes/CentOS6.5 - CentOS Wiki http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.5#head-d5e02cc120fd27486bb7812c28802604b89e1943 というわけで手元の環境をアップグレードしました。 いつもの通り重要なファイルのみバックアップしてからこんな感じで。 # yum clean all # yum -y upgrade しばらく待って、終わったら再起動。 # rebo
ファイルやディレクトリのパーミッションを確認したい場合、ls コマンドではアルファベットでしか確認できませんが、stat コマンドを使う事で8進数表記でパーミッションを確認することが出来ます。 % stat -c %a /home/akishin 755 % stat -c %a /tmp 1777 自分も serverspec の結果を見ていて最近知りました。 パーミッションを数値で指定する必要がある場合など、とっさに出て来なかったりする事がわりとよくあるので嬉しいです。 ちなみに、パーミッション繋がりという事で、以下の「Unix Permissions Calculator」というサービスも結構便利に使わせて頂いてます。 Unix Permissions by Project Fondue http://permissions-calculator.org/ 本当はこれくらいちゃんと覚
MySQL yum repositories | MySQL Server Blog http://mysqlserverteam.com/mysql-yum-repositories/ こちらの記事で公式の yum リポジトリが公開されたのを見かけたので早速使ってみました。 OS は CentOS 6.4 x86_64 です。 リポジトリの追加 まずは yum リポジトリを追加します。 以下から環境に合わせた rpm をダウンロード。 MySQL :: Download MySQL Yum Repository http://dev.mysql.com/downloads/repo/ Red Hat/Oracle Enterprise Linux 6 用、Fedora 18 用、Fedora 19 用のリンクがありました。 ここでは直接 yum に URL を指定してインストール。 #
ファイルシステムの操作に関連するクラスのモックオブジェクトを提供するライブラリ「FakeFS」を使ってみたので、使い方をメモしておきます。 defunkt/fakefs https://github.com/defunkt/fakefs インストール % gem install fakefs --no-rdoc --no-ri Rails を使う場合は Gemfile に以下のように追加します。 group :test do gem 'fakefs', :require => "fakefs/safe" end 使ってみる FakeFS を require すると以下のクラスが FakeFS が提供するクラスに差替えられます。 File FileTest FileUtils Dir Pathname そのため、これらのクラスを使用してファイルシステムにアクセスするコードを、実際のファイルシ
情けない事にいつまで経っても英語は苦手なままなのですが、プログラマたるもの、自分のプログラム内できちんとした名前を付けるためには避けて通る事は出来ません。 とはいえ、毎回毎回 Web で検索するのにも疲れてきたので、 Vim で英語を書いたり調べたりするのに便利そうなプラグインを探してインストール、設定してみました。 ref.vim まずは Web 上の辞書サイトなどを Vim から引けるようにするため、ref.vim を導入します。 thinca/vim-ref https://github.com/thinca/vim-ref Web 上の辞書を引くためには ref.vim に含まれる ref-webdict を使うのですが、そのためにはテキストブラウザが必要になります。 ref-webdict では以下のテキストブラウザに対応しているようです。 elinks w3m links ly
vim のステータスライン用のプラグインを vim-powerline から lightline.vim に変更してみました。 ついでにフォントも Ricty に powerline 用パッチを当てたものに変更したのでやり方をメモ。 作業環境は Ubuntu 13.04 32bit です。 Ricty をビルドする Ricty はライセンスの関係で TrueType フォント形式では配布されておらず、生成スクリプトのみが公開されている状態なので、まずはフォントをビルド。 fontforge をインストール。 % sudo apt-get install fontforge Inconsolata の OpenType file をダウンロード。 % wget http://levien.com/type/myfonts/Inconsolata.otf Migu 1M をダウンロード。 Mi
Rails アプリケーション開発中に、ローカル環境で Passenger + production モードの確認を簡単に出来るようにしたかった事もあり、試しに Capistrano でデプロイできるようにしてみました。 Apache、Ruby、Passenger 辺りはインストール・設定済みとします。 また、Rails は 3.2.13 で確認しました。 まずはアプリケーションをデプロイする先のルートディレクトリを作成します。 この下にアプリケーション名のディレクトリが作成されます。 % sudo mkdir /var/apps % sudo chown -R deployuser:deployuser /var/apps Bundler、Capistrano をインストールします。 % gem install bundler capistrano capistrano_colors rb
CentOS を 5.9 へアップグレードしたので、ついでに Apache も 2.2 系最新バージョンである 2.2.23 にアップデートした際のメモです。 最初は自前で RPM を作成しようと思っていたのですが、いざ始めてみると libuuid-devel 辺りの依存関係の解決が結構面倒くさそうだったので、結局今回は CentALT リポジトリを利用させて貰いました。 まずは CentALT リポジトリを追加します。 # rpm --import http://centos.alt.ru/pub/repository/centos/RPM-GPG-KEY-CentALT # rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm 追加したらリポジトリ設定ファイルを編集。
Ansible はデフォルトではリモートのホストに入っている標準の python を使用します。 これを virtualenv 環境など、標準のパス以外の場所の python を使いたい場合には、ansible_python_interpreter 変数で python インタプリタのパスを指定するようです。 List of Behavioral Inventory Parameters http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters vars: ansible_python_interpreter="/root/python-venv/bin/python" ただ、手元の CentOS 6.4 環境で、この方法で virtualenv 環
when による条件分岐について調べたのでまとめておきます。 host の情報や他のコマンドの実行結果の値により実行する task を定義する事が出来ます。 task を実行するための条件は when 句で指定します。 when 句では変数を指定できるので、例えば --extra-vars を使用して以下のように外部から実行条件を指定する事ができます。 when.yml --- - user: root hosts: all tasks: - name: install mlocate yum: name=mlocate state=installed when: install == "y" when 句での変数の参照には ${} や {{}} は付けない事に注意。 実行時には以下のように変数 install の値を渡します。 「y」以外の値を渡すと task の実行が skip される
ansible で設定ファイル内の文字列を置換したかったので、 lineinfile モジュールを試してみました。 lineinfile http://www.ansibleworks.com/docs/modules.html#lineinfile 対象サーバに以下のようなファイルを用意。 /tmp/test.conf foo bar baz bar bar bar foo このファイル内の文字列を置換してみます。 以下のような Playbook を作成しました。 lineinfile.yml - hosts: all user: root vars: target_file: /tmp/test.conf tasks: - name: lineinfile example task lineinfile: dest=${target_file} state=present regexp
GitLab 6.0 がリリースされました。 グループ機能を強化した「GitLab 6.0」リリース、有償版の提供も開始 http://sourceforge.jp/magazine/13/08/23/140000 Fork したプロジェクトからオリジナルへの MergeRequest が可能になるなど、より GitHub に近付いた感じですね。 というわけで早速前回インストールした 5.4 を 6.0 にアップデートしてみました。 基本的には以下のドキュメントに従って作業をしていきます。 gitlabhq/doc/update/5.4-to-6.0.md https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/5.4-to-6.0.md バックアップ まずは現在のデータのバックアップを行います。 # cd /home/git
次のページ
このページを最初にブックマークしてみませんか?
『akishin999の日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く