2017年12月25日月曜日

Android 7.0で「システムUI調整ツール」を表示する

てもとにあるXperia XZで「システムUI調整ツール」を表示させることができず、すこし不便に思っていました。不便に思うだけだったので調べることもしていなかったのですが、今日になり、ふと調べてみた結果、表示させることができるようになりました。

参考にしたのは以下のブログです。
ステータスバーカスタマイズの第一歩 Android システムUI調整ツールの出し方
http://www.snow0303.com/entry/2017/05/23/Android_%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0UI%E8%AA%BF%E6%95%B4%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E5%87%BA%E3%81%97%E6%96%B9
重要な部分を引用します。
開発者向けオプションをいじっていると出来ないこともあるようなので、通常の設定に一度戻してみてください。
開発者オプションを表示させ、その内容をデフォルトから変更していると「システムUI調整ツール」を表示させることができないようです。

そこで、「開発者オプション」を無効にしてから、上記のブログにある「システムUI調節ツール」を表示する方法を試してみると、うまく表示されました。「システムUI調節ツール」は以下のようにして表示させます。
  1. クイック設定ツールの画面を表示
  2. 右上にある歯車マークを長押し
  3. やがて歯車が回り始める
  4. 回転が高速になったら指を離す
  5. 設定を開き「端末情報」のすぐ上あたりを確認
開発者オプションは以下のようにして表示します。
  1. 設定画面を表示
  2. 下の方にある「端末情報」をタップ
  3. 現れた「ビルド番号」をなんどもタップ

2017年12月3日日曜日

ThinkCentre M710q Tinyを分解する

LenovoThinkCentre M170q Tiny
ThinkCentre M710q Tiny
https://www3.lenovo.com/jp/ja/desktops/thinkcentre/m-series-tiny/ThinkCentre-M710-Tiny/p/11TC1MT710Q
を入手したので分解してみました。

箱は以下のような感じです。 乗せている机は1200mm×700mmの大きさなので、これから本体の大きさは推定してください。
本体を取り出します。
付属品の箱と本体です
付属品の箱には電源(ACアダプタと無線LANのアンテナなどが入っています。
本体は非常に小さいです。
ACアダプタはThinkPadとほぼ同じですが、AC側が3Pになっています。
裏側の各種端子です。上部中央は、購入時のオプションでDisplay Portにしています。システム全体でDisplayPortの端子は3つです。
内部にアクセスするには中央部分にあるネジを外します。
蓋をずらして開けます。
左側がCPUなど、右側がHDDです。
正面側から見ると以下のようです
付属のアンテナを取り付けました。やや後ろ側に出るのですが、他のケーブルを接続するとあまり気になりません。
裏返すと蓋があります。
この蓋を開けるには、正面のパネルの外します。
そして正面側にずらすと外れます。
メモリとSSDが見えます。
1つ、スロットが空いているので増設が可能です。
SSDも汎用のインターフェイスなので交換が可能です。

2017年12月2日土曜日

Ubuntu on WindowsにPerl 5.24をインストールする

Windows 10のUbuntu on Windowsにインストールされているperlは5.22のようです。使いたいソフトウェアの都合で5.24をインストールしようと思って探すと以下のblogを見つけました。
Install latest perl to Ubuntu on Windows
http://skaji.hateblo.jp/entry/2016/08/18/230416
どうも
dont_use_nlink
を定義しないといけないようです。

Qrioスマートタグ

先日、自宅の鍵を会社に置き忘れてしまいました。予備の鍵を持っているので、自宅に入ることはできますが、会社にあるのかは記憶だけ不安です。もし会社になければ、自宅の鍵の変更なども考えなくてはなりません。そこで、会社に戻り、鍵を確認しました。

このとき、以前に読んだ以下の記事を思い出しました。
「Qrio スマートタグ」なら、豪快な忘れん坊でもすぐ見つかる
https://k-tai.watch.impress.co.jp/docs/column/todays_goods/1042289.html
他のスマートタグも考えたのですが、電池が交換できるもので入手性がよいものが、このQrioでした。以下に写真を載せます。

箱は以下のようなものでした。 

本体に他に、付属品は、説明書、バッテリ、バッテリを固定する白いプラスチック製のネジ、そしてバッテリの収納場所を開けるためのツメ、金属リングです。
 大きさはマウスやバッテリと比べると次のような感じです。
 
 バッテリは、裏側の蓋を開けて、見にくいですが、付属の白いプラスチック製のネジで蓋を止めます。
 裏蓋を開けます。

 電池を入れ蓋を閉めると、LEDが赤く点灯します。

付属の金属リングを付けます
 鍵に取り付けます。
後は、スマートフォンに対応するアプリケーションを入れて監視するようにします。

鍵の場所がわかるのはとても安心ですが、
  • ふと監視対象から外れてしまうことがある。スマートフォンか対応するアプリケーションを再起動したらそうなってしまうかもしれないのですが、はっきりとしたタイミングはわかりません。
  • スマートフォンの電池の消費が早い
というところがやや難点です。

携帯電話の基地局

会社が入居しているビルで携帯電話の基地局の設置工事がありました。
これだけでは、私にはどの携帯電話会社なのかわかりません。

みずほ銀行のサイネージシステムが起動に失敗していました

ある駅でみずほ銀行のサイネージシステムが起動に失敗しているのをみかけました。
エラーメッセージ
Windows could not start because hte following…
\WINDOWS\SYSTEM32\CONFIG\SYSTEM
からすると、 OSはWindows XPな気がします。

2017年12月1日金曜日

mac miniをWOL(wake up on lan)で起動する

自宅のmac miniの情報を遠隔から確認する必要がありました。そのためVPNで自宅のネットワークに接続し、画面共有でログインしようとすると、ログインできません。スリープ状態になっているようです。ふだんは、このようなことのためにスリープしないようにしてあったのですが、OSのアップデートでどうもスリープの設定を変わってしまい、スリープしてしまったようです。

MacOS XでWOL(wake up on lan)の機能があれば、稼働しているFreeBSDのサーバーからwolを使ってきどうできるかもしれないということを思いつきました。そこで、「MacOS WOL」といったキーワードで検索してみると、どうもできるようです。

そこで、以下のblogを参考にして試してみました。
WOLでマシンを起動させる
https://www.kishiro.com/FreeBSD/throw_magic_packet.html
ここにあるように
  1. FreeBSDでwolコマンドをpkgでインストール
  2. Mac MiniのMACアドレスをなんとか調べる(私の場合は、FreeBSDでDHCPサーバーを動かしていたので、そのログから見つけました)
  3. wolコマンドで起動
としてみると、うまくいきました。

2017年11月21日火曜日

Firefox 57でタブをウィンドウ横に縦に配置する(Firefox 77での設定を追記)

Firefox 57でタブをウィンドウ横に縦に配置するには次のようにします。
  1. 以下のアドオンをインストールする
    Vertical Tabs Reloaded
    https://addons.mozilla.org/ja/firefox/addon/vertical-tabs-reloaded/
  2. 以下のサイトの説明に従ってタブバーを消す
    Firefox 57 でタブグループ&縦タブを実現するアドオン “Tree Tabs”
    https://bucci.bp7.org/archives/39830
タブバーを消すには以下のようにします。
  1. プロファイルフォルダを開く。
    Firefoxのヘルプからトラブルシューティング情報を開き、「プロファイルフォルダー」の項目にある「○○で表示」をクリック
  2. 表示されたプロファイルフォルダを開いて、その中にchromeというフォルダを作る
  3. userChrome.cssというファイルを作り、以下の内容を記述する
    /* タブバー非表示 */
    #TabsToolbar {
        visibility: collapse;
    }
