macOS Venturaが発表されているのに、今更MacBook Air 11インチ ✕ 2 を買ってしまった話
タイトルの通りですが、次期OSであるmacOS Venturaに対応していないMacBook Airをここ1ヶ月で2台買いました。
MacBook Pro 13 Late 2011 という骨董品をメインPCとしているので、そろそろ新しいMacがほしいと考えていました。
そこで、M1 MacBook Airを購入しようと考えていましたが円安のため値上がり・・・。
今回は見送りかなと考えていたところ、たまたまハードオフでMacBook Air 11 Mid 2012 をハードオフで見かけてしまったのがことの始まりです。
本体、箱、充電器など付属品付き、CPU、メモリ、ストレージのアップグレード無しモデルで22,000円くらいでした。
特にメモリが心もとない気がしましたが、11インチのコンパクトさに惹かれて購入。
以下主なスペックです。
MacBook Air 11 Mid 2012 | |
---|---|
CPU | Core i5-3347U |
メモリ | 4GB |
グラフィックス | Intel HD Graphics 4000 |
ストレージ | 128GB |
インストールされているOSはMac OSX Lion(10.7)でしたが、Catalina(10.15)までアップグレードできました。
メモリ4GBとはいえ、普段使い(ブラウジングやYoutube)では問題なさそうです。
しかし、このあとMacBook Air 11 Early 2015 を買うことになります。
理由としては、
- 最新OSを試したいから
- CTOモデルが欲しくなった
というものでした。
最新OSを試すだけであれば、2012年モデルでもPatcherでインストールはできると思うのですが、
11インチMacbook Airの上位構成も手にしたかったからという悪癖が出てしまいました。
Ratinaディスプレイでもないし、M1 / M2 Mac買ったほうが十中八九幸せになれるのはわかっているのですが・・・。
ともあれ手に入れたのが、以下のスペックのものです。
こちらも付属品付きでした。
MacBook Air 11 Early 2015 | |
---|---|
CPU | Core i7-5650U |
メモリ | 8GB |
グラフィックス | Intel HD Graphics 6000 |
ストレージ | 256GB |
さっそく現時点での最新OSであるMonterey(12.x)をインストール。
2015年モデルでサポートされる最終OSとなります。
一部使用できない機能(バッテリーの最適化)がありますが、新しいOSを触るのはやっぱり楽しいですね。
どこかに持ち出して使う予定は今の所全く無いのですが、11インチのコンパクトさも良いです。
モチベが下がっていたプログラミングもできればいいな!
今後はとりあえずのメインPCとすべく、ストレージの交換を行う予定です。バッテリー交換もしたいところ。
ただ、M1(M2) Macも欲しい!
DockerでPythonの環境構築を行う(Windows10 Home編)
前回はMac上にDockerの環境構築を行い、DockerFileからPython3.x系が実行できるコンテナを作成しました。
今回は、Windows10 Homeのマシン上に同じくDockerの環境構築を行い、Dockerfileを使ってPython3.x系が実行できるコンテナの作成を行います。
Dockerのインストール
Windows 10 Homeの場合だとDocker for Windows(Hyper-V)が利用できないため、 代わりにDocker Toolboxをインストールします。
Windows 10 Homeな方はこちらから
https://github.com/docker/toolbox/release
インストーラの通り進めると、3つのアイコンがデスクトップに現れます。
一番下の「Docker Quickstart Terminal」をダブルクリックします。
何度か変更の許可を求めるダイアログが出てくるので「許可」を選択します。
しばらく待つと下のような画面になり、Dockerコマンドが使用可能になります。
$ docker version Client: Version: 18.09.3 API version: 1.39 Go version: go1.12 Git commit: 774a1f4eee Built: Mon Mar 4 10:36:44 2019 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.0 API version: 1.40 (minimum version 1.12) Go version: go1.12.5 Git commit: aeac9490dc Built: Wed Jul 17 18:22:15 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.2.6 GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb runc: Version: 1.0.0-rc8 GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f docker-init: Version: 0.18.0 GitCommit: fec3683
次に、前回作成したDockerfileを使ってイメージとコンテナを作成します。
Dockerfileがある場所まで移動し、以下のコマンドを実行します。
$> docker build . Sending build context to Docker daemon 2.048kB Step 1/4 : FROM ubuntu:18.04 18.04: Pulling from library/ubuntu 5b7339215d1d: Pull complete 14ca88e9f672: Pull complete a31c3b1caad4: Pull complete b054a26005b7: Pull complete Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c Status: Downloaded newer image for ubuntu:18.04 ---> 4c108a37151f Step 2/4 : RUN apt-get update ---> Running in 65165292f804 Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB] Get:3 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [725 kB] ... Requirement already satisfied: six in /usr/lib/python3/dist-packages (from cycler>=0.10->matplotlib) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from kiwisolver>=1.0.1->matplotlib) Installing collected packages: numpy, cycler, python-dateutil, pyparsing, kiwisolver, matplotlib Successfully installed cycler-0.10.0 kiwisolver-1.1.0 matplotlib-3.1.1 numpy-1.16.4 pyparsing-2.4.1 python-dateutil-2.8.0 Removing intermediate container 3deddb4c1414 ---> b6337a07e65e Successfully built b6337a07e65e SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
下のほうにWindowsからWindows以外のホストを作成すると、パーミッションがこんな感じになるよ的な警告が書かれていますがそのまま続けます。
作ったイメージをdocker imageで確認します。
$> docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> b6337a07e65e 9 minutes ago 605MB ubuntu 18.04 4c108a37151f 4 weeks ago 64.2MB
IMAGE IDが「b6337a07e65e」のものが作成したイメージになります。
イメージには特に名前がないためIMAGE IDで指定してコンテナを作成します。
$> docker run -it -d --name ubuntu_py3 b6337a07e65e ae058a43a5529f26ac1b48aa289e81807dc39e51f35421dc174b45017014d63b $> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ae058a43a552 b6337a07e65e "/bin/bash" 50 seconds ago Up 45 seconds ubuntu_py3
指定した名前でコンテナができました。コンテナの中に入ります。
$> docker exec -it ubuntu_py3 /bin/bash root@ae058a43a552:/# root@ae058a43a552:/# python3 Python 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>> import numpy >>> import matplotlib >>> exit() root@ae058a43a552:/#
前回と同様にPythonの入ったコンテナを作成することができました。
DockerでPythonの環境構築を行う
仕事でDockerを使う機会があったのですが、あまり馴染みがなかったので使い方を調べることにしました。 試しにPython3.xの環境構築を行ってみます。
Dockerのインストール
WindowsならDocker for Windows、MacならDocker for Macとわかりやすいですね。
ただし、Windows 10 Homeの場合だとDocker for Windows(Hyper-V)が利用できないため、
代わりにDocker Toolboxというものをインストールする必要があります。
今回はMacで行いますが、Windowsでも同様に動かせると思います。
Docker自体はすでにインストール済みだったためアップデートをして完了しましたが、
新規インストールの場合でも基本的にはインストーラに従えばOKだと思います。
Docker for Mac(Windows)はこちらからインストーラをダウンロードできます。
https://www.docker.com/products/docker-desktop
Windows 10 Homeな方はこちらから
https://github.com/docker/toolbox/release
DockerでのPython環境構築
まずはDockerを起動します。
するとこんなアイコンが出てきて、もそもそと動きます。
これが止まるとDockerの起動完了です。
Windowsであれば画面右下あたりに同じアイコンがいるはずです。
ターミナルを起動し、以下のコマンドを実行してこんな結果になればOKです。
$>docker version Client: Docker Engine - Community Version: 18.09.2 API version: 1.39 Go version: go1.10.8 Git commit: 6247962 Built: Sun Feb 10 04:12:39 2019 OS/Arch: darwin/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.2 API version: 1.39 (minimum version 1.12) Go version: go1.10.6 Git commit: 6247962 Built: Sun Feb 10 04:13:06 2019 OS/Arch: linux/amd64 Experimental: true
次にDockerのイメージを取得します。
docker search でdocker hubで共有されている作成済みイメージを検索できるようです。
検索に引っかかればそのイメージを使うことができます。
$>docker search python3 NAME DESCRIPTION STARS OFFICIAL AUTOMATED sellpy/python3-jupyter-sklearn python3-jupyter-sklearn 4 [OK] openwhisk/python3action Apache OpenWhisk runtime for Python 3 Actions 4 kuralabs/python3-dev Python 3 ready container to build Python pro… 3 [OK] clutteredcode/python3-alpine-pandas Python3 with pandas based on alpine 2 [OK] sellpy/python3-jupyter-sklearn-java python3-jupyter-sklearn-java 2 [OK] codenvy/python34 Dockerfile:https://github.com/codenvy/docker… 1 sellpy/python3-gphoto2 Python3, Gphoto2 1 [OK] tedder42/python3-scipy-cron . 1 [OK] brumbrum/python3 Immagine contenente python3 1 [OK] ... 以下略 ...
いっぱいあんなおい・・・どれ選べばいいんだよ・・・
ということでUbuntuのイメージを取得してPython3をインストールすることにしました。
LTS版であるUbuntu 18.04をインストールします。
$>docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 5b7339215d1d: Pull complete 14ca88e9f672: Pull complete a31c3b1caad4: Pull complete b054a26005b7: Pull complete Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c Status: Downloaded newer image for ubuntu:18.04
docker imagesで取得したDockerイメージの一覧を表示できます。
$>docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 4c108a37151f 3 weeks ago 64.2MB
さっそくUbuntuを動かしてみます。以下コマンドでDockerコンテナの作成&起動が行われます。
$>docker run -it -d --name ubuntu18.04 ubuntu:18.04 aa320e5db96d9ead4c8e1a4b1194373c5353b90a90cbd86e8e4e71ad9f71b732
各オプションは以下のような感じです。
オプション | 動作 |
---|---|
-it | ターミナルで操作可能に |
-d | バックグラウンド実行 |
--name | コンテナに名前をつける |
なんか長い文字列が出れば成功です。これはコンテナIDとなります。
docker psとすると、起動しているコンテナが表示されます。
ここで先程表示されたコンテナIDの一部が表示されているはずです。
$>docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES aa320e5db96d ubuntu:18.04 "/bin/bash" 2 minutes ago Up 2 minutes ubuntu18.04
あとはdocker execコマンドでDockerのUbuntuにログインすることができます。
ちなみにこの時点ではインストールされていないため、Python3は実行できません。
$>docker exec -it ubuntu18.04 /bin/bash root@aa320e5db96d:/# root@aa320e5db96d:/# python3 bash: python3: command not found
apt-get updateしてから、Python3とpython3-pipをインストールします。
python3コマンドで実行できたらOK。
root@aa320e5db96d:/# apt-get update Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB] Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Get:3 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [4172 B] ... root@aa320e5db96d:/# apt-get install -y python3 python3-pip ... root@aa320e5db96d:/# python3 Python 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
pip3でNumpy, Matplotlibをインストールします。
importでエラーが出なければ成功です。
exitでログアウトします。
root@aa320e5db96d:/# pip3 install numpy matplotlib root@aa320e5db96d:/# python3 Python 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import matplotlib >>> exit() root@aa320e5db96d:/# exit
もとのターミナルに戻る場合は、docker stopでコンテナを停止させます。
$>docker stop ubuntu18.04 ubuntu18.04
DockerFileを作る
Pythonが実行できるところまでは確認できたので、次は別マシンでも動かせるようにします。
調べてみるとDockerFileというものを作ることで、環境構築をスムーズに行うことができるようです。手順書みたいですね。
ググった情報とMac上で動かした情報をもとにDockerfileを作ってみました。
# ベースとなるイメージ FROM ubuntu:18.04 # RUNでコンテナ生成時に実行する RUN apt-get update RUN apt-get install -y python3 python3-pip RUN pip3 install numpy matplotlib
以下コマンドでDockerfileからPython3, pi3のインストールをしてくれます。
$>docker build . Sending build context to Docker daemon 2.048kB Step 1/4 : FROM ubuntu:18.04 ---> 4c108a37151f Step 2/4 : RUN apt-get update ---> Running in 85954746378d Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB] Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Get:3 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [578 kB] Get:4 http://archive.ubuntu.com/ubuntu ... 197f63eae486eca2c35dcd334bab75ad524e0de1/kiwisolver-1.1.0-cp36-cp36m-manylinux1_x86_64.whl (90kB) Requirement already satisfied: six in /usr/lib/python3/dist-packages (from cycler>=0.10->matplotlib) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from kiwisolver>=1.0.1->matplotlib) Installing collected packages: numpy, cycler, python-dateutil, pyparsing, kiwisolver, matplotlib Successfully installed cycler-0.10.0 kiwisolver-1.1.0 matplotlib-3.1.1 numpy-1.16.4 pyparsing-2.4.0 python-dateutil-2.8.0 Removing intermediate container 4a4fcaf63749 ---> 028e80075d12 Successfully built 028e80075d12
docker imagesを実行すると、イメージが追加されていることがわかります。
作成したイメージからコンテナの作成を行うと、Python3の環境構築が完了した状態で起動することができます。
$>docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 028e80075d12 49 seconds ago 605MB ubuntu 18.04 4c108a37151f 3 weeks ago 64.2MB
いったんここまで。次はWindowsマシンに環境構築をしたいと思います。
Raspberry Pi 3.5 インチモニタがコンソール起動時のみ固まる
先日、AmazonでKumanというメーカーから出ている3. 5インチディスプレイを買ったのですが、少しハマったのでメモします。
Raspberry Piで使うにはドライバを入れる必要があります。
最初は、説明書にある通り以下のドライバからインストールしました。
デスクトップモードで起動するようにするとうまく動くのですが、コンソールのみで起動したときに画面が固まったままとなってしまいました。
何度か再インストールしたものの変わらず。(sshが繋がるのは助かりました・・・)
調べてみると、似たようなドライバがあるようでそちらからインストールするとうまくいきました。
github.com 更新日付も2019/5/22時点では後者のほうが新しいようです。
Raspbianのバージョンとかも関係しそうですが、なにか不具合があったらwaveshareのものをインストールするとうまくいくかもしれないですね。