2014年9月29日月曜日

yumを用いたbashのアップデート

基本は
# yum update
あるいは、
#yum update bash

なのですが、

prioritiesプラグインが有効になっているとうまくいきませんでした。
自身の事例です。

方法としては、
ファイル /etc/yum/pluginconf.d/priorities.conf の、
[main]
enabled = 1
となっている場合、enabled = 0 とします。

2014年3月26日水曜日

Java8 Release

3月18日にリリースされた模様。

ラムダ式、ストリームを始めとする機能が実装。


Java8 SE

大刷新リリースJava8の新機能

LINQとJava8の対応表

2014年1月23日木曜日

[Scala] 標準JSONライブラリ

http://xawa99.blogspot.jp/2012/10/Scala-JSON.html
http://takezoux2.blogspot.jp/2012/01/scalajson.html

標準ライブラリではMapやListをそのままJSONにすることはできません。
それぞれJSONObjectやJSONArrayする必要があります。

gsonなどのライブラリを使ったほうが良さそうとのことです。

Java 8 Early Access

ラムダ式を試したいと思い、JDKを8のEarly Access版に。

以下のURLからダウンロードします。
https://jdk8.java.net/download.html


2013年10月25日金曜日

Scalaはじめます。

動機は、
Play Frameworkでサポートしているというのが一番の理由。
html.scalaのテンプレートが理解できないのが気持ち悪いというのがもう一つの理由。

結局いずれもPlayに寄るものでした。

導入


http://www.scala-lang.org/ から、Scalaをダウンロードします。

コンパイル


scalac.bat ファイル名.scala

実行

scala.bat オブジェクト名

今のところ、@IT:スケーラブルで関数型でオブジェクト指向なScala入門 をなぞって学習中。


関連サイトは近々にまとめます。

2013年10月2日水曜日

[play]H2データベースをディスクへ出力する

デフォルトのapplication.confではメモリへの出力となっているH2データベースの出力先をディスクに指定します。これにより起動する度にデータがクリアされる問題を回避します。

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:/path/to/db-file"

※defaultはデータベース名を指定します。


2013年9月6日金曜日

[EC2]Amazon EC2へのSambaの導入

Amazon AWSの販促資料に、月額10円/GBからファイルサーバーというのがありましてそれがどのようなものなのかはイメージがついていない(追記)のですが、1年間無料の枠内でファイルサーバーを運用してみようとSambaを導入するお話です。

そうしたら途中で躓きました。

#もちろん、ポートをIP限定で開放しております。

前提

samba 4.0.9

共有は以下

  • ログインユーザのホームディレクトリ
  • /mnt/home (ファイルサーバー用のEBSボリューム)

プリンタの共有はしない

Amazon Linux AMIを使っています。

$ uname -a
Linux ip-172-31-25-78 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon May 6 18:04:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

準備

1.python26-devel.x86_64 をインストールします。configure中にpythonのヘッダファイルを利用するので、これがないとconfigureで失敗します。ここで躓きました。
# yum install python26-devel.x86_64

2.「Samba3.0インストール手順」にしたがって、libiconvをインストールします。

ビルドとインストール


1.tarballをダウンロードします。

2.configureを実行します。引数は以下のとおりで、上記blog(Samba3.0インストール手順)を参考にしました。

$ ./configure --prefix=/usr/local/samba --with-privatedir=/etc/samba --with-configdir=/etc/samba --with-libiconv=/usr/local --with-automount --with-pam --with-pam_smbpass --with-syslog > configure.log

3.make, make installを実行します
$ make
# make install

設定

ファイルのコピー

tarballの packaging/RHEL/setupディレクトリ内のファイルを、 /etc/sambaに移動します
# cp packaging/RHEL/setup/* /etc/samba

smb.confの設定

サンプルのsmb.confのこのブロックを流用して、/mnt/homeへの設定をしてしまいます。

[myshare]
   comment = Mary's and Fred's stuff
   path = /usr/somewhere/shared
   valid users = mary fred
   public = no
   writable = yes
   printable = no
   create mask = 0765
変更後

[myshare]
   comment = xxxxxxxxxxxx
   path = /mnt/home/
   valid users = username
   public = no
   writable = yes
   printable = no
   create mask = 0765


ユーザーグループの編集

sambaでログインするユーザをec-userグループに登録します。後述するパーミッションの都合に寄るものです。

# usermod -G ec-user username


領域のフォーマットとマウント

今回ファイルサーバーに使用する領域はAmazonEBSから新規に領域を確保して、EC2のインスタンスに登録しています。ただし、このままでは使用できないので、フォーマットして、マウントします。

# mkfs /dev/xvdb

EBS で hda となっていた領域はEC2上では、 /dev/xvda
      hdb となっていた領域はEC2上では、 /dev/xvdb というデバイスファイルになっています。

マウントは毎回実行しなければならないので、 /etc/rc.local に記載することにしました。

マウント先を作成:
# mkdir /mnt/home

rc.localに追加:
mount /dev/xvdb /mnt/home

パーミッションの編集

他のユーザーに編集されないよう、所有者とグループのみアクセス権を与えました。

以下の内容を/etc/rc.localに記載します。
chown ec2-user:ec2-user /mnt/home
chmod 706 /mnt/home


ポートの開放

以下の4つのポートを開放します。
sambaで利用するポート」 こちらのblogを参考にしました。


  1. AWSのConsoleからSecurity Groupを選択します
  2. 一覧からsambaをインストールしたEC2インスタンスが登録されている利用しているセキュリティグループを選択します
  3. 以下のポートを開放するルールを作成します。


    • 137/udp
    • 138/udp
    • 139/tcp
    • 445/tcp
udpについては閉じることも検討しなければならないかもしれません。

init.dへの追加


  1. /etc/samba(にコピーした)smb.initを、/etc/init.dへコピーします
  2. smbにリネームします
  3. smbのパーミッションを755に変更します
  4. smbを編集し、smb.conf、smbdおよびnmbdのパスを絶対パスで指定します
  5. chkconfig によって起動時に実行されるようにします
    # chkconfig smb on
  6. samba を開始します
    # ./smb start


接続試験

Windowsから、「\\amazonEC2のIPアドレス」のUNC形式でアクセスして認証の後に接続できることを確認します。