どのバージョンからかわからないのですが、Firefox 58.0.2では、上記の設定だけを有効にすると、ウィンドウの右上に最大化ボタンの表示がおかしくなってしまいます。 これを避けるには以下のようにします。
  1. Firefox右上に設定ボタン(三本線)を押す
  2. 「カスタマイズ」を選ぶ
  3. 現れたウィンドウの下にある「タイトルバー」にチェックを入れる
これで改善されるようです。

Firefox 77ではもう少し設定が必要になりました。
firefox でタブバーや URL バーを非表示にする
https://qiita.com/techno-tanoC/items/0f9df63bfaf54ced3cfa

この記述にあるように
url bar に about:config と入れて toolkit.legacyUserProfileCustomizations.stylesheets を true にする
という設定をしなくてはなりません。

2017年11月20日月曜日

Excelと「=」

先日、日経BPのサイトを見ていると以下の記事を見つけました。一部を引用します。
テンキーに「=」がないのはなぜだ?Windowsパソコンのイライラ (2/4)
http://itpro.nikkeibp.co.jp/atcl/column/17/111400522/111500001/?P=2

 そういえば、確かにパソコンのテンキーには「=」がない。Excelの式は「=A1+B1」といった形で記述するので、「=」を入力するときだけ[Shift]を押しながら「ほ」のキーを打たなければいけない。これがイラッとするとのこと。
確かにそうです。これは私も気になっていました。記事中には以下の解決策が書かれていました。
とはいえ、実はこのいらつきは簡単に解消できる。数式入力時の「=」は「+」でも代用できる。例えば、「+A1+B1」という記述でもちゃんと計算できる。
知りませんでした。試してみると、確かにできます。ちょっと便利ですね。

テンキーに「=」がないのは、もしかしたらですが、PC/ATの101キーボード(英語配列)の場合、バックスペースの右隣が「=」でこれはテンキーに近いために省略されたのかもしれません。
以下のWWWページ
キーボードコレクション
https://www.pfu.fujitsu.com/hhkeyboard/kb_collection/
「[IBM 101 keyboard] IBM-PC/ATの標準キーボード。」を見ると、この配列がわかります。

2017年11月10日金曜日

FreeBSD+bhyve+ubuntu16.04LTS+LVMだと、ubuntu VMが起動できない

FreeBSD 11でbhyveを利用してUbuntu16.04 LTSをLVM構成でインストールすると、このインストールしたUbuntu VMが起動できません。回避方法はこのVM用のconfigファイルで
grub_run_dir="/grub"
と指定することです。configファイルの場所は、
  • このVM名をVM
  • /etc/rc.confvm_dirで指定したディレクトリをVM_DIR
とすると、
VM_DIR/VM/VM.conf
です。

これの情報は以下のblogで知りました。
FreeBSD forums
https://forums.freebsd.org/threads/51861/
When LVM is selected in a Debian/Ubuntu install, the grub config file is put into a non-default location: /grub/grub.cfg instead of /boot/grub/grub.cfg.

grub-bhyve can be told to look into the alternate directory with the -d <dir> option. The boot should be fine if you change your grub-bhyve command line to grub-bhyve -d /grub -m /opt/data/bhyve/vm0-device.map -r hd0,msdos1 -M 2048 proxy

bhyveを利用してLinuxなどをインストールする方法は、以下のblogを参考にしました。
FreeBSD bhyve + vm-bhyveでゲストにFreeBSD環境を入れてみる
https://blog.bixr.com/2016/06/1090/

