投稿者: manualmaton Page 73 of 252

ChatGPTによるシェルスクリプト(パッケージの自動更新)の問題点と修正。

この記事の更に続きとなります。

以前作成したスクリプトに問題点があったので修正します。

問題点詳細

アップデートするパッケージによってはコンフィグを残すか否かをアップデート中に聞いてきます。

このプロンプトが表示されるとスクリプトは停止。処理を手動で中断して実行する羽目になります。

これを回避するため、以下のように修正いたしました。

修正差分

-    aptitude -y full-upgrade | tee $upgraded_packages >/dev/null
+    DEBIAN_FRONTEND=noninteractive aptitude -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" full-upgrade | tee $upgraded_packages >/dev/null

修正した処理の詳細

※chatGPTの回答なので信頼性は各自ご判断ください。

  1. DEBIAN_FRONTEND=noninteractive : DEBIAN_FRONTEND 環境変数に noninteractive を設定し、aptitude コマンドを非対話モードで実行します。これにより、パッケージの更新時に表示される確認メッセージを自動的に承認することができます。
  2. aptitude -y : aptitude コマンドに -y オプションを指定して、すべての質問に対して自動的に yes を返答するようにします。
  3. -o Dpkg::Options::="--force-confdef" : dpkg コマンドに --force-confdef オプションを指定して、パッケージがインストールされる際に必要なデフォルトの設定値を使用するように指定します。
  4. -o Dpkg::Options::="--force-confold" : dpkg コマンドに --force-confold オプションを指定して、既存のコンフィグファイルを保持するように指定します。
  5. full-upgrade : aptitude コマンドの full-upgrade オプションを指定して、すべてのパッケージを最新バージョンに更新します。
  6. | tee $upgraded_packages >/dev/null : 更新されたパッケージのリストを一時ファイルに保存します。パイプライン演算子 | を使用して、aptitude コマンドの出力を tee コマンドに送信し、同時に一時ファイルに書き込むように指定します。>/dev/null を追加することで、標準出力を無効化し、結果を表示しないようにします。

修正後のスクリプト全文

#!/bin/bash

# インストールされているパッケージの一覧を取得して別ファイルに出力します。
now1=$(date +%Y%m%d)
dpkg-query -W > installed_packages_$now1.txt

# aptitude updateを行います。
aptitude update

# updateの結果:
if aptitude search '~U' | grep -q '^i'; then
    # 対象パッケージ,変更前バージョン,変更後のバージョン を記入した日付付きのファイルを作成。
    now1=$(date +%Y%m%d)
    upgraded_packages=$(mktemp)

    # パッケージのキャッシュをクリアした上でパッケージアップグレードを実施。
    aptitude clean
    DEBIAN_FRONTEND=noninteractive aptitude -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" full-upgrade | tee $upgraded_packages >/dev/null

    # パッケージ一覧からの差分を別ファイルで作成。(実行日の日付を付与)
    new_packages=$(mktemp)
    dpkg-query -W > $new_packages
    diff -u installed_packages_$now1.txt $new_packages > package_diff_$now1.txt

   # 新しいパッケージ名を取得
   DIFF_FILE="package_diff_$now1.txt"
   NEW_PACKAGES=$(grep -E "^\+[^+]" $DIFF_FILE | awk '{print $1}' | cut -c 2-)

   # 変更されたパッケージの数と、新しいバージョンのパッケージ名のリストを表示
   UPDATED_PACKAGES=$(echo "$NEW_PACKAGES" | wc -l)
   echo "$UPDATED_PACKAGES 件のパッケージに変更がありました。以下のパッケージが更新されました:"
   echo "$NEW_PACKAGES"

    # checkrestartを実行して結果を取得
    now=$(date +%Y%m%d)
    checkrestart_output=$(checkrestart)

    # サービスを再起動する必要のあるプロセスを抽出してファイルに出力
    restart_services=$(echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | awk '{print $NF}' | sort -u)

    if [[ -n "$restart_services" ]]; then
        # ファイル名に日付を追加
        now2=$(date +%Y%m%d)
        filename="restart_services_$now2.txt"

        echo "以下のサービスを再起動してください:" >> "$filename"
        echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$" >> "$filename"
        echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$" >> "$filename"

        echo "以下のサービスを再起動してください:"
        echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$"
        echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$"


    else
        echo "再起動するサービスはありません"
    fi
