IT ニュース&コラム 2019/ 6/ 3 通巻789号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ インストーラーでインストールする対象のバージョンは、最新版より特定版 ■■ プログラミングの勉強をする際、本を読むより実際に動かしたほうが学習効率が高まります。 イメージがしやすいですからです。 しかし、その学習環境をインストールするのに シェルでコマンドを何度も入力する必要がある場合は、面倒くさいですね。 たとえば、 AI や Webサーバーなど Linux 系のフレームワークによく見られます。 厄介なのは、書いてある通りにコマンドを入力しても期待通りにインストールできない ことがよくあることです。 面倒くさいだけでなく動かせないのです。 これが原因で、 学習を始める前に挫折する人が多くいると思います。 インストールできないときに詳しい人に相談してみると、多くの場合、対応している OSのバージョンと異なるのではないか、という回答を受けると思います。 そして、 最新のOSを使うようにしてください、という回答を受けると思います。 つまり、 アプリのバージョンとOSのバージョンの組み合わせが対応していなかったことが原因 というわけです。 同じような原因として、インストールするモジュールA(部品A)のバージョンと モジュールBのバージョンの組み合わせが対応していなかったことが原因の可能性も あります。 ただ、スマホのアプリではこの可能性は少ないでしょう。 なぜなら インストーラー(Appストアなど)が、一部のモジュールだけバージョンを変えることが できない仕組みになっているからです。 そうでないインストールのプログラム、 たとえば Linux の apt や Python の pip では、一部のモジュールだけバージョンを 変えることができるため、モジュール同士の組み合わせの問題が発生する可能性があります。 ですので、手順書には、構成しているモジュールのバージョン番号がずらりと記載されて いることが多いのです。 しかし、わざわざバージョン番号を気にしてインストールするのも面倒くさいですね。 しかも、多くの手順書には、モジュールの 〜のバージョンをインストールしますとは 書いておらず、モジュールをインストールしますとしか書かれていません。 バージョン 番号は、どこか別の場所にをまとめて書かれているか、書かれていません。 よく、最新版をお使いくださいと言われるので、最新版を使えばいいと考えるかも しれませんが、それが言えるのも、スマホのアプリなどの開発者が積極的に最新版で テストしているからです。 インストールする手順書を読む必要があるプログラムの多くは、 最新版ではテストしていないので、そのテストを自分で行わなければなりません。 この場合、逆に最新版のほうが動かない可能性もあります。 なぜなら、最新版で 仕様が変わったり不具合が残っていたりするからです。 もし、最新版だけでよければ バージョン番号を書く必要はないのですが、書いてあるということはそういうことです。 バージョンを完全に合わせれば(OSのバージョンや設定なども含めて完全に合っていれば) 手順書どおりに実行すればインストールは必ず成功します。 Docker はその思想ですね。 なので、インストールする手順書(やインストーラー)は最新版のモジュールではなく、 特定のバージョンのモジュールをインストールすべきです。 とくに最新技術のモジュール は変化が激しくユーザーの限られるので。 Python の pip で特定のバージョンの Python モジュールをインストールするときは、 以下のように等号2つの演算子で指定します。 pip install django==2.2.0 そして、最新版をインストールするときは、以下のように等号を不等号に変更します。 ただし、> はシェル(バッチファイル)ではリダイレクトを意味するので、 エスケープする必要があります。 バッチファイルなら ^ です。 pip install django^>=2.2.0 もし、インストールに失敗したら、Webで調べてバージョンの組み合わせを正しくするか、 必要なパッチをあてます。 もし、インストールに成功したら(受入テストにパスしたら)、以下のように入力して バージョン番号を確認します。 pip freeze 最後に、手順書(やインストーラー)に書かれたバージョン番号を変更して、 不等号を等号に戻します。 pip install django==2.2.1 もし、手順書(やインストーラー)に特定のバージョン番号が書かれていれば、 成功する可能性が高いだけでなく、成功した構成と最新版との差分に注目して対処する ことができます。 もし、全部最新版の構成で失敗したときは、失敗の原因が絞り込め なくなってしまいます。 また、手順書よりインストーラー(バッチファイルやスクリプト)にするほうがよい でしょう。 ある程度の技術が必要になりますが、インストーラーが作れるようになれば、 ミスが無くなり、確実に原因の範囲を小さくしていくことができます。 ■■ 注目ニュース 一覧 ■■ ◇ 元任天堂の2人が発明したどこでも窓。Atmoph Window。日常をSFの世界に変える。 https://japan.cnet.com/article/35137145/ … 単なるオシャレディスプレイではなく、サービスとして継続的にコンテンツを提供すべし。 ◇ ソニー、次世代機 PS5(仮)を開発中。ストリーミングゲームと同時並行で取り組む。 https://www.itmedia.co.jp/news/articles/1905/21/news098.html … 描画速度の限界が上がる恩恵は、ユーザーより開発者が受けそう。 ◇ 小型軽量のMRメガネ nreal light、9月に開発者版。2020年に一般提供へ。 https://japan.cnet.com/article/35137819/ … Google Glass のようなスカウタータイプと違って怪しい機械で覗いているように見えにくいかも。 ◇ AI×シミュレーションで生産状況の変動を予測し、生産プロセスを最適化。NECと産総研が共同検証。 https://www.itmedia.co.jp/enterprise/articles/1905/31/news085.html … 希少事象発見技術で、まれに発生する原因にも対処できるようになる。 ◇ セガ、JUDGE EYES:死神の遺言 で新価格版。羽村京平のモデル・音声を差し替え。 https://japan.cnet.com/article/35137253/ … ゲームなら簡単に役者を変えられる。ある意味厳しい世界。 ◇ スウェーデンEinride、自動運転EVトラック T-pod の公道試験を開始。 https://japan.cnet.com/article/35137188/ … 一部の公道に限定することで認可を得た。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm