鲲鹏CentOS服务器上的源码安装Coreutils

网友投稿 992 2022-05-28

GNU核心工具组(英语:GNU Core Utilities,亦常缩写为Coreutils)是一个 GNU 软件包,它包含了许多基本工具(如cat,ls 和 rm)在类 Unix 操作系统上的重新实现。

1       安装准备

华为云购买一台鲲鹏服务器

本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。

表1-1 云服务器配置

项目

说明

规格

kc1.large.2   | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求如表1-2所示。

表1-2 操作系统要求

项目

说明

下载地址

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

2       获取源码

获取“Coreutils-8.32”源码包。

cd /usr/local/src wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.gz

3       编译和安装

由于该工具不能够在root用户下执行,切换到其他账户,这里新建一个test账户,并且切换到test账户下操作。

1)         root用户下创建test用户

添加test用户

useradd test

设置test用户密码

passwd test

根据提示,设置密码。

2)         解压并且让test用户拥有目录操作权限。

tar -zxvf coreutils-8.32.tar.gz chown test:test coreutils-8.32

3)         设置Coreutils安装目录操作权限。

mkdir –p /usr/local/coreutils chown test:test /usr/local/coreutils

4)         切换到test目录,对Coreutils进行编译安装。

su test cd /usr/local/src/coreutils-8.32 ./configure --prefix=/usr/local/coreutils make -j4 make install

4       运行和验证

测试Coreutils是否安装完成。

cd /usr/local/coreutils ./ls -version

5       故障排除

问题一:编译Coreutils时报SYS_getdents未定义错误

问题描述:

切换到test目录,对Coreutils进行编译安装,执行make -4时候报错,提示信息如下:

问题原因:

在一些就的linux系统中,用来查询文件信息的系统调用的是SYS_getdents,但是在一些较新的版本中,通过SYS_getdents64来查询文件信息,其实现原理与SYS_getdents基本相同。本例中通过strace ls查询到,本系统通过SYS_getdents64来查询文件信息

解决方法:

vim src/ls.c

将3026行代码SYS_getdents改为SYS_getdents64

鲲鹏CentOS服务器上的源码安装Coreutils

CentOS 鲲鹏

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2020-09-05:虚拟内存知道么?什么时候使用虚拟内存?虚拟内存除了扩大内存还有什么用?
下一篇:基于鲲鹏云服务器EulerOS2.8安装filebeat6.3.2
相关文章