FreeBSD bhyve + vm-bhyveでゲストにUbuntu 16.04 LTS serverを入れてみる
https://blog.bixr.com/2016/07/1178/ 
手順は簡単です。
  1. /boot/loadr.conに以下を追加
    vmm_load="YES"
  2. bhyveのvmを管理するvm-bhyveをインストール
    # pkg install vm-bhyve 
  3. vmの管理領域をzfs上に”data/vm”として用意
    # zfs create data/vm 
  4. /etc/rc.confに以下の5行を追加。
    vm_enable="YES"
    vm_dir="zfs:data/vm"
    vm_list=""
    vm_delay="5"
  5. vm-bhyve環境の初期化を実行(一度だけ)。
    # vm init
  6. テンプレート設定ファイルをexsampleよりコピー。
    # cp /usr/local/share/examples/vm-bhyve/* /data/vm/.templates/
  7. 仮想スイッチ(bridge)を作成
    # vm switch create public
    #
    vm switch add public em0
      (このem0は主なネットワークインターフェースに置き換えて指定する)
  8. ISOファイルを入手する
    # vm iso http://releases.ubuntu.com/16.04/ubuntu-16.04-server-amd64.iso
  9. ubuntuインストールの実行
    # vm create -t ubuntu vmubuntu

    # vm install vmubuntu ubuntu-16.04-server-amd64.iso
  10. ubuntuをVMコンソールからインストール(コンソールはcu接続なので、「~.」で抜けることができます。
    # vm console vmubuntu

2017年10月25日水曜日

「もう一度Windowsへのサインインを求めるまでの時間」が 変更できない

以下のように、Windows 10で[設定]→[アカウント]→[サインインオプション]を開いた時に、[サインインを求める」の「しばらく操作しなかった場合に、「もう一度Windowsへのサインインを求めるまでの時間」が 変更できなくなっていることがあります。
 
これは、Surface Pro 3に「Surface Pro 3/4向けの指紋センサー付きタイプカバー」を取り付けている場合の画面です。このキーボードは以下で紹介されています。
指紋センサー付きのSurface Pro 4タイプカバーが国内販売
https://pc.watch.impress.co.jp/docs/news/747161.html
この下にある「指紋認証」を「削除」すると以下のように、時間を選ぶことができるようになります。
このような関係があるのは不思議です。また、時間を指定したい場合、どのようにすればいいのかわからないユーザーインターフェースはいまいちです。

MacOSとWindows 10で、アプリケーションをキー操作で起動する

MacOSでDockに入れていないアプリケーションを起動するには、
  1. ファインダーでアプリケーションフォルダを開く
  2. その中からアプリケーションを見つけてクリック
という手順が必要です。当たり前の手順ですが、最近、すこしめんどうになってきました。もう少し簡単にならないかと思って、検索エンジンで探してみると、以下のブログを見つけました。

【Mac】アプリケーションを素早く起動する方法 http://c-through.blogto.jp/archives/22254015.html
引用します。
  1. Spotlight 機能を使います。デフォルトだと 「Control + スペース」キーで Spotlight 検索ウィンドウが開きます。
  2. Spotlight メニューが表示されたら、そこに起動させたいアプリケーションの名前 を打ち込みます。打ち込むとそのアプリケーションが候補に表示されますので、一番上に表示されれば「return」キーですぐアプリケーションを起動できます。
これだと、キー操作だけでアプリケーションを起動することができます。

私は、「Control+スペース」をかな漢字変換のon/offに割り当てているので、このブログにあるように [システム環境設定]→[キーボード]→[ショートカット]から、Spotlightの起動を「Option+スペース」に割り当てています。

Windows 10でもコルタナの機能を使って同じように、キーボード操作でアプリケーションを起動することができます。
コルタナを呼びかけやショートカットですばやく起動できようにしたい!https://forest.watch.impress.co.jp/docs/serial/win10tips/1070835.html
「Windows+C」でコルタナを起動し、そこでアプリケーション名を入れ、returnキーを押すとアプリケーションを起動できます。

最近のOSは細かいところまで作り込まれていて便利です。

FreeBSD 11.1でのmailmanとpostfix

FreeBSD 11.1でpkgを使ってpostfixとmailmanを入れると、以下のようなエラーになります。
Mailman mail-wrapper: Group mismatch error.  Mailman expected the mail wrapper script to be executed as group "mailnull", but the system's mail server executed the mail script as group "mailman".  Try tweaking the mail server to run the script as group "mailnull", or re-run configure,  providing the command line option `--with-mail-gid=mailman'.
調べるとportsでconfigを指定してmailmanを作る必要があるようです。
# /usr/ports/japanese/mailman
# make config

「(*) POSTFIX   for use  with postfix」を有効にする

# make 

# make reinstall
make resinstallの前に、念のために
/usr/local/mailman/Mailman/mm_cfg.py
を別名で保存しておくほうがよいでしょう。

これでテストすると動くように見えます。なので、maimanをpkgでアップデートしてしまうのを防ぐために以下のようにロックします。

$ pkg info -x mailman
ja-mailman-2.1.14.j7_2,1
$ pkg info -I ja-mailman
ja-mailman-2.1.14.j7_2,1       Japanized mailman which is a mailing list manager with a web front-end
$ sudo pkg lock ja-mailman
パスワード:
ja-mailman-2.1.14.j7_2,1: lock this package? [y/N]: y
Locking ja-mailman-2.1.14.j7_2,1
$ pkg lock -l
Currently locked packages:
ja-mailman-2.1.14.j7_2,1
$

旅先でマルチディスプレイ

私が旅行をする場合、ほとんどが出張です。その場合、宿泊先でPCを使った仕事をすることが多いのですが、会社や自宅とは違って、ディスプレイが手元のノートPCの画面だけになってしまい、作業が効率がいまいちに感じます。

同じようなことを考える人は多いらしく、以下のブログではなかなか大胆なことをされています。
山田祥平のRe:config.sys
モバイルディスプレイ、定義がダメなら定理でいこう
山田 祥平 2017年1月6日 00:00
https://pc.watch.impress.co.jp/docs/column/config/1037805.html
以下のように書かれています。
製品は、LGの「24MP88HV-S」という製品で、特にモバイル用途をアピールした製品ではないが、本体のみで2.9kg、取り外しができるスタンドが300gという圧倒的な軽さ、そして、狭額縁を気に入って導入したものだ。メーカー側は想定していないだろうけれど、驚異的なモビリティを感じる製品だ。スタンドを取り外せるし、そのスタンドも2パーツに分解できて余分なスペースを占有しないというのもいい。年末の座談会で、2.9kg、スーツケースに入るからこれはモバイルディスプレイだと言い張ったのが裏目に出たのかもしれない……。
「長期の旅行のときには…」と一瞬思いましたが、3kgほどの重さと破損の可能性を考えるとちょっとむりです。

このディスプレイが壊れたときには部屋のTVをモニタにされているようです。
今回は、幸いにもホテルの部屋に設置されていたTVが42型の液晶だった。 …HDMI 1からセットトップボックスからのケーブルを抜き、自分のケーブルを装着してPCまで配線した。こういうこともあろうかと、3mの長尺HDMIケーブルがいつもスーツケース内に入っている。
私もホテルに泊まるときには、このようにしてTVをモニタ代わりにしています。部屋によってはTVの位置が悪く、HDMIケーブルでうまく配線できないときに備えて、
新しい Wireless Display Adapter (ワイヤレス ディスプレイ アダプター)
型番: P3Q-00009
参考価格 (税抜) ¥6,980

https://www.microsoft.com/accessories/ja-jp/products/adapters/wireless-display-adapter-2/p3q-00009
も持っています。文字はやや滲んでしまうことがありますが、WWWページを見るぐらいであれば問題はありません。

旅先でマルチディスプレイが必須なときには、iPadとDuet Displayを使っています。
サブディスプレイアプリ「Duet Display」が進化、iPad Proをペンタブレットとして使用可能にhttps://internet.watch.impress.co.jp/docs/yajiuma/1026880.html
またこのblogではおもしろいツールが紹介されていました。
RZ4のスペックは今となってはかなり遅く感じるが、大画面にいくつものウィンドウを開いて表示させっぱなしにしていればそれもさほど気にならない。それに、メインの作業は、ほかに持ち込んでいる2台PCを使うので問題ない。ちなみに、これら3台のPCは、一組のマウスとキーボードで使えるように、Microsoft Garage Mouse without Bordersというフリーソフトウェアで制御している。
これならば、ノートPCと軽量なタブレットPCを持っていって、このツールを使ってマルチディスプレイもいいかもしれません。紹介されている「Microsoft Garage Mouse without Borders」は以下のWWWページからダウンロードできます。
https://www.microsoft.com/en-us/download/details.aspx?id=35460
もしくは、Windows 10であれば、PCのディスプレイを共有する仕組みがあるので、こちらも使えそうです。
HP PC - Miracast を使用して画面を共有(Windows 10)
https://support.hp.com/jp-ja/document/c05209268

Windows 10マシンが無線ディスプレイになる「接続」アプリを試してみた
https://pc.watch.impress.co.jp/docs/topic/review/752171.html

2017年10月22日日曜日

トイレのタンク内の玉鎖とレバー部分の交換

トイレのタンク内の玉鎖をひっかけるレバー部分が壊れてしまいました。壊れた部分は、以下のブログのページにある写真にあります。
水のトラブル 玉鎖がきれた
http://blog.livedoor.jp/akibaranger/archives/50771451.html
1枚目の写真の上の部分にある白い部品の、灰色の鎖をひっかける穴が壊れてしまいました。

この写真では鎖はプラスチック製です。しかし、私の方は15年ほど前に設置されたもののせいか金属製です。そのため、数年に一度は腐食で切れてしまうということも起こっていました。そのときは、切れてしまった部分取り除いて、残った部分をひっかけていました。

「白い部品」だけを取り寄せようと思ったのですが、この部品の名称がわかりません。そこで、このブログにあるように、「タンクの型番 排水弁」で検索してみると、同じ部品番号の「HH08008Z」が対応するようです。日本のアマゾンで探してみると販売されており、「対応本体品番」のところに使用している本体の型番がありました。

ここで、型番「HH08008Z」でもう少し探してみると、部品図が見つかりました。
HH08008Z
http://search.toto.jp/scale_cnv/20_HH08008Z.pdf
こわれた部品の番号(HH07047R)がわかったのでこれで探してみると
HH07047R
https://www.onlinejp.net/product/3216
で売られていることがわかりました、部品代と送料を足すと、「HH08008Z」の半額ぐらいです。悩みましたが、納期が謎なので日本のアマゾンで購入しました。

アマゾンのプライム会員なので注文した翌日に届き、付属の指示書に従って取り付けを始めました。最初はレバーだけ交換するつもりだったのですが、既存の部品のようすを確認しようと思い、これらを取り外してみました。すると、パッキンなどがかなり劣化していることがわかり、排水弁全体を交換しました。作業時間は15分ぐらいでした。

結果としては、レバー部分以外も劣化していたので、排水弁全体を購入したほうがよかったようです。

2017年10月20日金曜日

ネットワーク上のディレクトリをマウントする(Windows 10 Fall Creators Update - Bash on Ubuntu on Windows)

Windows 10 Fall Creators UpdateのBash on Ubuntu on Windowsでネットワーク上のファイルを利用できるようになりました。以下に解説がありました。
File System Improvements to the Windows Subsystem for Linux
https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

When you wish to mount a network location, you can of course create a mapped network drive in Windows and mount that as indicated above. However, it's also possible to mount them directly using a UNC path:
$ sudo mount -t drvfs '\\server\share' /mnt/share
試してみました。
surface$ cd /mnt
surface$ ls
c
surface$ sudo mkdir remote
surface$ ls
c  remote
surface$ sudo mount -t drvfs '\\fileserver\folder' /mnt/remote
surface$ cd /mnt/remote
surface$ ls
Doc                    Mail                   memo.txt

surface$
これは便利です。

2017年10月11日水曜日

FreeBSD11+Apache 2.4でLet's Encryptを使いhttpsを有効にする

FreeBSD11+Apache 2.4でLet's Encryptを使いhttpsを有効にしてみました。この作業には以下のWWWページを参考にしました。
FreeBSD 11にて、Apache + SSL(Let's Encrypt) + HTTP/2を動かす。
http://blog.goo.ne.jp/low-electric-mouse/e/912c459b71887d3ca025509f7ea9897b

Let's Encrypt Closed Betaのメモ
http://www.fkimura.com/letsencrypt-a0.html
以下が手順です。まず必要なパッケージをインストールします。
$ sudo pkg install certbot

$
次に証明書を取り込みます。
$ sudo /usr/local/etc/rc.d/apache24 status
パスワード:
apache24 is running as pid 19178.
dandelion$ sudo /usr/local/etc/rc.d/apache24 stop
パスワード:
Stopping apache24.
Waiting for PIDS: 19178.
dandelion$ sudo certbot certonly
パスワード:
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
-----------------------------------------------------------------
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
-----------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@example.com

-----------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-----------------------------------------------------------------
(A)gree/(C)ancel: A

-----------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-----------------------------------------------------------------
(Y)es/(N)o: N
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): www.example.com
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for www.example.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /usr/local/etc/letsencrypt/live/www.example.com/fullchain.pem
   Your key file has been saved at:
   /usr/local/etc/letsencrypt/live/www.example.com/privkey.pem
   Your cert will expire on 2018-01-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /usr/local/etc/letsencrypt. You should
   make a secure backup of this folder now. This configuration
   directory will also contain certificates and private keys obtained
   by Certbot so making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

$
これをhttpdに読み込むように設定します。最初にhttp.conf。
$ sudo vi http.conf

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache24/mod_ssl.so


# Secure (SSL/TLS) connections
Include etc/apache24/extra/httpd-ssl.conf


$
次にextra/httpd-ssl.conf。
sudo vi  extra/httpd-ssl.conf

DocumentRoot "/usr/local/www/apache24/data"
ServerName www.example.com:443
ServerAdmin admin@www.example.com

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.example.com/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.example.com/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.example.com/chain.pem"

$
そしてhttpへのアクセスをhttpsに書き換えてしまうようにします。
$ sudo vi http.conf

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

$ sudo vi Includes/mod_rewrite.conf 

<IfModule mod_rewrite.c>
        RewriteEngine On
        LogLevel alert rewrite:trace3
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
</IfModule>
$
そしてhttpdを再起動して動作を確かめます。

次に、証明書の自動更新を設定します。まずは--dry-runで動作を確認します。
$ sudo  certbot renew --webroot -w /usr/local/www/apache24/data/ --renew-by-default --dry-run
パスワード:
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-----------------------------------------------------------------
Processing /usr/local/etc/letsencrypt/renewal/www.example.com.conf
-----------------------------------------------------------------
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for www.example.com
Using the webroot path /usr/local/www/apache24/data for all unmatched domains.
Waiting for verification...
Cleaning up challenges

-----------------------------------------------------------------
new certificate deployed without reload, fullchain is
/usr/local/etc/letsencrypt/live/www.example.com/fullchain.pem
-----------------------------------------------------------------

-----------------------------------------------------------------
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /usr/local/etc/letsencrypt/live/www.example.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
-----------------------------------------------------------------

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /usr/local/etc/letsencrypt. You should
   make a secure backup of this folder now. This configuration
   directory will also contain certificates and private keys obtained
   by Certbot so making regular backups of this folder is ideal.
次に実際に証明書を更新してみます。
$ sudo certbot renew --webroot -w /usr/local/www/apache24/data/ --renew-by-default
パスワード:
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-----------------------------------------------------------------
Processing /usr/local/etc/letsencrypt/renewal/www.example.com.conf
-----------------------------------------------------------------
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for www.example.com
Using the webroot path /usr/local/www/apache24/data for all unmatched domains.
Waiting for verification...
Cleaning up challenges

-----------------------------------------------------------------
new certificate deployed without reload, fullchain is
/usr/local/etc/letsencrypt/live/www.example.com/fullchain.pem
-----------------------------------------------------------------

-----------------------------------------------------------------

Congratulations, all renewals succeeded. The following certs have been renewed:
  /usr/local/etc/letsencrypt/live/blog.iot.ipsj.or.jp/fullchain.pem (success)
-----------------------------------------------------------------
$
証明書のファイルを見ると日付が今日になっています。
$ sudo ls -lR /usr/local/etc/letsencrypt/live/
パスワード:
total 17
drwxr-xr-x  2 root  wheel  7 10月 11 11:11 www.example.com

/usr/local/etc/letsencrypt/live/www.example.com:
total 13
lrwxr-xr-x  1 root  wheel   43 10月 11 11:11 cert.pem -> ../../archive/www.example.com/cert2.pem
lrwxr-xr-x  1 root  wheel   44 10月 11 11:11 chain.pem -> ../../archive/www.example.com/chain2.pem
lrwxr-xr-x  1 root  wheel   48 10月 11 11:11 fullchain.pem -> ../../archive/www.example.com/fullchain2.pem
lrwxr-xr-x  1 root  wheel   46 10月 11 11:11 privkey.pem -> ../../archive/www.example.com/privkey2.pem
-rw-r--r--  1 root  wheel  543 10月 10 16:18 README

$
動作することがわかったので、cronで定期的に、たとえば1日に1回ほど、以下のシェルスクリプトを実行することにします。
$ cat /usr/local/sbin/renew-letsencrypt.sh
#!/bin/sh
export LANG=C

(date;  \
 /usr/local/bin/certbot renew --webroot  -w /usr/local/www/apache24/data/       \
 --renew-by-default ;   \
 /usr/local/etc/rc.d/apache24 reload) 2>&1 |     \
 mailx -s "Renew the certifcate" admin@example.com

$

2017年10月10日火曜日

FreeBSD 11にmailmanをインストールする

FreeBSD 11にmailmanをインストールしたので、その経過を以下にまとめます。
$ pkg install apache24

$ pkg install ja-mailman
apache24が動作するように最低限の設定をしておきます。そしてmailmanの設定です。

まず
/usr/local/mailman/Mailman/cfg_mm.py
に以下を追加します。
SMTPHOST = 'mail.example.com'
DEFAULT_URL_HOST = 'mail.example.com'
DEFAULT_EMAIL_HOST = 'mail.example.com'

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
このほか、必要に応じて、以下のような設定を追加します。設定できるパラメータは
/usr/local/mailman/Mailman/Defaults.py
記述があります。これは、メーリングリストを作るたびにいつも設定をしていたパラメータで、めんどくさいのでデフォルトの値を変更することにしました。
# What shold happen to non-member posts which are do not match explicit
# non-member actions?
# 0 = Accept
# 1 = Hold
# 2 = Reject
# 3 = Discard
DEFAULT_GENERIC_NONMEMBER_ACTION = 0

# Are archives on or off by default?
DEFAULT_ARCHIVE = No

# Are archives public or private by default?
# 0=public, 1=private
DEFAULT_ARCHIVE_PRIVATE = 1

# Should a list, by default be advertised?  What is the default maximum number
# of explicit recipients allowed?  What is the default maximum message size
# allowed?
DEFAULT_LIST_ADVERTISED = No
DEFAULT_MAX_NUM_RECIPIENTS = 20
DEFAULT_MAX_MESSAGE_SIZE = 100000           # KB

# Private_roster == 0: anyone can see, 1: members only, 2: admin only.
DEFAULT_PRIVATE_ROSTER = 2

# These format strings will be expanded w.r.t. the dictionary for the
# mailing list instance.
# DEFAULT_SUBJECT_PREFIX  = "[%(real_name)s] "
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s %%d]" # for numbering
DEFAULT_MSG_HEADER = ""
DEFAULT_MSG_FOOTER = ""

# See "Bitfield for user options" below; make this a sum of those options, to
# make all new members of lists start with those options flagged.  We assume
# by default that people don't want to receive two copies of posts.  Note
# however that the member moderation flag's initial value is controlled by the
# list's config variable default_member_moderation.
DEFAULT_NEW_MEMBER_OPTIONS = 0

# # Bitfield for user options.  See DEFAULT_NEW_MEMBER_OPTIONS above to set
# defaults for all new lists.
# Digests             = 0 # handled by other mechanism, doesn't need a flag.
# DisableDelivery     = 1 # Obsolete; use set/getDeliveryStatus()
# DontReceiveOwnPosts = 2 # Non-digesters only
# AcknowledgePosts    = 4
# DisableMime         = 8 # Digesters only
# ConcealSubscription = 16
# SuppressPasswordReminder = 32
# ReceiveNonmatchingTopics = 64
# Moderate = 128
# DontReceiveDuplicates = 256

# Mailman can be configured to "munge" Reply-To: headers for any passing
# messages.  One the one hand, there are a lot of good reasons not to munge
# Reply-To: but on the other, people really seem to want this feature.  See
# the help for reply_goes_to_list in the web UI for links discussing the
# issue.
# 0 - Reply-To: not munged
# 1 - Reply-To: set back to the list
# 2 - Reply-To: set to an explicit value (reply_to_address)
DEFAULT_REPLY_GOES_TO_LIST = 1

# Set this variable to Yes to allow list owners to delete their own mailing
# lists.  You may not want to give them this power, in which case, setting
# this variable to No instead requires list removal to be done by the site
# administrator, via the command line script bin/rmlist.
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes
次にWeb UIでアイコンが欠損しているのでこれを補います。「FreeBSD powerd logo」を検索して
/usr/local/mailman/icons/powerlogo.gif
に置きます。この後、Web インターフェース用のパスワードを設定します。
# LANC=C /usr/local/mailman/bin/mmsitepass
パスワード: XXXXX
#
そしてmailman管理用メーリングリストを作ります。
# /usr/local/mailman/bin/newlist mailman
パスワード: XXXX
管理者: system@mail.example.com
mailman用の alias ファイルを作成します。
# /usr/local/mailman/bin/genaliases
(/usr/local/mailman/data/aliasとalias.dbが作成される)
mailman用のファイル・ディレクトリ権限を設定します。 
# /usr/local/mailman/bin/check_perms -f -v
そして次は、apache24の設定です。
$ cd /usr/local/etc/apache24/Includes/
$ vi mailman.conf 


ScriptAlias     /mailman        "/usr/local/mailman/cgi-bin"
Alias           /icons          "/usr/local/mailman/icons"

LoadModule cgid_module libexec/apache24/mod_cgid.so

<Directory "/usr/local/mailman">
        Options +ExecCGI 
        AllowOverride None
        Require all granted
</Directory>

$
cgid.soと+ExecCGIはCGIを有効にするための、 そして「Required all granted」はこのディレクトリへのアクセスを可能にするためのものです。

2017年10月6日金曜日

FreeBSD 11にpkgを使ってwordpressをインストールする

先日、必要があってFreeBSD 11にpkgを使ってwordpressをインストールしたので、その時を記録を以下に示します。

このインストールには以下のWWWページを参照しました。
How to Install WordPress on FreeBSD 11 with Apache, PHP and MySQL
https://linoxide.com/webserver/install-wordpress-freebsd-11-apache-php-mysql/
以下がその記録です。

まずapache24とmqsql56-serverをインストールします。
$ sudo pkg install apache24

$ sudo pkg install mysql56-server


$
これらのサーバーを起動します。
$ sudo sysrc apache24_enable=YES mysql_enable=YES
$ sudo service apache24 start

$ sudo service mysql-server start


$
mysqlにパスワードなどを設定します。
$ sudo mysql_secure_installation

Securing the MySQL server deployment.
Connecting to MySQL server using password in '/root/.mysql_secret'
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: n
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) :  n

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

