買い物メモ 2019.01

 

  • SSD:ColurfulのSL500 960G(1.4)
  • HDD:BarraCuda 6TB(1.2)
  • マウス:MS Sculpt Ergonomic Mouse(0.4)
  • 折りたたみ傘:直径103cm、0.3kg

SSDWindowsのCとDドライブを移行。EaseUS Todo Backupのクローン機能を利用。特に気にせずにSSDを接続しクローンする。(EraseUS上は、AとBに見えた)

シャットダウン後、元のCとDに接続されたSATAケーブルをSSDに接続、元のディスクは未接続で起動。

この段階でSSDのドライブがCとDとして見えるようになる。再度シャットダウン後に、元のCとDを別SATAケーブルでつなぎ、起動後にディスク管理でドライブレター文字の削除して完了。

 

マウスは、MSのBTマウスを利用していたが1日数回は切れるので買い替え。ロジクールのエルゴノミクスマウス(MX Vertical)を店頭で触ったところ、斜めな感じがいろいろ楽だったので、エルゴノミクスをキーワードに検索。最終的にMS製を購入。

 

Perl で時間を扱う Time::Piece

古い残念なcgiスクリプトで、以下をよく見かけます。


($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime();
このあたりは、2000年あたりのコードなので、ざっくり忘れましょう。

Perlで時間を扱うモジュールですが、DateTimeとかTime::Pieceがあります。

DateTimeのほうが、いろいろできるようですが、Time::PieceはPerlのコアモジュール(インストールすると入ってる)だったりするので、普段は Time::Pieceで何とかしましょう。
多分、Time::Pieceのほうが軽い。

Usageはmetacpanにて Time::Piece - Object Oriented time objects - metacpan.org


use strict;
use warnings;
use Time::Piece;

my $now = localtime;

warn $now->datetime; # 2012-10-07T07:30:00
warn $now->datetime(T=>' '); # 2012-10-07 07:30:00
warn $now->epoch; # 1349562600
warn $now->tzoffset; # 32400

my $yearsterday = $now - 60 * 60 * 24;
warn $yearsterday->datetime(T => ' '); # 2012-10-06 07:30:00

○文字列からのパース


my $created_at = 'Sat Oct 06 21:38:38 +0000 2012';
my $t = Time::Piece->strptime($created_at,'%a %b %d %H:%M:%S %z %Y');

warn $t->datetime(T => ' '); # 2012-10-06 21:38:38

my $offset = ( 60 * 60 * 9 ) - $t->tzoffset();
$t += $offset;
warn $t->datetime(T => ' '); # 2012-10-07 06:38:38

ちなみに、タイムゾーンなところのBugが古いバージョンにはあるので、使うなら ver 1.20以降にしましょう。

参考:Time::Piece とタイムゾーンの甘い罠 - (ひ)メモ

私は思いっきりハマリマシタ。

corelistコマンドによると、Perl 5.14以降は、そのままでOKそうですね。


$ perl -MTime::Piece -E 'say $Time::Piece::VERSION'
1.20_01

Alien::RRDtool と pkg-config

Solaris11上で、Alien::RRDtool を入れようとしたらコケタので。


$ sudo pkg install rrdtool
$ cpanm Alien::RRDtool
...
Building and testing Alien-RRDtool-0.03 ... FAIL
! Installing Alien::RRDtool failed. See /export/home/jack/.cpanm/build.log for details.

で、build.log を見ても分かりにくいのですが、なんとなく pkg-config コマンドがないから
かな?と。


$ pkg search pkg-config
...
pkg:/developer/gnome/gettext
...
$ sudo pkg install gettext
...
$ pkg-config --version
0.23


$ cpanm Alien::RRDtool
...
Successfully installed Alien-RRDtool-0.03

dns-server を立てる

SMF に既に入っていると思われます。
毎回何て名前だっけ?と、 bind とか named でgrepしてしまいますが、以下で確認できます。


$ svcs -a |grep dns
disabled 12月_29 svc:/network/dns/multicast:default
disabled 12月_29 svc:/network/dns/server:default
online 12月_29 svc:/network/dns/client:default


$ svcs -l dns/server
fmri svc:/network/dns/server:default
name BIND DNS server
有効 false
状態 disabled
next_state none
state_time
logfile /var/svc/log/network-dns-server:default.log
リスタータ svc:/system/svc/restarter:default
contract_id
manifest /lib/svc/manifest/network/dns/server.xml
dependency require_all/none svc:/system/filesystem/local (online)
dependency require_any/error svc:/network/loopback (online)
dependency optional_all/error svc:/milestone/network (online)

ということで、マニフェストの中身を確認


$ more /lib/svc/manifest/network/dns/server.xml
...

...

起動スクリプト(?)を確認


$ more /lib/svc/method/dns-server
...
'start')
configuration_file=/etc/named.conf
...
$

