如何获取linux下命令源码?

88 2024-07-07 05:45

一、如何获取linux下命令源码?

命令的源码是一个软件包为单元的,放在一个软件包的源码中。若要下载一个命令的源码,就要把这个命令所属的软件包的源码都下载下来。命令的源码就在下载的源码的相关文件夹内。一般是src文件夹,对应的主文件名称为cmd.c,当中cmd为详细的命令,如ls命令的主程序文件为ls.c。

因为在不同的Linux发行版上。源码的获取方法并不同样。所以以下以Ubuntu和CentOS这两种经常使用的Linux发行版为样例进行说明。

1、Ubuntu中系统命令源码的获取方法

以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:

1)使用which命令查看ls命令的位置,例如以下:

which ls # 输出:/bin/ls

2)使用dpkg命令查询ls命令所属的包。例如以下:

dpkg -S /bin/ls # 输出:coreutils: /bin/ls

3)使用apt-get命令来下载ls命令所在的包的源码。例如以下:

apt-get source coreutils

注:

1)在使用dpkg时。若出现错误。能够使用sudo命令使其以root权限运行。

2)使用apt-get source下载的源码保存到当前文件夹下。

。此外,当我们知道了命令所属的包后,也能够到对应的官方站点下载。

2、CentOS中系统命令源码的获取方法

以32位CentOS6.6下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:

1)配置源码的源

在CentOS中,源的配置文件为:/etc/yum.repos.d/CentOS-Base.repo,改动该文件须要root权限。

打开该文件,查看该文件的内容,在本人的机子上,该文件的内容例如以下:

# CentOS-Base.repo

#

# The mirror system uses the connecting IP address of the client and the

# update status of each mirror to pick mirrors that are updated to and

# geographically close to the client. You should use this for CentOS updates

# unless you are manually picking other mirrors.

#

# If the mirrorlist= does not work for you, as a fall back you can try the

# remarked out baseurl= line instead.

#

#

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates

[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

mirrorlist=http://mirrorlist.centos.org/?

release=$releasever&arch=$basearch&repo=extras

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users

[contrib]

name=CentOS-$releasever - Contrib

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib

#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

该文件里有两个变量:releasever和basearch。分别表示release版本号和分支,如本人的机子上,这两个值分别为6和i386。注意。releasever并不会细分为次级版本号。即不会是6.6之类的。

从该文件的内容能够知道,该文件共同拥有5个节。也就是说本人的机子的软件来源有5处,分别为base、updates、extras、centosplus和contrib。所以仅仅须要为例如以下的5处软件源指定其源码的源就可以。在文件的末尾加上例如以下的内容:

[base-src]

name=CentOS-$releasever - Base src

baseurl=http://vault.centos.org/6.6/os/Source/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[updates-src]

name=CentOS-$releasever - Updates src-centos

baseurl=http://vault.centos.org/6.6/updates/Source/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[extras-src]

name=CentOS-$releasever - Extras src-centos

baseurl=http://vault.centos.org/6.6/extras/Source/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[centosplus-src]

name=CentOS-$releasever - Plus src-centos

baseurl=http://vault.centos.org/6.6/centosplus/Source/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[contrib-src]

name=CentOS-$releasever - Contrib src-centos

baseurl=http://vault.centos.org/6.6/contrib/Soruce/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

因为不同的版本号设置会有所不同,所以其设置会有所不同,方法可总结为例如以下:

(1)gpgkey与该文件里已有的节的gpgkey同样

(2)为了确认文件的存在和情况,能够打开站点http://vault.centos.org/查看详细的情况,再依据详细的情况来填写

(3)设置baseurl时须要依据自己的系统的版本号来设置,如本人的机子为CentOS-6.6,则在设置时,相关的參数就设置为6.6。即http://vault.centos.org/后接的子路径为6.6。

该文件的作用是为yum其及相关工作的下载提供一个源。如在使用yumdownloader(以下会讲到)下载源码时。会发生例如以下动作:

(1)下载$baseurl/repodata/repomd.xml文件。若该repomd.xml文件比系统中的新。更新系统中的对应的repomd.xml

(2)下载$baseurl/SPackages/中的对应的源码rpm包。

2)使用which命令查看ls命令的位置,例如以下:

which ls

# 输出:/bin/ls

3)使用rpm命令查询ls命令所属的包,例如以下:

rpm -qf /bin/ls

# 输出:coreutils-8.4-37.el6.i686

4)yumdownloader是一个从RPM源下载RPM的程序,能够使用yumdownloader命令安装源码。例如以下:

