一句话概括:用apt-get source package_name的方式获取源代码。
学习Linux下系统编程最好的参考例子就是Linux中已有的源代码(源码),比如想实现一个跟ls命令相同功能的程序可以参考ls的源码的内容。在这样的基础上,用户可以开发出自己的实用程序来代替系统中原有的程序,这听起来是一件蛮有趣的事情。PS:同样的,内核的源代码可以通过这种方式获得。
那究竟怎样获取源代码呢?其实这并不复杂,Linux是一个开源的操作系统,运行在Linux系统中的大部分应用程序都是开源的,这以GNU开发的程序尤为显著,其意思是你可以不花费一分钱或者花费极低的代价就能获取到这些程序的源代码。
国内常用的几种Linux系统无非就是RedHat、Debian和SuSe,另外分别对应着三个基本相似的免费版本,CentOS、Ubuntu(Debian免费)和OpenSUSE。
比较简单的方法就是通过Ubuntu这个操作系统中的apt-get命令直接下载某个软件包的源代码。
第一步,确定命令来自哪一个文件。
第二步,确定这个文件来自哪一个包。
CentOS中,
# which ls
alias ls=‘ls --color=auto‘
/bin/ls
# rpm -qf /bin/ls
coreutils-8.4-37.el6.x86_64
#
Ubuntu中,
$ which ls
/bin/ls
$ dpkg -S /bin/ls
coreutils: /bin/ls
$
第三步,通过apt-get source命令下载源码到当前目录。
$ sudo apt-get source coreutils
第四步,使用源码,源码一般存放在“软件名称-版本号”,目录下的src目录里面,如下图所示:
--end--