ということで、他のOSと同様に、/etc/named.conf 書いて、どこかに zoneファイルを置けばよいようです。

後は、


$ sudo svcadm enable dns/server
$ svcs dns/server
STATE STIME FMRI
online 22:39:34 svc:/network/dns/server:default
$ ps -ef|grep named
root 7920 1 0 22:39:35 ? 0:00 /usr/sbin/named
$

リハビリ Solaris10

仕事でSolarisを構築する機会がめっきり減った(なくなった?)こともあり、現状どうなってんの?ということで、VirtualBOX 上に Solaris10 を入れてみました。

今日の時点で最新は以下でした。


Solaris 10 Update 10 8/11(2011年8月リリース)

インストールは既存を触っていれば困らないとは思います。

LANGの選択はデフォルトが EUC だったりして時代を感じてしまいます。(新規サーバならUTF8を選んだほうがよいでしょう。)

ファイルシステムは、デフォルトUFS ですが ZFSも選択可能な他、rpoolで / と/var を分けるかどうかも選択できます。

以下、インストール後にちょっと確認したもの


bash-3.2# uname -a
SunOS vm-sol10 5.10 Generic_147441-01 i86pc i386 i86pc
bash-3.2# cat /etc/release
Oracle Solaris 10 8/11 s10x_u10wos_17b X86
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
Assembled 23 August 2011
bash-3.2# zpool upgrade
このシステムでは現在、バージョン 29 の ZFS プールが動作しています。

このバージョンを使用して、すべてのプールがフォーマットされています。
bash-3.2#

Apache は...


bash-3.2# /usr/apache2/bin/httpd -v
Server version: Apache/2.0.63
Server built: Apr 15 2011 07:41:13
bash-3.2#

MySQL は ... 誰が使うんだw


bash-3.2# /usr/sfw/sbin/mysqld --version
/usr/sfw/sbin/mysqld Ver 4.0.31 for pc-solaris2.10 on i386 (Source distribution)
bash-3.2#


まぁ安定した Solaris Kernel 上で商用アプリケーションを動かすためのOSなので、多分OSSなものは飾りなのでしょう。


# /usr/sfw/bin/gcc --version
gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

MySQL 5.5系のコンパイル

5.5系以降から? ビルドシステムに CMake が採用されています。
私のようなダメエンジニアは、configure;make;make install でいいじゃないか!
と思ってしまいますが。


$ tar xf mysql-5.5.24.tar.gz
$ cd mysql-5.5.24
$ cmake . -DCMAKE_INSTALL_PREFIX=$HOME/local/mysql/ \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci
$ make
$ make install

cmake で指定する引数で気になったのは以下

-DBUILD_CONFIG=mysql_release Configure the source with the same build options used by Oracle to produce binary distributions for official MySQL releases.
-DENABLE_DTRACE=1 Solarisな人は、しあわせになれる?


-DDEFAULT_CHARSET=utf8 だけ指定すると、以下でmysql_install_dbが死にます。


$ ./scripts/mysql_install_db
...
120513 12:49:50 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
120513 12:49:50 [ERROR] Aborting

120513 12:49:50 [Note] ./bin/mysqld: Shutdown complete

my.cnf や 引数で "collation-server = utf8_general_ci" で指定しても大丈夫ですが、せっかくなのでコンパイルオプションで指定しておきましょう。


ドキュメントは、以下を読んでおけばよいのかな。

http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html

zpool & zfs version表示とupgrade

最新バージョンか古いバージョンか

upgradeを引数で実行します。何も表示されなければ最新です。


# zpool upgrade
This system is currently running ZFS pool version 31.

All pools are formatted using this version.
# zfs upgrade
This system is currently running ZFS filesystem version 5.

All filesystems are formatted with the current version.


何か表示された場合は、古いバージョンとなります。
以下は、全体的に低い状態です。


# zfs upgrade
This system is currently running ZFS filesystem version 5.

The following filesystems are out of date, and can be upgraded. After being
upgraded, these filesystems (and any 'zfs send' streams generated from
subsequent snapshots) will no longer be accessible by older software versions.


VER FILESYSTEM
--- ------------
4 rpool
4 rpool/ROOT
4 rpool/ROOT/opensolaris-snv_134b
4 rpool/ROOT/solaris11-snv_151a
4 rpool/cloudforecast
...


最新にします。マウントした状態でも問題ありませんでした。
個別で指定しても、 -r で再帰指定してもよい。


# zfs upgrade -r rpool
10 filesystems upgraded
33 filesystems already at this version


古いBEで対応していないバージョンに上げると、当然そのBEでは動作しないと予想されますので
ご注意を。