2018年9月30日日曜日

macOS Mojave (10.14) にした

macOS High Sierra (10.13) にした

した。更新後はダークモードに。


これを書いている時点で MacPorts はまだ Mojave 向け .pkg はでていない。まち。しばらく放置。

Error: Current platform "darwin 18" does not match expected platform "darwin 17"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

https://trac.macports.org/wiki/MojaveProblems
記載の Broken Ports みる限りは困ることはなさそう。

MBP Mid 2012 は Mojave で最後になるのか、10.15(?) も対応するのか。どっちだ。
メモリ増やしたりSSDに載せ替えたりするなどして使ってきたけど、そろそろ Coffee Lake のに買い替えを検討してもいいかもしれない。

https://www.macworld.co.uk/feature/mac-software/macos-name-3512909/


その後追記:
MacPorts は Mojave の .pkg もでた。インストール後は port upgrade installed (サイトに書かれている全うな方法ではない)

% port version
Version: 2.5.4
% sw_vers
ProductName:    Mac OS X
ProductVersion:    10.14
BuildVersion:    18A391

VMware Fusion はシステム環境設定 => セキュリティとプライバシー => アクセシビリティで制御を許可が必要。
バージョン 11 がでたけどもしばらくは 10(10.1.3) のままの予定。

ふとこれまで VMware Fusion の購入履歴をみてみたらこの通りだった。

ターミナルで tmutil を使うときはフルディスクアクセスが必要。listlocalsnapshots はできるけど listbackups で以下表示あり。

The operation could not be completed because tmutil could not access
private application data on the backup disk. Use the Privacy tab
in the Security and Privacy preference pane to add Terminal to the
list of applications which can access Application Data.

~/Library/Mail 以下に対してターミナル上で操作ができない。permission denied でなくて operation not permitted

% ls ~/Library/Mail
ls: Mail: Operation not permitted

これも前述のフルディスクアクセスを許可しておけばOK. しかし sqlite3 コマンドで vacuum と reindex する以外には ~/Libary/Mail 以下へのアクセスすることはないな。
Finder なら開けるので Envelope Index ポイッと捨てればすむ・・。

10.3 から Mac OS X, OS X, macOS 使ってきたけど、マックの素敵機能をほとんど有効活用してない気がしている。

めんどくささ

おしごと用のMBPをBYODのものから支給のものに変更、それに伴い USB Type-C の波がようやく自分にも襲いかかることに。

いままでは自宅用 Mid 2012, おしごと用 Early 2015 だったので AC アダプターは どちらも MagSafe(2) で、ちっさなコンバータによりどちらでも使えた。なので自宅に持って帰るときはラップトップ本体だけ。

Type-C <-> MagSafe のコンバータを探すと、なかなかな価格。Apple オフィシャルなものはないからそのコンバータ買うか、自宅用も今後買い換えることを見越して Type-C の AC アダプターもう一つ買うか、どうしようか。
追記: ほんとうの価格は高くなかった。見てたサイトでの販売価格がやたら高かっただけ。
8~9千円くらいで売ってるサイトあったんだよな・・。

モノは以下。よさそう。
https://elecjet.com/collections/cable/products/anywatt

他にも、アダプタどれがいいかしら、というのに時間割かれるのは面倒くさい。慣れるまではこんなものか。

2018年9月25日火曜日

OmniOS #3

OmniOS specific ではないけども。

https://en.wikipedia.org/wiki/Slab_allocation
の通り slab allocation は Solaris だと 2.4、1994年から ある。

Linux だと 2.2 から? ということは1999年からなのか。

FreeBSD では 5.0 とあるけど slab という用語をみたことがない・・・External Link にある通り uma という名称らしい。

https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9
HISTORY
     The zone allocator    first appeared in FreeBSD 3.0.    It was radically
     changed in    FreeBSD    5.0 to function    as a slab allocator.

じゃ uma てどこから来てるのか・・・ universal memory allocator だった。

https://www.freebsd.org/doc/en_US.ISO8859-1/articles/geom-class/kernelprog.html

悪魔本にはバッチリ書いてありそう。Chapter 6. Memory Management に。
https://www.oreilly.com/library/view/the-design-and/9780133761825/

2018年9月23日日曜日

「時刻がずれる」とは

7年前に設定したこともあった。

今更ながらふと思ったのが、ハードウェアクロックがどうの、システムクロックがどうの、というのはどう理解していった/していくのがオーソドックスなんだろうか?ぐぐればだいたい何とかなる、というのはおいておいて・・。

https://qiita.com/ine1127/items/edb0a46b638265186650

のようにずれたときに疑う箇所は多い。

