作成者別アーカイブ: knife0125

【R, 開発環境構築, Mac】Mac OSX LionでのR開発環境構築

R

前提

MacOSX Lion 10.7.5での開発環境構築を行っています

参考

R Official
Rjp Wiki(Rの日本語Wiki)
R でプログラミング:データの一括処理とグラフ描き

Rのインストール

HomebrewでRの処理系をインストール

    brew update
    brew install gfortran
    brew install R
    [sudo] ln -s "/usr/local/opt/r/R.framework" /Library/Frameworks

RStudioをインストール

RStudioはR用のIDE(統合開発環境)

RStudio Official

RStudioで動作を確認

RStudioサンプル画像
RStudio1

ファイル記述でhello world

左上のファイルへ以下のコードを記述

    cat('hello world')

コードを書いた部分の上部メニュー「Run」を選択 →左下のコンソールに hello world が表示される

コンソールでdemoを実行

左下のコンソール部分でもコードを即時実行できる 下記コードで、例えばgraphic描画のデモプログラムを実行でき、 描画されるグラフは右下のブロックPlotsタブに表示されたりする模様。

    demo(graphics)

とりあえずは以上のようなところかしら。

【Redmine】Redmineのインストール手順

Redmine

参考

Redmine2.3のインストール手順について http://blog.redmine.jp/articles/2_3/installation_centos/

Redmineのアップグレードについて http://redmine.jp/guide/RedmineUpgrade/

Redmineのインストール

前提

Rubyのインストールは済んでいるというのが前提 Rubyのインストールについては—–https://gist.github.com/knife0125/5312273

必要モジュール群のインストール


    # 開発ツールをグループインストール
    yum groupinstall "Development Tools"

    # RubyやPassengerのビルドに必要なツールのインストール
    yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel

    # MySQL関連のインストール
    yum install mysql-server mysql-devel

    # Apache関連のインストール
    yum install httpd httpd-devel

    # ImageMagickと日本語フォントのインストール
    yum install ImageMagick ImageMagick-devel
    yum install ipa-pgothic-fonts

Bundlerのインストール


    # bundlerのインストール
    gem install bundler

MySQLの設定


    # MySQLの文字コードの設定を編集
    cp /etc/my.cnf /etc/my.cnf.origin
    vim /etc/my.cnf
        [mysqld]
        + character-set-server=utf8

        + [mysql]
        + default-character-set=utf8

    # MySQLの起動と自動起動の設定
    service mysqld start
    chkconfig mysqld on

    # mysql_secure_installationで、MySQLインストールの初期設定を行う(Rootパスワード設定など)
    mysql_secure_installation
        Change the root password? [Y/n] Y                # 新しいパスワードを設定
        Remove anonymous users? [Y/n] Y                  # 余計なユーザを削除
        Disallow root login remotely? [Y/n] Y            # Remoteからのroot権限アクセスはセキュリティ的に禁止
        Remove test database and access to it? [Y/n] Y   # testDBは要らないので削除
        Reload privilege tables now? [Y/n] Y             # たぶんリロードしといて良い


    # MySQLの設定を確認
    mysql -u root -p
    mysql> show variables like 'character_set%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)


    # Redmine用ユーザとデータベースを作成
    mysql> CREATE DATABASE db_redmine;
    Query OK, 1 row affected (0.00 sec)

    mysql> GRANT ALL ON db_redmine.* to user_redmine identified by 'パスワード';
    Query OK, 0 rows affected (0.00 sec)

    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

Redmine本体のインストール


    # Redmineをダウンロード
    svn co http://svn.redmine.org/redmine/branches/2.3-stable /var/redmine

データベースの設定


    # データベースの設定
    cp /var/redmine/config/database.yml.example /var/redmine/config/database.yml
    vim /var/redmine/config/database.yml
        [production]
            - database: redmine
            + database: db_redmine
            - username: redmine
            + username: user_redmine
            - password: ********
            + password: [先ほどDBで設定したパスワード]

設定ファイルの作成


    # configuration.ymlの作成(configuration.yml.exampleが存在するが、不要な項目も多いので作成する)
    vim /var/redmine/config/configuration.yml
        + production:
          + email_delivery:
            + delivery_method: :smtp
            + smtp_settings:
              + address: "localhost"
              + port: 25
              + domain: 'redmine-knife0125.jp'

          + rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

必要なGemパッケージのインストール


    # Gemパッケージのインストール
    cd /var/redmine
    bundle install --without development test

    # Redmineの初期設定とデータベーステーブルの作成
    bundle exec rake generate_secret_token
    RAILS_ENV="production" bundle exec rake db:migrate

