March 2024  |  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Drupal 9.5 から 10.1 への移行

JUGEMテーマ:インターネット

 

# Drupal 9.5 から 10.1 への移行

## 前準備

### 動作確認

11月5日、JPUGサイトのバックアップを取得し、手元のサーバにインストールしてアップデートの試行をおこなった。

ubuntu 22.04 の上で、PHP8.1 での動作確認をした。

* PHP8.1 で JPUGサイトのコピー(Drupal 9.5.x)が動作することを確認。
* PHP8.1でDrupal 10.1が動作することを確認。


## Drupal10 をインストール

いつものスクリプトで、そのまま移行し、トップページにアクセスしてみたらエラーが起きた。

```
TypeError: Drupal¥Core¥Render¥Renderer::doTrustedCallback(): Argument #1 ($callback) must be of type callable, array given, called in /home/juk/Drupal/html+/core/lib/Drupal/Core/Render/Renderer.php on line 797 in Drupal¥Core¥Render¥Renderer->doTrustedCallback() (line 57 of core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php).
```

"Renderer.php on line 797" のエラーを検索すると、エラー箇所をtry〜catch にして回避する、次の投稿が見つかった。
cf. https://www.drupal.org/forum/support/upgrading-drupal/2023-05-30/migration-from-959-to-101


