ghqとpecoを使った効率的なリポジトリ管理

他の記事でも多数紹介されていますが、最近ghqとpecoを使ってみてとても便利だったので、自身のブログでも紹介します。 ghqコマンド git cloneで多くのリポジトリをcloneしてると、ホームディレクトリ直下に大量のディレクトリで散らかり、どこに何があるかわからなくなってしまいます。 ghqは、Gitリポジトリをあらかじめ決めたディレクトリにまとめて管理できる便利なツールです。 ー https://github.com/x-motemen/ghq インストール方法 # macOSの場合 brew install ghq 基本的な使い方 # リポジトリをクローンする ghq get username/repository # ローカルのリポジトリ一覧を表示 ghq list pecoコマンド pecoは、CLI上でインタラクティブにテキストを絞り込み・検索できるツールです。 https://github.com/peco/peco インストール方法 # macOSの場合 brew install peco 基本的な使い方 # ファイルを絞り込み選択 ls | peco # 履歴から絞り込み選択 history | peco # プロセスを絞り込み選択 ps aux | peco ghq + pecoの組み合わせ この2ツールを組み合わせることで、リポジトリの切り替えが格段に楽になります。 aliasの設定 以下のaliasを~/.bashrc~/.zshrc`に追加します: # リポジトリを選択してcdする alias ghqcd='cd "$(ghq list | peco)"' まとめ ghqとpecoを組み合わせることで、リポジトリの切り替えが格段に楽になりました。

June 4, 2025 · Ken Kato

Renovateの導入方法

手動での依存パッケージのアップデートが大変だったので、Renovateを導入してみました。 その手順と設定について簡単にメモします。 Renovateとは? Renovateは、依存関係の更新を自動化してくれるOSSのツールです。元々は個人開発から始まり、現在はイスラエルのセキュリティ企業 Mend社によって開発されています。 リポジトリ内の依存関係をスキャンし、新しいバージョンが利用可能な場合には自動でPull Request(PR)を作成してくれます。 Node.jsのnpmやyarnはもちろん、Go modules、Docker、Terraformなど多くの言語やパッケージマネージャーに対応しているのも特徴です。 対応しているパッケージマネージャーの一覧はこちら 導入手順 renovateはセルフホストする方法とGitHub Appを使う方法の2通りあります。手軽に使いたいので、今回はGitHub Appを使って導入します。 https://github.com/apps/renovate から「Configure」を押す 全てのリポジトリを選択し、導入する 全てのリポジトリを選択したとしても、renovateの設定ファイルがあるリポジトリのみrenovateが有効になります。 そのため、renovateの設定ファイルがないリポジトリではrenovateが無効化されます。 renovateの設定ファイルrenovate.jsonを作成し、リポジトリのrootにpushする 各リポジトリでConfigure RenovateというPull Requestが自動的に作成されます。 自動生成されたrenovate.json { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" ] } $schema Renovateにおける$schemaは、renovate.jsonで使える設定項目やその値の種類・ルールを定義しています。 これにより、どの設定が有効かをエディタが理解できたり、エディタによる補完などが有効になったりします。 extends extendsでは、Renovateがあらかじめ用意しているルールセットを指定することができます。 上記の例ではconfig:recommendedを指定しています。これには、どの言語やプロジェクトでも使える推奨設定が含まれています。 (以前はconfig:recommendedではなく、config:baseと呼ばれていたみたいです。) config:recommended の詳細についてはこちら またその他設定項目についてはこちら まとめ 現在業務でRenovate を使ってみて感じたのは、カスタマイズ性が非常に高い反面、設定項目が多くてややとっつきにくいという点でした。しかし、プライベートの時間を使って軽く触ってみたところ、導入自体は驚くほど簡単で、いい意味で期待を裏切られました。最小限の設定でもすぐに使い始めることができましたが、もう少しドキュメントを読んで複雑な設定も試してみたいと思いました。

May 6, 2025 · Ken Kato

PostgreSQL16をソースコードからビルドしてみる

PostgreSQL16をソースコードからビルドしてみたのですが、いくつかつまづいたポイントがあるので、それらにご紹介します。 PostgreSQL16をソースコードからビルドするためのコマンドは以下のとおりです。前提として M1 Mac (macOS 14.4.1) を使っています。 % git clone git://git.postgresql.org/git/postgresql.git % cd postgresql % ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix=$HOME/pgsql CFLAGS=-O0 % make -j 4 % make install configureコマンドには以下のオプションを指定しています。 デバッグしやすくするためのオプション: –enable-debug –enable-cassert –enable-tap-tests インストール先のディレクトリを指定するオプション: –prefix 参考: https://www.postgresql.jp/document/16/html/install-make.html#CONFIGURE-OPTIONS icu-uc, icu-i18nのパッケージが見つからない icu-uc, icu-i18nのパッケージが見つからないと言われました。 % ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix=$HOME/pgsql CFLAGS=-O0 (省略) checking for icu-uc icu-i18n... no configure: error: Package requirements (icu-uc icu-i18n) were not met: No package 'icu-uc' found No package 'icu-i18n' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix....

September 18, 2024 · Ken Kato

Rocky Linuxにcontainerdをインストールする方法

以前Kubernetesクラスタを構築するときに、Rocky Linuxでcontainerdをインストールする方法についてあまり情報がなかったので、とても苦労しました。 なので今回はその時に調べた内容を記事にしてみました。 次のコマンドでcontainerdをインストールできます。 # yumにCentOS用のdockerリポジトリを追加する sudo yum config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # docker-ceリポジトリに含まれているcontainerd.ioのパッケージをインストールする sudo yum install -y containerd.io # containerdのデフォルト設定ファイルを生成する sudo sh -c "containerd config default > /etc/containerd/config.toml" そして最後にcontainerdを有効化します。 systemctl enable --now containerd.service 参考 Using containerd without docker (Installing containerdの部分)

June 30, 2024 · Ken Kato

NUC上にk8sクラスタを構築する

しばらく放置していたNUC上にk8sをインストールして、おうちクラスタを運用していこうと思います。 今回はkubeadmを使ってk8sをインストールしようと思います。 前提 ベアメタル(Intel NUC11PAHi5)上に構築 Control Planex1台とWorkerx3台の4台構成 OSはRocky Linux9.3 ルーター側の設定で固定IPを割り当て 各ノードのスペックは以下 CPU メモリ ストレージ 4コア 16GB 500GB kubeadmのインストール 以下の手順を参考にします。 kubeadmのインストール 「始める前に」にSwapがオフであること、と記載がありますが、swapがオフになっていなかったので無効化します。 sudo swapoff -a ポートの開放 kubernetesのコンポーネントが互いに通信するために、これらのポートを開く必要があります。 RockyはRHEL系なのでfirewall-cmdを使って、Control Planeノードのポートを開放します。 sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --add-port=2379-2380/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10257/tcp --permanent sudo firewall-cmd --add-port=10259/tcp --permanent ポートが開放されたことを確認します。 sudo firewall-cmd --reload sudo firewall-cmd --list-ports 続いて各Workerノードのポートを開放します。 sudo firewall-cmd --add-port=30000-32767/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent ポートが開放されたことを確認します。 sudo firewall-cmd --reload sudo firewall-cmd --list-ports コンテナランタイムのインストール コンテナランタイムの手順を参考に、各ノードに設定をしていきます。...

June 5, 2024 · Ken Kato