8.57. Coreutils-9.4

O pacote Coreutils contém aplicativos utilitários básicos necessitados por cada sistema operacional.

Tempo aproximado de construção: 1,0 UPC
Espaço em disco exigido: 175 MB

8.57.1. Instalação do Coreutils

POSIX exige que aplicativos originários do Coreutils reconheçam limites de carácter corretamente, mesmo em locales multi bytes. O seguinte remendo corrrije essa não-conformidade e outros defeitos relacionados à internacionalização.

patch -Np1 -i ../coreutils-9.4-i18n-1.patch
[Nota]

Nota

Muitos defeitos tem sido encontrados nesse remendo. Quando reportar novos defeitos para os(as) mantenedores(as) do Coreutils, por favor, verifique primeiro para ver se tais defeitos são reproduzíveis sem esse remendo.

Corrija uma vulnerabilidade de segurança no utilitário "split":

sed -e '/n_out += n_hold/,+4 s|.*bufsize.*|//&|' \
     -i src/split.c

Agora prepare Coreutils para compilação:

autoreconf -fiv
FORCE_UNSAFE_CONFIGURE=1 ./configure \
            --prefix=/usr            \
            --enable-no-install-program=kill,uptime

O significado das opções do configure:

autoreconf

O remendo para internacionalização modificou o sistema de construção, de forma que os arquivos de configuração precisam ser regenerados.

FORCE_UNSAFE_CONFIGURE=1

Essa variável de ambiente permite que o pacote seja construído pelo(a) usuário(a) root.

--enable-no-install-program=kill,uptime

O propósito dessa chave é o de impedir que o Coreutils instale aplicativos que serão instalados por outros pacotes.

Compile o pacote:

make

Pule para Instale o pacote se não executar a suíte de teste.

Agora a suíte de teste está pronta para ser executada. Primeiro, execute os testes que são destinados a serem executados como usuário(a) root:

make NON_ROOT_USERNAME=tester check-root

Nós vamos executar o resto dos testes como o(a) usuário(a) tester. Certos testes exigem que o(a) usuário(a) seja um(a) membro(a) de mais que um grupo. Portanto, para que esses testes não sejam pulados, adicione um grupo temporário e torne o(a) usuário(a) tester uma parte dele:

groupadd -g 102 dummy -U tester

Corrija algumas das permissões, de modo que o(a) usuário(a) não root possa compilar e executar os testes:

chown -R tester . 

Agora execute os testes:

su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"

Remova o grupo temporário:

groupdel dummy

Instale o pacote:

make install

Mova aplicativos para os locais especificados pelo FHS:

mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8

8.57.2. Conteúdo do Coreutils