さらに、アップデートスクリプト(http://localhost/update.php)を試みると、使っているテーマ(Burtikをカスタムしたjpugと管理用のSeven)が Drupal10 でサポートとされなくなっていることが判明。さらに、幾つかの拡張モジュールも互換性がなくなっていた。

メッセージ:
```
Status Details
Errors found

Incompatible theme
The following theme is installed, but it is incompatible with Drupal 10.1.6:
 JPUG

Review the suggestions for resolving this incompatibility to repair your installation, and then re-run update.php.
Removed core modules
You must add the following contributed modules and reload this page.
 CKEditor
 Quick Edit
 RDF

These modules are installed on your site but are no longer provided by Core.
For more information read the documentation on deprecated modules.
Removed core theme
You must add the following contributed theme and reload this page.
 Seven
This theme is installed on your site but is no longer provided by Core.
For more information read the documentation on deprecated themes.
```


## Drupal9からDrupal10への移行準備(追加)

一旦、もとの Drupal9 の状態に戻した。

### 1. Drupal10対応テーマを追加

Drupal10の標準テーマで、Drupal9 でも使えるテーマ、 Olivero と Claro をインストールして、「Olivero」を [デフォルトに設定] した。
(http://localhost/admin/appearance)

* Olivero
* Claro

さらに、jpug(Burtikのカスタム) と Seven はアンインストールした。

- jpug
- Seven

その他の使っていないテーマもアンインストールした。

- Bartik 9.5.11 (Deprecated)
- Stark 9.5.11

そして、管理用テーマに 「Claro」を選択して [構成を保存] した。


### 2. 拡張モジュールをアンインストール

管理者権限でログインし、拡張機能のアンインストール頁(http://localhost/admin/modules/uninstall)にて、"(Deprecated)" とされているモジュールをすべてチェックし、「アンインストール」を実行した。

- CKEditor
- Quick Edit
- RDF


### 3. 一時的にDevelモジュールをインストールし、キャッシュをクリア(※再々試行時)

Develモジュールの最新版(Devel-5.1.2) をインストールした。
拡張機能のリスト頁(http://localhost/admin/modules)にて、「Devel]にチェックして [インストール] を実行する。

トップメニューの [Devel] ボタンを押し、表示されたサブメニューの [Clear Cache] を押す。
拡張機能のアンインストール頁(http://localhost/admin/modules/uninstall)にて、"Devel" モジュールをチェックし、「アンインストール」を実行した。


コマンドラインでデータベースにアクセスし、キャッシュテーブルをすべてクリアした。

```
$ psql drupal8
TRUNCATE cache_bootstrap;
TRUNCATE cache_config;
TRUNCATE cache_container;
TRUNCATE cache_data;
TRUNCATE cache_default;
TRUNCATE cache_discovery;
TRUNCATE cache_dynamic_page_cache;
TRUNCATE cache_entity;
TRUNCATE cache_markdown;
TRUNCATE cache_menu;
TRUNCATE cache_render;
TRUNCATE cache_toolbar;
```


## Drupal10を再インストール

### 1. Drupal10 を再インストール

 

### 2.エラー箇所をtry〜catch にして回避。
(※再々試行時はエラーは出なかったので、そのまま。)

前出の "Renderer.php on line 797" のエラーの対策についての記述に従い、ソースコードを改修した。

```php
    try {
      return $this->doTrustedCallback($callback, $args, $message, TrustedCallbackInterface::THROW_EXCEPTION, RenderCallbackInterface::class);
    }
    catch (¥Throwable $e) {
      //devel_dump($callback);
      //ddebug_backtrace(FALSE,0,0);
    }
```
※ devel_dump() と ddebug_backtrace() は Devel 拡張モジュールのファンクションなので、最初はコメントアウト。


リロードすると、"Renderer.php on line 797" のエラーは出ないが、次のエラーとなった。テーマの画面レイアウトは効いていなかった。
```
Warning: Trying to access array offset on value of type null in Drupal¥Core¥Render¥Element¥HtmlTag::preRenderHtmlTag() (line 97 of core/lib/Drupal/Core/Render/Element/HtmlTag.php).
```


### 3. 開発用モジュールをインストール

"Renderer.php on line 797" のエラー対処についての記事にあった Devel モジュールをインストールした。
(https://ftp.drupal.org/files/projects/devel-5.0.2.tar.gz)


拡張機能のリスト頁(http://localhost/admin/modules)にて、「Devel]にチェックして [インストール] を実行した。


インストールはできたが、次のエラーが出るようになった。
(※再々試行時はエラーは出なかった。)
```
Warning: Trying to access array offset on value of type null in Drupal¥Core¥Render¥Element¥HtmlTag::preRenderHtmlTag() (line 86 of core/lib/Drupal/Core/Render/Element/HtmlTag.php).
```


### 4. キャッシュのクリア

トップメニューに追加された [Devel] を押し、現れた開発用メニューの「cache clear」を押した。
すると、テーマの画面レイアウトが適用され、メニュー表示も日本語が適用された。


### 5. データベースの更新

「サイトの状態」のエラー(http://localhost/admin/reports/status#error) から、「データベース更新」の 「データベースのアップデートスクリプト」を実行した。
なにもしないで、「ページが見つかりません」 (http://localhost/update.php/selection) が表示された。
(※再々試行時も同様。)

http://localhost/update.php からデータベースの更新を行った場合も上記と同様になった。


## Drupal10を再々インストール

12月5日にJPUGサイトのバックアップを取り直し、アップデートの再々試行を行った。結果は、再試行時とほぼ同様で、最後のデータベースの更新ができなかった。

drupal サイトの管理用プログラム drush をインストールし、データベースの更新を試みたところうまくいった。

```
$ cd ~/Drupal/jpug/
$ composer require --dev drush/drush
$ ./vendor/bin/drush  --version
$ export PATH="$PATH:$HOME/Drupal/jpug/vendor/bin"
$ which drush
$ drush --version
$ sudo chmod -R go+rwX  $HOME/Drupal/jpug101/sites/default/files/
$ drush updatedb
```

 

 

数十年ぶりのチューブの交換

JUGEMテーマ:車/バイク

 

クロスバイクがまたパンクしたようなので買い替えたいとの家族の声に、詳細を尋ねると数ヶ月前にパンク修理をしてもらったばかりとのことだった。そして、これまで何度かパンク修理をしてもらっていたがこのところ頻繁に空気が抜けるようになったとのことだった。

空気を入れてすぐに抜けるわけではないとのことなので、チューブ交換をしてみようと提案した。

10年以上前に購入したGIANT GLIDE というクロスバイクだったので、実際にパーツを確認してみたところ、

  • リム: ALEXRIMS G6000
  • タイヤ: 700x38c
だった。
リムについて検索してみると、下記のような "GEEK GARAGE" さんのブログに情報が残っていて、一般的な 700C のリムに比べて高さがあり、バルブ長さに注意する必要がありそうだった。
ALEXRIMS G6000 spec.
タイヤは、700x38c ということでこれに合いそうなチューブを探したところ、2本1500円程で売っていることがわかった。
さらに探してみると 井上ゴム 工業(株)
IRC TIRE (アイ・アール・シー) 自転車 チューブ WO 700 × 38C-43C 仏式ロングバルブ48mm」
というのが、1本800円程度で在庫が1つ見つかったので、試しに1本入手した。
(IRCのWebサイトのチューブの紹介)
IRC Tube WO
用意ができたところで、パンクした後輪を外し、チューブを抜き出し、風呂桶に水を張ってパンクの場所を調べてみると、バルブの付け根あたりで空気が漏れていた。他には穴が開いている場所はみつからなかった。
チューブを確認したところ KENDA700X28/32C という細めのチューブだった(これは、近所の自転車屋さんでパンク修理の際に交換してもらった可能性もある)。タイヤの規格(700x38C / 28 x 1-5/8 x 1-1/2 / 40-622 )に比べて細すぎるチューブだったので、膨張しすぎていたチューブに加え、この夏の猛暑で糊が軟化したのが原因だったと推察した。
ALEXRIMS G6000 のリムは一般のリムに比べて高さが余計にあったが(30mm)、このチューブのロングバルブは十分な長さだった。
それから1週間後、前輪もパンクしたということだったので、再び同じチューブを入手して交換した。パンクしたチューブを調べたところ、空気漏れの症状は後輪のときと同じだった。
それにしても、タイヤの規格はサイズの単位にも3通りあって、紛らわしい。

ディスプレイ交換でマウス&キーボードの共有ができず、…

JUGEMテーマ:コンピュータ

 

先日、ディスプレイを交換して問題なく解像度は4Kに上がり(諧調は落ちたものの)喜んでいた。それもつかの間、マウスカーソルを隣のノートPCに移したところ、カーソルが消えてしまい、もとに戻らないことが判った。もともと、起動時などにマウスカーソルが動かず、クライアントの Synergy を停止する必要があったり、サーバの Synergy を起動しなおしたりすることもあったが、そうしたその場しのぎも全く効かなくなった。

 

マウス&キーボードの共有に Synergy-1.8.8 を使っていた。Synergy のフリー版で、Linux でも使えて重宝していた。ノートPCをブックスタンドに立てて使っているので、キーボードが打ちづらいのでしばらく辛坊して使いつつ、何か情報はないかと探した。

そのうちに見つけたのが "Using Synergy with a 4K display and non-4K displays together" でさっそく試してみたが、状況は変わらなかった。

 

それから数日、思い出しては、プロパティ設定をするファイルを変えてみたり、また、別のオプションを試してみたりしていた。あるとき、諧調が8bitsカラーに落ちてしまったことを思い出し、試しにまた別のオプションを設定して試してみた。すると、クライアント側にマウスカーソルが移動することが確認でき、その後は以前と同じように使えるようになった。

 

Synergy 4k 設定(1)Synergy 4k 設定(2)Synergy 4k 設定(3)Synergy 4k 設定(4)

 

 

 

 

 

PCディスプレイの交換

JUGEMテーマ:コンピュータ

デスクトップPCのディスプレイ DELL U2711(最大解像度WQHD 2560x1440)の調子が悪くなって2,3年、画面になにも表示されず、真ん中で半分ずつ別の色が表示されたままににり、電源を入れ直すと正常に戻るといった具合。10年くらい使ってたので寿命ということで買い替えようと思いつつ使い続けてたのだが、最近はモニターが熱を持ってくると電源を入れ直しても直らず、しばらく電源を切って冷却してからやりなおさなければならなくなり、深刻に時間の無駄と考え、新しいディスプレイの物色をはじめた。

 

当初は、国産でもう少しだけ大きいのにしようとだけ思い探す中、"エルゴトロン LX デスクモニターアーム/34インチ(3.2~11.3kg)まで/VESA規格対応" という設置器具をキャンペーンで見つけて衝動買いしてしまった。最大34インチと言う条件でのディスプレイの物色となった。

PC本体もそろそろ買い替えなくてはならないので、漠然と4K対応という条件も加味して、アイ・オー・データ機器 LCD-M4K321XVB (31.5型)というのに目をつけた。調べているうちに I-O DATA のディスプレイも外国産OEMということなので、より安いジャパンネクスト JN-IPS320FLUHDR-N(32型) というのを見つけた。

ここで、気になるのがディスプレイインターフェースで、現状はDVIポートを使っている。このPCは、DELL XPS8700 でグラフィックボードはNVIDIA GeForce GTX 745 4GB DDR3 で、DVIx1, HDMIx1, VGAx1 である。一方、ジャパンネクストのディスプレイのインターフェースは、Display Port 1.2x1、HDMI 2.0x1、HDMI 1.4x2である。PC本体にDisplay Portはないので、HDMIで繋がるかどうかというところである。また、ディスプレイの解像度はより大きい4K(3840×2160)なので、単純に大丈夫だろうとしか考えてなかった。

 

ディスプレイの交換にあたり、デスクモニターアームの取り付けをしなくてはならないが、このためには一旦机の上のものをすべて取り払い、引き出しも抜いて机の後ろにさぎょうをするために入れるようにしなくてはならなかった。ついでに、10年分の埃も取り去るのが得策と考え、大掃除を配線のし直しをした。マシンをすべてシャットダウンして、ネットワークケーブルもすべて一旦スイッチングハブからはずして繋ぎ直すのだが、結局10台くらいスイッチに繋がっていたことを改めて知ったw 大掃除は1日では終わらず、ルータの電源の接触不良などもあり、さらにもう1日費やして作業環境がだいたい元に戻った感じで、机の上が少し広がったのはせめてもの救いだ。

 

ディスプレイに付属のHDMI2.0ケーブルで接続して、PCを起動してみると無事表示された。ログインして調べてみると4Kの解像度3840×2160になっていた。ただし、8ビットカラーモードである。もとの、WQHD モードの解像度2560x1440にしてみたところ、ひどくかすれた表示になってしまったので、もとに戻した。4K(60Hz)択一のディスプレイだったのかな。古いPCだったが、ある程度先を見越したスペックにしてたので助かったようだ。本当はとっくに買い替えているはずだったが、歳の所為か時間に追い越されている。

 

新しくなった机上

CentOS8->RockyLinux8への移行テスト

JUGEMテーマ:コンピュータ

Rocky Linux は RHEL 8.4 がベースなので、まず、移行対象の CentOS8 のバージョンを CentOS 8.4.x にする必要があるらしい。
(*) CentOS 8.2からの移行について書かれた記事もあったが確認はしていない。
(*) 2022年2月現在では、RockyLinux 8.5になっている。

» read more
12345>|next>>
pagetop