Apache, Passengerなどのインストール・設定


    # Passengerのインストール
    gem install passenger

    # PassengerのApache用モジュールのインストール
    passenger-install-apache2-module

Apacheの設定


    # Apacheの設定
    # Passengerの設定を追加
    vim /etc/httpd/conf.d/passenger.conf
        + # Passengerの基本設定。
        + # passenger-install-apache2-module --snippet を実行して表示される設定を使用
        + LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
        + PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5
        + PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p429/ruby

        + # Passengerが追加するHTTPヘッダを削除するための設定(任意)。
        + Header always unset "X-Powered-By"
        + Header always unset "X-Rack-Cache"
        + Header always unset "X-Content-Digest"
        + Header always unset "X-Runtime"

        + # 必要に応じてPassengerのチューニングのための設定を追加(任意)。
        + # 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)をご覧ください。
        + PassengerMaxPoolSize 20
        + PassengerMaxInstancesPerApp 4
        + PassengerPoolIdleTime 3600
        + PassengerHighPerformance on
        + PassengerStatThrottleRate 10
        + PassengerSpawnMethod smart
        + RailsAppSpawnerIdleTime 86400
        + PassengerMaxPreloaderIdleTime 0

    # Apacheに設定を反映
    service httpd configtest
    service httpd restart

RedmineのディレクトリをApache所有権へ


    # redmineディレクトリの所有者をApacheへ変更
    chown -R apache:apache /var/redmine

サーバアクセスをRedmineへ振り分け

今回はサーバ自体をRedmineサーバとしたため、DocumentRoot自体をredmineにする。


    # httpd.confのDocumentRootをredmineへ変更
    vim /etc/httpd/conf/httpd.conf
        - DocumentRoot "/var/www/html"
        + DocumentRoot "/var/redmine/public"
    # httpd.confの変更を反映
    service httpd configtest
    service httpd restart

Redmineへブラウザからアクセス

ブラウザからRedmineサーバへアクセス この段階で何のデータやプロジェクトも持っていないRedmineが表示されていればOK。

【DIY】PC自作

Parts_All 全パーツ

Hardcase ケースはこんな大きさ(隣はMacBookPro13inch)

Hardcase2 ケース開いたとこ

CPU1 CPU開けたとこ

CPU2 CPU出したとこ

Mother_Board マザーボード開けたとこ

CPU_Set_surubasho マザーボードのCPUセットするよ、なとこ

CPU_3 マザーボードのCPUセットしたよ、なとこ

CPU_Setted マザーボードのCPUクーラーまでセットしたよ、なとこ

CPU_Cooler マザーボードのCPUクーラーまでセットしたよ、を引いて見たとこ

Tsuukikou ケースの通気口をのぞいてみたとこ

Dengen_Set_surutoko 電源ユニットをケースの上に置いてみた

Dengen 電源ユニットセットしたとこ

BD_Drive BDドライブ今から突っ込む寸前

SSD SSD今からセットする寸前

Setup_Windows8 気づけばWindows8をブートしているとこ

使ったパーツは下記のようなものなど。

なんかほんまは色々設定した内容とか書こうと思ったけどめんどくなったので辞めます。
ハマったところは、このマザボGIGABYTEのこの型番で、BIOSのUSB3を有効にしていると、Windows8のHyper-Vが起動できないという超ニッチな個体バグみたいなものを持っているところ。 自宅での仮想サーバとして、Windows8ProのHyper-Vの機能を使う予定だったので、なんでHyper-V有効にして再起動できないかでドはまりしました。 そのため、拡張スロットを利用しないとUSB3を使えないという悲しい子になってしまいました。。 マザーボード、、買い換えようかな。。。 ということで、Windows8のHyper-V利用する予定の方は、上記の僕が利用しているマザーボードは辞めた方が良いです。

【Linux, bash】bash-completionの導入〜CentOS5.2の場合〜

前回・前々回のブログで、同じbash-completionの導入を、CentOS6.2, MacOSX Lionなどで行いました。
別途少し古いですが、CentOS5.2のサーバがありそちらへも導入したため、その手順についても公開したいと思います。
同じCentOSですが、6.2と違いyumコマンドではインストールできなかったため、こちらではソースからコンパイルしてインストールを行います。

参考URL

Bash Completion Official Homepage:
    http://bash-completion.alioth.debian.org/
@IT:bashの補完機能を拡張するには(2006/7/13):
    http://www.atmarkit.co.jp/flinux/rensai/linuxtips/908bashcomp.html

bash-completionのインストール

下記URLにbash-completionのファイルが一覧としてあります。
    http://bash-completion.alioth.debian.org/files/
砂場のCentOS5.2とかでは、2.0などのバージョンがうまく機能しなかったため、1.3を入れてみました。

