Skip to content

Linux

Ubuntu で tshark を対話せずにインストールする

Ubuntu で tshark をインストールする際、Should non-superusers be able to capture packets? のようなメッセージが表示され、Yes or No の対話的入力を求められる場合があります。 これでは「スクリプト中で tshark をインストールしたい」という場合、入力が要求されてスクリプトが止まってしまい不便です。 今回はこの対話的入力無しに tshark をインストールする方法をメモしておきます。

間接的アクセスの送信元アドレスを X-Forwarded-For で記録する

クライアントから LB や CDN、Reverse Proxy などを介さず、直接、サーバへアクセスする場合、サーバのログには「クライアントの送信元 IP アドレス」が記録されます。しかし、クライアントとサーバの間に LB や CDN、Reverse Proxy を介している場合、サーバから見た送信元 IP アドレスは「LB などのアドレス」に見えてしまいます。 これではサーバ側で正確な送信元を把握出来ない為、LB などで X-Forwarded-For というヘッダにオリジナルの送信元 IP アドレスを挿入します。 サーバは X-Forwarded-For が存在する場合、このヘッダを読み取ることで「本来の正確な送信元 IP アドレス」を理解することが出来ます。 今回は Apache のログに X-Forwarded-For を追加して記録する設定方法をメモしておきます。

ripgrep-all を使って CLI で PDF を検索する

以前に Ubuntu に ripgrep をインストールする というメモを書きました。 ripgrep (rg) は [Rust] 製のツールで grep と同じように検索が行えます。 ripgrep がインストールされている前提ですが、rga を使うとテキストファイルだけで無く、様々なファイルを検索出来るようになります。 ripgrep-all の GitHub ページには以下の説明がされています。

rga is a line-oriented search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome ripgrep and enables it to search in pdf, docx, sqlite, jpg, movie subtitles (mkv, mp4), etc.

ripgrep も ripgrep-all も macOS であれば Homebrew から、Ubuntu であれば Rust Tools apt repo から、いずれにしても簡単にインストールすることが出来ます。 Rust Tools apt repo のインストール方法は Ubuntu に「Rust Tools apt repo」をインストールする にメモしました。 今回は ripgrep-all を使って PDF ファイルを検索する方法をメモしておきます。

Ubuntu 22 上で作成した Ubuntu 24 のカスタム qcow2 イメージを CML で起動する

以前に以下のメモを書きました。

この過去メモに記載した init-os リポジトリへ新たに Ubuntu 24 の qemu イメージをカスタマイズする為の init-qemu-ubuntu24.sh というスクリプトを追加しました。 今回はこのスクリプトを使って作成した Ubuntu 24 イメージを CML 上で動作させる手順をメモしておきます。

CLI の HTTP クライアントである xh の基本的な使い方

以前に HTTPie のインストールと基本的な使い方 というメモを書きました。 HTTPie は CLI の HTTP / HTTPS クライアントです。 これを Rust で書き直したものが xh です。 xh は HTTPie とオプションがほぼ互換である為、HTTPie の利用経験があれば xh も利用出来るはずです。 HTTPie と xh の比較については How xh compares to HTTPie に以下の記載があります。

Advantages
  • Improved startup speed.
  • Available as a single statically linked binary that's easy to install and carry around.
  • HTTP/2 support.
  • Builtin translation to curl commands with the --curl flag.
  • Short, cheatsheet-style output from --help. (For longer output, pass help.)
Disadvantages
  • Not all of HTTPie's features are implemented. (#4)
  • No plugin system.
  • General immaturity. HTTPie is old and well-tested.
  • Worse documentation.

今回は xh の基本的な使い方をメモしておきます。

Ubuntu に「Rust Tools apt repo」をインストールする

昨今、様々なツールが Rust で提供されています。 一例ですが、下記などです。

余談ですが、Rustで進化するPayPayのスケーラビリティ によると PayPay も「Java + NodeJS」から「Rust」へ移行しているそうです。

Rust Tools apt repo (GitHub リポジトリはこちら) を利用すると、Debian / Ubuntu へ apt を利用して幾つかの Rust 製ツールをインストール出来ます。 Rust 製ツールであれば Cargo で管理出来ますが、OS のパッケージも Rust 製ツールも全てを apt で扱えれば管理が楽になります。 今回はこの Rust Tools apt repo を Ubuntu で利用出来るようにする手順をメモしておきます。