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

举报
鲲鹏小玩家 发表于 2020/06/23 17:07:48 2020/06/23
【摘要】 GNU核心工具组(英语:GNU Core Utilities,亦常缩写为Coreutils)是一个 GNU 软件包,它包含了许多基本工具(如cat,ls 和 rm)在类 Unix 操作系统上的重新实现。1 安装准备华为云购买一台鲲鹏服务器本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。表1-1 云服务器配置项目说明规格kc1.large.2 | 4vCPUs | 8...

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

1       安装准备

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

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

1-1 云服务器配置

项目

说明

规格

kc1.large.2   | 4vCPUs | 8GB

磁盘

系统盘:高IO40GB

 

操作系统要求如表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

image.png

5       故障排除

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

问题描述

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

image.png

问题原因

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

解决方法

vim src/ls.c

3026行代码SYS_getdents改为SYS_getdents64

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。