ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

MavericksやYosemite利用中の環境に通常アップデートとしてHigh Sierraを提供開始した件を調べてみた

下記の記事を見たので、試してみました。

applech2.com

ちなみにEl Capitan以降のバージョンをインストールしている環境にはきていないようです。というわけで、はやくEl Capitan以降にアップグレードしましょう。

早速、実証

今回はOS X Yosemite 10.10.5をインストールしました。 これがYosemite 10.10.5のインストール直後にApp Storeを開いたところです。確かにHigh Sierraのアップグレードがアップデートと同系列に並べて表示されています。「アップグレード」なのに「アップデート」というボタンになっているところ、これが批判の元になっているのかな。

f:id:ytooyama:20180416000547p:plain:w360

「アップデートを隠す」を試してみた

試しにHigh Sierraのアップグレードの上で右クリックしました。「アップデートを隠す」というメニューが表示されましたが、何度実行しても隠れてくれません。通常のアップデートではこの方法でアップデートをスキップできます。今回はこの方法は使えないようです。

「High Sierra」以外のアップデートを適用してみた

とりあえずHigh Sierraのアップグレード以外のアップデートを適用してみました。

f:id:ytooyama:20180416000806p:plain:w360

アップデートを完了するには再起動が必要みたいです。ここで再起動すると「High Sierraのアップグレードまで行われたりするのでは?」と心配でしたが、とりあえず「セキュリティーアップデート2017-003 10.10.5」の横に表示された「再起動」ボタンを押してみます。アップデートが始まって、終わると再起動がかかりました。

f:id:ytooyama:20180416000851p:plain:w360

再起動後にOS Xにログインして、App Storeを開きました。iTunesのアップデートが表示されたので、同様に「アップデート」してみました。問題なく終わりました。

f:id:ytooyama:20180416001121p:plain:w360

考察

ボタンが紛らわしいという点を除いて、これを適用すべきか否かがわかる人はなんとか回避できると思います。仕事で使っているわけではなく、「パソコン」として使っているような初心者は、わざわざ古いOSを使い続けることはないと私は思います。

結果

というわけで、現状は「High Sierraのアップグレード」は表示されますが、「アップデート」ボタンを押さない限り「High Sierra」へのアップグレードはされないようです。何が何でも色々な手段(ポップアップを出したり、ウィンドウメッセージを出したり)を使ってWindows 7Windows 8.1Windows 10にしようとしたWindowsとは違いますね。

ちなみに何度も言いますが、はやくEl Capitan以降にアップグレードしましょう。今秋にはmacOS 10.14がリリースされます。El Capitanはそれまでの命ですので、できればSierra以降にすべきかと思います。移行の手間を考えれば。

Raspberry PiにNOOBSを使ってOSをセットアップした時にはまったこと

NOOBSは初心者向けのOSセットアップツールです。これまでRaspberry PiにOSのデータを書き込むにはddコマンドを使っていたのですが、ちょっと楽をしようとNOOBSを使ったら意外とはまったので、まとめておこうと思います。

まずはNOOBSをダウンロード。本家からだとちょっと遅いので、こちらのミラーからダウンロードすることもできます。

現行のRaspberry PiはSDカードをFAT32でフォーマットする必要があるため、ファイルシステムの種類をFAT32にしてフォーマットします。macOS High Sierraの場合は「MS-DOS (FAT)」を選択するとFAT32でフォーマットするようです。

ダウンロードしたNOOBSのZIPファイルを展開して、ファイルをすべてSDカードにコピーしたら、あとはSDカードをRaspberry Piに差し込んでブートするだけなのですが、なぜか起動してくれませんでした。最初は使おうとしていたRaspberry Piが壊れたのかなと思ったのですが、別のRaspberry Piに差し込んで起動しても同様に動きません。そこで公式のマニュアルを見ました。

www.raspberrypi.org

ドキュメントにSD AssociationのSD Formatterを使っている記述がありました。試しにダウンロードしてSD Formatterをフォーマットし、もう一度NOOBSをSDカードにコピーしてブートしてみたところ、うまくいきました。

Raspberry P 1も2も3も壊れてなくて、ただmacOSのディスクユーティリティが壊れていただけでした。 というわけで、フォーマットする時はSD AssociationのSD Formatterを使おうという話でした。