https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-configuring_the_date_and_time-hwclock

加えて、今 KVM, Xen などといった virtualization なものの内部をごそごそしていくときのイロハはなんだろう?
既に解ってるひとだとたんに「ソースを漁ればいいじゃん(いいじゃん)」ということになると思うんだけどね。

2018年9月17日月曜日

次の RHEL

前 branch があるよ〜というのを目にしただけでいつでてくるのか不明な 8。
いつでてくるんだろうか。 次が 8 なのかもわからない。
https://github.com/rhinstaller/anaconda/tree/rhel8-alpha-branch

RHELのリリースとカーネルを眺めてると 8 は何がベースになるのかはなんとなくわかるかな。わかったところで何も嬉しくはないものの。

https://access.redhat.com/ja/articles/16476

https://fedoraproject.org/wiki/Releases
https://fedoraproject.org/wiki/Releases/HistoricalSchedules

RHEL5.0 (2007/03/15) - FC6 (2006/10/24)
RHEL6.0 (2010/11/09) - F12 (2009/11/17), F13 (2010/5/25), +x
RHEL7.0 (beta: 2013-12-11, GA: 2014/06/09) - F19(2013/7/2), F20(2013/12/17), +x

F27 は 2017/11/14, 最新の F28 は 2018/5/1。
今の所 beta の気配はない。F29, F30 は以下。
次の RHEL は F29, F30 +x 〜 F31,F32 +x あたりになるのかな。F28 以前をベースにはしなそう。

https://fedoraproject.org/wiki/Releases/29/Schedule
F29 は 10月末予定。
https://fedoraproject.org/wiki/Releases/30/Schedule
F30 は 2019/4末~2019/5頭予定。

dnf に親しむことになったらこれをみると良い
https://fedoraproject.org/wiki/Yum_to_DNF_Cheatsheet

2018年9月10日月曜日

OmniOS #2

Extra リポジトリがある
https://omniosce.org/info/ipsrepos

https://pkg.omniosce.org/r151026/extra/en/catalog.shtml
30ほど。

$ pkg list -f -g https://pkg.omniosce.org/r151026/extra/
で見られる。

追加
$ sudo pkg set-publisher -g https://pkg.omniosce.org/r151026/extra/ extra.omnios

$ pkg publisher
発行元                   タイプ ステータス P 場所
omnios                      起点   オンライン F https://pkg.omniosce.org/r151026/core/
extra.omnios                起点   オンライン F https://pkg.omniosce.org/r151026/extra/

$ pkg search -p go OR python3 OR nginx
PACKAGE                                         PUBLISHER
pkg:/ooce/application/texlive@20170524-0.151026 extra.omnios
pkg:/ooce/developer/go-110@1.10.2-0.151026      extra.omnios
pkg:/ooce/developer/go-110@1.10.3-0.151026      extra.omnios
pkg:/ooce/developer/go-19@1.9.6-0.151026        extra.omnios
pkg:/ooce/developer/go-19@1.9.7-0.151026        extra.omnios
pkg:/ooce/runtime/python-36@3.6.5-0.151026      extra.omnios
pkg:/ooce/runtime/python-36@3.6.6-0.151026      extra.omnios
pkg:/ooce/server/nginx-112@1.12.2-0.151026      extra.omnios
pkg:/ooce/server/nginx-114@1.14.0-0.151026      extra.omnios
pkg:/ooce/server/nginx-common@1.0.0-0.151026    extra.omnios
pkg:/developer/swig@3.0.12-0.151026             omnios

ダウンロードに結構時間がかかる。大企業がバックについてないのはしんどいだろうな・・・。CDN 会社がインフラ提供してくれるわけでもなし。

/opt/ooce/bin に入る。symlink が張られている

$ go version
-bash: go: command not found
$ echo $PATH
/usr/bin:/usr/sbin:/sbin:/usr/gnu/bin
$ pkg contents go-110 |grep bin/go
opt/ooce/bin/go
opt/ooce/bin/gofmt
opt/ooce/go-1.10/bin/go
opt/ooce/go-1.10/bin/gofmt

$ export PATH=$PATH:/opt/ooce/bin
$ go version
go version go1.10.3 solaris/amd64

$ go get golang.org/x/tour/gotour
go: missing Git command. See https://golang.org/s/gogetcmd
package golang.org/x/tour/gotour: exec: "git": executable file not found in $PATH

あ〜、そうよね・・

$ sudo pkg install pkg:/developer/versioning/git@2.17.1-0.151026
Password:
   インストールするパッケージ:         1
                  ブート環境の作成: いいえ
バックアップブート環境の作成: いいえ