以下は/optディレクトリ以下で作業を行います。

# cd /opt
# wget http://bash-completion.alioth.debian.org/files/bash-completion-1.3.tar.bz2
# tar xjvf bash-completion-1.3.tar.gz
# cd bash-completion-1.3
# ./configure
# make
# make install

これでbash-completionの設定ファイルなどが、/usr/local/etc/以下にインストールされます。

/etc/bashrcの編集

bash-completion1.3は、インストールをするだけでは自動的に補完機能がきかないようです。
そのため、/etc/bashrcにbash-completionを読み込むように設定を追記します。
※ ここでは全ユーザに補完機能を提供することを想定しているため、rootユーザで/etc/bashrcへ追記しています。
※ 各ユーザで読み込むかどうかを各々設定する場合は、各ユーザの$HOME/.bashrc(ホームディレクトリ直下の.bashrc)へ同様の追記を行ってください。

/etc/bashrcを開きます。

# vim /etc/bashrc

以下を末尾に追記します。

# bash_completion Settings (Added at 2012/11/15, by Daisuke Nishide)
BASH_COMPLETION=/usr/local/etc/bash_completion
BASH_COMPLETION_DIR=/usr/local/etc/bash_completion.d
BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
if [ -f /usr/local/etc/bash_completion ]; then
    . /usr/local/etc/bash_completion
fi

上記でインストールと設定作業は終了です。
また、上記追記一行目のコメントに、いつ誰が追加した設定であるかを明記するようにしていますが、
複数人共有のサーバで、なおかつroot権限での作業を行った場合は、このような明示を行うことが推奨されるでしょう。

bash-completion導入の確認

ログアウトして、ログインし直します。
CentOS6.2の時はyumコマンドで導入を確認したので、こちらではserviceコマンドでtab補完できることを確認してみます。

# service <-- promptにserviceと入力後、Tabキーを二回入力
abrt-ccpp          chargen-dgram      discard-dgram      ip6tables          lvm2-monitor       netconsole         postfix            rsync              sshd               xinetd
abrt-oops          chargen-stream     discard-stream     iptables           mdmonitor          netfs              psacct             rsyslog            svnserve           
abrtd              cpuspeed           echo-dgram         irqbalance         messagebus         network            quota_nld          sandbox            sysstat            
acpid              crond              echo-stream        jenkins            mysql-mmm-agent    nmb                rdisc              saslauthd          tcpmux-server      
atd                cvs                git                kdump              mysql-mmm-monitor  nscd               redis              single             time-dgram         
auditd             daytime-dgram      halt               killall            mysql-proxy        ntpd               restorecond        smartd             time-stream        
avahi-daemon       daytime-stream     httpd              lvm2-lvmetad       mysqld             ntpdate            rngd               smb                udev-post

gitの補完(git-completion)について

こちらは、前回のmacでの作業と同様の手順となります。
異なるのは、設定ファイルの格納ディレクトリが異なるため、ダウンロードしたgit-completionの設定ファイルを格納するディレクトリが違うことだけです。

# cd /usr/local/etc/bash_completion_d/
# wget "http://git.kernel.org/?p=git/git.git;a=blob_plain;f=contrib/completion/git-completion.bash;hb=HEAD" -O git-completion.bash   <--- 最新のgit-completion設定ファイルをダウンロード
# mv git-completion.bash git

上記で、bash-completionの補完関連の設定ファイルが格納されている/usr/local/etc/bash_completion.d/以下にgitの補完に関する設定が追加され、gitコマンド関連の補完がきくようになりました。

設定ファイル等のディレクトリ

インストールしたbash-completion関連の設定は、/etc/bash_completion, /etc/bash_completion.d/などに格納されるようです。
また、/etc/bash_completion.d/以下には、補完対象になるコマンドのそれぞれの設定が補完されるようです。

# ls /usr/local/etc/bash_completion.d/
autoconf       bzip2      crontab     e2fsprogs  git       imagemagick  java  man                net-tools   postfix      redefine_filedir  samba    smartctl    tar             xmlwf
automake       chkconfig  cryptsetup  findutils  gpg2      info         lsof  mdadm              ntpdate     procps       rfkill            screen   sqlite3     tcpdump         xsltproc
bash-builtins  configure  cvs         gcc        gzip      iproute2     lvm   mercurial.sh       openssl     python       rpm               service  ssh         util-linux      xz
bind-utils     coreutils  dd          gdb        iconv     iptables     lzma  module-init-tools  perl        quota-tools  rrdtool           sh       strace      wireless-tools  yum-utils.bash
brctl          cpio       dhclient    getent     ifupdown  isql         make  mysqladmin         pkg-config  rcs          rsync             shadow   subversion  xmllint         yum.bash