この問題、「またHigh Sierraか...」という話ではなくて、El Capitan以降の全バージョンのmacOSのディスクユーティリティでFAT32でフォーマットすると、よく失敗する気がします(SDカードだけでなく、USBメモリーなどでも)。ちなみにexFAT形式は特に問題ありません。「FAT32形式でフォーマットすると失敗することがある」と以前Public Betaを使っていた時にレポートはあげましたが、今の所治る気配はありません。

永遠に続くSending build context to Docker daemon

Dockerイメージを作ろうと、Docker for Macを入れた環境でdocker buildをしたら次のようなエラーが表示されました。 出力を見る限り、Docker daemonにどんどん何かを送っているようです。

下記は4.445GB程度を転送していた時の出力のコピペですが、実際はどんどんカウントアップされており、同時にシステムディスクの空き容量がどんどん減少していきました。とりあえずCTRL + Cで中止しました。

% docker build -t ytooyama/ubuntu-utils . 
ERRO[0010] Can't add file /Users/ytooyama/.gnupg/S.gpg-agent to tar: archive/tar: sockets not supported
ERRO[0010] Can't add file /Users/ytooyama/.gnupg/S.gpg-agent.browser to tar: archive/tar: sockets not supported
ERRO[0010] Can't add file /Users/ytooyama/.gnupg/S.gpg-agent.extra to tar: archive/tar: sockets not supported
ERRO[0010] Can't add file /Users/ytooyama/.gnupg/S.gpg-agent.ssh to tar: archive/tar: sockets not supported
Sending build context to Docker daemon  4.445GB

最初はmacOS固有のgnupg周りの問題かなと思ったのですが、いくら検索してもズバリといった情報は見つかりませんでした。そこで検索するキーワードをちょっと変えたところ、次のような情報を見つけました。

beniyama.hatenablog.jp

どうやら、Dockerファイルをホームディレクトリーにおいてdocker buildを実行したため、DockerクライアントからDocker daemonに対してホームディレクトリー配下のファイルを一所懸命転送していたようです。というわけで、~/working/dockerみたいなディレクトリーを掘って、そこにDockerfile「だけ」をおき、docker buildを実行してことなきを得ました。

その時に作ったのがこれです。作ったDockerイメージってDocker Hubで共有できるので便利ですね。

RHEL7/Fedora 27でGlusterFSを利用する

GlusterFSについてはこちらを参照してください。

GlusterFS - Wikipedia

RHEL7/Fedora 27でGlusterFSを利用する方法を調べました。 基本的には次の情報が役立ちました。

GlusterFS - How to Install GlusterFS Server on CentOS 7 / RHEL 7 - YouTube

www.linuxhelp.com stackoverflow.com

現在、RHEL7やCentOS7の場合はEPELリポジトリーは不要のようで、CentOS Storage SIG提供のパッケージを使うとうまく行きました(こちらにもそのリポジトリーを使うことと書かれています)。 こんなglusterfs.repoを用意してあとはインストールするだけです。

# vi /etc/yum.repos.d/glusterfs.repo
[glusterfs]
name = Glusterfs
baseurl = http://mirror.centos.org/centos-7/7/storage/x86_64/gluster-4.0/
gpgcheck = 0
enable = 1

Stable(3.10)版を使うには、baseurlとして以下を指定するとインストールできました。

Fedoraの場合は、以下にあるリポジトリーのパッケージを使います(repoファイルも提供されています)。3系のバージョンを使いたい場合は、Fedora 27の標準パッケージを使えます。ただしGlusterFS 3.12です。Stableを使いたい場合は素直にRHEL7やCentOS7を使った方がいいと思います。

ただ、repoファイルそのままの内容ではGPGのエラーを解決できないため、このリポジトリーのパッケージを使うにはgpgcheckをオフにする必要がありました。

gpgcheck=1
↓
gpgcheck=0

というわけで、RHEL7/Fedora 27ではGlusterFSは割と簡単に動作しました。 ちなみにGlusterFSサーバーを動かしたり、リモートのGlusterFSの共有ボリュームをマウントするためにSELinuxを闇に滅する(無効化する)必要は特にありませんでした。

Red Hat Developer Programの更新2018

今年もRed Hat Developer Programの更新を行いました。

ytooyama.hatenadiary.jp

去年はちょっとわかりにくかったのですが、今年はこのRed Hat Developer サイトにログインして「Terms & Conditions」に同意すれば良いようです。数時間待つとサブスクリプションが有効になって、いくつかの製品やドキュメントの利用が可能になります。

