10.12. Coreutils-5.96

#### Cross-Compiled Linux From Scratch - Version 1.0.0rc2-MIPS64-Multilib

### Chapter 10. Installing Basic System Software

- Prev

  GCC-4.1.1

- Next

  Iana-Etc-2.10

- Up.
- Home

# 10.12. Coreutils-5.96

The Coreutils package contains utilities for showing and setting the basic system characteristics.

## 10.12.1. Installation of Coreutils

Prevent Coreutils from installing binaries that will be installed by other packages:

    patch -Np1 -i ../coreutils-5.96-suppress_uptime_kill_su-1.patch

Now prepare Coreutils for compilation:

    CC="gcc ${BUILD64}" ./configure --prefix=/usr

Compile the package:

    make

The test suite of Coreutils makes several assumptions about the presence of system users and groups that are not valid within the minimal environment that exists at the moment. Therefore, additional items need to be set up before running the tests. Skip down to “Install the package” if not running the test suite.

Create two `dummy` groups and a `dummy` user:

    echo "dummy1:x:1000:" >> /etc/group
    echo "dummy2:x:1001:dummy" >> /etc/group
    echo "dummy:x:1000:1000::/root:/bin/bash" >> /etc/passwd

Now the test suite is ready to be run. First, run the tests that are meant to be run as user `root`:

    make NON_ROOT_USERNAME=dummy check-root

Then run the remainder of the tests as the `dummy` user:

    src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"

When testing is complete, remove the `dummy` user and groups:

    sed -i '/dummy/d' /etc/passwd /etc/group

Install the package:

    make install

Move programs to the locations specified by the FHS:

    mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date} /bin
    mv -v /usr/bin/{dd,df,echo,false,hostname,ln,ls,mkdir,mknod} /bin
    mv -v /usr/bin/{mv,pwd,rm,rmdir,stty,true,uname} /bin
    mv -v /usr/bin/chroot /usr/sbin

Other Coreutils programs are used by some of the scripts in the CLFS-Bootscripts package. As `/usr` may not be available during the early stages of booting, those binaries need to be on the root partition:

    mv -v /usr/bin/{[,basename,head,install,nice} /bin
    mv -v /usr/bin/{readlink,sleep,sync,test,touch} /bin
    ln -svf ../../bin/install /usr/bin

## 10.12.2. Contents of Coreutils

Installed programs: [, basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami, and yes

### Short Descriptions

basename | Strips any path and a given suffix from a file name
cat | Concatenates files to standard output
chgrp | Changes the group ownership of files and directories
chmod | Changes the permissions of each file to the given mode; the mode can be either a symbolic representation of the changes to make or an octal number representing the new permissions
chown | Changes the user and/or group ownership of files and directories
chroot | Runs a command with the specified directory as the `/` directory
cksum | Prints the Cyclic Redundancy Check (CRC) checksum and the byte counts of each specified file
comm | Compares two sorted files, outputting in three columns the lines that are unique and the lines that are common
cp | Copies files
csplit | Splits a given file into several new files, separating them according to given patterns or line numbers and outputting the byte count of each new file
cut | Prints sections of lines, selecting the parts according to given fields or positions
date | Displays the current time in the given format, or sets the system date
dd | Copies a file using the given block size and count, while optionally performing conversions on it
df | Reports the amount of disk space available (and used) on all mounted file systems, or only on the file systems holding the selected files
dir | Lists the contents of each given directory (the same as the ls command)
dircolors | Outputs commands to set the `LS_COLOR` environment variable to change the color scheme used by ls
dirname | Strips the non-directory suffix from a file name
du | Reports the amount of disk space used by the current directory, by each of the given directories (including all subdirectories) or by each of the given files
echo | Displays the given strings
env | Runs a command in a modified environment
expand | Converts tabs to spaces
expr | Evaluates expressions
factor | Prints the prime factors of all specified integer numbers
false | Does nothing, unsuccessfully; it always exits with a status code indicating failure
fmt | Reformats the paragraphs in the given files
fold | Wraps the lines in the given files
groups | Reports a user's group memberships
head | Prints the first ten lines (or the given number of lines) of each given file
hostid | Reports the numeric identifier (in hexadecimal) of the host
hostname | Reports or sets the name of the host
id | Reports the effective user ID, group ID, and group memberships of the current user or specified user
install | Copies files while setting their permission modes and, if possible, their owner and group
join | Joins the lines that have identical join fields from two separate files
link | Creates a hard link with the given name to a file
ln | Makes hard links or soft (symbolic) links between files
logname | Reports the current user's login name
ls | Lists the contents of each given directory
md5sum | Reports or checks Message Digest 5 (MD5) checksums
mkdir | Creates directories with the given names
mkfifo | Creates First-In, First-Outs (FIFOs), a “named pipe” in UNIX parlance, with the given names
mknod | Creates device nodes with the given names; a device node is a character special file, a block special file, or a FIFO
mv | Moves or renames files or directories
nice | Runs a program with modified scheduling priority
nl | Numbers the lines from the given files
nohup | Runs a command immune to hangups, with its output redirected to a log file
od | Dumps files in octal and other formats
paste | Merges the given files, joining sequentially corresponding lines side by side, separated by tab characters
pathchk | Checks if file names are valid or portable
pinky | Is a lightweight finger client; it reports some information about the given users
pr | Paginates and columnates files for printing
printenv | Prints the environment
printf | Prints the given arguments according to the given format, much like the C printf function
ptx | Produces a permuted index from the contents of the given files, with each keyword in its context
pwd | Reports the name of the current working directory
readlink | Reports the value of the given symbolic link
rm | Removes files or directories
rmdir | Removes directories if they are empty
seq | Prints a sequence of numbers within a given range and with a given increment
sha1sum | Prints or checks 160-bit Secure Hash Algorithm 1 (SHA1) checksums
shred | Overwrites the given files repeatedly with complex patterns, making it difficult to recover the data
sleep | Pauses for the given amount of time
sort | Sorts the lines from the given files
split | Splits the given file into pieces, by size or by number of lines
stat | Displays file or filesystem status
stty | Sets or reports terminal line settings
sum | Prints checksum and block counts for each given file
sync | Flushes file system buffers; it forces changed blocks to disk and updates the super block
tac | Concatenates the given files in reverse
tail | Prints the last ten lines (or the given number of lines) of each given file
tee | Reads from standard input while writing both to standard output and to the given files
test or [ | Compares values and checks file types
touch | Changes file timestamps, setting the access and modification times of the given files to the current time; files that do not exist are created with zero length
tr | Translates, squeezes, and deletes the given characters from standard input
true | Does nothing, successfully; it always exits with a status code indicating success
tsort | Performs a topological sort; it writes a completely ordered list according to the partial ordering in a given file
tty | Reports the file name of the terminal connected to standard input
uname | Reports system information
unexpand | Converts spaces to tabs
uniq | Discards all but one of successive identical lines
unlink | Removes the given file
users | Reports the names of the users currently logged on
vdir | Is the same as ls -l
wc | Reports the number of lines, words, and bytes for each given file, as well as a total line when more than one file is given
who | Reports who is logged on
whoami | Reports the user name associated with the current effective user ID
yes | Repeatedly outputs “y” or a given string until killed

- Prev

  GCC-4.1.1

- Next

  Iana-Etc-2.10

- Up.
- Home.