お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

レンタルサーバーだってリッチにしたい!という想いの記事です。

やりたいこと

  • zshが使える
  • dircolorsが使える(lsの色分けができる)
  • nanoが使える

カスタマイズ後のシェル環境画面

zshの導入

.zshrcの編集については各々の設定があると思うので適宜読み替えてください

  1. chsh -s /usr/local/bin/zsh
  2. .zshrc一式を突っ込む
    1. https://github.com/Lycolia/my-zsh-conf
  3. .zshrcfor sakura internet以下のコメントを外して有効化する
  4. command not found: dircolorsを解消するために次項の手順でcoreutilsを導入する

coreutilsの導入

GNU lsとdircolorsの導入により、lsに色付けが出来るようにします

mkdir local
wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.xz
xz -dc coreutils-9.2.tar.xz  | tar xf -
cd coreutils-9.2/
./configure --prefix=/home/<user-name>/local/
make
make install

nanoの導入

wget https://www.nano-editor.org/dist/v7/nano-7.2.tar.xz
xz -dc nano-7.2.tar.xz  | tar xf -
cd nano-7.2/
./configure --prefix=/home/<user-name>/local/ --enable-color --enable-nanorc
make
make install
cp doc/sample.nanorc ~/.nanorc
# オートインデント有効化
perl -i -pe 's/^# (set autoindent)/$1/' ~/.nanorc
# シンタックスハイライト有効化
perl -i -pe 's/^# (include .+\/local\/share\/nano\/\*.nanorc)/$1/' ~/.nanorc
投稿日:
サービス::GitHub::GitHub Actions開発::自動化

取り敢えず各ジョブの中で使うやつ

今まで使っていた::set-outputは2023-05-31に廃止される予定なので置き換える必要があります。

GitHub Actions: Deprecating save-state and set-output commands

サンプルコード

  • 設定方法:echo "<KEY>=<VALUE>" >> "$GITHUB_OUTPUT"
  • 参照方法:steps.<ID>.outputs.{KEY}
name: variable example
on:
  workflow_dispatch:
jobs:
  ubuntu-testing:
    runs-on: ubuntu-latest
    steps:
      - id: example
        run: echo "value=hoge" >> "$GITHUB_OUTPUT"
      - name: disp
        run: echo ${{ steps.example.outputs.value }}

GitHub Pagesにドメインを紐付ける

# ルートドメイン, cnameだとメールが届かなくなるのでaliasを使う
alias @ example-user.github.io.
# サブドメイン
cname sub example-user.github.io.

メールサーバーは分けたい

メールサーバーがさくらインターネットの場合はこんな感じで行ける

mx xxx.xxx.xxx.xxx. 10
txt xxx.xxx.xxx.xxx. v=spf1 a:wwwXXXX.sakura.ne.jp mx ~all
a mail xxx.xxx.xxx.xxx

Let’s EncryptのDNS-01チャレンジの設定方法

  • サブドメインのケースで書いてる
  • ワイルドカード証明書の設定も確かできたはずだが、今ん所使える環境がないので書いてない
  • @lycolia/value-domain-dns-cert-registerで自動更新できる
    a sub xxx.xxx.xxx.xxx
    txt _acme-challenge.sub XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    

確認環境

Windows

あらかじめgpgのパスをPATHに通しておくと良い
参考値:C:\Program Files (x86)\GnuPG\bin

Env Ver
Windows 10 Pro Build 19042.804
git 2.30.0.windows.1
VSCode 1.53.2
Kleopatra Gpg4win-3.1.15

Linux

Windows側からVSCodeのRemote - SSHで接続

Env Ver
Ubuntu Desktop 20.04.2
git 2.25.1
gpg 2.2.19

手順

Windows

  1. Kleopatoraを起動
  2. ファイル> New Pair Key
  3. 個人用のOpenPGP鍵ペアを生成
    1. 期限なし、パスフレーズは適当に
  4. Exportから -----BEGIN PGP PUBLIC KEY BLOCK----- の中身を全部GitHubの GPG keys/ Add new に貼り付ける
  5. 追加後にでてきた Key IDgit config --global user.signingkey KeyID として cmd に流す
  6. 以下を流す(gpg.program はなくても動くが、あったほうが問題が起きない)
    ```bat
    git config --global commit.gpgsign true
    git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
    ```
  7. 管理者権限で cmd を起動し次のシンボリックリンクを作成
    1. mklink /D %USERPROFILE%.gnupg %AppData%\GnuPG
  8. VSCodeで適当なリポジトリを作成
  9. なんか適当にコミットする
  10. GitHubに投げる
  11. GitHubのコミット履歴にverified signatureがついてたら成功

Linux

  1. Windows側のKleopatoraから公開鍵と秘密鍵をエクスポートして持ってくる
  2. gpg --import FooBarpublic.asc で公開鍵をインポート
  3. gpg -k でインポートされていることを確認し、下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX相当の部分をコピペ
pub rsa3072 2021-01-17 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ 不明 ] Foo Bar <foobar@example.com>
sub rsa3072 2021-01-17 [E]
  1. gpg --edit-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  2. trust
  3. 5を選ぶ
  4. quit
  5. gpg -kで信用度が[ 究極 ]になっていることを確認
  6. gpg --import FooBarSECRET.ascで秘密鍵をインポート
    1. SSHで繋いでいる時でタイムアウトする場合、GUIプロンプトからの入力になっている可能性があるので、どうにかして入力
    2. XRDP経由ならpkill gnome-sessionを叩くと入れる
  7. Windowsの時と同様に次のコマンドを流す
    1. git config --global user.signingkey KeyID
    2. git config --global commit.gpgsign true
  8. VSCodeで適当なリポジトリを作成
  9. 何か適当にコミットする
    1. コミットがコケたらXRDPから入力する
  10. GitHubに投げる
  11. GitHubのコミット履歴にverified signatureがついてたら成功
CLIからやる場合でパスフレーズを何度も打ちたくないケース

以下の手順が参考になる

WSL2のUbuntuでGPGキーのパスフレーズを記憶させる

トラブルシュート

Key IDを確認したい

以下のコマンドで確認可能

gpg --list-signatures

GPGキーを消したい

GPGキーの消し方