fi

これでコンフィグを残すか否かのアップデートでも停止することなく動きましたが、肝心の

  • どのパッケージがコンフィグを残すか否か求められたか
  • その差分は何か

などが不明。なので、改善点はまだまだです。

純度と濃度。(『ライザのアトリエ3』調合時のTIPS)

この記事を補足する形になります。

特定の条件を満たすことで「クレリア地方クリアをクリアしたあとのタイミングで賢者の石を調合する」ことはご紹介しました。

それをさらに発展させていきます。

火属性付与と超純度

賢者の石は属性を全て発現させると火属性のみが無くなります。それでも強力であることには間違いないのですが、せっかくなので火/氷/雷/風のすべての属性をもたせたいもの。

幸い、本作は秘密の鍵を用いた調合によって属性の付与を行えます。

狙うは「シンセサイズ効果の『属性追加・火』」。アンコモンでこれを発現させた鍵を見つけるには相当のマラソンが必要です。

根気よく狙っていきましょう。

そうしておけば、この鍵を用いることで全属性の付与が可能になります。

また、この調合の過程で

超特性「超純度」をつけておけば、最終盤までジェムに困ることはありません。

超濃度

そして、本作でかなり便利だと思ったのが「調合品の属性値を大きく引き上げる」効果を持つ超特性「超濃度」。

クリスタルエレメントにもたせて

  1. 影響拡大3
  2. 素材効果(植物/虫/神秘の力/火薬/水/砂)てんこもり
  3. 属性値8

の化け物が出来上がりです。

これらを持っておけば、シナリオ攻略時の調合がぐっと楽になります。

LAMY洗浄とブロッター買い足し。

この日、丸善で購入したのは万年筆本体だけではありませんでした。

万年筆洗浄

使い切ったり古くなったインクが出てきたので、これらも一新しようとコンバータも合わせて買っていたのです。
  • コンバータをしかるべき手段で処分し
  • ペンを流水で流していき
  • 超音波洗浄器にかける

まで実施。3~4回ほど洗浄器にかけたときは水の色がインクで染まっていましたが、ここまで綺麗になりました。

あとは

  • 乾燥
  • 新たなコンバータに詰め替え
  • インク補充

が待っています。

ブロッター買い足し

こちらのブロッターも自宅用/職場用に分けるため買い足しました

買う前は

  • 流石に大仰
  • ティッシュで十分ではないか

など思ったものの、

  • すぐにインクを吸い取るから乾燥を待たなくていい
  • インクのにじみが減る

と、いいことしかありません。何より、乾燥が甘くてページがくっついてしまう頻度が極度に減りました。

こういう道具は「書き物をする場所」ごとに持っておきたいと改めて。

Redmine Addtional Tagsによる一括タグ付け。

こちらを更に発展させました。

https://atelier.reisalin.com/projects/ryza3/issues

こうして、ゲーム『ライザのアトリエ3』の見聞録などの情報をチケットかできたものの、もっと付与したい情報がありました。

「タグ付け」による分類です。

既にあるプラグイン「Additonal Tags」でどうにかなりました。(というよりも使っている内に気づきました)

こんな形のタグ付けされていないチケット。

全て選択して

右クリックから「tags」を選択。

付与したいタグを入れていき、「追加」をクリック。

追加後、しっかりとチケットにタグが付与されていることを確認。

これで、諸々の整理がもっと楽になります。

『ライザのアトリエ3』三周目の記録と高難易度の挑戦。

一周目と二周目の概要

  1. 1周目は実績全解除を目指しました。(リンク先ネタバレあり)
  2. 2周目は各地に存在する見聞録を集めました。(リンク先ネタバレあり)

三周目の挑戦

そこで、3周目は「各地のランドマーク」をRedmineに重点的に記録していきます。

https://atelier.reisalin.com/issues/162

と、今後の調合の際に「どこに行けどの超素材が手に入るか」を記録しようというわけです。

難易度『LEGEND』追加

そんな中、待望のアップデート実施。

最高難易度「LEGEND」追加。折しも三週目に入ったばかり。引き継ぎ時に作成していたコアアイテムがどこまで通用するかを試す絶好の機会です。

結果は圧勝というか鎧袖一触。

コアアイテムを調整していないのでアイテムが使えるようなCCが溜まる前に殲滅するケースがほとんど。

こちらに関してはストーリー進行に合わせて挑戦しがいが出てくればと思います。

“早矢仕”と“檸檬”。

ちょっと用があったので丸の内に赴きました。

最初の理由はこちら。

久しく食べていなかったハヤシライスをいただくため。(この早矢仕ライスは丸善が開祖の一つだとか)

じっくり煮込まれた肉とトマトの風味がクリームコロッケとマッチ。久しぶりの害ショックということもあって満足です。

そしてもう一つ。

LAMY Al-Starの新色とLAMY Safariの「シャープペンシル」です。

こちらも「何年ぶりか」というレベルでシャープペンシルを買いました。

  • 手続きや何やらで使う機会がある
  • 書き味が思った以上に悪くない

と気づいたためです。

既に手に入れているライムカラーの万年筆と対になるように購入。(上述したように推し色ですし)

2本揃ったので、併せて撮影です。

Let’s Encryptの証明書整合でハマったこと。(ECDSA方式での整合性確認)

概要

更新サイクルが3ヶ月と短いものの、無料で利用できるということで愛用しているLet's Encrypt。
デフォルトの暗号化形式がRSAからECDSA方式に変わったようで確認方法でハマりました。

なんとか解決したのでメモを残します。

従来の確認方法

RSA方式での証明書は、以下の

openssl x509 -in /etc/certs/hoge.example.com.crt -noout -modulus | md5sum
# SSL証明書ファイル

openssl rsa -in /etc/private/hoge.example.com.key -noout -modulus | md5sum
# 秘密鍵ファイル

を実行し、それぞれのハッシュ値が合致していることで証明書と秘密鍵の整合性の確認を取ることができています。

ECDSA方式に変わったことでの問題

2023年4月時点で、Let's Encryptのデフォルト暗号化形式がRSA→ECDSA方式に変わっていました。

openssl rsa -in /etc/private/hoge.example.com.key -noout -modulus | md5sum
# 秘密鍵ファイル

を実行すると

139945929635648:error:0607907F:digital envelope routines:EVP_PKEY_get0_RSA:expecting an rsa key:crypto/evp/p_lib.c:469:

といったエラーが出ます。

これでは証明書と秘密鍵の整合性が確認できません。

しばらくGoogleと格闘し、なんとか解決策を見つけました。

https://security.stackexchange.com/questions/73127/how-can-you-check-if-a-private-key-and-certificate-match-in-openssl-with-ecdsa

ECDSA方式でも証明書と秘密鍵の整合性が確認できるコマンド

まず、鍵がECDSA方式であることを確認。

  • 確認コマンド
openssl ec -in /etc/private/hoge.example.com.key -text -noout
# 秘密鍵のパスを指定します
  • 確認結果
(略)
ASN1 OID: prime256v1
NIST CURVE: P-256
# 上記が表示されればECDSA方式であると確認できます。

次に、以下のようにして公開鍵を抽出してハッシュ値を割り出します。

openssl x509 -pubkey -in /etc/certs/hoge.example.com.crt -noout | openssl md5
(stdin)= ハッシュ値
# SSL証明書ファイル

openssl pkey -pubout -in /etc/private/hoge.example.com.key | openssl md5
(stdin)= ハッシュ値
# 秘密鍵ファイル

### 2つのハッシュ値が合っていれば証明書と秘密鍵の整合性は取れています

以上、ECDSA方式でも整合性を確認することができました。

余談

この、「鍵を用いて鍵を取り出す」って、『ライザのアトリエ3』で無垢の鍵から秘密の鍵を抽出しているようだなと益体もないことが脳裏をよぎりました。

『ライザのアトリエ3』コアアイテムのダメージ増強検証-1- (ウォーロックリング)

この記事の続きです。エイビスコールの威力は堪能したので、装備品を見直します。

ウォーロックリング調合

今回着目したのはこのウォーロックリング。

  • 死神の魔術
    • 与えるダメージが増加する。魔法ダメージがクリティカルとなった時、与えるダメージがさらに増加する
  • 魔の領域
    • アイテムダメージが増加する
  • 攻撃力+50
  • 境界越え
    • 状態異常耐性が増加し、自信の状態異常付与が上昇する

