De repente, decidi que gostaria de olhar o código-fonte para 'eco'
$ which echo
/usr/bin/echo
assim
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
assim
$strings /usr/bin/echo
me leva a acreditar que é um programa C compilado
Agora estou preso.
Como é que eu:
Descubra em qual pacote está
Obter a fonte
Reconstrua
Teste-o
Instale a nova versão em todo o sistema
(Eu sei que 5 não é uma boa ideia, só estou curioso ...)
Atualmente, estou no Fedora, mas também estaria interessado nas respostas para o Debian
Um link para um tutorial relevante seria uma boa resposta.
Editar:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Então eu acho que é o que /usr/bin/echo
eu gostaria de ver em vez de tentar ler o todo bash
.
debian
fedora
source-code
John Lawrence Aspden
fonte
fonte
type -a echo
primeiro./usr/bin/echo --version
seguir.Respostas:
RHEL / Fedora
Corre
rpm -qf /path
Faça o download do pacote de origem (use
yum
para RHEL):Extraia as fontes, os patches do pacote SRPM baixados no diretório atual, mude para o diretório em que os arquivos são extraídos e localize seu arquivo:
Você pode reconstruir o pacote usando
rpmbuild --rebuild coreutils-8.25-17.fc25.src.rpm
, o que produzirá os RPMs que você pode instalar diretamente no seu sistema.Se você precisar fazer alguma modificação nos pacotes do fedora, é muito mais fácil seguir o caminho do mantenedor: Instale
fedpkg
, clone o repositório, faça as modificações (usando patches) e reconstrua o pacote com modificações:fonte
Debian (e derivativos)
Execute
dpkg -S /path
para ver a qual pacote/path
pertence:Obtenha a fonte (eu estou no Ubuntu):
Encontre o arquivo:
O resto é com você.
fonte
dpkg -s coreutils
(ou qualquer pacote que você esteja interessado) e procurar oHomepage:
. Na página inicial, você normalmente encontra acesso de leitura ao código fonte e ao histórico completo da versão.