$ sudo mysql -u root -p
Password: xxxxx
Enter password: yyyyy
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.7.19-log Source distribution
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> CREATE DATABASE wordpressdb;
Query OK, 1 row affected (0.01 sec)

root@localhost [(none)]> CREATE USER wordpressuser@localhost IDENTIFIED BY 'IotIpsj_2017';
Query OK, 0 rows affected (0.00 sec)

root@localhost [(none)]> GRANT ALL PRIVILEGES ON wordpressdb.* TO 'wordpressuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)

root@localhost [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

root@localhost [(none)]> EXIT;
Bye
$
WordPressとmod_phpをインストールします。これで必要なパッケージはインストールされるはずです。
$ sudo pkg install ja-wordpress

$ sudo pkg install mod_php56
次にPHPの設定ファイルを置きます。
$ sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
そしてapcheでPHPを取り扱えるようにします。
$ sudo vi /usr/local/etc/apache24/Includes/php.conf

    <IfModule dir_module>
        DirectoryIndex index.php index.html
        <FilesMatch "\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
        <FilesMatch "\.phps$">
            SetHandler application/x-httpd-php-source
        </FilesMatch>
    </IfModule>
これらの設定後、インストールしたWordPressのサイトをWWWブラウザで開きます。
$ firefox http://www.example.com/wordpress
そして現れた画面で必要な設定をしていきます。まず[さあ、始めましょう]をクリックして以下の値を設定します。
データベース名: wordpressdb
ユーザー名: wordpressuser
パスワード: xxxx
データベースのホスト名: localhost
テーブル接頭辞: wp_

そして[送信]を押します。すると、うまく書き込めないというエラーメッセージが出たので、画面の指示に従って、設定をviなどで書き込みます。
$ sudo vi wp-config.php

現れた画面をcopy&paste

$ sudo chown www:www wp-config.php
そして、次の画面に進み、またサイトの情報を入力します。
サイトのタイトル: Web Pages
ユーザー名: adminuser
パスワード: xxxxxxx
メールアドレス: abc@example.com
検索エンジンでの表示>   [ ]
これでほぼ終わりです。

最後に、WordPressの管理者でログインしてモジュールを更新します。
すると、FTPの設定をしなければならないという警告が出ます。これは以下のページのように、ファイルの所有者を変更しました。
WordPressのモジュールの更新
http://www.sandalot.com/wordpress%E6%9B%B4%E6%96%B0%E3%81%A7ftp%E5%85%A5%E5%8A%9B%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/

プラグインのアップデートなどの際にFTP関連設定を入力しなければいけなくなる場合があります。
『要求されたアクションを実行するには、WordPress が Web サーバーにアク
セスする必要があります。』と出てくるあの画面のことです。
              
chownでWordPressファイルのオーナーを変更する

問題の画面は、スクリプトの実行ユーザーとファイルやフォルダを作成した際のオーナーが異なることにあるそうです。

もう少し具体的には、『wp-admin/includes/file.php』の中で、まず仮のファイルを作成し、そのオーナー(つまりUID)をfileowner()で取得しています。そして、getmyuid()でスクリプト実行者のUIDを取得して、両者を比較します。

それらが同じならそのままダウンロードする、同じでなければFTP情報を入力する画面を表示する、という条件分岐を行なっています。

なので、スクリプト実行者をファイル作成者を合わせるために、以下のようにファイルオーナーを変更します。
       
chown -R apache:apache (WordPressを設置したディレクトリの名称)
以下のようにしました。          
$ cd /usr/local/www/wordpress/
$ sudo chown -R www:www .
$

bcコマンドに行編集機能がある

最近になって、Unixシステムにあるbcという計算コマンドで、行編集や履歴操作ができることを教えてもらいました。しりませんでした。

手元のFreeBSD 11で試してみると、確かに使えます。manにも以下のように書かれています。
COMMAND LINE EDITING
bc supports interactive command line editing, via the editline(3)
library.  It is enabled by default if input is from a tty.  Previous
lines can be recalled and edited with the arrow keys, and other GNU
Emacs-style editing keys may be used as well.
 

The editline(3) library is configured with a .editrc file - refer to
editrc(5) for more information.
知りませんでした。

2017年9月3日日曜日

続 NAD11のクレードルをMR05LNのクレードルとして使う

先日、以下のようなことを書きました。
NAD11のクレードルをMR05LNのクレードルとして使う
http://www.sakashita-net.jp/2017/06/nad11mr05ln.html
NAD11のクレードルを分解して使うのはちょっと大変なので、以下の写真のようにしています。
マイクロBのUSB延長ケーブルで、NAD11のクレードルの端子とMR05LNの端子を接続しています。

ただし、NAD11のクレードルの端子付近の溝の幅が狭いので、コネクタ部分が小さいUSB延長ケーブルを使う必要があります。私が購入したマイクロBのUSB延長ケーブルもややコネクタが大きく、カッターで削らなくてなりませんでした。

かっこよくはありませんし、クレードルのように置くだけというふうにはいきませんが、たまに使うには十分でした。

2017年8月14日月曜日

emacsでカーソル位置を覚えておく

最近、Emacsを使って長い文章を書く仕事をしていて、少し、困ったことがありました。具体的には以下のようなことです。
  • 「長い文章」なので作業は一日では終わらない
  • 一日では終わらないので、編集のためのEmacsを起動させたままにはしていない
  • 次にEmacsでそのファイルを開いたときに、「長い文章」のためにファイルが大きく、前回の最後の作業位置を見つけるのが少しめんどう
そこで、Emacsの拡張機能で、終了時にファイルのカーソル位置を覚えてくれて 、次回、そのファイルを開いたら、前回のカーソル位置に戻してくれるというものがないか、調べてみました。すると以下のWWWページを見つけました。
Emacsで一度開いたファイルのカーソル位置を覚えておく
http://d.hatena.ne.jp/hnw/20140111

ここでは以下のように設定するように書かれています。
;; 以前開いたファイルを再度開いたとき、元のカーソル位置を復元する
;; http://www.emacswiki.org/emacs/SavePlace

(when (require 'saveplace nil t)
  (setq-default save-place t)
  (setq save-place-file "~/.emacs.d/saved-places"))
そうなのかと思い設定したのですが、 動きません。そこで、コメントにある
Save Place
http://www.emacswiki.org/emacs/SavePlace
を見てみると、以下のようにありました。
For GNU Emacs 25.1 and newer versions
(save-place-mode 1)
Note that saveplace is auto-loaded by save-place-mode. So you do not need to explicitly require it.
私の使っているEmacsは
GNU Emacs 25.2.1 (amd64-portbld-freebsd11.0, GTK+ Version 3.22.15) 
なので、上のようにする必要がありました。

使ってみると、.emacs.d/placesというファイルに以下のように情報が書き込まれます。

$ cat .emacs.d/places
;;; -*- coding: utf-8 -*-
(("/home/USER1/text/file3.txt" . 24459)

2017年8月8日火曜日

Windows10でタスクマネージャを自動起動させる方法

自分のPCの負荷を監視するために、Windows 7までは、タスクマネージャへのショートカットをスタートアップメニューに置くことで、タスクマネージャを自動起動させていました。ところが、Windows10になり、この方法ではタスクマネージャを自動起動させることができず、困っていました。そして、ある時、どこかのWWWページの記述にあった方法でタスクマネージャを自動起動することができるようになり、それ以来、このこと忘れていました。そして、ふと、今日、次のWWWページを見つけました。
Windows10でタスクマネージャを自動起動させる方法 https://answers.microsoft.com/ja-jp/windows/forum/windows_10-start/windows10%E3%81%A7%E3%82%BF%E3%82%B9%E3%82%AF/96601980-be3f-4023-8ff4-b5d82ba53b00 
同じことで困っている人がいらっしゃったようです。対処方法を以下に引用します。
■ 手順
  1. メモ帳を開き、以下の文字列をコピーして貼り付けます。
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Call WshShell.Run( "taskmgr.exe", 0 , True )
  2. ファイルを任意の名前で、
    「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup」フォルダー
    に保存します。このとき、拡張子は「.vbs」とします。
不明点があれば遠慮なく返信くださいね。
一ノ瀬 圭 – Microsoft Support
どうしてWindows10ではタスクマネージャをスタートアップメニューに置くことで自動起動できないのでしょうか。ちょっとふしぎです。

2017年8月5日土曜日

FreeBSDで手動で/etc/passwdと/etc/master.passwdを編集した場合

FreeBSDで手動で/etc/passwdと/etc/master.passwdを編集した場合は、パスワードデータベースを再構成する必要があります。
$ man pwd_mkdb
...
EXAMPLES
     Regenerate the password database after manually editing or replacing the
     password file:

            /usr/sbin/pwd_mkdb -p /etc/master.passwd
...

$ sudo /usr/sbin/pwd_mkdb -p /etc/master.passwd
$

FreeBSD 11.0から11.1へアップグレードする

たまたまFreeBSD 11.0を新規にインストールする機会があったので、FreeBSD 11.0をインストール後に、11.1へアップグレードしてみました。

以下の解説に従って作業を進めます。
17.2.3. メジャーおよびマイナーバージョンのアップグレードを行う
https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/updating-upgrading-freebsdupdate.html
以下は、作業のようすです。
$ sudo freebsd-update -r 11.1-RELEASE upgrade
パスワード:
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update5.freebsd.org... done.
Fetching metadata signature for 11.0-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/doc world/lib32

The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)? y

Fetching metadata signature for 11.1-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system...
Fetching files from 11.0-RELEASE for merging... done.
Preparing to download files...
done.
Fetching 49972 patches.....10....20....30....  ....49960....49970. done.
Applying patches... 

Fetching 2490 files... done.
Attempting to automatically merge changes in files... done.

The following file could not be merged automatically: /etc/ntp.conf
Press Enter to edit this file in /usr/bin/vi and resolve the conflicts
manually...
...

Does this look reasonable (y/n)? y

The following changes, which occurred between FreeBSD 11.0-RELEASE and
FreeBSD 11.1-RELEASE have been merged into /etc/ssh/sshd_config:
...

Does this look reasonable (y/n)? y
 

The following files will be removed as part of updating to 11.1-RELEASE-p0:
/boot/kernel/hv_ata_pci_disengage.ko
/usr/include/c++/v1/__undef___deallocate
/usr/include/c++/v1/tr1/__undef___deallocate
/usr/include/netinet/ip_ipsec.h
/usr/include/netinet6/ip6_ipsec.h
/usr/include/pcap-int.h
/usr/lib/clang/3.8.0
/usr/lib/clang/3.8.0/include

...
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".

$ sudo /usr/sbin/freebsd-update install
パスワード:
Installing updates...

Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
$ sudo reboot

パスワード:
....
$ uname -a
FreeBSD dandelion 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017     root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
$ freebsd-version
11.0-RELEASE-p1
$ sudo freebsd-update install
パスワード:
Installing updates... done.

...
Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.
$ sudo freebsd-update install
パスワード:
Installing updates... done.

$ uname -a
FreeBSD dandelion 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017     root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
dandelion$ freebsd-version
11.1-RELEASE
最後に、3回、freebsd-update installとrebootを繰り返して終了です。

念のために、再起動とfreebsd-update fetchとpkg updateを行います。
$ sudo reboot

パスワード:
....
$ sudo freebsd-update  fetchパスワード:
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 11.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 11.1-RELEASE-p0.
$ sudo pkg update
パスワード:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
$