a stray sheep

お仕事周りの雑記帳

Python パッケージの依存関係を調べる

依存関係を調べるには、pipdeptree というパッケージが使える。 試しにflaskをインストールして調べてみる。

まず、pipdeptreeをインストール

(vtest)> pip install pipdeptree

次に、flaskをインストール

(vtest)> pip install flask

flaskを入れると、一緒にclick、Werkzeug、itsdangerous、Jinja2、MarkupSafeがインストールされる。

そして、本題のflaskの依存関係をpipdeptreeで調べてみる。

(vtest)> pipdeptree -p flask
Flask==1.1.2
  - click [required: >=5.1, installed: 7.1.2]
  - itsdangerous [required: >=0.24, installed: 1.1.0]
  - Jinja2 [required: >=2.10.1, installed: 2.11.3]
    - MarkupSafe [required: >=0.23. installed: 1.1.1]
  - Werkzeug [required: >=0.15, installed: 1.0.1]

pipdeptree によって、

  • 依存関係のあるパッケージがわかる。
  • 要求するバージョン(required)がわかる。
  • インストールされているバージョン(installed)がわかる。

便利そう。

Windows10にPythonをインストールする

Pythonのインストール

  1. Python公式サイトでインストーラを取得
  2. ダウンロードしたインストーラを実行
  3. 「Add Python 3.8 to PATH」にチェックを付ける。
    • Install launcher for all users (recommended) はチェックをつけたままで。これを外すと、インストールしたユーザのみが使えるようになるみたい。
  4. 「Install Now」をクリックする
  5. Setup was successfulと出たら、「close」をクリックして完了。
    • 「Disable path length limit」は、ファイルパスの制限が最大260文字だったのをWin10では解除できるようになったのだが、それをここで解除できるよってこと。解除しなくても良いので、そのまま「close」をクリック。
  6. コマンドプロンプトを開いて、> python -V でバージョンが表示されることを確認する

仮想環境

  • Python3.3からはvenvという仕組みが標準ライブラリに追加された。以前はよくvirtualenvが使われていた。
使ってみる
# 仮想環境を作る
> python -m venv vtest

# 仮想環境に入る
> .\vtest\Scripts\activate.bat
(vtest)>

# 仮想環境から抜ける
(vtest)> deactivate
>

Vagrantの仮想マシンでISOファイルをマウントする

環境

VirtualBoxにCD/DVDをアタッチする

  1. VirtualBoxを起動し、該当の仮想マシンを選択(※仮想マシンは停止させておく)
  2. 設定⇒ストレージを開き、ストレージデバイス内の「光学ドライブの追加」をクリックする(図の赤枠) f:id:belial6:20210318181820p:plain

  3. 光学ディスク選択で、「追加」をクリックし、ISOファイルを選択する

    f:id:belial6:20210318182037p:plain
    f:id:belial6:20210318182422p:plain

  4. 設定⇒システムを開き、「光学」の起動順序をハードディスクより下にする(※これをしないと、OSインストールが始まってしまう。) f:id:belial6:20210318182538p:plain

これで、準備は完了

仮想マシンでISOをマウントする

Vagrantで仮想マシンを起動して、SSH接続する
> vagrant up
> vagrant ssh

マウントポイントを作成
$ sudo mkdir -p /media/cdrom

マウント
$ sudo mount -t iso9660 -o loop /dev/cdrom /media/cdrom

アンマウント
$ sudo umount /media/cdrom

Raspberry PiとScratchでLチカ

やること

  • Raspberry PiでLEDランプを制御する。通称、Lチカ。
  • プログラミングには、Scratch(Ver1.4)を使う。

回路図

f:id:belial6:20210304235244p:plain

クラッチの操作

  1. Raspberry PiにRDPで接続する
  2. プログラミング→Scratchを起動する
  3. メニューの「編集」→「GPIOサーバーを開始」をクリックする
  4. 左上の「制御」ボタンをクリックする
  5. 以下の図のようにプログラムを組む
  6. 緑色の旗をクリックして、LEDの点灯・消灯が制御できていることを確認する

f:id:belial6:20210304235625p:plain

「~を送る」の部分は、以下のように記入してある。「23」はデジタル出力するGPIO番号。

  • config23out ・・・GPIO23からデジタル出力する
  • gpio23on ・・・GPIO23をオンにする
  • gpip23off ・・・GPIO23をオフにする

LEDが制御できました

写真は、ランプ点灯中。

f:id:belial6:20210305000324j:plain

DL20 Gen9 (RAIDコントローラ B140i)に、CentOS7をインストールする

