Linux下的命令源码下载

1、首先安装dpkg-dev:

apt-get install dpkg-dev


2、设置资源的URL

进入 sudo vim /etc/apt/sources.list ,然后加入以下URL:

deb-src http://archive.ubuntu.com/ubuntu trusty main restricted #Added by software-properties deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty restricted main universe multiverse #Added by software-properties deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-updates restricted main universe multiverse #Added by software-properties deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse #Added by software-properties deb-src http://security.ubuntu.com/ubuntu trusty-security restricted main universe multiverse #Added by software-properties deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-proposed restricted main universe multiverse #Added by software-properties

并执行命令:apt-get update

不然会报错: apt-get (You must put some ‘source’ URIs in your sources.list) E: You must put some ‘source’ URIs in your sources.list


3、下载相应的源码,这里以ls为例

注意:最好在root下,运行下面命令

(一)查找ls命令的位置 , 执行:which ls

运行结果:/bin/ls

(二) 查找命令所在的包,执行:dpkg -S /bin/ls

运行结果:coreutils: /bin/ls

(三) 下载源码,执行:apt-get source coreutils

(四)下载完成后,当前目录下面可以看到四个文件,其中coreutils-8.21是源码的目录,相应的源码在它里面 。


可能出现的错误:

W: Download is performed unsandboxed as root as file coreutils_8.21.orig.tar.gz couldnt be accessed by user _apt. - pkgAcquire::Run (13: Permission denied) root@morun:/home/# ls

情况一:当前目录已经生成了三个文件,还差一个源码目录

这时可以通过手动解压源码包,产生源码目录

执行:dpkg-source -x coreutils_8.21-1ubuntu5.4.dsc (你的xxx.dsc)


可能出现的错误

W: Download is performed unsandboxed as root as file coreutils_8.21.orig.tar.gz couldnt be accessed by user _apt. - pkgAcquire::Run (13: Permission denied) root@morun:/home/hukejian# ls

情况二:当前目录没有生成任何文件

方法:

一、执行:sudo chown _apt /var/lib/update-notifier/package-data-downloads/partial/

二、然后再执行一遍:apt-get source coreutils

经验分享 程序员 微信小程序 职场和发展