yumdownloader --source coreutils-8.4-37.el6.i686

注:

(1)若yumdownloader命令没有安装,则能够使用此命令安装:yum install yum-utils。

(2)下载的文件在当前文件夹下。能够使用參数--destdir指定下载到哪一个文件夹。

5)使用yumdownloader下载到的是一个安装包文件rpm,能够使用例如以下的命令查询rpm中的tar文件:

rpm -qpl coreutils-8.4-37.el6.src.rpm | grep tar

# 输出:coreutils-8.4.tar.xz

6)使用rpm2cpio命令将rpm包文件转换成cpio归档文件,再使用cpio命令,从cpio归档文件复制提取出一个归档文件。出例如以下:

rpm2cpio coreutils-8.4-37.el6.src.rpm | cpio -idv coreutils-8.4.tar.xz

# 输出:

# coreutils-8.4.tar.xz

# 9561 blocks

cpio的man解释为:cpio copies files into an archive

-i:与--extract等同。提取之意

-d:与--make-directories等同,当有须要时创建一个载入文件夹

-v:列出文件的处理过程

7)使用tar命令对coreutils-8.4.tar.xz压缩包进行解压缩,例如以下:

tar -xvf ./coreutils-8.4.tar.xz

至此,命令的源码获取完毕。

二、linux内核源码是什么语言?

Linux内核源码是用C语言编写的。C语言是一种高级编程语言,被广泛应用于系统编程、嵌入式开发、游戏开发等领域。Linux内核源码被设计成高效、可移植、可维护的,因此选择C语言作为开发语言是理所当然的选择。此外,Linux内核也包含了一些汇编代码,用于处理一些底层的硬件操作。总之,Linux内核源码的编写语言是C语言。

三、如何修改kali linux镜像源码?

你装kali的时候会会然你选择系统语言的,当然你也可以这样:进入系统设置,然后选择区域和语言,在语言选项卡选择chinese,然后重启电脑

四、linux下如何获取软件源码?

以redhat为例

软件包以rpm结尾的已经打包的文件,我不知道怎么看

但是linux有很多开源的软件,都是以压缩文件形式发布的,如tar,tar。gz。gz2,bz

他们本身就是源码,你可以进行编译安装。

五、Linux下如何编译Android源码~~~?

这个问题已经找到解决方案了,方法如下:

1.在Linux设置文件共享,将项目共享,最好有个密码什么的。

2.在Linux上配置ssh server,用于和编译安卓源码3.Linux mac 通过连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用。然后就可以mac编写代码,然后ssh编译什么的,很方便,

六、linux unix源码一样吗?

linux unix源码不一样的。Linux和unix分别是两个完全不一样的操作系统,虽然他们在命令行上兼容,同一个软件,可以在linux和unix上面使用,让人觉得他们是一样的,但是它们是两个完全不同的操作系统,所以他们的源码是不一样的,你要分别在两个系统上写程序的话,你会发现他们更多细节上不一样的地方。

七、如何修改linux内核源码并调试?

要修改和调试Linux内核源码,首先需要下载适当版本的源码,然后进行修改并编译成可执行内核。可以使用调试器和日志工具来跟踪代码执行和定位问题。

建议在虚拟机或者开发板上运行修改后的内核,通过调试工具如gdb或者printk输出来进行调试。

要注意保留原始代码,使用版本控制工具管理修改,并参考Linux内核开发者手册和相关社区资源进行学习和解决问题。

八、Linux编译好的源码如何用?

Linux编译好的源码通常被打包成压缩文件,如tar.gz或tar.bz2。要使用这些源码,首先需要将其解压缩。然后,进入解压目录,运行configure脚本来配置源码以适应你的系统环境。

接下来,运行make命令,该命令会根据配置生成可执行文件。

最后,使用make install将可执行文件安装到指定的位置。整个过程需要一些编译工具和依赖库的支持。通过这种方式,你可以使用编译好的源码来构建和安装自己所需的软件。

九、linux源码安装是什么意思?

编译安装可以自己加上特定参数 改变安装路径,支持某些模块等 rpm都是已经设置好,只需要装

十、linux源码可以免费获得吗?

linux操作系统是免费开源操作系统,它的源码是可以免费获得的。

你下载linux系统安装光盘,安装时选择安装源码,安装结束后源码就在/usr/src目录下。

更容易得到的源码是FreeBSD操作系统的,你登录FreeBSD的FTP网站,可以选择从最新版到最老版本的源码。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片