【Ubuntu】/bin内のコマンドのソースコード取得

Linux・CLI・DevOpsカテゴリを表すパンダのイラスト Linux・CLI・DevOps

Ubuntu環境において、/binや/usr/binなどに配置されている標準コマンド(例: ddやlsなど)のソースコードを取得して確認する方法について解説します。

この記事でできること

Ubuntuのパッケージとして提供されているコマンドのCソースコードなどを手元にダウンロードし、内部の実装や処理内容を確認できるようになります。

前提条件・想定環境

  • 対象OS: Ubuntu 20.04 LTS / 22.04 LTS / 24.04 LTS など
  • 特権権限: 一般ユーザー(apt-get source実行時は管理者権限不要ですが、ビルドや依存関係の導入にはsudo権限が必要になる場合があります)
  • 事前準備: ソースコードを取得するためには、パッケージ管理システムのソースリポジトリ(deb-src)が有効である必要があります。

手順1:リポジトリのソース設定(deb-src)の確認

apt-get sourceコマンドを実行するためには、/etc/apt/sources.list(または/etc/apt/sources.list.d/内のファイル)にdeb-srcのエントリが有効になっている必要があります。

設定を確認・有効化した後、パッケージリストを更新します。

sudo apt-get update

手順2:コマンドが所属するパッケージの特定

調べたいコマンド(例: /bin/dd)がどのソースパッケージに属しているかを調べます。これにはdpkg -Sコマンドを利用するのが簡単です。

dpkg -S /bin/dd

実行例:

$ dpkg -S /bin/dd
coreutils: /bin/dd

これにより、ddコマンドは coreutils パッケージに含まれていることが分かります。

手順3:ソースコードの取得

apt-get sourceコマンドを使用して、該当パッケージのソースコードをカレントディレクトリにダウンロードおよび展開します。

apt-get source coreutils

実行時の出力例:

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
NOTICE: 'coreutils' package is maintained by the 'Ubuntu Developers' at ...
need to get 5,200 kB of source archives.
Get:1 http://archive.ubuntu.com/ubuntu jammy/main coreutils 8.32-4.1ubuntu1 (dsc) [3,934 B]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main coreutils 8.32-4.1ubuntu1 (tar) [5,372 kB]
...
dpkg-source: info: extracting coreutils in coreutils-8.32
dpkg-source: info: unpacking coreutils_8.32.orig.tar.gz

手順4:ソースコードの確認

ダウンロードが完了すると、カレントディレクトリにパッケージ名のフォルダ(例: coreutils-8.32 など)が生成されます。目的のソースファイル(例: src/dd.c)へ移動して内容を確認できます。

cd coreutils-8.32/
less src/dd.c

トラブルシューティング

  • E: パッケージ ‘xxx’ のソースが見つかりませんでしたというエラーが出る場合: /etc/apt/sources.list ファイルに deb-src で始まる行が存在するか確認し、コメントアウトされている場合は有効化してください。

まとめ

dpkg -S でパッケージを特定し、apt-get source を利用することで、Ubuntu上のあらゆる標準コマンドの内部実装をソースコードレベルで手軽に確認することができます。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更記事の全体構成を見直し、前提条件、実行手順、期待される出力例、ソースコードの確認方法を明確に整理しました。
  • 追加Ubuntuでソースコードを取得するために必要な`/etc/apt/sources.list`のdeb-src設定に関する注意点を追加しました。
  • 変更ブロックタグが崩れていた古いHTML表現を修正し、コードブロックを用いた読みやすい体裁に変更しました。

文書情報

記事タイトル
【Ubuntu】/bin内のコマンドのソースコード取得
作成日
更新日
Source URL
https://papanda925.com/?p=465

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました