Os pacotes que são instalados neste livro são apenas a ponta do iceberg. Nós esperamos que a experiência que você ganhou com o livro LFS e com o livro BLFS te dará o conhecimento necessário para compilar, instalar e configurar pacotes que não estejam inclusos neste livro.
Quando você quiser instalar um pacote para um local outro que
/
ou /usr
, você estará instalando fora das configurações
padrão de ambiente na maioria das máquinas. Os seguintes exemplos
deveriam te auxiliar a determinar como corrigir essa situação. Os
exemplos cobrem o intervalo completo de configurações que
possivelmente precisem de atualização, porém eles não são todo o
necessário em cada situação.
Expanda a PATH
para incluir
$PREFIX/bin
.
Expanda a PATH
para o(a)
root
para incluir $PREFIX/sbin
.
Adicione $PREFIX/lib
ao
/etc/ld.so.conf
; ou expanda a
LD_LIBRARY_PATH
para inclui-lo.
Antes de usar a última opção, consulte http://xahlee.info/UnixResource_dir/_/ldpath.html.
Se você modificar o /etc/ld.so.conf
, [então] lembre-se de
atualizar o /etc/ld.so.cache
,
executando ldconfig como o(a) usuário(a)
root
.
Adicione $PREFIX/man
ao
/etc/man_db.conf
; ou expanda
MANPATH
.
Adicione $PREFIX/info
a
INFOPATH
.
Adicione $PREFIX/lib/pkgconfig
a
PKG_CONFIG_PATH
. Alguns pacotes
agora estão instalando arquivos .pc
em $PREFIX/share/pkgconfig
, de forma que você
possivelmente tenha que incluir esse diretório também.
Adicione $PREFIX/include
a
CPPFLAGS
quando compilar pacotes que
dependam do pacote que você instalou.
Adicione $PREFIX/lib
a
LDFLAGS
quando compilar pacotes que
dependam de uma biblioteca instalada pelo pacote.
Se você estiver em busca de um pacote que não estiver no livro, [então] as seguintes são maneiras diferentes que você pode procurar pelo pacote desejado.
Se você souber o nome do pacote, então procure no "SourceForge"
por ele em https://sourceforge.net/directory/;
e procure no "GitHub" por ele em https://github.com/. Também, procure
no "Google" em https://google.com/. Ocasionalmente,
uma busca pelo rpm
em https://rpmfind.net/;
ou pelo deb
em https://www.debian.org/distrib/packages#search_packages
também pode levar a um link para o pacote.
Se você souber o nome do executável, porém não o do pacote ao qual o executável pertence, [então], primeiro, tente uma busca "Google" com o nome do executável. Se os resultados forem sobrecarregadores, [então] tente buscar pelo dado executável no repositório do "Debian" em https://www.debian.org/distrib/packages#search_contents.
Algumas dicas gerais acerca de manusear pacotes novos:
Muitos dos pacotes mais recentes seguem o processo ./configure && make && make install. Ajuda acerca das opções aceitas pelo configure pode ser obtida via o comando ./configure --help.
A maioria dos pacotes contém documentação acerca de compilar e de instalar o pacote. Alguns dos documentos são excelentes; alguns, não tão excelentes. Consulte a página do pacote para quaisquer dicas adicionais e atualizadas para compilar e configurar o pacote.
Se você estiver tendo um problema compilando o pacote, [então] tente procurar nos arquivamentos do LFS em https://www.linuxfromscratch.org/search.html pelo erro; ou, se isso falhar, [então] tente procurar no Google. Frequentemente, uma distribuição já terá solucionado o problema (muitas delas usam versões de desenvolvimento dos pacotes, de forma que elas veem as mudanças mais breve que aqueles de nós que normalmente usamos versões estáveis lançadas). Porém, seja cauteloso(a) - todos(as) os(as) construtores(as) tendem a carregar remendos que não mais são necessários; e terem correções que somente são exigidas por causa das escolhas particulares deles(as) em como constroem um pacote. Você possivelmente tenha que procurar profundamente para encontrar uma correção para a versão do pacote que estiver tentando usar; ou até mesmo para encontrar o pacote (os nomes, ocasionalmente, não são o que você poderia esperar; por exemplo, o ghostscript frequentemente tem um prefixo ou um sufixo no nome dele); entretanto, as observações seguintes poderiam ajudar, particularmente aqueles(as) que, como os(as) editores(as), estão tentando construir as versões mais recentes e encontrar problemas:
"Arch" https://www.archlinux.org/packages/
- informe o nome do pacote na caixa 'Keywords'; selecione
o nome do pacote; selecione o campo 'Source Files'; e,
então, selecione a entrada PKGBUILD
para ver como eles constroem
esse pacote.
"Debian" https://ftp.debian.org/debian/pool
(use a versão do teu país, se existir uma) - o fonte
estará em "tarballs" ".tar.gz" (ou o fonte original
.orig
do(a)
desenvolvedor(a); ou, do contrário, um dfsg
contendo aquelas partes que
cumprem as diretrizes de software livre do "Debian")
acompanhado por adições versionadas ".diff.gz" ou
".tar.gz". Essas adições frequentemente mostram como o
pacote é construído e possivelmente contenham remendos.
Nas versões ".diff.gz", quaisquer remendos criam arquivos
em debian/patches
.
O fonte do pacote do Fedora é reorganizado de tempos em tempos. No momento, o fonte do pacote para rpms está em https://src.fedoraproject.org/projects/rpms/%2A e, a partir de lá, você pode tentar colocando um nome de pacote na caixa de busca. Se o pacote for encontrado, [então] você pode olhar nos arquivos ("specfile" para controlar a construção; vários remendos) ou nos commits. Se isso falhar, [então] você pode baixar um srpm (source rpm) e usar o rpm2cpio (veja-se a Dica ao final da página). Para rpms, vá para https://dl.fedoraproject.org/pub/fedora/linux/ e, então, escolha qual repositório deseja olhar - development/rawhide é o desenvolvimento mais recente; ou, escolha "releases", para o que foi embarcado em um lançamento; "updates", para as atualizações para um lançamento; ou, "updates/testing", para as atualizações mais recentes, que poderiam funcionar ou poderiam ter problemas.
"Gentoo" - Primeiro use um mecanismo de busca para
encontrar um "ebuild" que pareça resolver o problema, ou
pesquise em https://packages.gentoo.org/
- use o campo de busca. Observe onde o pacote reside na
hierarquia do "portage", por exemplo, app-alguma_coisa/
. Em geral você pode
tratar o "ebuild" como uma espécie de combinação de
pseudocódigo/shell com algumas funções que você pode
arriscar, como dodoc. Se a correção
for apenas um sed, [então] tente. No
entanto, na maioria dos casos, a correção usará um
remendo. Para encontrar o remendo, use um espelho
"gentoo-portage": Dois links para espelhos nos Estados
Unidos da América do Norte que parecem estar atualizados
são https://mirror.rackspace.com/gentoo-portage/
e https://mirror.steadfast.net/gentoo-portage/.
Navegue pela árvore até o pacote e depois até o diretório
files/
para procurar o
remendo. Às vezes um espelho do "portage" ainda não foi
atualizado, especialmente para um novo remendo recente.
Em alguns casos, o "Gentoo" agrupa os remendos em um
"tarball" e o "ebuild" terá um link no formato
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER
}.tar.xz : aqui, procure "PATCH_DEV" e "PATCH_VER" na
construção e formate o "URL" completo em seu navegador ou
para o "wget" : lembre-se do "~" antes do "ID" do(a)
desenvolvedor(a) e observe que tentar pesquisar os níveis
anteriores do "URL" em um navegador possivelmente te
levará para www.gentoo.org ou retornará 403 (proibido).
O "openSUSE" fornece um lançamento contínuo; algumas versões de pacote estão em https://download.opensuse.org/source/tumbleweed/repo/oss/src/, porém outras estão em ../update/openSUSE-current/src - o fonte parece somente estar disponível em "source rpms".
"Slackware" - o navegador de pacote oficial atualmente
está quebrado. O sítio em https://slackbuilds.org/
tem versões atuais e anteriores no repositório não
oficial delas com links para páginas iniciais,
transferências e alguns arquivos individuais,
particularmente os arquivos .SlackBuild
.
"Ubuntu" ftp://ftp.ubuntu.com/ubuntu/pool/ - vejam-se as observações "Debian" acima.
Se tudo o mais falhar, [então] tente a lista de discussão "blfs-support".
Se você tiver encontrado um pacote que está disponível somente no
formato .deb
ou no .rpm
, [então] existem dois scripts pequenos,
rpm2targz e
deb2targz, que estão
disponíveis em
https://anduin.linuxfromscratch.org/BLFS/extras/deb2targz.tar.bz2
e
https://anduin.linuxfromscratch.org/BLFS/extras/rpm2targz.tar.bz2,
para converter os arquivamentos em um formato simples tar.gz
.
Você possivelmente ache também um script "rpm2cpio" útil. A versão "Perl" nos arquivamentos do núcleo Linux em https://lore.kernel.org/all/20021016121842.GA2292@ncsu.edu/2-rpm2cpio funciona para a maioria dos "source rpms". O script "rpm2targz" usará um script ou binário "rpm2cpio" se um estiver no teu caminho. Observe que o "rpm2cpio" desempacotará um "source rpm" no diretório atual, dando um "tarball"; um arquivo de especificação; e, talvez, remendos ou outros arquivos.