環境

  • ハードウェア: DL20 Gen9
  • RAIDコントローラ: B140i
  • RAID構成: RAID1
  • ディスク: 4TB SATA x2本
  • OS: CentOS7.9
  • ドライバの入手・USBへの書き込み作業環境: Windows10

デバイスドライバの準備

デバイスドライバを入れないと、RAID構成を認識してくれないので、ドライバを準備する必要がある。

デバイスドライバの入手

  1. HPEサポートセンター
  2. ドキュメントおよびソフトウェアの「ナレッジベース」を開く
  3. 上部にある「ドキュメントおよびソフトウェア」を選択して、RAIDコントローラ名の「b140i」で検索
  4. 左側のボックスで、「Red Hat Enterprise Linux 7 Server」、「ドライバディスケット」をチェックして、絞り込む
  5. 製品名に「64-bit」とあるもの(任意)を選択
  6. ファイル名からインストールするOSバージョンに適したファイルをダウンロードする ※該当のバージョンでなければ、「改訂履歴」から対応するバージョンを探せる。

今回は、CentOS7.9なので、ファイル名に「7u8」が入っている以下をダウンロードしました。 hpdsa-1.2.10-179.rhel7u8.x86_64.dd.gz

USBへの書き込み

ドライバのイメージをUSBメモリに書き込むために「DD for Windows」を使用しました。上記リンク先で、旧バージョン:Ver.0.9.9.8をダウンロード後、任意の場所に解凍しておきます。

  1. USBキーを挿す
  2. (フォーマットされていなければ)右クリック→ディスクをフォーマットを選択して、フォーマットする。設定はデフォルトのままで。
  3. DD for WindowsのDDWin.exeを右クリック→「管理者として実行」で起動する
  4. 「ファイルを選択」から、入手したファイルを指定する。ここでは、hpdsa-1.2.10-179.rhel7u8.x86_64.dd.gz
  5. 「<<書込<<」を押して、USBに書き込む。
  6. 終わったら、USBを抜く

デバイスドライバの組み込み

外付けDVDドライブとISO (DVD)でOSのインストールを行っています。

  1. サーバを起動する
  2. POST画面で「F11」をクリックし、ブートメニューを表示。ISOのあるブート先を選択する。
  3. OSインストールのメニュー画面で、「Install CentOS7」を選択後、「e」と入力する。
  4. 編集画面で、quiteの後ろに、スペースをあけて「inst.dd modprobe.blacklist=ahci」を追加する。画面の指示に従って、Ctrl+xを押して開始する。
  5. 「Driver disk device selection」画面が表示されたら、USBキーを挿入し、「r」を入力してEnterし、再スキャンする。
  6. 新しくUSBデバイスが認識されるので、それを選択する。
  7. 選択後、USBに書き込んだrpmファイルが見えるので、それを選択する。
  8. 「DD: Extracting: kmod-hpdsa」と表示されればOK。「c」を入力して続行する。
  9. 「[ OK ] Started Driver Update Disk UI on ttyl 」のように出力され、OSのインストールが再開されたら、USBキーを抜く
  10. OSのインストール画面が表示されるので、OSのインストールを行う。

OSインストール

基本、自分の好きなように。ここでは、パーティション構成、ネットワークとホストについてだけ書く。

パーティション構成

手動でパーティションを構成し、以下のようにしました。

マウントポイント 容量 ファイルシステム
/boot/efi 256 MiB EFI
/boot(※1) 1024 MiB xfs
swap 8192 MiB swap
/home 10 GiB xfs
/ 残りすべて xfs

(※1) 「/」のサイズが2TiBを超えて、かつ起動にU(EFI)を使用する場合は、/bootパーティションを別途作成する必要がある。

ネットワークとホスト名

  • NIC2枚ありましたが、両方ともここで設定した。
  • ルーティングもここで追加しておいた。

iLOの設定

  1. POST画面で「F10」を押して「Intelligent Provisioning」を起動
  2. その後、iLO Settingsに進む
  3. ネットワーク設定では、以下を設定
  4. Administratorユーザーのパスワードを変更する

以上

Raspberry Pi にRDP接続する

Raspberry PiにRDP接続しよう、と xrdp をインストールしてみたが、うまくいかなかったが、 先人たちの知恵に救われたのでメモする。

まさに、以下のサイトの通り。

qiita.com

やったこと

一旦、xrdpを削除
$ sudo apt remove xrdp

tightvncserverをインストール
$ sudo apt install tightvncserver

xrdpを再度インストール
$ sudo apt install xrdp

RDPログイン後、プログラミングのメニュー画面を表示してみました。今後、Scratchを使う予定ですが、バージョンは1.4でした。

f:id:belial6:20210302181147p:plain