以上でCentOS5.2へのbash-completionの導入は完了です。

【Mac, bash】bash-completionの導入〜MacOSX 10.7.4の場合〜

別の投稿で、CentOS6.2へのbash-completionの導入手順を紹介しましたが、
今度はMacOSX Lion10.7.4でのインストールについて紹介します。

MacOSX Lion 10.7.4の場合

bash-completionのインストール

Macでのbash-completionの導入も簡単です。 brewコマンド一発でインストールすることができます。

# brew install bash-completion

bash-completionの設定を追記

bash-completionの設定をユーザが読み込むように設定

$ vim ~/.bash_profile

下記を追記

# bash-completionの設定を読み込み
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

gitの補完ができるようにする

当方のbrew installだとgitの補完がデフォルトではきかなかったため、設定を追加。

# cd /usr/local/etc/bash_completion.d/
# wget "http://git.kernel.org/?p=git/git.git;a=blob_plain;f=contrib/completion/git-completion.bash;hb=HEAD" -O git-completion.bash
# mv git-completion.bash git

設定ファイルのディレクトリ

brewをMacに導入したときに、brewのホームディレクトリの設定をいじった場合はわかりませんが、 デフォルトでbrewをインストールした場合は以下に設定ファイルがインストールされています。

  • /usr/local/etc/bash_completion <– bash-completionの設定を記載したファイル
  • /usr/local/etc/bash_completion.d <– bash-completionが補完するコマンドそれぞれの設定を格納するディレクトリ

以上でMacへのbash-completionの導入は完了です。

【Linux, bash】bash-completionの導入〜CentOS6.2の場合〜

Linux, UNIX系OSのシェルで、標準のbashの補完機能を強化できるbash-completionを導入したので、備忘も兼ねてそのプロセスを記載します。

参考URL

Bash Completion Official Homepage:
    http://bash-completion.alioth.debian.org/
@IT:bashの補完機能を拡張するには(2006/7/13):
    http://www.atmarkit.co.jp/flinux/rensai/linuxtips/908bashcomp.html

CentOS6.2の場合

CentOS6.2でのインストールプロセスです。
検証はしていませんが、Scientific Linux6.2でも同様のプロセスで可能かと思います。

bash-completionのインストール

CentOS6.2では、yumでインストールするだけでbash-completionが利用できます。
rootになり、以下のコマンドを実行します。

# yum install bash-completion

bash-completion導入の確認

ログアウトして、ログインし直します。
yumコマンドでtab補完できることを確認してみます。

# yum <-- yumと入力した後にTabキーを2回クリックする
--assumeyes --disableplugin --help --randomwait --tolerant deplist groupremove makecache search
--cacheonly --disablerepo --installroot --releasever --verbose distro-sync help provides shell
--color --enableplugin --nogpgcheck --rpmverbosity --version downgrade history reinstall update
--config --enablerepo --noplugins --setopt check groupinfo info remove upgrade
--debuglevel --errorlevel --obsoletes --showduplicates check-update groupinstall install repolist version
--disableexcludes --exclude --quiet --skip-broken clean grouplist list resolvedep

gitの補完について

CentOS6.2のyumコマンドでインストールしたbash-completionは、デフォルトでgitの補完もできるようです。

# git
add branch commit format-patch init notes replace show whatchanged
am bundle config fsck instaweb pull request-pull show-branch
annotate checkout describe gc log push reset stage
apply cherry diff get-tar-commit-id merge rebase rev-tree stash
archive cherry-pick difftool grep mergetool relink revert status
bisect clean fetch help mv remote rm submodule
blame clone filter-branch imap-send name-rev repack shortlog tag

設定ファイル等のディレクトリ

インストールしたbash-completion関連の設定は、/etc/bash_completion, /etc/bash_completion.d/などに格納されるようです。
また、/etc/bash_completion.d/以下には、補完対象になるコマンドのそれぞれの設定が補完されるようです。

# ls /etc/bash_completion.d/
autoconf bzip2 crontab e2fsprogs git imagemagick java man net-tools postfix redefine_filedir samba smartctl tar xmlwf
automake chkconfig cryptsetup findutils gpg2 info lsof mdadm ntpdate procps rfkill screen sqlite3 tcpdump xsltproc
bash-builtins configure cvs gcc gzip iproute2 lvm mercurial.sh openssl python rpm service ssh util-linux xz
bind-utils coreutils dd gdb iconv iptables lzma module-init-tools perl quota-tools rrdtool sh strace wireless-tools yum-utils.bash
brctl cpio dhclient getent ifupdown isql make mysqladmin pkg-config rcs rsync shadow subversion xmllint yum.bash

以上でbash-completionの導入は完了です。