を持つ装飾品を「四精霊のアミュレット」と差し替えて、どこまで上がるかやってみます。

主な調合のパターンは四精霊のアミュレットと同じ。

  1. 「ウェイクエメラルド」を起点としてレシピ変化。
  2. 鍵でステータス増強や投入回数増加を図り
  3. 限界までグランツオルゲンを投入し
  4. アイテムリビルド
  5. 装備品強化

まで行っています。

最初の検証

検証相手は前と同じです。先見之識を付与したアクセサリとスウィングでタクティクスレベルを3に上げた状態でスタート。

コアアイテム(ツヴァイレゾナンスのみ)

コアアイテム「ツヴァイレゾナンス」のみで220,148に到達。前回より5万ほどダメージが増えています。

時空の天文時計→エイビスコール→ツヴァイレゾナンス

ライザのアトリエ1より活躍していた時空の天文時計→今回の新顔エイビスコール。そしてツヴァイレゾナンスとつなげたダメージは458,231。

最初の検証の最大ダメージより三倍近い数値が出ています。

『ライザのアトリエ2』の四星の極光までは行きませんが、十分以上の威力が出るし、まだ改善の余地があると判明です。

ボードゲーム『GRAVITY TRAX -The Game Course-』感想。

ブロックでもありパズルでもあるソロゲーです。

概要

こんな形のタイルやレール、柱に床板が合わさっています。

カードにはお題が示されていて、

  • 使うパーツ
  • スタートとゴール

が書かれています。

つまり、前提と結論が与えられているので「途中経過をどうすれば結論に導き出すことができるか」

を考えながらパーツを配置。

最終的に起点にあるボール置き場のスイッチを押すことでボールが解放され、レールに従って滑り落ちていきます。

ボールが目的地までたどり着けばクリア。

感想

普段お世話になっているボードゲームカフェの店頭でパッケージやデザインに惹かれて購入。この選択肢は当たりました。

「ピタゴラ装置」を作っていくようなワクワク感

実際に様々なコースを辿ってボールが滑り出していく様は見ていて飽きません。

結論から仮説を作っていく楽しさ

先述したように、

  • 前提(使うパーツ)
  • 結論(スタートとゴール)

は決められています。なので、(お題にミスがない限り)確実に答えはあります。

そこから「このパーツだとコースアウトした。足りないところは何か」

「ゴールの一歩手前でこけるということはスタートからもう一度やり直そう」

などの思考が回転する様はとても楽しいです。

まだ8門しか解けていませんが、この時点でしっかりとしたやり応え。残りの問題、時間を見つけては解いていきたいです。

『ライザのアトリエ3』終盤の武器(アニエスルーチェ)調合。

本作における実質的なライザの最強武器、『アニエスルーチェ』の調合です。

レシピの入手方法

シナリオ終盤、クーケン島のヤギの放牧地に「1から継続して出てきたサブキャラクター」に話しかけることでクエスト発生。

そのクエスト達成後にレシピ「アニエスルーチェ」とレシピ「アストラルガレリア」が手に入ります。

調合

初期素材は

  • グランツオルゲン
  • グリッターサンド

の2種。超特性持ちのグリッターサンドはネメド地方>ポルッタ丘陵>狩人の泊まり場直近から入手可能。

リンクコールと鍵

今回のリンクコールは竜眼による会心強化を付与。

「魂のゆりかごの鍵」を利用して、ステータス増強を図ります。

  1. 初期素材投入
  2. リンクコール
  3. 秘密の鍵

の投入が終わったら、グランツオルゲンを限界まで投入。

アイテムリビルド

特性を整える/超特性の付与はリビルドで実施。「鷹の目」を超特性に選びました。

武器強化

最後に付与する効果を選びます。

最終的な効果は:

  • 純粋な希望
    • アイテムで弱点を突いたときのダメージが増加し、さらにアイテムのクリティカル時のダメージが増加する
  • 会心強化+40%
    • クリティカルの威力が40%増加する
  • 立派な切れ味
    • クリティカル時に与えるダメージが増加する
  • 対の共鳴・大
    • クリティカル時のダメージが増加する

攻撃アイテムには「クリティカル++ 99」を付与しているので、確実にクリティカルが発生することから、武器の効果は屋上屋を架す構成にしました。

Page 73 of 252

Powered by WordPress & Theme by Anders Norén