ダウンロード                 パッケージ  ファイル  転送 (MB)  速度
完了                                   1/1       377/377    25.1/25.1  992k/s

フェーズ                                  項目
新しいアクションをインストールしています     691/691
パッケージ状態データベースを更新しています      完了
パッケージキャッシュを更新しています         0/0
イメージ状態を更新しています      完了
スピード検索データベースを作成しています      完了
検索インデックスを読み取っています      完了
検索インデックスを更新しています         1/1
パッケージキャッシュを更新しています         2/2

python3 も入れ
$ pkg search -p python3
PACKAGE                                    PUBLISHER
pkg:/ooce/runtime/python-36@3.6.5-0.151026 extra.omnios
pkg:/ooce/runtime/python-36@3.6.6-0.151026 extra.omnios
$ sudo pkg install pkg:/ooce/runtime/python-36
Password:
   インストールするパッケージ:         2
            変更するメディエータ:         1
                  ブート環境の作成: いいえ
バックアップブート環境の作成: いいえ

(snip)

$ pkg list python-36
NAME (PUBLISHER)                                  VERSION                    IFO
ooce/runtime/python-36 (extra.omnios)             3.6.6-0.151026             i--


はて ntpd はどう起動させておくんだろう.. chkconfig でも systemctl でもないよな...

$ pkg search ntp
INDEX      ACTION VALUE                                 PACKAGE
basename   dir    usr/share/ntp/lib/NTP                 pkg:/service/network/ntp@4.2.8.12-0.151026
basename   dir    usr/lib/python2.7/vendor-packages/ntp pkg:/service/network/ntpsec@1.1.0-0.151026
basename   dir    var/ntp                               pkg:/service/network/ntpsec@1.1.0-0.151026
basename   dir    usr/share/ntp                         pkg:/service/network/ntp@4.2.8.12-0.151026
basename   dir    var/ntp                               pkg:/service/network/ntp@4.2.8.12-0.151026
basename   file   etc/security/auth_attr.d/ntp          pkg:/service/network/ntpsec@1.1.0-0.151026
basename   file   etc/security/prof_attr.d/ntp          pkg:/service/network/ntpsec@1.1.0-0.151026
basename   file   etc/security/auth_attr.d/ntp          pkg:/service/network/ntp@4.2.8.12-0.151026
basename   file   etc/security/prof_attr.d/ntp          pkg:/service/network/ntp@4.2.8.12-0.151026
basename   file   lib/svc/method/ntp                    pkg:/service/network/ntp@4.2.8.12-0.151026
pkg.fmri   set    omnios/service/network/ntp            pkg:/service/network/ntp@4.2.8.12-0.151026
$ pkg list ntp
NAME (PUBLISHER)                                  VERSION                    IFO
service/network/ntp                               4.2.8.12-0.151026          i--
$ pgrep ntpd

$ cat /etc/ntp.conf
cat: cannot open /etc/ntp.conf: No such file or directory

/etc/inet にあるのか
$ ls /etc/inet
datemsk.ndpd      ike               ipaddrsel.conf    ipsecalgs         netmasks          ntp.conf          secret
hosts             inetd.conf        ipnodes           ipsecinit.sample  networks          protocols         services

$ egrep '^(server|pool|restrict)' /etc/inet/ntp.conf
restrict default ignore
restrict -6 default ignore
restrict 127.0.0.1      # Allow localhost full access
restrict -6 ::1         # Same, for IPv6
restrict source nomodify noquery notrap
pool 0.omnios.pool.ntp.org burst iburst minpoll 4
$ dig 0.omnios.pool.ntp.org +short
213.199.225.30
108.59.2.24
195.186.1.101
213.198.55.2