Aplicativos instalados: [, b2sum, base32, base64, basename, basenc, cat, chcon, 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, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami e yes
Biblioteca instalada: libstdbuf.so (em /usr/libexec/coreutils)
Diretório instalado: /usr/libexec/coreutils

Descrições Curtas

[

É um comando atual, /usr/bin/[; é um sinônimo para o comando test

base32

Codifica e decodifica dados de acordo com a especificação base32 (RFC 4648)

base64

Codifica e decodifica dados de acordo com a especificação base64 (RFC 4648)

b2sum

Imprime ou verifica somas de verificação BLAKE2 (512 bits)

basename

Remove qualquer caminho e um dado sufixo de um nome de arquivo

basenc

Codifica ou decodifica dados usando vários algoritmos

cat

Concatena arquivos para saída gerada padrão

chcon

Muda contexto de segurança para arquivos e diretórios

chgrp

Muda a propriedade do grupo de arquivos e diretórios

chmod

Muda as permissões de cada arquivo para o modo dado; o modo pode ser ou uma representação simbólica das mudanças a serem feitas ou um número octal representando as novas permissões

chown

Muda a propriedade de usuário(a) e (ou) de grupo de arquivos e dos diretórios

chroot

Executa um comando com o diretório especificado como o diretório /

cksum

Imprime a soma de verificação Cyclic Redundancy Check (CRC) e as contagens de bytes de cada arquivo especificado

comm

Compara dois arquivos ordenados, produzindo em três colunas as linhas que são únicas e as linhas que são comuns

cp

Copia arquivos

csplit

Divide um dado arquivo em vários novos arquivos, separando-os de acordo com padrões dados ou números de linha e produzindo a contagem de bytes de cada novo arquivo

cut

Imprime seções de linhas, selecionando as partes de acordo com campos ou posições dados

date

Exibe a data e hora atual no formato dado ou configura a data e hora do sistema

dd

Copia um arquivo usando o tamanho de bloco e a contagem dado, enquanto opcionalmente realiza conversões sobre ele

df

Informa a quantidade de espaço em disco disponível (e usada) em todos os sistemas de arquivos montados ou somente nos sistemas de arquivos contendo os arquivos selecionados

dir

Lista o conteúdo de cada diretório dado (o mesmo que o comando ls)

dircolors

Produz comandos para configurar a variável de ambiente LS_COLOR para mudar o esquema de cores usado por ls

dirname

Extrai a(s) porção(ões) de diretório(s) do(s) nome(s) dado(s)

du

Informa a quantidade de espaço em disco usado pelo diretório atual, por cada dos diretórios dados (incluindo todos os subdiretórios) ou por cada dos arquivos dados

echo

Exibe as sequências de caracteres dadas

env

Executa um comando em um ambiente modificado

expand

Converte tabulação para espaços

expr

Avalia expressões

factor

Imprime os fatores primos dos inteiros especificados

false

Não faz nada, sem sucesso; sempre sai com um código de status indicando falha

fmt

Reformata os parágrafos nos arquivos dados

fold

Quebra as linhas nos arquivos dados

groups

Informa as associações de grupo de um(a) usuário(a)

head

Imprime as primeiras dez linhas (ou o número de linhas dado) de cada arquivo dado

hostid

Informa o identificador numérico (em hexadecimal) do dispositivo

id

Informa o efetivo ID de usuária(o), ID de grupo e as associações de grupo do(a) usuário(a) atual ou usuária(o) especificada(o)

install

Copia arquivos enquanto configura os modos de permissão deles e, se possível, proprietário e grupo deles

join

Junta as linhas que tenham idênticos campos de junção a partir de dois arquivos

link

Cria um link rígido (com o nome dado) para um arquivo

ln

Faz links rígidos ou links flexíveis (simbólicos) entre arquivos

logname

Informa o nome de login do(a) usuário(a) atual

ls

Lista o conteúdo de cada diretório dado

md5sum

Informa ou verifica somas de verificação Message Digest 5 (MD5)

mkdir

Cria diretórios com os nomes dados

mkfifo

Cria First-In, First-Outs (FIFOs), "tubos nomeado" na linguagem UNIX, com os nomes dados

mknod

Cria nós de dispositivo com os nomes dados; um nó de dispositivo é um arquivo especial de caractere, um arquivo especial de bloco ou um FIFO

mktemp

Cria arquivos temporários de uma maneira segura; é usado em scripts

mv

Move ou renomeia arquivos ou diretórios

nice

Executa um aplicativo com prioridade de agendamento modificada

nl

Numera as linhas a partir dos arquivos dados

nohup

Executa um comando imune a interrupções, com a saída gerada dele redirecionada para um arquivo de registro

nproc

Imprime o número de unidades de processamento disponíveis para um processo

numfmt

Converte números para ou oriundos de sequências de caracteres legíveis por humanos

od

Despeja arquivos em octal e outros formatos

paste

Mescla os arquivos dados, unindo linhas sequencialmente correspondentes lado a lado, separadas por caracteres de tabulação

pathchk

Verifica se nomes de arquivos são válidos ou portáveis

pinky

É um cliente de dedo leve; ele informa alguma informação a respeito das(os) usuárias(os) dadas(os)

pr

Pagina e coluna arquivos para impressão

printenv

Imprime o ambiente

printf

Imprime os argumentos dados de acordo com o formato dado, muito parecido com a função printf do C

ptx

Produz um índice permutado a partir do conteúdo dos arquivos dados, com cada palavra-chave no contexto dela

pwd

Informa o nome do diretório de trabalho atual

readlink

Informa o valor do link simbólico dado

realpath

Imprime o caminho resolvido

rm

Remove arquivos ou diretórios

rmdir

Remove diretórios se eles estiverem vazios

runcon

Executa um comando com contexto de segurança especificado

seq

Imprime uma sequência de números dentro de um dado intervalo e com um dado incremento

sha1sum

Imprime ou verifica somas de verificação do Secure Hash Algorithm 1 (SHA1) 160 bits

sha224sum

Imprime ou verifica somas de verificação do Secure Hash Algorithm de 224 bits

sha256sum

Imprime ou verifica somas de verificação do Secure Hash Algorithm de 256 bits

sha384sum

Imprime ou verifica somas de verificação do Secure Hash Algorithm de 384 bits

sha512sum

Imprime ou verifica somas de verificação do Secure Hash Algorithm de 512 bits

shred

Sobrescreve os arquivos dados repetidamente com padrões complexos, tornando difícil recuperar os dados

shuf

Embaralha linhas do texto

sleep

Pausa pelo período de tempo dado

sort

Ordena as linhas a partir dos arquivos dados

split

Divide o arquivo dado em pedaços, por tamanho ou por número de linhas

stat

Exibe a situação de arquivo ou sistema de arquivos

stdbuf

Executa comandos com operações de buffer alteradas para fluxos padrão deles

stty

Configura ou informa configurações de linha de terminal

sum

Imprime soma de verificação e contagens de blocos para cada arquivo dado

sync

Libera buffers do sistema de arquivos; isso força blocos modificados para o disco e atualiza o super bloco

tac

Concatena os arquivos dados em ordem reversa

tail

Imprime as últimas dez linhas (ou o número dado de linhas) de cada arquivo dado

tee

Lê a partir da entrada gerada padrão enquanto escreve tanto para a saída gerada padrão quanto para os arquivos dados

test

Compara valores e verifica tipos de arquivos

timeout

Executa um comando com um limite de tempo

touch

Muda carimbos de tempo de arquivo, definindo os horários de acesso e modificação dos arquivos dados para o horário atual; arquivos que não existem são criados com tamanho zero

tr

Traduz, comprime e deleta os caracteres dados a partir da entrada gerada padrão

true

Não faz nada, com sucesso; sempre sai com um código de situação indicando sucesso

truncate

Reduz ou expande um arquivo para o tamanho especificado

tsort

Realiza uma ordenação topológica; ele escreve uma lista completamente ordenada de acordo com a ordenação parcial em um arquivo dado

tty

Informa o nome de arquivo do terminal conectado à entrada gerada padrão

uname

Informa informação de sistema

unexpand

Converte espaços para tabulação

uniq

Descarta todas, exceto uma das sucessivas linhas idênticas

unlink

Remove o arquivo dado

users

Informa os nomes das(os) usuárias(os) atualmente logadas(os)

vdir

É o mesmo que ls -l

wc

Informa o número de linhas, palavras e bytes para cada arquivo dado, bem como totais gerais quando mais que um arquivo for dado

who

Informa quem está logado(a)

whoami

Informa o nome de usuária(o) associado com o ID efetivo de usuária(o) atual

yes

Repetidamente produz y ou uma dada sequência de caracteres, até ser eliminado

libstdbuf

Biblioteca usada por stdbuf