ちなみにサブスクリプションは更新とはいうものの持ち越しではなく新しいキーが割り当てられるため、サブスクライブしたものは再度新しいサブスクリプションを使ってサブスクライブし直しになるようです。まあ特に問題ないですよね。

とはいえ、これで検証作業がはかどります。

Safariのサイト越えトラッキング機能の話

先日のアップデートでmacOS Sierra向けのSafariも11.1になったのですが、 iOS 11の設定にあった「サイト越えトラッキング機能」がmacOSSafariにないなと思ったら、 これ、Safariの機能ではなくてmacOS High Sierra向けSafariの機能なのですね。

support.apple.com

こちらがSierraSafari 11.1で f:id:ytooyama:20180403215735p:plain

こっちがHigh SierraSafari 11.1です。 f:id:ytooyama:20180403215822p:plain

Safari 11.1自体の見た目は一緒ですが、設定に違いがありました。 設定するかしないかはこちらをみてから判断すると良い気がします。 デフォルトの設定はオンらしいですけど、一応確認しておいた方がいいと思います。

anagrams.jp www.gizmodo.jp

Webkit 公式の情報

Intelligent Tracking Prevention | WebKit

ちなみにこの設定は一般的な利用では問題は起きないはずですが、有効にすると一部のサイトで問題が発生するようです。

Ubuntu 17.10よりNetplanが利用されるようになった

Ubuntu 17.10からネットワーク設定にNetplanが利用されています。当然問題がなければ間も無くリリースされるUbuntu 18.04 LTSでも利用されます。

Ubuntu Desktopの場合はバックエンドが変わっただけでNetplanをあまり意識する必要はないですが、Ubuntu Serverの場合は注意する必要があります。

Ubuntu 17.04まで

これまではこのようなことをして、IPアドレスを設定していたと思います。

$ sudo vi /etc/network/interfaces
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.10
dns-search ns.example.com

IPアドレスの設定の反映のために再起動

$ sudo reboot

Ubuntu 17.10からは

これが、Netplanではこうなります。IPアドレスの設定を反映するために再起動が不要になったようですね。しかもsystemd-networkdを使うようです。

YAMLを書いてApplyするとか、なんか今風ですね。

$ sudo vi /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s5:
      dhcp4: no
      addresses: [10.0.0.10/24]
      gateway4: 10.0.0.1
      nameservers:
        addresses: [10.0.0.10]
        search: [ns.example.com]
      dhcp6: no

IPアドレスの設定を反映

$ sudo netplan apply

コマンドを実行するとすぐ反映されます。SSHは切断されますので注意。

これを試したい場合は、Ubuntu Server 17.10.1をダウンロードして試してみてください。また、来月の今頃にはUbuntu 18.04 LTSがリリースされているはずです。

ちなみに

netplanを検索すると次のサイトが検索に引っかかるのですが

www.jr-odekake.net

なんでかなーと思ったら、URLに「jr-odekake.net/plan」の文字が。なるほど。

NVIDIAのCUDAのインストールでハマりがちなポイント

最近、NVIDIA CUDAを触ることが多くなっています。 通常はDocker HubのCUDAイメージを使うので良いのですが、たまにパッケージ版のCUDAが必要な時にハマるので、二度とはまらないようにメモしておこうと思います。

最新版のCUDAをインストールする

CUDAはこちらのページからダウンロードします。

例えばx86Ubuntu 16.04向けは、ボタンを選択していくと次のような手順でインストールできると書かれています。

sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

しかし、この通りやってもインストールできません。理由はapt-keyを入れる前にdpkgコマンドでインストールしようとしているからです。つまり、こうするのが正しいです。

% sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
% sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
% sudo apt-get update
% sudo apt-get install cuda

バージョンを指定してCUDAをインストールする

さて、つぎは最新ではないバージョンのCUDAが必要な時です。その場合はまずここを開きます。

developer.nvidia.com

リンクの一覧からダウンロードしたいバージョンを選択します。あとは前のステップと同じように実行します。 ただし!

メタパッケージのcudaをインストールすると最新版がインストールされます。したがって例えば一つ前のCUDA 9.0が必要ならば、こうするのが現時点では正解です。

% sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
% sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
% sudo apt-get update
% sudo apt-get install cuda-9.0

ちなみにリポジトリーには最近のバージョンのCUDAパッケージがあるので、一度cuda-repoパッケージをインストールしたあとはそのまま別のバージョンのCUDAをセットアップできます。