なるほど svcadm のようだ. こいつは SMF とやらで Solaris 10 かららしい.
$ which svcadm
/usr/sbin/svcadm
$ svcadm
Usage: svcadm [-S <state>] [-v] [-Z | -z zone] [cmd [args ... ]]

        svcadm enable [-rst] [<service> ...]    - enable and online service(s)
        svcadm disable [-st] [<service> ...]    - disable and offline service(s)
        svcadm restart [-d] [<service> ...]     - restart specified service(s)
        svcadm refresh [<service> ...]          - re-read service configuration
        svcadm mark [-It] <state> [<service> ...] - set maintenance state
        svcadm clear [<service> ...]            - clear maintenance state
        svcadm milestone [-d] <milestone>       - advance to a service milestone

        Services can be specified using an FMRI, abbreviation, or fnmatch(5)
        pattern, as shown in these examples for svc:/network/smtp:sendmail

        svcadm <cmd> svc:/network/smtp:sendmail
        svcadm <cmd> network/smtp:sendmail
        svcadm <cmd> network/*mail
        svcadm <cmd> network/smtp
        svcadm <cmd> smtp:sendmail
        svcadm <cmd> smtp
        svcadm <cmd> sendmail

$ svcadm enable ntpd
svcadm: Pattern 'ntpd' doesn't match any instances
$ svcadm enable ntp
$ pgrep ntpd
1442
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.omnios.pool.n .POOL.          16 p    -   16    0    0.000    0.000   0.000
+a.ntp.br        200.160.7.186    2 u   13   16    3  280.799   12.676   5.483
*stratum2-3.ntp. 129.70.130.70    2 u   18   16    3  268.926   14.583   5.504
+ns3.atlax.com   131.188.3.221    2 u    2   16    7  318.398    8.018   7.748
+zip.frizzen.net 180.165.246.68   3 u    2   16    7  128.834    9.200   6.377

svcs でどんなか見られる
$ svcs ntp
STATE          STIME    FMRI
online         22:08:21 svc:/network/ntp:default

disable にする
$ svcadm disable ntp
$ svcs ntp
STATE          STIME    FMRI
disabled       22:09:30 svc:/network/ntp:default

再びenable
$ svcadm enable ntp
$ svcs ntp
STATE          STIME    FMRI
online         22:09:36 svc:/network/ntp:default

svcs -? みればだいたいOK

$ pkg search -p gcc
PACKAGE                                          PUBLISHER
pkg:/ooce/developer/ccache@3.3.6-0.151026        extra.omnios
pkg:/developer/gcc44@4.4.4-0.151026              omnios
pkg:/developer/gcc5@5.5.0-0.151026               omnios
pkg:/developer/gcc6@6.4.0-0.151026               omnios
pkg:/developer/gcc7@7.3.0-0.151026               omnios
pkg:/system/library/gcc-4-runtime@4.8.1-0.151026 omnios
pkg:/system/library/gcc-runtime@7-0.151026       omnios

今どきは gcc バージョンどれか・・・ 7入れておけばいいか
$ sudo pkg install gcc7
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/gcc-7/libexec/gcc/i386-pc-solaris2.11/7.3.0/lto-wrapper
Target: i386-pc-solaris2.11
Configured with: ./configure --prefix=/opt/gcc-7 --host i386-pc-solaris2.11 --build i386-pc-solaris2.11 --target i386-pc-solaris2.11 --with-boot-ldflags=-R/opt/gcc-7/lib --with-gmp-include=/usr/include/gmp --enable-languages=c,c++,fortran,lto --enable-__cxa_atexit --without-gnu-ld --with-ld=/bin/ld --with-as=/usr/bin/gas --with-gnu-as --with-build-time-tools=/usr/gnu/i386-pc-solaris2.11/bin --disable-bootstrap
Thread model: posix
gcc version 7.3.0 (GCC)

不定期でつづく

2018年9月9日日曜日

OmniOS CE

ギョームでは Linux, Windows とだけ戯れている。

ときどき気分を変えて別のを触ってみたくなるので *BSD 以外だと何かあったかな〜。そういや Solaris て今どうなってたかな〜、Open Solaris とか OpenIndiana てどうなったんだっけ・・とごそごそ調べてると OmniOS というのを知る。

https://omniosce.org/

illumos 族はこちら https://wiki.illumos.org/display/illumos/Distributions

https://omniosce.org/about/about.html
もともとは OmniTI ってところがやってたけど2017/4で終了、その後 Community Edition になった模様。MRTG, RRDTool 作者の名前をここで目にするとは・・・!

https://omniosce.org/download.html をみると AMI もあるので EC2 で使えてよろしい。しかし ENA は使えないだろうな。NVMe は使えるか・・?(後述)
https://ja.wikipedia.org/wiki/NVM_Express#Operating_system_support

OmniTI は今は AWS のコンサルティングパートナーのよう。https://omniti.com/knows/amazon-cloud-databases
https://omniti.com/remembers/2018/omniti-officially-named-aws-consulting-partner

https://www.crunchbase.com/organization/omniti
Founder の名前に見覚えあり。ウェブオペレーション一章の寄稿者だった。巻末の寄稿者紹介に OmniTI の創立者て書いてあったわ・・・。


とりあえず入れた。

$ uname -a                                                                                         
SunOS omniosce 5.11 omnios-r151026-673c59f55d i86pc i386 i86pc
$ ssh -V                                                                                          
OpenSSH_7.6p1, OpenSSL 1.0.2o  27 Mar 2018

pkg コマンドでパッケージ入れられるようだけどあまりなさそう。パッケージシステムと
しては IPSらしい。https://en.wikipedia.org/wiki/Image_Packaging_System

sysctl はないのか。
fstab でなくて vfstab なのか。しかし / が ない・・・?

$ cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
/devices        -               /devices        devfs   -       no      -
/proc           -               /proc           proc    -       no      -
ctfs            -               /system/contract ctfs   -       no      -
objfs           -               /system/object  objfs   -       no      -
sharefs         -               /etc/dfs/sharetab       sharefs -       no      -
fd              -               /dev/fd         fd      -       no      -
swap            -               /tmp            tmpfs   -       yes     -

/dev/zvol/dsk/rpool/swap        -       -       swap    -       no      -

swap が /dev/zvol .
インストーラで ZFS を用意してまっせ的メッセージでてたな・・・。いや〜 ZFS わからん・・・。FreeBSD で軽くおさわりした程度、/ を ZFS で使ったことがない。

$ zfs listNAME                USED  AVAIL  REFER  MOUNTPOINT
rpool              2.56G  12.5G    23K  /rpool
rpool/ROOT          504M  12.5G    23K  legacy
rpool/ROOT/omnios   504M  12.5G   504M  /
rpool/dump         1.00G  12.5G  1.00G  -
rpool/swap         1.06G  13.5G  32.8M  -

$ zfs mount
rpool/ROOT/omnios               /
rpool                           /rpool


ZFS に関してはこのへんみてればいいのか?
http://open-zfs.org/wiki/Documentation
https://www.freebsd.org/doc/handbook/zfs.html

NVMe具合確認。ドライバはこんな具合に。使えそうな気配。ixgbevf はない。
 $ ls -l /kernel/drv/amd64/ixgb* /kernel/drv/amd64/nvme
-rwxr-xr-x   1 root     sys       104248 5月  3 22:30 /kernel/drv/amd64/ixgb
-rwxr-xr-x   1 root     sys       359376 9月 10  2018 /kernel/drv/amd64/ixgbe
-rwxr-xr-x   1 root     sys        74136 9月 10  2018 /kernel/drv/amd64/nvme

4053 Add NVME Driver Support to Illumos
https://github.com/illumos/illumos-gate/commit/3c9168fa8e9c30d55b3aa2fde74bd7da46df53f5


勝手が違ってそれはそれで面白い。わからなさがかなりある。

top もない・・・
/proc の下も Linux と違い色々生えてない。

しばらくは Linux でのアレは Solaris でなにに相当するの?というのを調べることにもなる。

しかしこう Linux ではない別のOSを触ってみて勝手が違うのに直面すると、多くのひとが頑張ってなにかの OS (特に GNU/Linux )を触る必要はなく、ただコンピュートリソースとして使えれば裏でなにが動いてるか意識する必要はないだろうし、上モノさえよろしく動いてれば幸せだよな、と思った。
触る必要のないひとが触らざるを得ないのは辛いよな。

どういうわけか自分のなかでは Google App Engine はすごいよな、というところに行き着く。


ところで Oracle Solaris は 11.4 がでていた。
https://news.mynavi.jp/article/20180829-685663/

http://www.atmarkit.co.jp/ait/articles/1805/15/news001.html
『Oracleは、“少なくとも”2034年まではSolarisの開発を継続することを公式にお約束しています。誤解しないでいただきたいのですが、2034年でやめるということではありません。最低でも2034年まで、つまりあと16年は開発を継続するということです。』

知らなかった・・・。生き長らえた Solaris でお仕事が得られる人いるかも・・?
Oracle にはもっと Solaris 頑張って欲しかったねぇ。先行き不安でなければいちいち 2034年まで継続するよ、なんぞ言わんし・・・。突如 discon よりはるかにいいけども。

2018年9月1日土曜日

Mail.app でのメッセージの移動

大量、といっても多くても1万ちょっとだけど、それらメールをごそっと移動するのはなかなか重荷らしく、時間がかかる。
「メッセージの移動の準備中」がひどく長い。寝て起きても終わっていなかった・・・。

移動中は
/System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mdworker -s mdworker-mail -c MDSImporterWorker -m com.apple.mdworker.mail

がゴリゴリ動いているけども Spotlight のせい・・?
SQLite 的には多分問題ない・・?
最近のではなく数年前のを移動させてるのがよくない?

すぐにはよくわからず・・。

Envelope Index は 130M まで肥大


某キーボードその後 2018/09

いい具合に慣れてきた。しばらくタイプしてみた結果、キー配置はデフォルトからあまりいじらない状態に戻した。