お知らせ

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

WSLのUbuntuにRedmineを建ててnginxを通して適当なバーチャルホストでアクセスするまで

確認環境

Env Ver
Ubuntu 20.04.6
Ruby 2.7.0
Redmine 5.1.0
nginx 1.18.0

インストール方法

基本は公式の通り

DB作成

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

インストールコマンド流す

wget https://www.redmine.org/releases/redmine-5.1.0.zip
unzip redmine-5.1.0.zip
cd redmine-5.1.0
cp config/database.yml.example config/database.yml

# DB接続は公式ドキュメントに沿って適当に設定する
# nano config/database.yml

sudo apt install -y ruby-full make gcc libmysqlclient-dev
sudo gem install bundler
bundle config set --local without 'development test'
sudo bundle install
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
bundle exec rails server -e production -p 9999 -d

nginxから繋ぐ

普通にリバプロするだけ

server {
  listen       80;
  client_max_body_size 100m;
  server_name  redmine.test;
  access_log   /var/log/nginx/redmine.access.log;
  error_log    /var/log/nginx/redmine.error.log;


  location / {
    proxy_set_header Host $http_host;
    proxy_pass  http://127.0.0.1:9999;
  }

}

トラブルシューティング

An error occurred while installing redcarpet (3.6.0), and Bundler cannot continue.

makeとgccがない

sudo apt install -y make gcc

An error occurred while installing mysql2 (0.5.5), and Bundler cannot continue.

MySQLの開発ライブラリがない

sudo apt install -y libmysqlclient-dev

"/usr/bin/ruby2.7: warning: shebang line ending with \r may cause problems" redmine

無視してよい

デフォルトポートを3000から変えたい

以下のように-pで指定

bundle exec rails server -e production -p 9999 -d

デーモンにしたい

以下のように-dで指定。殺すときはpkill rubyで行ける

bundle exec rails server -e production -p 9999 -d

Windows側のスタートアップで起動したい

不明。少なくとも以下の形式だと上手く動かない。

wsl -d Ubuntu -u root -- <command>

systemdを有効化すると色々不具合があるのでinit.dで起動できれば解決できる気はするのだが、上手くいかなかった。

投稿日:
ソフトウェア::GitOS::Linux::コマンド

特定ブランチ以外を全部消す

Git 2.25.1で確認

# マージされてないのは残す
git branch -d $(git branch | grep -vP <PCRE pattern>)
# 強制削除
git branch -D $(git branch | grep -vP <PCRE pattern>)

参考:git-branch - List, create, or delete branches (git-scm.com)

マージコミットをリバートする

Git 2.25.1で確認。基本-m 1で問題ないと思われる

git revert -m 1 <commit>

参考:git-revert - Revert some existing commits (git-scm.com)

コミット間のハッシュを見る

Git 2.25.1で確認

# 新しい順
git log --pretty=format:'%H' <commit>..<commit>
# 古い順
git log --pretty=format:'%H' <commit>..<commit> --reverse

参考:git-log - Show commit logs (git-scm.com)

投稿日:
OS::Linux::Ubuntuソフトウェア::GPG

確認環境

Env Ver
Ubuntu 20.04.4 LTS
gpg 2.2.19

手順

  1. gpg -kで削除したいキーの下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX相当の部分をコピペ
pub rsa3072 2021-01-17 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ 不明 ] Foo Bar <foobar@example.com>
sub rsa3072 2021-01-17 [E]
  1. gpg --delete-secret-keys XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXで秘密鍵を消す
  2. gpg --delete-keys XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXで公開鍵を消す
  3. gpg -kで削除出来ているか確認

ブートドライブをクローンしてクローン元を削除したら起動しなくなったので、その時にやったことのメモ

前提条件

  • OSがWindows 11
  • Windows 10のインストールUSBがある

事前手順

  1. SSD1からSSD2へブートディスクをクローン
  2. OSをシャットダウン
  3. UEFIを起動し、SSD2を指定してブート
  4. コンピューターの管理からSSD1のボリュームを消す
    1. EFIシステムだけは消えなかったのでdiskpartを使う方法で削除した
  5. OSをシャットダウン
  6. 電源を入れる
  7. ブルースクリーンになり0xc000000eエラーが発生

解決方法

Windows 10のインストールUSBを持っていたので、これを使ってリカバリを試みた。

リカバリ用コマンドプロンプトの起動

  1. Windows 10のインストールUSBを挿入しUEFIからインストールモードで起動
  2. 言語選択画面をそのままパスする
    1. 言語選択画面をそのままパスする
  3. 「コンピューターを修復する」を選択
    1. 「コンピューターを修復する」を選択
  4. トラブルシューティング→コマンドプロンプト

ブート情報の修復

UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法を参考にやっているのだが、途中でbootrec /fixbootが「アクセスが拒否されました」と言ってコケて中断してしまったため、この作業に意味があったのかどうかよくわかっていない。

  1. diskpartを流す
  2. list volumeで今回作成したブートボリュームとEFIシステムボリュームを特定する。この場合はVolume 2と3。
    1. 今回作成したブートボリュームとEFIシステムボリュームを特定する
  3. select volume 3でEFIシステムボリュームを選択
  4. assign letter=b:でドライブレターを割り当てる。因みにこのドライブレターは再起動で消える。
  5. exit
  6. cd /d b:\EFI\WMicrosoft\bootする
  7. ren BCD BCD.bak
  8. bootrec /Rebuildbcd
  9. bootrec /fixboot
    1. 「アクセスが拒否されました」と言ってコケた

ドライブレターの修正

bootrec /fixbootがコケた時にドライブレターのせいじゃね?と思って試してみたやつ

  1. diskpartを流す
  2. Cドライブにデータドライブが入っていたので適当にドライブレターを変える
    1. select volume 0
    2. assign letter=H:
  3. Eドライブにブートドライブが入っていたのでCに変える
    1. select volume 2
    2. assign letter=C:
  4. exitで抜ける
  5. リカバリメニューに戻るので「PCの電源を切る」を選択

この後PCを通常起動したら起動するようになったので解決。起動後にHドライブはなかったので結局どれが決定打だったのかよくわかっていない。なおHドライブはEドライブ扱いになっていた。取り敢えず起動するようになったのでいっか。

この後、もう一度リカバリモードに入り、前述のブート情報の修復の手順で作成したBCD.bakを削除した。