#navi(../)
* Ubuntuでコマンドのソースコードを取得する方法・apt-get [#ycdb7536]
Linuxを勉強していると各種コマンドのソースコードを取得して見てみたいと思ったりしますね。~
本資料はUbuntuを使用してコマンドのソースコードを取得する手順を記します。~
尚、Debianでも同様の操作でソースコードを取得することができます。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 関連資料 [#y6f22719]
-[[逆引きUNIXコマンド/ファイルやコマンドがどのパッケージに含まれているか調べる方法]]

* lsコマンドのソースコードを取得する手順 [#k19786c3]
定番のlsコマンド。このコマンドのソースコードを取得する操作手順を記します。
+ dpkg-devのインストール
dpkg-devを以下のコマンドでインストールします。
 sudo apt-get install dpkg-dev
#br
+ lsコマンドのパッケージを調べます。~
 $ which ls
 /bin/ls
 $ dpkg --search /bin/ls
 coreutils: /bin/ls
whichコマンドでコマンドのパスを調べ、dpkgコマンドでパッケージを調べます。~
coreutilsパッケージであることが確認できます。~
''参考資料:''[[逆引きUNIXコマンド/ファイルやコマンドがどのパッケージに含まれているか調べる方法]]
#br
+ apt-getコマンドでパッケージのソースをダウンロードする
パッケージ名を指定してソースコードを取得する時のコマンドは以下のようになります。
 apt-get source パッケージ名 [保存するディレクトリ]
保存するディレクトリは省略可能です。
#br
+ ダウンロードしたcoreutilsのファイル群を確認する
coreutils_8.13*がダウンロードされcoreutils-8.13ディレクトリが作成されているのが確認できます。
 sakura@ubuntu:~$ ls coreutils*
 coreutils_8.13-3ubuntu3.2.diff.gz  coreutils_8.13.orig.tar.gz
 coreutils_8.13-3ubuntu3.2.dsc
 
 coreutils-8.13:
 ABOUT-NLS       Makefile.am            bootstrap       lib
 AUTHORS         Makefile.in            bootstrap.conf  m4
 COPYING         NEWS                   build-aux       maint.mk
 ChangeLog       README                 cfg.mk          man
 ChangeLog-2005  THANKS                 configure       old
 ChangeLog-2006  THANKS-to-translators  configure.ac    po
 ChangeLog-2007  THANKS.in              debian          src
 ChangeLog-2008  THANKStt.in            dist-check.mk   tests
 GNUmakefile     TODO                   doc             thanks-gen
 INSTALL         aclocal.m4             gnulib-tests
#br
+ coreutils-8.13/srcディレクトリ内を確認する
coreutils-8.13/srcディレクトリを確認するとlsコマンドのソースコードがあることが確認できます。
 sakura@ubuntu:~/coreutils-8.13/src$ ls ls*
 ls-dir.c  ls-ls.c  ls-vdir.c  ls.c  ls.h
coreutilsなので、よく使うコマンドのソースコードもあります。
 sakura@ubuntu:~/coreutils-8.13/src$ ls
 Makefile.am      extent-scan.c       mkfifo.c        stdbuf.c
 Makefile.in      extent-scan.h       mknod.c         stty.c
 base64.c         extract-magic       mktemp.c        su.c
 basename.c       factor.c            mv.c            sum.c
 c99-to-c89.diff  false.c             nice.c          sync.c
 cat.c            fiemap.h            nl.c            system.h
 chcon.c          find-mount-point.c  nohup.c         tac-pipe.c
 chgrp.c          find-mount-point.h  nproc.c         tac.c
 chmod.c          fmt.c               od.c            tail.c
 chown-core.c     fold.c              operand2sig.c   tee.c
 chown-core.h     fs.h                operand2sig.h   test.c
 chown.c          getlimits.c         paste.c         timeout.c
 chroot.c         group-list.c        pathchk.c       touch.c
 cksum.c          group-list.h        pinky.c         tr.c
 comm.c           groups.c            pr.c            true.c
 copy.c           head.c              printenv.c      truncate.c
 copy.h           hostid.c            printf.c        tsort.c
 cp-hash.c        hostname.c          prog-fprintf.c  tty.c
 cp-hash.h        id.c                prog-fprintf.h  uname-arch.c
 cp.c             install.c           ptx.c           uname-uname.c
 csplit.c         ioblksize.h         pwd.c           uname.c
 cut.c            join.c              readlink.c      uname.h
 date.c           kill.c              remove.c        unexpand.c
 dcgen            lbracket.c          remove.h        uniq.c
 dd.c             libstdbuf.c         rm.c            unlink.c
 df.c             link.c              rmdir.c         uptime.c
 dircolors.c      ln.c                runcon.c        users.c
 dircolors.h      logname.c           seq.c           wc.c
 dircolors.hin    ls-dir.c            setuidgid.c     wheel-gen.pl
 dirname.c        ls-ls.c             shred.c         wheel-size.h
 du.c             ls-vdir.c           shuf.c          wheel.h
 echo.c           ls.c                sleep.c         who.c
 env.c            ls.h                sort.c          whoami.c
 expand.c         md5sum.c            split.c         yes.c
 expr.c           mkdir.c             stat.c

以上、コマンドからコマンドのソースコードを取得する方法でした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS