Beyond Linux® From Scratch (Edição System V)

Versão 12.3

A Equipe de Desenvolvimento do BLFS

Direitos autorais © 1999-2025, A Equipe de Desenvolvimento do BLFS

Todos os direitos reservados.

Este livro está licenciado sob uma Licença da Creative Commons.

As instruções de computador podem ser extraídas a partir do livro sob a Licença do MIT.

Linux® é uma marca comercial registrada de Linus Torvalds.

Publicado em 2025-03-05

Histórico de Revisões
Revisão 12.3 2025-03-05 Trigésimo primeiro lançamento
Revisão 12.2 2024-09-01 Trigésimo Lançamento
Revisão 12.1 2024-03-01 Vigésimo nono lançamento
Revisão 12.0 2023-09-01 Vigésimo oitavo lançamento
Revisão 11.3 2023-03-01 Vigésimo sétimo lançamento
Revisão 11.2 2022-09-01 Vigésimo sexto lançamento
Revisão 11.1 2022-03-01 Vigésimo quinto lançamento
Revisão 11.0 2021-09-01 Vigésimo quarto lançamento
Revisão 10.1 2021-03-01 Vigésimo terceiro lançamento
Revisão 10.0 2020-09-01 Vigésimo segundo lançamento
Revisão 9.1 2020-03-01 Vigésimo primeiro lançamento
Revisão 9.0 2019-09-01 Vigésimo lançamento
Revisão 8.4 2019-03-01 Décimo nono lançamento
Revisão 8.3 2018-09-01 Décimo oitavo lançamento
Revisão 8.2 2018-03-02 Décimo sétimo lançamento
Revisão 8.1 2017-09-01 Décimo sexto lançamento
Revisão 8.0 2017-02-25 Décimo quinto lançamento
Revisão 7.10 2016-09-07 Décimo quarto lançamento
Revisão 7.9 2016-03-08 Décimo terceiro lançamento
Revisão 7.8 2015-10-01 Décimo segundo lançamento
Revisão 7.7 2015-03-06 Décimo primeiro lançamento
Revisão 7.6 2014-09-23 Décimo lançamento
Revisão 7.5 2014-03-05 Nono lançamento
Revisão 7.4 2013-09-14 Oitavo lançamento
Revisão 6.3 2008-08-24 Sétimo lançamento
Revisão 6.2 2007-02-14 Sexto lançamento
Revisão 6.1 2005-08-14 Quinto lançamento
Revisão 6.0 2005-04-02 Quarto lançamento
Revisão 5.1 2004-06-05 Terceiro lançamento
Revisão 5.0 2003-11-06 Segundo lançamento
Revisão 1.0 2003-04-25 Primeiro lançamento

Resumo

Este livro é uma continuação do livro Linux From Scratch. Ele introduz e guia o(a) leitor(a) ao longo de adições ao sistema incluindo rede de comunicação, interfaces gráficas, suporte a som e suporte a impressora e escaneadora.


Dedicação

Este livro é dedicado para a comunidade do LFS

Índice

Prefácio

Tendo ajudado com o Linux From Scratch por um curto período, eu percebi que nós estávamos obtendo muitas consultas do tipo como fazer coisas além do sistema LFS base. Na época, a única assistência oferecida especificamente relacionada ao LFS eram as dicas do LFS (https://www.linuxfromscratch.org/hints). A maioria das dicas do LFS é extremamente boa e bem escrita, porém eu (e outros(as)) ainda poderia ver uma necessidade para ajuda mais abrangente para ir Além do LFS — por isso o BLFS.

O BLFS visa a ser mais que as dicas do LFS convertidas para XML, apesar de muito do nosso trabalho ser baseado nas dicas e, de fato, alguns(mas) autores(as) escreverem as dicas e as seções relevantes do BLFS. Nós esperamos poder fornecer a você informação suficiente não apenas para conseguir construir o seu sistema até o que você desejar, seja um servidor da web ou um sistema multimídia de área de trabalho, mas também que você aprenda muito acerca da configuração do sistema conforme avance.

Obrigado, como sempre, a todos(as) na comunidade LFS/BLFS; especialmente aqueles(as) que contribuíram com instruções, textos escritos, responderam a perguntas e geralmente gritaram quando as coisas estavam erradas!

Finalmente, encorajamos você a se envolver na comunidade; faça perguntas na lista de discussão ou portal de notícias e divirta-se em #lfs e #lfs-support no Libera. Você pode encontrar mais detalhes acerca de tudo isso na seção Introdução do livro.

Divirta-se usando o BLFS.

Mark Hymers
markh <at> linuxfromscratch.org
Editor do BLFS (Julho de 2001–Março de 2003)

Eu ainda lembro como encontrei o projeto BLFS e comecei a usar as instruções que estavam completas na época. Eu não podia acreditar quão maravilhoso era ter um aplicativo instalado e funcionando muito rapidamente, com explicações do tipo porque as coisas foram feitas de uma certa maneira. Infelizmente, para mim, não demorou muito antes que estivesse abrindo aplicativos que não tinham nada mais que "A ser feito" na página. Eu fiz o que a maioria faria: esperei que alguém fizesse. Não demorou muito também antes que estivesse procurando, via Bugzilla, por alguma coisa fácil de fazer. Como com qualquer experiência de aprendizado, a definição do que era fácil continuou mudando.

Nós ainda incentivamos você a se envolver, já que o BLFS nunca está realmente finalizado. Contribuindo ou apenas usando, nós esperamos que você aprecie a sua experiência BLFS.

Larry Lawrence
larry <at> linuxfromscratch.org
Editor do BLFS (Março de 2003–Junho de 2004)

O projeto BLFS é uma progressão natural do LFS. Juntos, esses projetos fornecem um recurso único para a Comunidade do Fonte Aberto. Eles tiram o mistério do processo de construir um sistema de software funcional e completo a partir do código fonte contribuído por muitos(as) indivíduos(as) talentosos(as) mundo afora. Eles verdadeiramente permitem que os(as) usuários(as) implementem o lema Tua distribuição, tuas regras.

Nossa meta é a de continuar a fornecer o melhor recurso disponível que mostra a você como integrar muitas aplicações significantes de Fonte Aberto. Considerando que essas aplicações são atualizadas constantemente e aplicações novas são desenvolvidas, este livro nunca estará completo. Adicionalmente, sempre existe espaço para melhoramento na explicação das nuances do como instalar os diferentes pacotes. Para fazer esses melhoramentos, nós precisamos do seu feedback. Eu incentivo você a participar das diferentes listas de discussão, grupos de notícias e canais do IRC para ajudar a alcançar essas metas.

Bruce Dubbs
bdubbs <at> linuxfromscratch.org
Editor do BLFS (Junho de 2004–Dezembro de 2006 e Fevereiro de 2011–agora)

Minha introdução ao projeto [B]LFS foi, na verdade, por acidente. Eu estava tentando construir um ambiente GNOME usando alguns HOW-TOs e outras informações que encontrei na web. Algumas vezes, encontrei alguns problemas de construção e a pesquisa no Google me trouxe algumas mensagens antigas da lista de discussão do BLFS. Por curiosidade, visitei o sítio da web do Linux From Scratch e pouco tempo depois estava viciado. Não tenho usado qualquer outra distribuição do Linux para uso pessoal desde então.

Eu não posso prometer que alguém sentirá o senso de satisfação que senti depois de construir meus primeiros sistemas usando as instruções do [B]LFS, porém espero sinceramente que sua experiência BLFS seja tão gratificante para você quanto tem sido para mim.

O projeto BLFS tem crescido significantemente nos dois anos mais recentes. Existem mais instruções de pacote e dependências relacionadas que nunca antes. O projeto exige sua contribuição para o sucesso continuado. Se você descobrir que gosta de construir o BLFS, [então], por favor, considere ajudar da maneira que puder. O BLFS exige centenas de horas de manutenção para mantê-lo até mesmo semi atual. Se você se sentir confiante o suficiente em suas habilidades de edição, [então], por favor, considere ingressar na equipe do BLFS. Simplesmente contribuir para as discussões da lista de discussão com bons conselhos e (ou) fornecer correções para o XML do livro provavelmente resultará em você receber um convite para se juntar à equipe.

Randy McMurchy
randy <at> linuxfromscratch.org
Editor do BLFS (Dezembro de 2006–Janeiro de 2011)

Introito

Esta versão do livro é destinada para ser usada quando se construir sobre um sistema construído usando o livro LFS. Cada esforço tem sido feito para garantir a precisão e a confiabilidade das instruções. Muitas pessoas entendem que, ao se usar as instruções neste livro depois de construir a versão atual estável ou de desenvolvimento do LFS, fornece um sistema Linux estável e muito moderno.

Aproveite!

Randy McMurchy
24 de agosto de 2008

Quem Desejaria Ler este Livro

Este livro é principalmente destinado para aqueles(as) que tenham construído um sistema baseado no livro LFS. Ele também será útil para aqueles(as) que estiverem usando outras distribuições e, por uma razão ou outra, quiserem construir manualmente "software" e necessitarem de alguma assistência. Observe que o material contido neste livro, em particular as listagens de dependências, presume que você esteja usando um sistema LFS básico com cada pacote listado no livro LFS já instalado e configurado. O BLFS pode ser usado para criar uma gama de sistemas diversos e, assim, a audiência alvo provavelmente é tão ampla quanto aquela do livro LFS. Se você achou o LFS útil, [então] você também deveria gostar deste!

Desde o lançamento 7.4, a versão do livro BLFS tem correspondido com a versão do livro LFS. Este livro possivelmente seja incompatível com um lançamento anterior ou posterior do livro LFS.

Organização

Este livro está dividido nas seguintes quatorze partes.

Parte I - Introdução

Essa parte contém informações essenciais que são necessárias para compreender o restante do livro.

Parte II - Pós Configuração do LFS e Software Extra

Aqui nós apresentamos problemas básicos de configuração e segurança. Também discutimos uma gama de editores de texto, sistemas de arquivos e "shells" que não são cobertos no livro LFS principal.

Parte III - Bibliotecas e Utilitários Gerais

Nessa seção abordamos bibliotecas que frequentemente são necessárias ao longo do livro, bem como utilitários de sistema. Informações relativas a programação (incluindo a recompilação do GCC para suportar toda a gama dele de linguagens) conclui essa parte.

Parte IV - Rede Básica de Comunicação

Aqui explicamos como conectar-se a uma rede de intercomunicação quando você não estiver usando a configuração simples de IP estático apresentada no livro principal do LFS. Bibliotecas de rede de intercomunicação e ferramentas de linha de comando de rede de intercomunicação também são abordadas aqui.

Parte V - Servidores

Aqui mostramos como configurar o correio e outros servidores (como FTP, Apache, etc.).

Parte VI - X + Gerenciadores de Janela

Essa parte explica como configurar um Sistema de Janelas X básico, junto com algumas bibliotecas X genéricas e gerenciadores de janelas.

Parte VII - KDE

Essa parte é para aqueles(as) que desejam usar o K Desktop Environment, ou partes dele.

Parte VIII - GNOME

GNOME é a alternativa principal ao KDE na arena do Ambiente de Área de Trabalho.

Parte IX - Xfce

Xfce é uma alternativa peso leve ao GNOME e ao KDE.

Parte X - LXQt

LXDE é outra alternativa peso leve ao GNOME e ao KDE.

Parte XI - Mais Software do X

Os aplicativos do "Office" e os navegadores gráficos da "web" são importantes para a maioria das pessoas. Eles e alguns softwares X genéricos podem ser encontrados nessa parte do livro.

Parte XII - Multimídia

Aqui abordamos bibliotecas e controladores multimídia, juntamente com alguns aplicativos de áudio, vídeo e gravação de CD.

Parte XIII - Impressão, Digitalização e Composição de Texto (PST)

Essa parte cobre o manuseio de documentos, desde aplicativos como Ghostscript, CUPS e DocBook, até o texlive.

Anexos

Os Anexos apresentam informações que não pertencem ao corpo do livro; eles estão incluídos como material de referência. O glossário de siglas é um recurso útil.

Parte I. Introdução

Capítulo 1. Boas vindas ao BLFS

O livro Beyond Linux From Scratch foi projetado para continuar a partir de onde o livro LFS parou. Porém, diferente do livro LFS, ele não foi projetado para ser seguido sequenciadamente. Ler a parte Quais seções do livro? deste capítulo deveria ajudar a guiar você ao longo do livro.

Por favor, leia cuidadosamente a maior parte desta parte do livro, pois ela explica algumas das convenções usadas ao longo do livro.

Quais Seções do Livro Eu Quero?

Ao contrário do livro Linux From Scratch, o BLFS não foi projetado para ser seguido de maneira linear. O LFS fornece instruções sobre como criar um sistema básico que pode se tornar qualquer coisa, desde um servidor "web" até um sistema multimídia de área de trabalho. O BLFS tenta orientá-lo(a) no processo de passagem do sistema básico até o teu destino pretendido. A escolha está muito envolvida.

Todos(as) que lerem este livro vão querer ler certas seções. A Introdução que você está lendo atualmente contém informações genéricas. Tome nota especial das informações no Capítulo 2, Informação Importante, pois elas contém comentários acerca de como desempacotar software, questões relacionadas ao uso de diferentes localidades e várias outras considerações que se aplicam ao longo do livro.

A parte acerca da Configuração Pós LFS e Software Extra é onde a maioria das pessoas vai querer ir em seguida. Isso trata não apenas de configuração, mas também de Segurança (Capítulo 4, Segurança), Sistemas de Arquivos (Capítulo 5, Sistemas de Arquivos e Gerenciamento de Disco - incluindo "GRUB" para "UEFI"), Editores de Texto (Capítulo 6, Editores de Texto) e "Shells" (Capítulo 7, Shells). Na verdade, você possivelmente deseje consultar algumas partes desse capítulo (especialmente as seções relativas a Editores de Texto e Sistemas de Arquivos) enquanto constrói teu sistema LFS.

Seguindo esses itens básicos, a maioria das pessoas vai querer pelo menos navegar pela parte das Bibliotecas e Utilitários Gerais do livro. Essa contém informações relativas a muitos itens que são pré-requisitos para outras seções do livro, bem como alguns itens (como Capítulo 13, Programação) que são úteis por si só. Você não precisa instalar todas as bibliotecas e pacotes encontradas nessa parte; cada procedimento de instalação do BLFS te informa quais outros pacotes esse depende. Você pode escolher o aplicativo que deseja instalar e ver o que ele precisa. (Não se esqueça de verificar as dependências aninhadas!)

Da mesma forma, a maioria das pessoas provavelmente desejará dar uma olhada na seção Rede de Intercomunicação. Ela lida com a conexão à Internet ou à sua "LAN" (Capítulo 14, Conectando a uma Rede de Intercomunicação) usando uma variedade de métodos, como "DHCP" e "PPP", e com itens como bibliotecas de rede de intercomunicação (Capítulo 17, Bibliotecas de Operação Interativa de Dispositivos Via Rede de Intercomunicação), além de vários aplicativos e utilitários básicos de rede de intercomunicação.

Depois que tiver lidado com esses básicos, você possivelmente desejará configurar serviços mais avançados de rede de intercomunicação. Eles são tratados na parte Servidores do livro. Aqueles(as) desejantes de construir servidores deveriam encontrar um bom ponto de partida aí. Observe que essa seção também contém informações relativas a vários pacotes de base de dados.

Os próximos doze capítulos tratam de sistemas de área de trabalho. Essa parte do livro começa com uma parte falando a respeito de Componentes Gráficos. Essa parte também trata de algumas bibliotecas genéricas baseadas no X (Capítulo 25, Bibliotecas Gráficas de Ambiente). Depois disso, KDE, GNOME, Xfce e LXQt recebem as próprias partes deles, seguidas por uma relativa a Software do X.

O livro então passa a lidar com pacotes Multimídia. Observe que muitas pessoas possivelmente queiram usar as instruções ALSA advindas desse capítulo ao iniciar a jornada BLFS delas; as instruções estão colocadas aqui porque é o lugar mais lógico para elas.

A parte final do livro principal do BLFS trata de Impressão, Digitalização e Composição Tipográfica. Isso é útil para a maioria das pessoas com sistemas de área de trabalho, mas mesmo aqueles(as) que estiverem criando sistemas dedicados de servidores possivelmente achem-na útil.

Esperamos que você goste de usar o BLFS. Que você realize seu sonho de construir o sistema Linux perfeitamente personalizado!

Convenções Usadas neste Livro

Convenções Tipográficas

Para facilitar o acompanhamento, diversas convenções são usadas ao longo do livro. Aqui estão alguns exemplos:

./configure --prefix=/usr

Essa forma de texto deveria ser digitada exatamente como mostrado, salvo indicação em contrário no texto ao redor. Também é usado para identificar referências a comandos específicos.

install-info: unknown option
`--dir-file=/mnt/lfs/usr/info/dir'

Essa forma de texto (fonte de largura fixa) mostra a saída gerada de tela, provavelmente o resultado da emissão de um comando. Também é usada para mostrar nomes de arquivos como /boot/grub/grub.conf

Nota

Por favor, configure teu navegador para exibir texto de largura fixa com uma boa fonte mono espaçada, com a qual você consiga distinguir claramente os glifos de Il1 ou O0.

Ênfase

Essa forma de texto é usada para diversos fins, mas principalmente para enfatizar pontos importantes, ou para dar exemplos do que digitar.

https://www.linuxfromscratch.org/

Essa forma de texto é usada para links externos de hipertexto para o livro, como "HowTos", locais de transferência, sítios da "web", etc.

seamonkey-2.53.20

Essa forma de texto é usada para links internos para o livro, como outra seção que descreve um pacote diferente.

cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF

Esse estilo é usado principalmente ao criar arquivos de configuração. O primeiro comando (em negrito) diz ao sistema para criar o arquivo $LFS/etc/group a partir do que for digitado nas linhas seguintes, até que a sequência "EOF" seja encontrada. Portanto, toda essa seção geralmente é digitada exatamente como mostrada. Lembre-se, copiar e colar é seu(a) amigo(a)!

<TEXTO SUBSTITUÍDO>

Essa forma de texto é usada para encapsular o texto que deveria ser modificado e não é para ser digitado conforme mostrado, nem copiado e colado. Os colchetes angulares não são parte do texto literal; eles são parte da substituição.

root

Essa forma de texto é usada para mostrar uma referência específica a um(a) usuário(a) ou grupo do sistema nas instruções.

 

Convenções Usadas para Dependências de Pacote

Quando novos pacotes são criados, os(as) autores(as) do logiciário dependem de trabalhos anteriores. Para a finalidade de construir um pacote no BLFS, essas dependências precisam ser construídas antes que o pacote desejado possa ser compilado. Para cada pacote, os pré-requisitos estão listados em uma ou mais seções separadas: Exigidas, Recomendadas e Opcionais.

Dependências Exigidas

Essas dependências são o mínimo necessário para construir o pacote. Pacotes no LFS e as dependências exigidas desses pacotes exigidos estão omitidos dessa lista. Lembre-se sempre de verificar dependências aninhadas. Se uma dependência for considerada tempo de execução, ela não será necessária para construir o pacote, mas somente para usá-lo depois da instalação.

Dependências Recomendadas

Essas são dependências que os(as) editores(as) do BLFS determinaram serem importantes para fornecer recursos razoáveis para o pacote. Se uma dependência recomendada não for considerada tempo de execução, as instruções de instalação do pacote assumem que ela está instalada. Se não estiver instalada, as instruções possivelmente exijam modificações para acomodar o pacote ausente. Uma dependência de tempo de execução recomendada não precisa ser instalada antes de construir o pacote, mas precisa ser construída posteriormente para executar o pacote com capacidades razoáveis.

Dependências Opcionais

Essas são dependências que o pacote possivelmente use. A integração de dependências opcionais possivelmente seja automática pelo pacote, ou etapas adicionais não apresentadas pelo BLFS possivelmente sejam necessárias. Dependências opcionais são, ocasionalmente, listadas sem instruções BLFS explícitas. Nesse caso, você mesmo(a) precisa determinar como realizar a instalação.

 

Convenções Usadas para Opções de Configuração do Núcleo

Alguns pacotes exigem opções específicas de configuração do núcleo. O esquema geral para esses se parece com isto:

Master section --->
  Subsection --->
    [*]     Required parameter                                        [REQU_PAR]
    <*>     Required parameter (not as module)                   [REQU_PAR_NMOD]
    <*/M>   Required parameter (could be a module)                [REQU_PAR_MOD]
    <M>     Required parameter (as a module)                 [REQU_PAR_MOD_ONLY]
    < /*/M> Optional parameter                                         [OPT_PAR]
    < /M>   Optional parameter (as a module if enabled)       [OPT_PAR_MOD_ONLY]
    [ ]     Incompatible parameter                                  [INCOMP_PAR]
    < >     Incompatible parameter (even as module)             [INCOMP_PAR_MOD]

[...] na direita fornece o nome simbólico da opção, de forma que você pode facilmente verificar se ela está configurada no teu arquivo config. Observe que o arquivo .config contém um prefixo CONFIG_ antes de todos os nomes simbólicos. O significado das várias entradas é:

Seção mestre item do topo do menu
Subseção item do submenu
Parâmetro exigido a opção pode ou estar integrada ou não selecionada: ela precisa ser selecionada
Parâmetro exigido (não como módulo) a opção pode ser integrada, um módulo ou não selecionada ("tri-state"): ela precisa ser selecionada como integrada
Parâmetro exigido (poderia ser um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada, ou como integrada ou como um módulo
Parâmetro exigido (como um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada como um módulo; selecioná-la como integrada possivelmente cause efeitos indesejados
Parâmetro opcional a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo ou integrada se você precisar dela para controlar o hardware ou recursos opcionais do núcleo
Parâmetro opcional (como um módulo se habilitado) a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo se você precisar dela para controlar o hardware ou recursos opcionais do núcleo, mas selecioná-la como integrada possivelmente cause efeitos indesejados
Parâmetro incompatível a opção pode ser ou integrada ou não selecionada: ela precisa não ser selecionada
Parâmetro incompatível (mesmo como módulo) a opção pode ser integrada, um módulo ou não selecionada: ela precisa não ser selecionada

Observe que, dependendo de outras seleções, os colchetes angulares (<>) no menu de configuração possivelmente apareçam como chaves ({}), se a opção não puder ser desmarcada; ou mesmo traços (-*- ou -M-), quando a escolha for imposta. O texto de ajuda descrevente da opção especifica as outras seleções das quais essa opção depende e como aquelas outras seleções são configuradas.

A letra em azul é a tecla de atalho para essa opção. Se você estiver executando make menuconfig, você pode pressionar uma tecla para percorrer rapidamente todas as opções com essa tecla como a tecla de atalho na tela.

 

Valores da UPC no BLFS

Assim como no LFS, cada pacote no BLFS tem um tempo de construção listado em Unidades Padrão de Construção ("UPCs"). Esses tempos são relativos ao tempo que levou para construir "binutils" no LFS e são destinados a fornecer algumas dicas sobre quanto tempo levará para construir um pacote. A maioria dos tempos listados é para um processador ou núcleo para construir o pacote. Em alguns casos, compilações grandes e de longa duração testadas em sistemas de múltiplos núcleos tem tempos de "UPC" listados com comentários como '(paralelismo=4)'. Esses valores indicam que o teste foi feito usando vários núcleos. Observe que, embora isso acelere a construção em sistemas com o "hardware" apropriado, a aceleração não é linear e, até certo ponto, depende do pacote individual e do "hardware" específico usado.

Para pacotes que usam "Ninja" (ou seja, qualquer coisa que use "Meson") ou "Rust", por padrão todos os núcleos são usados; comentários semelhantes serão vistos em tais pacotes mesmo quando o tempo de construção for mínimo.

Mesmo que uma construção paralela leve mais de quinze (15) "UPCs", em certas máquinas o tempo possivelmente seja consideravelmente maior, mesmo quando a construção não usa troca. Em particular, diferentes microarquiteturas construirão alguns arquivos a diferentes velocidades relativas, e isso pode introduzir atrasos quando certos alvos do "Make" aguardam que outro arquivo seja criado. Onde uma construção grande usa muitos arquivos "C++", os processadores com Multi Camadas Simultâneas compartilharão a Unidade de Ponto Flutuante e podem levar quarenta e cinco inteiros por cento (45%) mais tempo que ao usar quatro núcleos 'principais' (medido em um Intel i7 usando o conjunto de tarefas e mantendo os outros núcleos ociosos).

Alguns pacotes não suportam construções paralelas; para esses, o comando "make" precisa especificar "-j1". Os pacotes que são conhecidos por imporem tais limites estão assim marcados no texto.

Versão do Livro

Esta é a versão do Livro do BLFS 12.3 datada de 05 de março de 2025. Esta é a ramificação 12.3 do livro do BLFS, atualmente direcionando para o livro 12.3 do LFS. Para versões de desenvolvimento, se essa versão for mais antiga que um mês, é provável que teu espelho não tenha sido sincronizado recentemente e uma versão mais recente provavelmente esteja disponível para transferência ou visualização. Verifique um dos sítios espelhos em https://www.linuxfromscratch.org/mirrors.html para uma versão atualizada.

Sítios Espelhos

O projeto BLFS tem um número de espelhos configurados mundo afora para tornar mais fácil e mais conveniente para você acessar o sítio da web. Por favor, visite o sítio da web https://www.linuxfromscratch.org/mirrors.html para a lista dos espelhos atuais.

Obtendo os Pacotes Fonte

Dentro das instruções do BLFS, cada pacote tem duas referências para se encontrar os arquivos fonte para o pacote—um link HTTP e um link FTP (alguns pacotes possivelmente listem somente um desses links). Cada esforço tem sido feito para garantir que esses links estejam corretos. Entretanto, a World Wide Web está em fluxo contínuo. Os pacotes ocasionalmente são movidos ou atualizados e a URL exata especificada nem sempre está disponível.

Para contornar esse problema, a Equipe do BLFS, com a assistência do Laboratório do Fonte Aberto da Universidade Estadual do Oregon, tem tornado um sítio HTTP/FTP disponível via espelhos mundo afora. Veja-se https://www.linuxfromscratch.org/blfs/download.html#sources para uma lista. Esses sítios tem todos os fontes das versões exatas dos pacotes usados no BLFS. Se você não puder encontrar o pacote do BLFS que precisar nos endereços listados, [então] obtenha-o a partir desses sítios.

Nós gostaríamos de pedir um favor, entretanto. Apesar de esse ser um recurso público para você usar, por favor, não abuse dele. Nós já tivemos um indivíduo sem noção transferindo cerca de três (03) GB de dados, incluindo múltiplas cópias dos mesmos arquivos que são colocados em locais diferentes (via links simbólicos) para tornar mais fácil a procura do pacote certo. Essa criatura claramente não sabia que arquivos precisava e transferiu tudo. O melhor lugar para transferir arquivos é o sítio ou sítios configurados pelo(a) desenvolvedor(a) do código fonte. Por favor, tente lá primeiro.

Registro das Mudanças

Lançamento atual: 12.3 – 05 de março de 2025

Entradas do Registro das Mudanças:

  • 5 março 2025

    • [bdubbs] - Lançamento do BLFS-12.3.

  • 4 março 2025

    • [renodr] - Atualização para libreoffice-25.2.1.2. Corrige #21162.

    • [renodr] - Corrigir reprodução de áudio e vídeo em sistemas SysV e systemd que tenham Wireplumber instalado.

  • 3 março 2025

    • [renodr] - Atualização para mutt-2.2.14. Corrige #21127.

  • 2 março 2025

    • [renodr] - Corrigir a suíte de teste do Samba.

    • [renodr] - Atualização para vte-0.78.4. Corrige #21171.

    • [bdubbs] - Atualização para vim-9.1.1166 (Atualização de Segurança). Corrige #21172.

    • [bdubbs] - Atualização para gnumeric-1.12.59. Corrige #21170.

    • [bdubbs] - Atualização para goffice-0.10.59. Corrige #21169.

    • [bdubbs] - Atualização para icewm-3.7.1. Corrige #21157.

    • [bdubbs] - Atualização para postfix-3.10.1. Corrige #21140.

    • [bdubbs] - Atualização para plasma-6.3.2. Corrige #21153.

    • [renodr] - Atualização para unrar-7.1.5. Corrige #21098.

    • [bdubbs] - Atualização para bind9 e bind-utilities-9.20.6. Corrige #21118.

    • [bdubbs] - Atualização para fltk-1.4.2. Corrige #21142.

    • [bdubbs] - Atualização para sphinx-8.2.1 (módulo Python). Corrige #21161.

    • [bdubbs] - Atualização para gi_docgen-2025.3 (módulo Python). Corrige #21160.

    • [bdubbs] - Atualização para faac-1.31. Corrige #21163.

  • 1 março 2025

    • [bdubbs] - Atualização para power-profiles-daemon-0.30. Corrige #21111.

    • [bdubbs] - Atualização para libassuan-3.0.2. Corrige #21108.

    • [bdubbs] - Atualização para xdg-desktop-portal-1.20.0. Corrige #21143.

    • [bdubbs] - Atualização para libnotify-0.8.4. Corrige #21128.

    • [renodr] - Atualização para libavif-1.2.0. Corrige #21154.

    • [bdubbs] - Atualização para sysmon3-3.0.1..

    • [bdubbs] - Atualização para libqalculate-5.5.1. Corrige #21148.

  • 28 fevereiro 2025

    • [bdubbs] - Atualização para python-dbusmock-0.34.3 (módulo Python). Corrige #21132.

    • [renodr] - Atualização para harfbuzz-10.4.0. Corrige #21126.

    • [bdubbs] - Atualização para fmt-11.1.4. Corrige #21155.

    • [renodr] - Atualização para dhcpcd-10.2.2. Corrige #21141.

    • [renodr] - Atualização para glib-2.82.5. Corrige #21125.

    • [bdubbs] - Atualização para mercurial-6.9.2. Corrige #21117.

  • 27 fevereiro 2025

    • [bdubbs] - Atualização para sentry-sdk-2.22.0 (módulo Python). Corrige #21099.

    • [bdubbs] - Atualização para sphinx-8.2.0 (módulo Python). Corrige #21114.

    • [bdubbs] - Atualização para libwww-perl-6.78 (módulo Perl). Corrige #21116.

    • [bdubbs] - Atualização para Net-DNS-1.50 (módulo Perl). Corrige #21131.

    • [bdubbs] - Atualização para cargo-c-0.10.11. Corrige #21134.

    • [bdubbs] - Atualização para rustc-1.85.0. Corrige #21124.

    • [renodr] - Atualização para userspace-rcu-0.15.1 (liburcu). Corrige #21109.

    • [renodr] - Atualização para sqlite-3.49.1. Corrige #21113.

    • [renodr] - Atualização para shadow-4.17.3 (sincronia com LFS). Corrige #21146.

    • [renodr] - Atualização para systemd-257.3 (sincronia com LFS). Corrige #20838.

    • [renodr] - Atualização para postgresql-17.4. Corrige #21123.

    • [renodr] - Atualização para exiv2-0.28.5 (Atualização de Segurança). Corrige #21130.

    • [renodr] - Atualização para libxml2-2.13.6 (Atualização de Segurança). Corrige #21106.

  • 26 fevereiro 2025

    • [renodr] - Atualização para exim-4.98.1 (Atualização de Segurança). Corrige #21133.

  • 25 fevereiro 2025

    • [bdubbs] - Atualização para openssh-9.9p2 ssh-askpass-9.9p2. Corrige #21104.

    • [bdubbs] - Atualização para xorg-server-21.1.16 e xwayland-24.1.6. Corrige #21152.

  • 24 fevereiro 2025

    • [bdubbs] - Atualização para qemu-9.2.2. Corrige #21147.

    • [bdubbs] - Atualização para wireshark-4.4.5. Corrige #21150.

  • 23 fevereiro 2025

    • [renodr] - Corrigir construção do fop novamente com Java 23.

    • [renodr] - Atualização para FreeRDP-3.12.0. Corrige #21089.

    • [renodr] - Atualização para asymptote-3.01. Corrige #21103.

    • [bdubbs] - Atualização para emacs-30.1 (Atualização de Segurança). Corrige #21139.

    • [renodr] - Atualização para xdg-desktop-portal-gnome-47.3. Corrige #21100.

    • [bdubbs] - Atualização para postfix-3.9.2. Corrige #21094.

    • [bdubbs] - Atualização para tigervnc-1.15.0. Corrige #21102.

    • [bdubbs] - Atualização para icewm-3.7.0. Corrige #21135.

  • 21 fevereiro 2025

    • [bdubbs] - Atualização para wireshark-4.4.4. Corrige #21121.

    • [bdubbs] - Atualização para vim-9.1.1122 (sincronia com LFS). Corrige #21115.

    • [bdubbs] - Atualização para menu-cache-1.1.1. Corrige #21107.

  • 20 fevereiro 2025

    • [bdubbs] - Adicionar o pacote zxing-cpp-2.3.0.

    • [renodr] - Atualização para libppd-2.1.1. Corrige #21120.

    • [renodr] - Atualização para libcupsfilters-2.1.1. Corrige #21112.

    • [renodr] - Atualização para xfsprogs-6.13.0. Corrige #21096.

    • [xry111] - Atualização para samba-4.21.4. Corrige #21095.

  • 18 fevereiro 2025

    • [bdubbs] - Atualização para kde-gear-24.12.2 incluindo kate, falkon e kwave. Corrige #20904.

    • [bdubbs] - Atualização para kf6-6.11.0. Corrige #20903.

  • 18 fevereiro 2025

    • [bdubbs] - Atualização para xfce4-notifyd-0.9.7. Corrige #21091.

    • [bdubbs] - Atualização para xfdesktop-4.20.1. Corrige #21101.

    • [zeckma] - Atualização para thunderbird-128.7.1esr. Corrige #21105.

    • [bdubbs] - Atualização para qpdf-11.10.1. Corrige #21093.

    • [bdubbs] - Atualização para libportal-0.9.1. Corrige #21072.

    • [bdubbs] - Atualização para libblockdev-3.3.0. Corrige #21079.

  • 17 fevereiro 2025

    • [zeckma] - Atualização para node.js-22.14.0. Corrige #21090.

    • [renodr] - Atualização para sysstat-12.7.7. Corrige #21092.

  • 16 fevereiro 2025

    • [bdubbs] - Atualização para double-conversion-3.3.1. Corrige #21087.

    • [thomas] - Atualização para btrfs-progs-6.3. Corrige #21086.

  • 15 fevereiro 2025

    • [bdubbs] - Atualização para ruby-3.4.2. Corrige #21088.

    • [bdubbs] - Atualização para sentry_sdk-2.21.0 (módulo Python). Corrige #21073.

    • [bdubbs] - Atualização para psutil-7.0.0 (módulo Python). Corrige #21082.

    • [bdubbs] - Atualização para numpy-2.2.3 (módulo Python). Corrige #21080.

    • [bdubbs] - Atualização para php-8.4.4. Corrige #21081.

    • [renodr] - Atualização para cURL-8.12.1. Corrige #21076.

    • [thomas] - Atualização para dhcpcd-10.2.0. Corrige #21074.

    • [thomas] - Atualização para postgresql-17.3. Corrige #21085.

    • [thomas] - Atualização para cifsutils-7.2. Corrige #21083.

  • 12 fevereiro 2025

    • [renodr] - Atualização para ImageMagick-7.1.1-43. Corrige #21071.

    • [renodr] - Atualização para luajit-20250212. Corrige #21070.

    • [renodr] - Atualização para x264-20250212. Corrige #21069.

    • [renodr] - Atualizar as Dependências do Módulo Python para BLFS 12.3. Isso inclui atualizações para babel-2.17.0, certifi-2025.1.31, pytz-2025.1, charset-normalizer-3.4.1, idna-3.10, msgpack-1.1.0 e urllib3-2.3.0. Corrige #21068.

    • [renodr] - Atualização para vim-9.1.1106 (sincronia com LFS). Corrige #21065.

    • [renodr] - Atualização para libaom-3.12.0. Corrige #21064.

    • [renodr] - Atualização para Python-3.13.2 (Atualização de Segurança). Corrige #21018.

    • [renodr] - Atualização para tk-8.6.16. Corrige #21066.

    • [renodr] - Atualizar as Dependências do Módulo Perl para BLFS 12.3. Isso inclui atualizações para Alien-Build-2.84, Business-ISBN-Data-20250205.001, Capture-Tiny-0.50, Class-Data-Inheritable-0.10, Clone-0.47, DateTime-Locale-1.44, DateTime-TimeZone-2.64, HTTP-Message-7.00, namespace-autoclean-0.31, Specio-0.49, Term-Table-0.024, Test-File-1.994, Test-Simple-1.302209, Test-utf8-1.03, Test-Warnings-0.038, Text-CSV_XS-1.60, Tie-Cycle-1.229 e Try-Tiny-0.32. Corrige #21067.

    • [renodr] - Arquivar Sub-Identify (Dependência do Módulo Perl). Corrige #21067.

    • [renodr] - Atualização para cython-3.0.12 (módulo Python). Corrige #21063.

    • [renodr] - Atualização para gimp-3.0.0-RC3. Corrige #21060.

    • [renodr] - Atualização para asymptote-2.99. Corrige #21059.

    • [renodr] - Atualização para gpgme-1.24.2. Corrige #21057.

    • [renodr] - Atualização para qemu-9.2.1. Corrige #21045.

  • 11 fevereiro 2025

    • [renodr] - Atualizar a versão do Microcode da Intel para 20250211 (Atualização de Segurança). Corrige #21061.

    • [zeckma] - Atualização para flac-1.5.0. Corrige #21062.

    • [zeckma] - Atualização para exiv2-0.28.4. Corrige #21058.

  • 10 fevereiro 2025

    • [renodr] - Atualização para thunar-4.20.2. Corrige #21056.

    • [renodr] - Atualização para file-roller-44.5. Corrige #21055.

    • [renodr] - Atualização para xkeyboard-config-2.44. Corrige #21054.

    • [renodr] - Atualização para lxml-5.3.1 (módulo Python). Corrige #21053.

    • [renodr] - Atualização para lcms2-2.17. Corrige #21052.

    • [renodr] - Atualização para gegl-0.4.54. Corrige #21051.

    • [renodr] - Atualização para xfce4-settings-4.20.1. Corrige #21049.

    • [renodr] - Atualização para qpdf-11.10.0. Corrige #21046.

    • [renodr] - Atualização para lxqt-config-2.1.1. Corrige #21040.

  • 9 fevereiro 2025

    • [renodr] - Atualização para WebKitGTK-2.46.6 (Atualização de Segurança). Corrige #21039.

    • [renodr] - Atualização para libreoffice-25.2.0.3. Corrige #21036.

    • [renodr] - Atualização para make-ca-1.15. Corrige #21048.

    • [renodr] - Atualização para gnutls-3.8.9 (Atualização de Segurança). Corrige #21044.

    • [renodr] - Atualização para asymptote-2.98. Corrige #21042.

    • [renodr] - Atualização para wireplumber-0.5.8. Corrige #21041.

    • [renodr] - Atualização para gtk-vnc-1.5.0. Corrige #21038.

    • [renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.1. Corrige #21037.

    • [renodr] - Atualização para FreeRDP-3.11.1. Corrige #21033.

    • [renodr] - Corrigir construir Inkscape com poppler-25.02.0. Corrige #21050.

  • 8 fevereiro 2025

    • [thomas] - Adicionar remendo para corrigir um problema de construção do Kea-dhcp com boost 1.87 ou posterior. Corrige #21043.

  • 7 fevereiro 2025

    • [bdubbs] - Atualização para talloc-2.4.3. Corrige #21034.

    • [bdubbs] - Atualização para mako-1.3.9 (módulo Python). Corrige #21017.

    • [bdubbs] - Atualização para hwdata-0.392. Corrige #21016.

    • [bdubbs] - Atualização para poppler-25.02.0. Corrige #21015.

    • [bdubbs] - Atualização para libxkbcommon-1.8.0. Corrige #21014.

    • [bdubbs] - Atualização para abseil-cpp-20250127.0. Corrige #21013.

    • [bdubbs] - Atualização para tcsh-6.24.15. Corrige #21012.

    • [renodr] - Atualização para FreeRDP-3.11.0. Corrige #21033.

    • [renodr] - Atualização para gcr-4.3.1. Corrige #21030.

    • [renodr] - Atualização para xwayland-24.1.5. Corrige #21029.

    • [renodr] - Atualização para pcre2-10.45. Corrige #21028.

    • [renodr] - Atualização para nss-3.108. Corrige #21027.

    • [zeckma] - Atualização para sqlite-autoconf-3490000 (3.49.0). Corrige #21035.

  • 6 fevereiro 2025

    • [renodr] - Atualização para firefox-128.7.0esr (Atualização de Segurança). Corrige #21009.

    • [renodr] - Atualização para thunderbird-128.7.0esr (Atualização de Segurança). Corrige #21021.

    • [renodr] - Atualização para cURL-8.12.0 (Atualização de Segurança). Corrige #21020.

    • [renodr] - Atualização para libtasn1-4.20.0 (Atualização de Segurança). Corrige #21032.

    • [renodr] - Atualização para mariadb-11.4.5 (Atualização de Segurança). Corrige #21022.

  • 5 fevereiro 2025

    • [renodr] - Atualização para mutter-47.5. Corrige #21025.

    • [renodr] - Atualização para gnome-shell-extensions-47.4. Corrige #21024.

    • [renodr] - Atualização para gnome-shell-47.4. Corrige #21023.

    • [renodr] - Atualização para nautilus-47.2. Corrige #21019.

    • [renodr] - Atualização para gnome-control-center-47.4. Corrige #21011.

    • [renodr] - Atualização para gnome-system-monitor-47.1. Corrige #21002.

    • [renodr] - Atualização para gdb-16.2. Corrige #21001.

  • 4 fevereiro 2025

    • [renodr] - Atualização para intel-gmmlib-22.5.5. Corrige #20972.

    • [renodr] - Atualização para intel-media-24.4.4. Corrige #20973.

    • [bdubbs] - Atualização para xhost-1.0.10 (aplicação Xorg). Corrige #21005.

    • [bdubbs] - Atualização para libX11-1.8.11 (biblioteca do Xorg). Corrige #21004.

    • [bdubbs] - Atualização para protobuf-c-1.5.1. Corrige #21003.

    • [renodr] - Atualização para lximage-qt-2.1.1. Corrige #20989.

    • [renodr] - Atualização para lxqt-runner-2.1.2. Corrige #20990.

  • 3 fevereiro 2025

    • [bdubbs] - Atualização para xfce4-panel-4.20.3. Corrige #21007.

    • [bdubbs] - Atualização para libxfce4windowing-4.20.2. Corrige #21006.

  • 2 fevereiro 2025

    • [renodr] - Atualização para vim-9.1.1071 (Atualização de Segurança). Corrige #21008.

    • [renodr] - Atualização para qt6 e qtwebengine 6.8.2 (Atualização de Segurança). Corrige #20998.

    • [thomas] - Atualização para libslirp-4.9.0. Corrige #20986.

    • [thomas] - Atualização para which-2.23. Corrige #21000.

  • 1 fevereiro 2025

    • [renodr] - Atualização para BIND-9.20.5 (Atualização de Segurança). Corrige #20984.

    • [renodr] - Atualização para epiphany-47.3.1. Corrige #20999.

    • [renodr] - Atualização para libadwaita-1.6.4. Corrige #20997.

    • [renodr] - Atualização para gnome-maps-47.4. Corrige #20988.

    • [thomas] - Atualização para gparted-1.7.0.. Corrige #20994.

    • [renodr] - Atualização para libshumate-1.3.2. Corrige #20987.

    • [renodr] - Atualizar a pilha do gstreamer to 1.24.12. Corrige #20991.

    • [renodr] - Atualização para Text-BibTeX-0.91 (módulo Perl). Corrige #20993.

    • [renodr] - Atualização para SPIRV-LLVM-Translator-19.1.4. Corrige #20996.

    • [renodr] - Atualização para wayland-protocols-1.40. Corrige #20992.

  • 31 janeiro 2025

    • [xry111] - Atualização para rustc-1.84.1.. Corrige #20995.

  • 29 janeiro 2025

    • [xry111] - Atualização para attrs-25.1.0, hatchling-1.27.0, meson_python-0.17.1, pyproject-metadata-0.9.0, trove-classifiers-2025.1.15.22, typogrify-2.1.0 (dependências Python). Endereça #18562.

    • [xry111] - Arquivar mandoc. Corrige #20975.

  • 28 janeiro 2025

    • [zeckma] - Atualização para cmake-3.31.5. Corrige #20983.

    • [renodr] - Atualização para Business-ISSN-1.008 (módulo Perl). Corrige #20981.

    • [renodr] - Atualização para gtk+-3.24.48. Corrige #20978.

    • [renodr] - Atualização para dovecot-2.4.0. Corrige #20971.

    • [renodr] - Atualização para OpenJDK-23.0.2 (Atualização de Segurança). Corrige #20968.

  • 27 janeiro 2025

    • [zeckma] - Atualização para thunderbird-128.6.1esr. Corrige #20980.

    • [bdubbs] - Atualização para fmt-11.1.3. Corrige #20979.

    • [bdubbs] - Atualização para mupdf-1.25.4. Corrige #20974.

    • [bdubbs] - Atualização para libpng-1.6.46. Corrige #20970.

    • [bdubbs] - Atualização para fltk-1.4.1. Corrige #20666.

    • [zeckma] - Vulkan-Loader: Rebaixar Wayland para Recomendado.

  • 24 janeiro 2025

    • [bdubbs] - Atualização para which-2.22. Corrige #20969.

    • [renodr] - Atualização para libseccomp-2.6.0. Corrige #20965.

    • [renodr] - Atualização para libpaper-2.2.6. Corrige #20964.

    • [renodr] - Atualização para abseil-cpp-20240722.1 (Atualização de Segurança). Corrige #20963.

    • [bdubbs] - Atualização para httpd-2.4.63. Corrige #20967.

    • [bdubbs] - Atualização para mc-4.8.33. Corrige #20966.

  • 22 janeiro 2025

    • [bdubbs] - Atualização para mupdf-1.25.3. Corrige #20962.

    • [zeckma] - Atualização para mesa-24.3.4. Corrige #20960.

    • [renodr] - Atualização para xdg-desktop-portal-gnome-47.2. Corrige #20956.

    • [zeckma] - Atualização para node.js-22.13.1 (Atualização de Segurança). Corrige #20957.

  • 20 janeiro 2025

    • [bdubbs] - Atualização para mlt-7.30.0. Corrige #20955.

    • [bdubbs] - Atualização para sentry_sdk-2.20.0 (módulo Python). Corrige #20684.

  • 19 janeiro 2025

    • [xry111] - Atualização para cargo-c-0.10.9. Corrige #20954.

    • [renodr] - Atualização para pango-1.56.1. Corrige #20953.

    • [renodr] - Atualização para numpy-2.2.2 (módulo Python). Corrige #20952.

    • [renodr] - Atualização para gdb-16.1. Corrige #20951.

  • 18 janeiro 2025

    • [renodr] - Atualização para libgee-0.20.8. Corrige #20946.

    • [renodr] - Atualização para libsoup-3.6.4. Corrige #20945.

    • [renodr] - Atualização para mercurial-6.9.1. Corrige #20943.

    • [bdubbs] - Atualização para unrar-7.1.3. Corrige #20950.

    • [bdubbs] - Atualização para libexif-0.6.25. Corrige #20949.

  • 17 janeiro 2025

    • [zeckma] - Atualização para fontconfig-2.16.0. Corrige #20948.

    • [bdubbs] - Atualização para php-8.4.3. Corrige #20947.

  • 16 janeiro 2025

    • [renodr] - Atualização para pangomm-2.56.1. Corrige #20942.

    • [renodr] - Atualização para libsecret-0.21.6. Corrige #20940.

    • [renodr] - Atualização para rsync-3.4.1. Corrige #20939.

    • [renodr] - Atualização para libuv-1.50.0. Corrige #20937.

    • [renodr] - Atualização para LVM2-2.03.30. Corrige #20936.

    • [renodr] - Atualização para libwnck-43.2. Corrige #20933.

    • [renodr] - Atualização para gnome-color-manager-3.36.2. Corrige #20932.

    • [renodr] - Atualização para sqlite-3.48.0. Corrige #20931.

    • [renodr] - Atualização para shadow-4.17.2 (sincronia com LFS). Corrige #20911.

    • [renodr] - Atualização para pango-1.56.0. Corrige #20799.

    • [xry111] - Atualização para cbindgen-0.28.0. Corrige #20938.

    • [xry111] - Atualização para libclc-19.1.7. Corrige #20462.

    • [xry111] - Atualização para cargo-c-0.10.8. Corrige #20914.

    • [xry111] - Atualização para Rustc-1.84.0. Corrige #20897.

    • [xry111] - Atualização para LLVM-19.1.7. Corrige #20465.

  • 15 janeiro 2025

    • [renodr] - Atualização para mutter-47.4. Corrige #20927.

    • [renodr] - Atualização para FreeRDP-3.10.3. Corrige #20926.

    • [renodr] - Atualização para gnome-shell e gnome-shell-extensions 47.3. Corrige #20925.

    • [renodr] - Atualização para libqalculate-5.5.0. Corrige #20923.

    • [renodr] - Atualização para glslc-2024.4. Corrige #20935.

    • [renodr] - Atualização para glslang-15.1.0. Corrige #20804.

    • [renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.4.304.0. Corrige #20679.

    • [renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.0. Corrige #20922.

    • [renodr] - Atualização para polkit-126. Corrige #20921.

  • 14 janeiro 2025

    • [renodr] - Atualização para vim-9.1.1016 (Atualização de Segurança). Corrige #20930.

    • [renodr] - Atualização para git-2.48.1 (Atualização de Segurança). Corrige #20928.

    • [renodr] - Atualização para rsync-3.4.0 (Atualização de Segurança). Corrige #20929.

    • [zeckma] - Atualização para elogind-255.17. Corrige #20924.

  • 13 janeiro 2025

    • [renodr] - Atualização para fmt-11.1.2. Corrige #20919.

    • [renodr] - Atualização para lxqt-runner-2.1.1. Corrige #20918.

    • [renodr] - Atualização para lxqt-panel-2.1.4. Corrige #20917.

    • [renodr] - Atualização para gnome-online-accounts-3.52.3.1. Corrige #20916.

    • [renodr] - Atualização para libsoup-3.6.3. Corrige #20915.

    • [renodr] - Atualização para Text-CSV-2.05 e Text-CSV_XS-1.59 (Módulos Perl). Corrige #20913.

    • [renodr] - Atualização para harfbuzz-10.2.0. Corrige #20912.

    • [renodr] - Atualização para at-spi2-core-2.54.1. Corrige #20910.

    • [renodr] - Atualização para cmake-3.31.4. Corrige #20907.

    • [renodr] - Atualização para gnome-control-center-47.3. Corrige #20906.

    • [renodr] - Atualização para xdg-desktop-portal-gtk-1.15.2. Corrige #20902.

    • [renodr] - Atualização para libadwaita-1.6.3. Corrige #20901.

    • [renodr] - Atualizar as instruções da suíte de teste para doxyqml.

    • [renodr] - Atualização para doxygen-1.13.2. Corrige #20900.

    • [renodr] - Atualização para libpng-1.6.45. Corrige #20884.

  • 12 janeiro 2025

    • [renodr] - Atualização para opencv-4.11.0. Corrige #20898.

  • 11 janeiro 2025

    • [thomas] - Atualização para git-2.48.0. Corrige #20909.

    • [thomas] - Atualização para upower-1.90.7. Corrige #20899.

  • 10 janeiro 2025

    • [rahul] - Atualização para gtk4-4.16.12. Corrige #20859.

    • [rahul] - Atualização para mesa-24.3.3. Corrige #20858.

    • [rahul] - Atualização para hwdata-0.391. Corrige #20857.

  • 9 janeiro 2025

    • [renodr] - Atualização para pulseaudio-qt-1.7.0. Corrige #20896.

    • [renodr] - Atualização para plasma-wayland-protocols-1.16.0. Corrige #20895.

    • [renodr] - Atualização para cups-browsed-2.1.1. Corrige #20893.

    • [renodr] - Atualização para glib-networking-2.80.1. Corrige #20892.

    • [renodr] - Atualização para wireshark-4.4.3. Corrige #20891.

    • [renodr] - Atualização para protobuf-29.3. Corrige #20890.

  • 8 janeiro 2025

    • [zeckma] - Atualização para node.js-22.13.0. Corrige #20883.

    • [renodr] - Atualização para libreoffice-24.8.4.2 (Atualização de Segurança). Corrige #20821.

    • [renodr] - Atualização para poppler-25.01.0. Corrige #20855.

    • [renodr] - Atualização para dolphin-24.12.0.1. Corrige #20889.

    • [renodr] - Atualização para cachecontrol-0.14.2 (Módulos Python). Corrige #20886.

    • [renodr] - Atualização para highlight-4.15. Corrige #20885.

    • [renodr] - Atualização para umockdev-0.19.1. Corrige #20854.

    • [renodr] - Atualização para doxygen-1.13.1. Corrige #20852.

    • [renodr] - Atualização para gimp-3.0.0-RC2. Corrige #20847.

    • [renodr] - Atualização para Thunderbird-128.6.0esr (Atualização de Segurança). Corrige #20880.

    • [thomas] - Atualização para ed-1.21. Corrige #20882.

    • [thomas] - Atualizar suíte gstreamer para 1.24.11. Corrige #20877.

    • [renodr] - Atualização para Firefox (e Spidermonkey) 128.6.0esr (Atualização de Segurança). Corrige #20871.

    • [renodr] - Atualização para Seamonkey-2.53.20 (Atualização de Segurança). Corrige #20888.

  • 7 janeiro 2025

    • [zeckma] - Atualização para xinit-1.4.3. Corrige #20868.

    • [zeckma] - Atualização para xf86-input-synaptics-1.10.0 (controlador Xorg). Corrige #20867.

    • [zeckma] - Atualização para libinput-1.27.1 (controlador Xorg). Corrige #20875.

    • [renodr] - Atualização para gtk-vnc-1.4.0. Corrige #20876.

    • [renodr] - Atualização para samba-4.21.3. Corrige #20874.

    • [renodr] - Atualização para Text-BibTeX-0.90 (módulo Perl). Corrige #20873.

    • [renodr] - Atualização para ExtUtils-LibBuilder-0.09 (Dependência de Módulo Perl. Corrige #20881.

    • [renodr] - Atualização para pygments-2.19.1 (módulo Python). Corrige #20866.

    • [renodr] - Atualização para dvisvgm-3.4.3. Corrige #20865.

    • [renodr] - Atualização para gnome-maps-47.3. Corrige #20864.

    • [renodr] - Atualização para libshumate-1.3.1. Corrige #20863.

    • [renodr] - Atualização para Business-ISBN-3.011 (módulo Perl). Corrige #20862.

    • [renodr] - Atualização para liblinear-248. Corrige #20861.

    • [renodr] - Atualização para fetchmail-6.5.2. Corrige #20845.

    • [renodr] - Atualização para gnome-calculator-47.1. Corrige #20813.

    • [renodr] - Atualização para tinysparql-3.8.2. Corrige #20810.

    • [renodr] - Atualização para stunnel-5.74. Corrige #20805.

    • [renodr] - Atualização para FreeRDP-3.10.2. Corrige #20797.

    • [renodr] - Atualização para localsearch-3.8.2. Corrige #20788.

    • [renodr] - Atualização para nautilus-47.1. Corrige #20780.

  • 6 janeiro 2025

    • [zeckma] - Atualização para xterm-397. Corrige #20869.

  • 5 janeiro 2025

    • [thomas] - Atualização para evolution-data-server-3.54.3 e evolution-3.54.3. Corrige #20860.

  • 3 janeiro 2025

    • [pierre] - Atualização para blocaled-0.7. Corrige #20856.

  • 2 janeiro 2025

    • [renodr] - Atualização para Firefox-128.5.2esr (incluindo Spidermonkey). Corrige #20795.

    • [renodr] - Atualização para Thunderbird-128.5.2esr (Atualização de Segurança). Corrige #20794.

    • [renodr] - Atualização para WebKitGTK-2.46.5 (Atualização de Segurança). Corrige #20815.

    • [renodr] - Atualização para cURL-8.11.1 (Atualização de Segurança). Corrige #20790.

    • [thomas] - Atualização para SDL2-2.30.11. Corrige #20851.

    • [renodr] - Corrigir construção de ffmpeg-7.1 com Texinfo-7.2. Agradecimentos vão para Marty Jack por trazer a tona no tíquete do LFS para Texinfo 7.2. Corrige #20853.

    • [bdubbs] - Atualização para pyparsing-3.2.1 (módulo Python). Corrige #20849.

    • [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.3. Corrige #20848.

    • [bdubbs] - Atualização para nettle-3.10.1. Corrige #20844.

  • 31 dezembro 2024

    • [renodr] - Atualização para dbus-1.16.0 (sincronia com LFS). Corrige #20812.

    • [bdubbs] - Atualização para shadow-4.17.1. Corrige #20832.

    • [thomas] - Atualização para thunar-4.20.1. Corrige #20846.

  • 28 dezembro 2024

    • [bdubbs] - Atualização para doxygen-1.13.0. Corrige #20843.

    • [bdubbs] - Atualização para Net-DNS-1.49 (módulo Perl). Corrige #20842.

    • [bdubbs] - Atualização para gegl-0.4.52. Corrige #20841.

    • [bdubbs] - Atualização para umockdev-0.19.0. Corrige #20840.

    • [bdubbs] - Atualização para ruby-3.4.1. Corrige #20834.

    • [bdubbs] - Atualização para fmt-11.1.1. Corrige #20833.

  • 27 dezembro 2024

    • [bdubbs] - Atualização para lxqt-session-2.1.1. Corrige #20831.

    • [bdubbs] - Atualização para cracklib-2.10.3. Corrige #20829.

    • [bdubbs] - Atualização para python_dbusmock-0.34.2. Corrige #20827.

    • [bdubbs] - Atualização para libportal-0.9.0. Corrige #20825.

    • [bdubbs] - Atualização para wayland-protocols-1.39. Corrige #20823.

    • [thomas] - Atualização para xfce4-terminal-1.1.4. Corrige #20837.

    • [thomas] - Atualização para ristretto-0.13.3. Corrige #20836.

    • [thomas] - Atualização para parole-4.18.2. Corrige #20835.

  • 26 dezembro 2024

    • [thomas] - Atualização para libical-3.0.19. Corrige #20830.

    • [thomas] - Atualização para liburcu-0.15.0. Corrige #20822.

  • 24 dezembro 2024

    • [zeckma] - Atualização para cmake-3.31.3. Corrige #20828.

  • 22 dezembro 2024

    • [renodr] - Atualização para numpy-2.2.1 (módulo Python). Corrige #20826.

    • [renodr] - Atualização para xorg-server-21.1.15. Corrige #20814.

    • [thomas] - Atualização para nano-8.3. Corrige #20824.

  • 21 dezembro 2024

    • [zeckma] - Atualização para mesa-24.3.2. Corrige #20820.

  • 20 dezembro 2024

    • [bdubbs] - Atualização para psutil-6.1.1 (módulo Python). Corrige #20819.

    • [bdubbs] - Atualização para php-8.4.2. Corrige #20818.

    • [bdubbs] - Atualização para libwebp-1.5.0. Corrige #20817.

  • 19 dezembro 2024

    • [bdubbs] - Atualização para protobuf-29.2. Corrige #20816.

    • [xry111] - Atualização para Gimp-3.0.0-RC1. Corrige #20634.

  • 17 dezembro 2024

    • [bdubbs] - Atualização para xfce-4.20. Corrige #20811.

    • [thomas] - Atualização para mpg123-1.32.10. Corrige #20809.

  • 16 dezembro 2024

    • [bdubbs] - Atualização para vim-9.1.0927. Corrige #12241.

    • [bdubbs] - Atualização para muparser-2.3.5. Corrige #20808.

    • [bdubbs] - Atualização para python3-3.13.1 (Atualização de Segurança). Corrige #20750.

    • [bdubbs] - Atualização para libcap-2.73. Corrige #20740.

  • 15 dezembro 2024

    • [zeckma] - WebKitGTK: Adicionar remendo de fluxo de desenvolvimento para corrigir falhas de construção.

    • [zeckma] - Atualização para libXau-1.0.12, libXv-1.0.13, libXxf86vm-1.1.6, libxshmfence-1.3.3 e libxcvt-0.1.3 (bibliotecas Xorg). Corrige #20807.

    • [thomas] - Atualização para c-ares-1.34.4. Corrige #20806.

  • 13 dezembro 2024

    • [bdubbs] - Atualização para pacote do kf6 solid-6.9.1.

    • [bdubbs] - Atualização para plasma-6.2.4. Corrige #20722.

  • 13 dezembro 2024

    • [bdubbs] - Atualização para kde-gear-24.12.0. Corrige #20796.

    • [zeckma] - Atualizações para libICE-1.1.2, libSM-1.2.5 e libXrender-0.9.12 (bibliotecas do Xorg). Corrige #20801, #20802 e #20803.

    • [thomas] - Atualização para bind-9.20.4, bind-utils-9.20.4. Corrige #20792.

    • [bdubbs] - Atualização para plasma-wayland-protocols-1.15.0. Corrige #20773.

    • [bdubbs] - Atualização para kf6-6.9.0 com extra-cmake-modules e breeze-icons. Corrige #20800.

  • 12 dezembro 2024

    • [bdubbs] - Atualização para boost-1.87.0. Corrige #20791.

    • [bdubbs] - Atualização para mupdf-1.25.2. Corrige #20789.

    • [bdubbs] - Atualização para nfs-utils-2.8.2. Corrige #20786.

  • 11 dezembro 2024

    • [xry111] - Atualização para rust-bindgen-0.71.1. Corrige #20765.

    • [bdubbs] - Atualização para qemu-9.2.0. Corrige #20783.

    • [bdubbs] - Atualização para python-dbusmock-0.33.0 (módulo Python). Corrige #20785.

    • [bdubbs] - Atualização para json-glib-1.10.6. Corrige #20784.

    • [bdubbs] - Atualização para glib-2.82.4. Corrige #20781.

    • [bdubbs] - Atualização para LVM2.2.03.29. Corrige #20778.

    • [bdubbs] - Arquivar sysmon-qt.

  • 10 dezembro 2024

    • [zeckma] - Atualização para openjpeg-2.5.3. Corrige #20779.

    • [bdubbs] - Adicionar utilitário de monitoramento do sistema sysmon3/sysmond.

  • 9 dezembro 2024

    • [bdubbs] - Atualização para subversion-1.14.5. Corrige #20777.

    • [bdubbs] - Atualização para AppStream-1.0.4. Corrige #20775.

    • [bdubbs] - Atualização para numpy-2.2.0 (módulo Python). Corrige #20776.

    • [bdubbs] - Atualização para mako-1.3.8 (módulo Python). Corrige #20774.

  • 8 dezembro 2024

    • [rahul] - Atualização para cmake-3.31.2. Corrige #20761.

    • [rahul] - Atualização para xfce4-pulseaudio-plugin-0.4.9. Corrige #20763.

    • [rahul] - Atualização para libwacom-2.14.0. Corrige #20760.

  • 7 dezembro 2024

    • [bdubbs] - Atualização para xapian-core-1.4.27. Corrige #20764.

    • [rahul] - Atualização para SDL2-2.30.10. Corrige #20766.

    • [rahul] - Atualização para sqlite-3.74.2. Corrige #20767.

    • [rahul] - Atualização para graphviz-12.2.1. Corrige #20771.

    • [rahul] - Atualização para gedit-48.1. Corrige #20768.

    • [rahul] - Atualização para libgedit-tepl-6.12.0. Corrige #20770.

    • [rahul] - Atualização para libgedit-gtksourceview-299.4.0. Corrige #20772.

    • [rahul] - Atualização para libgedit-gfls-0.2.1. Corrige #20769.

  • 6 dezembro 2024

    • [renodr] - Atualização para mutter-47.3. Corrige #20762.

  • 5 dezembro 2024

    • [zeckma] - Atualização para mesa-24.3.1. Corrige #20681.

    • [rahul] - Atualização para samba-4.21.2. Corrige #20703.

    • [bdubbs] - Atualização para protobuf-29.1. Corrige #20754.

    • [bdubbs] - Atualização para unrar-7.1.2. Corrige #20759.

    • [bdubbs] - Atualização para libdrm-2.4.124. Corrige #20758.

    • [bdubbs] - Atualização para xkbevd-1.1.6 (app Xorg). Corrige #20757.

    • [bdubbs] - Atualização para six-1.17.0 (módulo Python). Corrige #20755.

    • [thomas] - Atualizar postfix para 3.9.1. Corrige #20756.

  • 4 dezembro 2024

    • [renodr] - Atualizar a pilha gstreamer para 1.22.10 (Atualização de Segurança). Corrige #20747.

    • [renodr] - Atualização para qtwebengine-6.8.1 (Atualização de Segurança). Corrige #20743.

    • [xry111] - Atualização para gpgme-1.24.1 e corrigir falha de construção do módulo Python gpgme com Python-3.13. Corrige #20753.

    • [renodr] - Atualização para qt-6.8.1. Corrige #20743.

    • [bdubbs] - Atualização para xfsprogs-6.12.0. Corrige #20748.

    • [bdubbs] - Atualização para mako-1.3.7. Corrige #20749.

    • [bdubbs] - Atualização para hwdata-0.390. Corrige #20752.

    • [zeckma] - Atualização para node.js-22.12.0. Corrige #20751.

  • 3 dezembro 2024

    • [renodr] - Corrigir construção do libreoffice com poppler-24.12.0.

    • [zeckma] - Atualização para thunderbird-128.5.1esr. Corrige #20746.

    • [renodr] - Corrigir construção do Inkscape com poppler-24.12.0 e restaurar a funcionalidade PDF. Remendos foram submetidos por Joe Locash e por Uwe Duffert, mas um ajuste adicional foi feito por mim para permitir construir com poppler-24.12.0.

    • [renodr] - Atualização para poppler-24.12.0. Corrige #20741.

    • [renodr] - Atualização para wireplumber-0.5.7. Corrige #20744.

    • [renodr] - Atualização para lxqt-panel-2.1.3. Corrige #20738.

    • [renodr] - Atualização para lxqt-notificationd-2.1.1. Corrige #20737.

    • [zeckma] - Atualização para xterm-396. Corrige #20742.

    • [zeckma] - Atualização para pixman-0.44.2. Corrige #20745.

  • 2 dezembro 2024

    • [zeckma] - Atualização para pytest-8.3.4 (módulo Python). Corrige #20739.

  • 30 novembro 2024

    • [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.2. Corrige #20735.

    • [bdubbs] - Atualização para btrfs-progs-v6.12. Corrige #20733.

    • [xry111] - Atualização para cargo-c-0.10.7. Corrige #20730.

  • 29 novembro 2024

    • [renodr] - Atualização para firefox-128.5.1esr. Corrige #20732.

    • [renodr] - Atualização para webkitgtk-2.46.4 (Atualização de Segurança). Corrige #20728.

    • [renodr] - Atualização para libjxl-0.11.1 (Atualização de Segurança). Corrige #20721.

    • [renodr] - Atualização para protobuf-29.0. Corrige #20726.

    • [renodr] - Atualização para openldap-2.6.9. Corrige #20725.

  • 29 novembro 2024

    • [xry111] - Atualização para cargo-c-0.10.6. Corrige #20730.

    • [xry111] - Atualização para rustc-1.83.0. Corrige #20731.

  • 28 novembro 2024

    • [zeckma] - Atualização para pango-1.55.0. Corrige #20727.

  • 27 novembro 2024

    • [bdubbs] - Atualização para pipewire-1.2.7. Corrige #20724.

    • [bdubbs] - Atualização para mupdf-1.25.1. Corrige #20723.

    • [bdubbs] - Atualização para tcsh-6.24.14. Corrige #20720.

    • [bdubbs] - Atualização para libqalculate-5.4.0. Corrige #20709.

    • [bdubbs] - Atualização para gnupg-2.4.7. Corrige #20708.

    • [bdubbs] - Atualização para x265_4.1. Corrige #20368.

    • [zeckma] - Combinados os Utilitários XCB em uma página.

  • 26 novembro 2024

    • [renodr] - Atualização para thunderbird-128.5.0esr (Atualização de Segurança). Corrige #20719.

    • [renodr] - Atualização para firefox-128.5.0esr (Atualização de Segurança). Corrige #20704.

    • [renodr] - Atualização para spidermonkey-128.5.0. Corrige #20705.

    • [renodr] - Atualização para tree-2.2.1. Corrige #20710.

    • [thomas] - Atualização para sqlite-3.47.1. Corrige #20711.

    • [thomas] - Atualização para git-2.47.1. Corrige #20706.

    • [thomas] - Atualização para sudo-1.9.16p2. Corrige #20716.

    • [thomas] - Atualização para cmake-3.31.1. Corrige #20707.

    • [renodr] - Atualização para gnome-shell-extensions-47.2. Corrige #20714.

    • [renodr] - Atualização para gnome-shell-47.2. Corrige #20714.

    • [renodr] - Atualização para mutter-47.2. Corrige #20715.

    • [renodr] - Atualização para gnome-control-center-47.2. Corrige #20713.

    • [renodr] - Atualização para file-roller-44.4. Corrige #20701.

    • [renodr] - Atualização para gnome-maps-47.2. Corrige #20698.

  • 25 novembro 2024

    • [renodr] - Atualização para gnome-terminal-3.54.2. Corrige #20697.

    • [renodr] - Atualização para gnome-online-accounts-3.52.2. Corrige #20695.

    • [renodr] - Atualização para evolution-3.54.2. Corrige #20693.

    • [renodr] - Atualização para evolution-data-server-3.54.2. Corrige #20693.

    • [renodr] - Atualização para localsearch-3.8.1. Corrige #20689.

    • [renodr] - Atualização para tinysparql-3.8.1. Corrige #20690.

    • [renodr] - Atualização para gnome-user-docs-47.2. Corrige #20688.

    • [renodr] - Atualização para gnome-settings-daemon-47.2. Corrige #20687.

    • [renodr] - Atualização para gtksourceview-5.14.2. Corrige #20686.

    • [renodr] - Atualização para dvisvgm-3.4.2. Corrige #20662.

    • [renodr] - Atualização para asymptote-2.95. Corrige #20655.

    • [renodr] - Atualização para libsoup-3.6.1 (Atualização de Segurança). Corrige #20671.

    • [bdubbs] - Atualização para lxqt-panel-2.1.2. Corrige #20702.

    • [bdubbs] - Atualização para postgresql-17.2. Corrige #20685.

    • [bdubbs] - Atualização para wireshark-4.4.2 (Atualização de Segurança). Corrige #20676.

    • [renodr] - Finalizar restauro de kio-extras para o livro. Corrige #20672.

    • [renodr] - Adicionar kdsoap-ws-discovery-client para kio-extras.

    • [zeckma] - Atualização para gtk4-4.16.7. Corrige #20700.

    • [zeckma] - Atualização para unix-tree-2.2.0. Corrige #20699.

  • 24 novembro 2024

    • [zeckma] - Atualização para mercurial-6.9. Corrige #20675.

    • [renodr] - Adicionar plasma-activities-stats para kio-extras. Observe que se um(a) usuário(a) tiver instalado uma construção completa do Plasma, esse pacote não é exigido.

    • [renodr] - Restaurar KDSoap para o livro para kio-extras.

  • 23 novembro 2024

    • [zeckma] - Atualização para vte-0.78.2. Corrige #20696.

    • [zeckma] - Atualização para neon-0.34.0. Corrige #20694.

  • 22 novembro 2024

    • [zeckma] - Atualização para libadwaita-1.6.2. Corrige #20692.

    • [bdubbs] - Atualização para php-8.4.1 (Atualização de Segurança). Corrige #20683.

    • [bdubbs] - Atualização para node-22.11.0. Corrige #20682.

    • [bdubbs] - Atualização para nss-3.107. Corrige #20680.

  • 21 novembro 2024

    • [renodr] - Remover um sed desnecessário do lxqt-panel.

    • [renodr] - Desconfigurar CLASSPATH quando construir OpenJDK.

  • 20 novembro 2024

    • [zeckma] - Atualização para node.js-20.18.1. Corrige #20674.

    • [rahul] - Atualização para gtk4-4.16.6. Corrige #20678.

    • [rahul] - Atualização para qemu-9.1.2. Corrige #20673.

    • [rahul] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.301. Corrige #20576.

    • [renodr] - Remover x11perf dos Aplicativos Xorg. Corrige #20649.

    • [zeckma] - Atualização para libinput-1.27.0 (controlador de entrada do Xorg). Corrige #20670.

    • [zeckma] - Atualização para thunderbird-128.4.4esr. Corrige #20669.

  • 18 novembro 2024

    • [bdubbs] - Atualização para mupdf-1.24.11. Corrige #20668.

    • [bdubbs] - Atualização para libreoffice-24.8.3.2. Corrige #20663.

    • [zeckma] - Atualização para libXt-1.3.1 (biblioteca Xorg). Corrige #20667.

  • 16 novembro 2024

    • [bdubbs] - Atualização para fltk-1.3.10. Corrige #20666.

    • [bdubbs] - Atualização para postgresql-17.1 (Atualização de Segurança). Corrige #20661.

  • 15 novembro 2024

    • [bdubbs] - Atualização para vim-9.1.0866. Sincronia com LFS.

    • [bdubbs] - Atualização para libnvme-1.11.1. Corrige #20665.

    • [bdubbs] - Atualização para libcap-2.72. Corrige #20647.

  • 14 novembro 2024

    • [bdubbs] - Atualização para xprop-1.2.8 (aplicativo Xorg). Corrige #20660.

    • [bdubbs] - Atualização para util-macros-1.20.2. Corrige #20659.

    • [bdubbs] - Atualização para sphinx_rtd_theme-3.0.2 (módulo Python). Corrige #20658.

  • 13 novembro 2024

    • [zeckma] - Documentar a opção de núcleo do firmware GSP nouveau.

    • [zeckma] - Atualização para mesa-24.2.7. Corrige #20657.

    • [zeckma] - Atualização para thunderbird-128.4.3esr (Atualização de Segurança). Corrige #20656.

    • [bdubbs] - Atualização para sudo-1.9.16p1. Corrige #20652.

    • [bdubbs] - Atualização para fetchmail-6.5.1. Corrige #20654.

  • 12 novembro 2024

    • [zeckma] - Atualização para npth-1.8. Corrige #20653.

    • [zeckma] - Atualização para libxml2-2.13.5. Corrige #20651.

    • [zeckma] - Atualização para alsa-lib e alsa-utils 1.2.13. Corrige #20650.

    • [thomas] - Atualização para libgpg-error-1.51. Corrige #20648.

  • 10 novembro 2024

    • [bdubbs] - Atualização para wget-1.25.0 (Atualização de Segurança). Corrige #20646.

    • [renodr] - Atualização para cmake-3.31.0. Corrige #20639.

    • [bdubbs] - Corrigir dovecot-2.3.21.1 para construir com icu-76.1 ou posterior.

    • [bdubbs] - Atualização para xtrans-1.5.2 (biblioteca Xorg). Corrige #20645.

    • [bdubbs] - Atualização para c-ares-1.34.3. Corrige #20644.

    • [bdubbs] - Atualização para packaging-24.2 (módulo Python). Corrige #20643.

    • [bdubbs] - Atualização para Net-DNS-1.48 (módulo Perl). Corrige #20642.

    • [bdubbs] - Atualização para ibus-1.5.31.. Corrige #20641.

    • [bdubbs] - Atualização para iptables-1.8.11.. Corrige #20640.

  • 9 novembro 2024

    • [bdubbs] - Atualização para lxqt-2.1.0.. Corrige #20622.

  • 8 novembro 2024

    • [bdubbs] - Atualização para plasma-6.2.3. Para lxqt, inclui kwayland, libkscreen e layer-shell-qt. Corrige #20351.

    • [bdubbs] - Atualização para kde-gear-24.08.3 Incluindo falkon e kate. Corrige #20362.

    • [bdubbs] - Atualização para kf6-6.8.0. Inclui extra-cmake-modules, kconfig, kidletime, kwindowsystem, solid e breeze-icons. Corrige #20367.

    • [renodr] - Atualização para xrandr-1.5.3 (Aplicativo Xorg). Corrige #20638.

    • [renodr] - Atualização para libblockdev-3.2.1. Corrige #20637.

    • [renodr] - Atualização para intel-gmmlib-22.5.3. Corrige #20573.

    • [renodr] - Atualização para intel-media-driver-24.3.4. Corrige #20573.

  • 7 novembro 2024

    • [renodr] - Atualização para Thunderbird-128.4.2esr. Corrige #20629.

    • [bdubbs] - Atualização para gpgme-1.24.0. Corrige #20630.

    • [bdubbs] - Atualização para dtc-1.7.2. Corrige #20633.

    • [renodr] - Atualização para unrar-7.1.1. Corrige #20631.

    • [renodr] - Atualização para libXcursor-1.2.3 (Bibliotecas Xorg). Corrige #20624.

    • [renodr] - Atualização para harfbuzz-10.1.0. Corrige #20625.

    • [renodr] - Atualização para pixman-0.44.0. Corrige #20626.

    • [renodr] - Atualização para gnutls-3.8.8. Corrige #20627.

    • [renodr] - Atualização para curl-8.11.0 (Atualização de Segurança). Corrige #20628.

    • [bdubbs] - Atualização para URI-5.31 (módulo Perl). Corrige #20632.

  • 6 novembro 2024

    • [bdubbs] - Atualização para ruby-3.3.6. Corrige #20623.

  • 5 novembro 2024

    • [renodr] - Atualização para fop-2.10 (Atualização de Segurança). Corrige #20501.

    • [renodr] - Atualização para OpenJDK-23.0.1 (Atualização de Segurança). Corrige #20540.

    • [renodr] - Corrigir construir Libreoffice com ICU-76.

    • [renodr] - Corrigir construir Node.js com ICU-76.

    • [renodr] - Atualização para icu-76.1. Corrige #20568.

    • [renodr] - Corrigir construir Texlive a partir do fonte em i686.

    • [bdubbs] - Atualização para mariadb-11.4.4. Corrige #20620.

    • [bdubbs] - Atualização para cachecontrol-0.14.1 (módulo Python). Corrige #20621.

    • [bdubbs] - Atualização para sentry_sdk-2.18.0 (módulo Python). Corrige #20619.

    • [bdubbs] - Atualização para hwdata-0.389. Corrige #20618.

    • [bdubbs] - Atualização para LVM2.2.03.28. Corrige #20617.

  • 4 novembro 2024

    • [bdubbs] - Atualização para SDL2-2.30.9. Corrige #20615.

    • [bdubbs] - Atualização para audacious e audacious-plugins-4.4.2. Corrige #20614.

    • [bdubbs] - Atualização para graphviz-12.2.0. Corrige #20613.

    • [bdubbs] - Atualização para gegl-0.4.50. Corrige #20612.

    • [bdubbs] - Atualização para utfcpp-4.0.6. Corrige #20611.

    • [bdubbs] - Atualização para poppler-24.11.0. Corrige #20521.

  • 3 novembro 2024

    • [renodr] - Corrigir construção de xfsprogs com ICU-76.

  • 2 novembro 2024

    • [bdubbs] - Atualização para numpy-2.1.3 (módulo Python). Corrige #20609.

    • [bdubbs] - Atualização para mpg123-1.32.9. Corrige #20610.

    • [renodr] - Corrigir construção de evolution-data-server com ICU-76.

    • [bdubbs] - Atualização para libvpx-1.15.0. Corrige #20608.

    • [bdubbs] - Atualização para gtk4-4.16.5. Corrige #20606.

    • [bdubbs] - Atualização para valgrind-3.24.0. Corrige #20605.

    • [bdubbs] - Atualização para bluez-5.79. Corrige #20604.

    • [renodr] - Atualização para WebKitGTK-2.46.3 (Atualização de Segurança). Corrige #20597.

  • 1 novembro 2024

    • [bdubbs] - Atualizar a pilha gstreamer para 1.24.9. Corrige #20601.

    • [bdubbs] - Atualização para libcap-2.71. Corrige #20578.

    • [bdubbs] - Atualização para libnvme-1.11. Corrige #20603.

    • [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.1. Corrige #20602.

  • 31 outubro 2024

    • [bdubbs] - Atualização para mesa-24.2.6. Corrige #20600.

    • [bdubbs] - Atualização para libnl-3.11.0. Corrige #20599.

    • [bdubbs] - Atualização para bubblewrap-0.11.0. Corrige #20598.

    • [bdubbs] - Atualização para fetchmail-6.5.0 (Atualização de Segurança). Corrige #20594.

    • [bdubbs] - Atualização para librsvg-2.59.2. Corrige #20590.

    • [bdubbs] - Atualização para gnupg-2.4.6. Corrige #20588.

  • 30 outubro 2024

    • [renodr] - Atualização para thunderbird-128.4.0esr (Atualização de Segurança). Corrige #20587.

    • [renodr] - Promover elogind para exigido em libei.

    • [renodr] - Remover alguns arquivos não usados no polkit em sistemas SysV. Isso é devido a polkit assume que systemd está em uso.

    • [renodr] - Atualização para firefox-128.4.0esr (Atualização de Segurança). Corrige #20586.

    • [renodr] - Atualização para spidermonkey-128.4.0. Corrige #20584.

    • [renodr] - Atualização para xwayland-24.1.4 (Atualização de Segurança). Corrige #20593.

    • [renodr] - Atualização para xorg-server-21.1.14 (Atualização de Segurança). Corrige #20592.

    • [renodr] - Atualização para xf86-input-wacom-1.2.3 (Controlador de Xorg). Corrige #20591.

    • [renodr] - Atualização para pipewire-1.2.6. Corrige #20563.

  • 29 outubro 2024

    • [bdubbs] - Atualização para libunwind-1.8.1. Corrige #20582.

    • [bdubbs] - Atualização para mercurial-6.8.2. Corrige #20585.

  • 28 outubro 2024

    • [bdubbs] - Atualização para Python-3.13.0. Corrige #20491.

    • [bdubbs] - Atualização para babl-0.1.110. Corrige #20581.

  • 27 outubro 2024

    • [xry111] - Adicionar docbook-xsl-ns-1.79.2. Corrige #20580.

    • [bdubbs] - Atualização para mpg123-1.32.8 (Atualização de Segurança). Corrige #20579.

    • [bdubbs] - Atualização para sphinxcontrib_htmlhelp-2.1.0 (módulo Python). Corrige #20577.

    • [bdubbs] - Atualização para desktop-file-utils-0.28. Corrige #20575.

    • [bdubbs] - Atualização para tigervnc-1.14.1. Corrige #20572.

    • [bdubbs] - Atualização para php-8.3.13. Corrige #20570.

    • [bdubbs] - Atualização para nss-3.106. Corrige #20566.

  • 26 outubro 2024

    • [bdubbs] - Atualização para Linux-PAM-1.7.0. Corrige #20565.

  • 25 outubro 2024

    • [thomas] - Atualização para xterm-395. Corrige #20571.

    • [thomas] - Atualização para log4cplus-2.1.2. Corrige #20569.

  • 24 outubro 2024

    • [bdubbs] - Reverter para URI-6.29 (Módulo Perl). Corrige #20521.

  • 23 outubro 2024

    • [renodr] - Atualização para thunderbird-128.3.3esr. Corrige #20560.

    • [renodr] - Atualização para gnome-weather-47.0. Corrige #20406.

    • [renodr] - Atualização para baobab-47.0. Corrige #20405.

    • [renodr] - Atualização para gnome-terminal-3.54.1. Corrige #20388.

    • [renodr] - Atualização para gnome-system-monitor-47.0. Corrige #20387.

    • [renodr] - Atualização para gnome-calculator-47.0. Corrige #20386.

    • [renodr] - Atualização para gnome-maps-47.1. Corrige #20370.

    • [renodr] - Atualização para gucharmap-16.0.2. Corrige #20352.

    • [renodr] - Atualização para eog-47.0. Corrige #20337.

    • [renodr] - Atualização para gedit-48.0. Inclui atualizações para libgedit-gfls-0.2.0 e libgedit-tepl-6.11.0. Corrige #20378.

    • [renodr] - Atualização para libgedit-gtksourceview-299.3.0. Corrige #20561.

    • [renodr] - Atualização para epiphany-47.2. Corrige 20559.

    • [renodr] - Atualização para NetworkManager-1.50.0. Corrige #20473.

    • [renodr] - Atualização para dhcpcd-10.1.0. Corrige #20482.

    • [renodr] - Atualização para gnome-user-docs-47.0. Corrige #20384.

    • [renodr] - Atualização para gnome-session-47.0.1. Corrige #20414.

    • [renodr] - Atualização para gnome-shell-extensions-47.1. Corrige #20383.

    • [renodr] - Atualização para gdm-47.0. Corrige #20415.

    • [renodr] - Atualização para gnome-shell-47.1. Corrige #20383.

    • [renodr] - Atualização para mutter-47.1. Corrige #20385.

    • [renodr] - Atualização para gnome-control-center-47.1.1. Corrige #20396.

    • [renodr] - Atualização para tecla-47.0. Corrige #20403.

    • [renodr] - Atualização para gnome-settings-daemon-47.1. Corrige #20391.

    • [bdubbs] - Atualização para usbutils-018. Corrige #20558.

    • [bdubbs] - Atualização para protobuf-28.3. Corrige #20557.

    • [bdubbs] - Atualização para FreeRDP-3.9.0. Corrige #20556.

    • [bdubbs] - Atualização para sqlite-autoconf-3470000 (3.47.0). Corrige #20553.

    • [bdubbs] - Atualização para nghttp2-1.64.0. Corrige #20552.

    • [renodr] - Atualização para gnome-bluetooth-47.1. Corrige #20397.

    • [bdubbs] - Atualização para mako-1.3.6 (observe mudança de Mako). Corrige #20551.

    • [bdubbs] - Atualização para nspr-4.36. Corrige #20550.

    • [bdubbs] - Atualização para mousepad-0.6.3. Corrige #20549.

    • [renodr] - Atualização para nautilus-47.0. Corrige #20393.

    • [renodr] - Atualização para gvfs-1.56.1. Corrige #20019.

    • [renodr] - Atualização para snapshot-47.1. Corrige #20394.

    • [renodr] - Adicionar libgstgtk4 ao livro em suporte do Snapshot. Parte de #20394.

  • 22 outubro 2024

    • [renodr] - Substituir tracker-miners3 por localsearch e atualizar para localsearch-3.8.0. Corrige #20413.

    • [renodr] - Substituir tracker3 por tinysparql e atualizar para tinysparql-3.8.0. Corrige #20412.

    • [renodr] - Atualização para evolution-3.54.1. Corrige #20016.

    • [renodr] - Atualização para evolution-data-server-3.54.1. Corrige #20016.

    • [renodr] - Arquivar Grilo, pois ele não mais é usado por nada no livro.

    • [renodr] - Atualização para gnome-online-accounts-3.52.1. Corrige #20018.

    • [renodr] - Atualização para gjs-1.82.1. Corrige #20555.

    • [renodr] - Atualização para vte-0.78.1. Corrige #20389.

    • [renodr] - Atualização para WebKitGTK-2.46.2. Corrige #20554.

  • 21 outubro 2024

    • [renodr] - Atualização para libppd-2.1.0. Corrige #20539.

    • [renodr] - Atualização para libcupsfilters-2.1.0. Corrige #20538.

    • [renodr] - Atualização para cups-browsed-2.1.0. Corrige #20537.

    • [renodr] - Atualização para epiphany-47.1. Corrige #20523.

    • [renodr] - Atualização para samba-4.21.1. Corrige #20522.

    • [renodr] - Atualização para cups-2.4.11. Corrige #20505.

    • [renodr] - Atualização para wireshark-4.4.1 (Atualização de Segurança). Corrige #20503.

    • [bdubbs] - Atualização para subversion-1.14.4. Corrige #20500.

    • [bdubbs] - Atualização para swig-4.3.0. Corrige #20548.

    • [bdubbs] - Atualização para SDL2-2.30.8. Corrige #20508.

    • [bdubbs] - Atualização para qemu-9.1.1. Corrige #20542.

    • [renodr] - Atualização para libreoffice-24.8.2.1. Corrige #20365.

  • 20 outubro 2024

    • [bdubbs] - Atualização para libwnck-43.1. Corrige #20486.

    • [bdubbs] - Atualização para gtk4-4.16.3. Corrige #20484.

    • [bdubbs] - Atualização para qcoro-0.11.0. Corrige #20481.

    • [bdubbs] - Atualização para mesa-24.2.5. Corrige #20480.

    • [bdubbs] - Atualização para nfs-utils-2.8.1. Corrige #20547.

    • [bdubbs] - Atualização para libuv-v1.49.2. Corrige #20543.

    • [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.299. Corrige #20541.

    • [thomas] - Atualização para xfsprogs-6.11.0.. Corrige #20546.

  • 18 outubro 2024

    • [xry111] - Atualização para gjs-1.82.0.. Corrige #20035.

    • [xry111] - Atualização para spidermonkey-128.3.1 (Atualização de Segurança). Corrige #20077.

    • [xry111] - Atualização para cargo-c-0.10.5.. Corrige #20545.

    • [xry111] - Atualização para rustc-1.82.0.. Corrige #20533.

  • 17 outubro 2024

    • [bdubbs] - Temporariamente reverter para poppler-24.09.0 até que outros pacotes sejam atualizados para usá-lo (por exemplo, inkscape, libreoffice)

    • [renodr] - Atualização para thunderbird-128.3.2esr. Corrige #20509.

    • [bdubbs] - Atualização para unbound-1.22.0. Corrige #20536.

    • [bdubbs] - Atualização para sentry_sdk-2.17.0 (módulo Python). Corrige #20534.

    • [bdubbs] - Atualização para psutil-6.1.0 (módulo Python). Corrige #20532.

    • [bdubbs] - Atualização para glib-2.82.2. Corrige #20531.

    • [renodr] - Atualização para asymptote-2.92. Corrige #20495.

    • [thomas] - Atualização para libtirpc-1.3.6. Corrige #20535.

    • [thomas] - Atualização para bind 9.20.3, bind-utils-9.20.3. Corrige #20527.

  • 17 outubro 2024

    • [bdubbs] - Atualização para libgedit-amtk-5.9.0. Corrige #20530.

    • [bdubbs] - Atualização para libunistring-1.3. Corrige #20529.

    • [bdubbs] - Atualização para libssh2-1.11.1. Corrige #20528.

    • [bdubbs] - Atualização para xf86-input-libinput-1.5.0 (Controlador Xorg). Corrige #20526.

    • [bdubbs] - Atualização para xf86-input-evdev-2.11.0 (Controlador Xorg). Corrige #20525.

    • [bdubbs] - Atualização para c-ares-1.34.2. Corrige #20524.

    • [bdubbs] - Atualização para poppler-24.10.0. Corrige #20521.

    • [bdubbs] - Atualização para libxmlb-0.3.21. Corrige #20520.

  • 14 outubro 2024

    • [bdubbs] - Atualização para libarchive-3.7.7 (Atualização de Segurança). Corrige #20519.

    • [bdubbs] - Atualização para pyparsing-3.2.0 (módulo Python). Corrige #20518.

    • [bdubbs] - Atualização para libadwaita-1.6.1. Corrige #20517.

    • [bdubbs] - Atualização para inkscape-1.4. Corrige #20516.

    • [bdubbs] - Atualização para wayland-protocols-1.38. Corrige #20515.

    • [bdubbs] - Atualização para xwud-1.0.7 (aplicativo do Xorg). Corrige #20514.

    • [bdubbs] - Atualização para xtrans-1.5.1 (biblioteca do Xorg). Corrige #20513.

    • [bdubbs] - Atualização para xcmsdb-1.0.7 (aplicativo do Xorg). Corrige #20512.

    • [bdubbs] - Atualização para libqtxdg-4.0.1. Corrige #20511.

    • [bdubbs] - Atualização para libuv-v1.49.1. Corrige #20510.

  • 13 outubro 2024

    • [bdubbs] - Atualização para sphinx_rtd_theme-3.0.1 (módulo Python). Corrige #20494.

    • [bdubbs] - Atualização para sphinx-8.1.3 (módulo Python). Corrige #20506.

    • [bdubbs] - Atualização para sentry_sdk-2.16.0 (módulo Python). Corrige #20499.

    • [bdubbs] - Atualização para SPIRV-Headers e SPIRV-Tools-1.3.296.0. Corrige #20496.

    • [bdubbs] - Atualização para URI-5.30 (módulo Perl). Corrige #20497.

    • [bdubbs] - Atualização para git-2.47.0. Corrige #20490.

    • [bdubbs] - Atualização para gtksourceview-5.14.1. Corrige #20485.

    • [bdubbs] - Atualização para qtwebengine-6.8.0 (Atualização de Segurança). Corrige #20493.

    • [bdubbs] - Atualização para qt-everywhere-src-6.8.0 (Atualização de Segurança). Corrige #20492.

    • [bdubbs] - Atualização para libqalculate-5.3.0. Corrige #20489.

    • [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.298. Corrige #20483.

    • [bdubbs] - Atualização para node-20.18.0. Corrige #20477.

  • 10 outubro 2024

    • [thomas] - Atualização para cmake-3.30.5. Corrige #20502.

    • [thomas] - Atualização para c-ares-1.34.1. Corrige #20504.

  • 9 outubro 2024

    • [renodr] - Atualização para thunderbird-128.3.0esr (Atualização de Segurança). Corrige #20469.

    • [renodr] - Atualização para firefox-128.3.1esr (Atualização de Segurança). Corrige #20460.

    • [renodr] - Corrigir uma cadeia de vulnerabilidades no CUPS que é conhecida por permitir execução remota de código não autenticado, sem intervenção do(a) usuário(a). Corrige #20456.

    • [renodr] - Corrigir um defeito no Cairo que causa problemas com impressão de arquivos PDF. Corrige #20443.

    • [renodr] - Atualização para epiphany-47.0. Corrige #20364.

    • [renodr] - Atualização para seahorse-47.0.1. Corrige #20423.

    • [renodr] - Atualização para WebKitGTK-2.46.1 (Atualização de Segurança). Corrige #20409.

    • [xry111] - Atualização para pyproject-metadata-0.8.1 (dependência Python). Endereça #18562.

    • [xry111] - Atualização para Markdown-3.7 (dependência Python). Endereça #18562.

    • [xry111] - Atualização para trove-classifiers-2024.9.12 (dependência Python). Endereça #18562.

  • 8 outubro 2024

    • [thomas] - Atualização para cifs-utils-7.1. Corrige #20488.

  • 7 outubro 2024

    • [renodr] - Atualização para xdg-dbus-proxy-0.1.6. Corrige #20428.

    • [renodr] - Atualização para xdg-desktop-portal-gnome-47.1. Corrige #20404.

    • [renodr] - Atualização para adwaita-icon-theme-47.0. Corrige #20401.

    • [renodr] - Atualização para gnome-backgrounds-47.0. Corrige #20402.

    • [renodr] - Atualização para xdg-desktop-portal-0.18.4 (Atualização de Segurança). Corrige #20430.

    • [renodr] - Atualização para pipewire-1.2.5. Corrige #20429.

    • [renodr] - Atualização para upower-1.90.6. Corrige #20421.

    • [renodr] - Corrigir executar a suíte de teste XML-LibXML com libxml2-2.13. Corrige #20457.

    • [renodr] - Atualização para unbound-1.21.1 (Atualização de Segurança). Corrige #20479.

    • [bdubbs] - Atualização para numpy-2.1.2 (módulo Python). Corrige #20487.

    • [bdubbs] - Atualização para python-dbusmock-0.32.2 (módulo Python). Corrige #20478.

  • 3 outubro 2024

    • [bdubbs] - Atualização para mupdf-1.24.10. Corrige #20475.

    • [bdubbs] - Atualização para xwayland-24.1.3. Corrige #20474.

    • [bdubbs] - Atualização para LVM2.2.03.27. Corrige #20471.

    • [bdubbs] - Atualização para hwdata-0.388. Corrige #20472.

    • [bdubbs] - Atualização para xkeyboard-config-2.43. Corrige #20468.

    • [bdubbs] - Atualização para sentry_sdk-2.15.0. Corrige #20467.

    • [bdubbs] - Atualização para Python3-3.12.7. Corrige #20466.

    • [bdubbs] - Atualização para libgsf-1.14.53 (Atualização de Segurança). Corrige #20463.

    • [bdubbs] - Atualização para btrfs-progs-v6.11. Corrige #20411.

    • [bdubbs] - Atualização para ffmpeg-7.1. Corrige #20461.

    • [bdubbs] - Atualização para gdb-15.2. Corrige #20459.

    • [bdubbs] - Atualização para glad-2.0.8. Corrige #20458.

    • [bdubbs] - Atualização para postgresql-17.0. Corrige #20450.

    • [bdubbs] - Atualização para shaderc-2024.3 (glslc). Corrige #20438.

    • [renodr] - Atualizar a pilha gstreamer para 1.24.8. Corrige #20427.

  • 2 outubro 2024

    • [renodr] - Corrigir construir libplacebo com glslang-15.0.0. Corrige #20470.

  • 30 setembro 2024

    • [bdubbs] - Atualização para graphviz-12.1.2. Corrige #20455.

    • [bdubbs] - Atualização para nss-3.105. Corrige #20452.

    • [bdubbs] - Atualização para audacious e audacious-plugins-4.4.1. Corrige #20448.

    • [bdubbs] - Atualização para mpv-0.39.0. Corrige #20442.

    • [bdubbs] - Atualização para harfbuzz-10.0.1. Corrige #20437.

    • [xry111] - Atualização para unifont-16.0.01 (dados de fonte do GRUB para UEFI). Corrige #20395.

  • 28 setembro 2024

    • [bdubbs] - Atualização para cmake-3.30.4. Corrige #20453.

    • [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader-1.3.296. Corrige #20451.

    • [bdubbs] - Atualização para libuv-v1.49.0. Corrige #20444.

    • [bdubbs] - Atualização para gtk-4.16.2. Corrige #20441.

    • [bdubbs] - Atualização para glib-2.82.1. Corrige #20434.

    • [bdubbs] - Atualização para librsvg-2.59.1. Corrige #20359.

    • [bdubbs] - Adicionar cargo-c-0.10.4 necessário para librsvg-2.59.1.

  • 28 setembro 2024

    • [bdubbs] - Atualização para QtWebEngine-6.7.3. Corrige #20454.

    • [bdubbs] - Atualização para qt-6.7.3 (Atualização de Segurança). Corrige #20454.

    • [bdubbs] - Atualização para php-8.3.12 (Atualização de Segurança). Corrige #20449.

    • [bdubbs] - Atualização para glslang-15.0.0. Corrige #20446.

    • [bdubbs] - Atualização para fribidi-1.0.16. Corrige #20445.

    • [bdubbs] - Atualização para git-2.46.2. Corrige #20439.

    • [bdubbs] - Atualização para bluefish-2.2.16. Corrige #20436.

    • [bdubbs] - Atualização para LibRaw-0.21.3. Corrige #20419.

  • 27 setembro 2024

    • [thomas] - Atualização para libarchive-3.7.6.. Corrige #20440.

    • [thomas] - Atualização para openssh-9.9p1.. Corrige #20432.

    • [thomas] - Atualização para libxml2-2.13.4.. Corrige #20418.

    • [rahul] - Atualização para protobuf-28.2.. Corrige #20354.

    • [rahul] - Atualização para libpng-1.6.44.. Corrige #20358.

    • [rahul] - Atualização para bluez-5.78.. Corrige #20341.

    • [rahul] - Atualização para curl-8.10.1 (Atualização de Segurança). Corrige #20355.

    • [rahul] - Atualização para qemu-9.1.0.. Corrige #20161.

    • [rahul] - Atualização para power-profiles-daemon-0.23.. Corrige #20342.

  • 26 setembro 2024

    • [renodr] - Atualização para ghostscript-10.04.0 (Atualização de Segurança). Corrige #20424.

    • [renodr] - Atualização para thunderbird-128.2.3esr. Corrige #20408.

    • [renodr] - Atualização para seamonkey-2.53.19 (Atualização de Segurança). Corrige #20111.

  • 22 setembro 2024

    • [bdubbs] - Atualização para Net-DNS-1.47 (módulo Perl). Corrige #20422.

    • [bdubbs] - Atualização para tk8.6.15. Corrige #20400.

    • [bdubbs] - Atualização para highlight-4.14. Corrige #20398.

    • [bdubbs] - Atualização para pulseaudio-qt-1.6.0. Corrige #20398.

    • [thomas] - Atualização para bind-9.20.2, bind-utils-9.20.2. Corrige #20260.

  • 20 setembro 2024

    • [xry111] - Atualização para libclc-19.1.0.. Corrige #19985.

    • [xry111] - Atualização para SPIRV-LLVM-Translator-19.1.0.. Corrige #20417.

    • [xry111] - Atualização para LLVM-19.1.0.. Corrige #19968.

    • [renodr] - Atualização para bubblewrap-0.10.0 (parte de uma atualização de segurança). Corrige #20431.

    • [renodr] - Atualização para tiff-4.7.0 (Atualização de Segurança). Corrige #20420.

  • 19 setembro 2024

    • [renodr] - Atualização para mesa-24.2.3. Corrige #20416.

  • 18 setembro 2024

    • [renodr] - Atualização para gsettings-desktop-schemas-47.1. Corrige #20390.

  • 17 setembro 2024

    • [renodr] - Arquivar Lua 5.2.

    • [renodr] - Adicionar LuaJIT ao livro para substituir Lua 5.2. Corrige #20312.

  • 16 setembro 2024

    • [renodr] - Atualização para dvisvgm-3.4.1. Corrige #20407.

    • [renodr] - Atualização para json-c-0.18. Corrige #20392.

    • [renodr] - Atualização para gspell-1.14.0. Corrige #20372.

    • [renodr] - Atualização para libshumate-1.3.0. Corrige #20369.

  • 15 setembro 2024

    • [bdubbs] - Atualização para gtksourceview-5.14.0. Corrige #20382.

    • [bdubbs] - Atualização para at-spi2-core-2.54.0. Corrige #20381.

    • [bdubbs] - Atualização para git-2.46.1. Corrige #20380.

    • [bdubbs] - Atualização para iso-codes-4.17.0. Corrige #20379.

  • 14 setembro 2024

    • [bdubbs] - Atualização para libadwaita-1.6.0. Corrige #20377.

    • [bdubbs] - Atualização para traceroute-2.1.6. Corrige #20375.

    • [bdubbs] - Atualização para libjxl-0.11.0. Corrige #20374.

    • [bdubbs] - Atualização para libarchive-3.7.5 (Atualização de Segurança). Corrige #20373.

    • [bdubbs] - Atualização para mlt-7.28.0. Corrige #20366.

    • [bdubbs] - Atualização para plasma-wayland-protocols-1.14.0. Corrige #20361.

    • [bdubbs] - Atualização para pygobject3-3.50.0 (módulo Python). Corrige #20360.

    • [bdubbs] - Atualização para xcb-util-cursor-0.1.5. Corrige #20356.

    • [bdubbs] - Atualização para gtkmm-4.16.0. Corrige #20350.

    • [bdubbs] - Atualização para luit-20240910. Corrige #20349.

    • [bdubbs] - Atualização para gtk-4.16.1. Corrige #20376.

    • [xry111] - Atualização para gobject-introspection-1.82.0 (transferência adicional do glib). Corrige #20371.

  • 13 setembro 2024

    • [bdubbs] - Atualização para libblockdev-3.2.0. Corrige #20345.

    • [bdubbs] - Atualização para graphviz-12.1.1. Corrige #20346.

    • [bdubbs] - Atualização para pytest-8.3.3 (módulo Python). Corrige #20348.

    • [bdubbs] - Atualização para mariadb-11.4.3. Corrige #20344.

    • [bdubbs] - Atualização para sentry_sdk-2.14.0 (módulo Python). Corrige #20343.

    • [bdubbs] - Atualização para stunnel-5.73. Corrige #20340.

  • 12 setembro 2024

    • [bdubbs] - Atualização para gtk4-4.16.0. Corrige #20336.

    • [bdubbs] - Adicionar glslc proveniente de shaderc-2024.2 necessário para gtk4-4.16.0.

  • 9 setembro 2024

    • [renodr] - Atualização para WebKitGTK-2.44.4. Corrige #20339.

    • [bdubbs] - Atualização para gc-8.2.8. Corrige #20338.

    • [renodr] - Atualização para systemd-256.5. Corrige #20300.

    • [bdubbs] - Atualização para python3-3.12.6 (Atualização de Segurança). Corrige #20335.

  • 7 setembro 2024

    • [xry111] - Atualização para rustc-1.81.0.. Corrige #20332.

  • 6 setembro 2024

    • [renodr] - Atualização para wireplumber-0.5.6. Corrige #20334.

    • [renodr] - Atualização para mesa-24.2.2. Corrige #20333.

    • [renodr] - Atualização para gnome-disk-utility-46.1. Corrige #20311.

    • [renodr] - Atualização para libwacom-2.13.0. Corrige #20307.

    • [renodr] - Atualização para libportal-0.8.1. Corrige #20306.

    • [renodr] - Atualização para libgweather-4.4.4. Corrige #20304.

    • [renodr] - Atualização para gnome-autoar-0.4.5. Corrige #20295.

    • [renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.295. Corrige #20293.

    • [bdubbs] - Atualização para URI-5.29 (módulo Perl). Corrige #20331.

    • [bdubbs] - Atualização para cairo-1.18.2. Corrige #20303.

    • [bdubbs] - Atualização para SPIRV-LLVM-Translator-18.1.4. Corrige #20299.

    • [bdubbs] - Atualização para apache-ant-1.10.15. Corrige #20287.

    • [bdubbs] - Atualização para screen-5.0.0. Corrige #20284.

    • [renodr] - Atualização para ruby-3.3.5 (Atualização de Segurança). Corrige #20317.

    • [renodr] - Restaurar -DGIT_ARCHETYPE=1 para as instruções de construção para x265, de forma que não exija git para o arquivo de pkg-config ou a biblioteca compartilhada.

    • [bdubbs] - Atualização para glad-2.0.7. Corrige #20328.

    • [bdubbs] - Atualização para glibmm-2.82.0. Corrige #20327.

    • [bdubbs] - Atualização para nano-8.2. Corrige #20326.

    • [renodr] - Atualização para thunderbird-128.2.0esr (Atualização de Segurança). Corrige #20320.

    • [renodr] - Atualização para firefox-128.2.0esr (Atualização de Segurança). Corrige #20305.

  • 5 setembro 2024

    • [bdubbs] - Atualização para SDL2-2.30.7. Corrige #20323.

    • [bdubbs] - Atualização para libXi-1.8.2 (biblioteca do Xorg). Corrige #20322.

    • [bdubbs] - Atualização para umockdev-0.18.4. Corrige #20321.

    • [bdubbs] - Atualização para libevdev-1.13.3 (controlador do Xorg). Corrige #20319.

    • [bdubbs] - Atualização para geoclue-2.7.2. Corrige #20318.

    • [bdubbs] - Atualização para cryptsetup-2.7.5. Corrige #20313.

    • [bdubbs] - Atualização para numpy-2.1.1 (módulo Python). Corrige #20316.

    • [bdubbs] - Atualização para scons-4.8.1. Corrige #20315.

    • [bdubbs] - Atualização para hwdata-0.387. Corrige #20330.

  • 4 setembro 2024

    • [rahul] - Atualização para nss-3.104. Corrige #20290.

    • [rahul] - Atualização para cmake-3.30.3. Corrige #20288.

    • [rahul] - Atualização para samba-4.21.0. Corrige #20309.

    • [rahul] - Atualização para FreeRDP-3.8.0. Corrige #20296.

    • [rahul] - Atualização para wayland-protocols-1.37. Corrige #20298.

    • [rahul] - Atualização para json-glib-1.10.0. Corrige #20291.

    • [rahul] - Atualização para sudo-1.9.16. Corrige #20301.

    • [rahul] - Atualização para NetworkManager-1.48.10. Corrige #20276.

    • [rahul] - Atualização para power-profiles-daemon-0.22. Corrige #20308.

    • [rahul] - Atualização para xterm-394. Corrige #20310.

    • [rahul] - Atualização para dhcpcd-10.0.10. Corrige #20262.

    • [bdubbs] - Atualização para poppler-24.09.0. Corrige #20302.

    • [bdubbs] - Atualização para php-8.3.11. Corrige #20289.

    • [bdubbs] - Atualização para userspace-rcu-0.14.1 (liburcu). Corrige #20283.

    • [bdubbs] - Atualização para nghttp2-1.63.0. Corrige #20282.

    • [bdubbs] - Atualização para protobuf-28.0. Corrige #20281.

    • [bdubbs] - Atualização para upower-v1.90.5. Corrige #20275.

  • 3 setembro 2024

    • [bdubbs] - Atualização para glibmm-2.80.1. Corrige #20280.

    • [bdubbs] - Atualização para glib-2.82.0. Corrige #20279.

    • [bdubbs] - Atualização para libdrm-2.4.123. Corrige #20277.

    • [bdubbs] - Atualização para apr-1.7.5 (Atualização de Segurança). Corrige #20273.

    • [bdubbs] - Atualização para node-20.17.0. Corrige #20259.

    • [bdubbs] - Atualização para rust-bindgen-0.70.1. Corrige #20254.

    • [bdubbs] - Atualização para mesa-24.2.1. Corrige #20232.

    • [bdubbs] - Atualização para mupdf-1.24.9. Corrige #20297.

    • [bdubbs] - Atualização para libpcap-1.10.5 (Correções de Segurança). Corrige #20292.

    • [bdubbs] - Atualização para wireshark-4.4.0. Corrige #20285.

    • [bdubbs] - Atualização para xfsprogs-6.10.1. Corrige #20274.

    • [bdubbs] - Atualização para pyparsing-3.1.4 (módulo Python). Corrige #20271.

    • [bdubbs] - Atualização para taglib-2.0.2. Corrige #20270.

    • [bdubbs] - Atualização para c-ares-1.33.1. Corrige #20268.

    • [bdubbs] - Atualização para nfs-utils-2.7.1. Corrige #20261.

    • [bdubbs] - Atualização para libinput-1.26.2 (controlador de entrada do Xorg). Corrige #20250.

  • 2 setembro 2024

    • [bdubbs] - Atualização para IO-Socket-SSL-2.089 (módulo Perl). Corrige #20286.

    • [bdubbs] - Arquivar Qt5.

  • 1 setembro 2024

    • [bdubbs] - Lançamento do BLFS-12.2.

Listas de Discussão

O servidor linuxfromscratch.org está hospedando um número de listas de discussão que são usadas para o desenvolvimento do livro BLFS. Essas listas incluem, entre outras, as listas principais de desenvolvimento e de suporte.

Para mais informação acerca de quais listas estão disponíveis, como assiná-las, locais de arquivamento, etc., visite https://www.linuxfromscratch.org/mail.html.

Observações do(a) Editor(a)

O Projeto BLFS criou um Wiki para editores(as) comentarem acerca das páginas e das instruções em https://wiki.linuxfromscratch.org/blfs/wiki.

Quando observações do(a) editor(a) estiverem presentes, um link aparece no formato https://wiki.linuxfromscratch.org/blfs/wiki/pkgname logo abaixo da lista de dependências. A ideia por trás das observações do(a) editor(a) é a de fornecer informações adicionais acerca do pacote e (ou) das instruções de construção dele, armadilhas comuns ou talvez configurações ainda mais sofisticadas para casos especiais de uso.

A maioria dos pacotes não tem observações do(a) editor(a).

Nota

As observações do(a) editor(a) podem estar desatualizadas. Mesmo que as páginas devam ser revisadas quando um pacote é atualizado, pode acontecer que existam observações referentes a uma versão obsoleta e, portanto, as observações possam estar desatualizadas. Verifique sempre a data das observações e, mais importante, a versão do pacote a que as observações se referem.

Pedindo Ajuda e as Perguntas Frequentes

Se você encontrar um problema enquanto usar este livro e o seu problema não estiver listado nas Perguntas Frequentes (https://www.linuxfromscratch.org/faq), [então] você achará que a maioria das pessoas no Internet Relay Chat (IRC) e nas listas de discussão está disposta a ajudar você. Uma visão geral das listas de discussão do LFS pode ser encontrada em Listas de discussão. Para nos auxiliar a diagnosticar e solucionar o seu problema, inclua tanta informação relevante quanto for possível na sua solicitação por ajuda.

Coisas a Verificar Antes do Pedido

Antes de pedir ajuda, você deveria rever os seguintes itens:

  • O suporte ao hardware está compilado internamente ao núcleo ou está disponível como um módulo para o núcleo? Se for um módulo, [então] está configurado adequadamente no modprobe.conf e foi carregado? Você deveria usar o lsmod como o(a) usuário(a) root para ver se está carregado. Verifique o arquivo sys.log ou execute modprobe <controlador> para rever qualquer mensagem de erro. Se carregar adequadamente, [então] você possivelmente precise adicionar o comando modprobe aos seus scripts de inicialização.

  • As suas permissões estão adequadamente configuradas, especialmente para dispositivos? O LFS usa grupos para tornar mais fáceis essas configurações, porém também adiciona o passo de adicionar usuários(as) a grupos para permitir o acesso. Um simples usermod -G audio <usuário(a)> possivelmente seja tudo o que é necessário para que esse(a) usuário(a) tenha acesso ao sistema de som. Qualquer pergunta que inicie com Funciona como root, porém não como ... exige uma revisão minuciosa das permissões antes de perguntar.

  • O BLFS usa generosamente /opt/<pacote>. A objeção principal a isso gira em torno da necessidade de expandir as suas variáveis de ambiente para cada pacote colocado lá (por exemplo, PATH=$PATH:/opt/kde/bin). Na maioria dos casos, as instruções do pacote guiarão você ao longo das mudanças, porém algumas não guiarão. A seção chamada Indo Além do BLFS está disponível para ajudar você a verificar.

Coisas a Mencionar

Além de uma breve explicação do problema que você está enfrentando, as coisas essenciais a se incluir na sua solicitação são:

  • a versão do livro que você está usando (sendo 12.3),

  • o pacote ou seção dando problemas para você,

  • a mensagem de erro exata ou sintoma que você está recebendo,

  • se você tiver se desviado do livro ou do LFS de alguma forma (colocar as instruções do livro em um conjunto de comandos sequenciais enquanto o livro não diz para fazer isso é sempre considerado um desvio, porque tem existido muitos casos de problemas onde pessoas falham em notar uma diferença sutil entre o conjunto de comandos sequenciais e o livro),

  • se você está instalando um pacote do BLFS em um sistema que não é o LFS.

Note que dizer que você se desviou do livro não significa que nós não te ajudaremos. Isso apenas nos ajudará a ver outras possíveis causas do teu problema. Se você tiver se desviado do livro, você também deveria dizer precisamente qual é o desvio, de forma que outras pessoas consigam reproduzi-lo. Um conjunto de comandos sequenciais pode ser anexado para mostrar o que você fez exatamente (especialmente se você já tiver um conjunto de comandos sequenciais desse, ou seja, você já tiver se desviado do livro ao empacotar as instruções do livro em um conjunto de comandos sequenciais e executá-lo).

Espere por orientação em vez de instruções específicas. Se você for instruído(a) a ler alguma coisa, [então], por favor, faça isso. Geralmente implica que a resposta era óbvia demais e que a pergunta não teria sido feita se um pouco de pesquisa fosse feita antes de perguntar. Os(As) voluntários(as) na lista de discussão preferem não serem usados(as) como uma alternativa a fazer uma pesquisa razoável de sua parte. Adicionalmente, a qualidade da sua experiência com o BLFS também é grandemente melhorada por essa pesquisa e a qualidade dos(as) voluntários(as) é melhorada, pois eles(as) não sentem que o tempo deles(as) foi desperdiçado, de forma que é muito mais provável que eles(as) participem.

Um artigo excelente acerca de como pedir ajuda na Internet em geral foi escrito por Eric S. Raymond. Ele está disponível online em http://www.catb.org/~esr/faqs/smart-questions.html. Leia e siga as dicas naquele documento e é muito mais provável que você obtenha uma resposta inicial e também obtenha a ajuda que você precisa realmente.

Créditos

Muitas pessoas tem contribuído, direta e indiretamente, para o BLFS. Esta página lista todos(as) os(as) que podemos imaginar. Nós possivelmente tenhamos deixado pessoas fora e, se você sente que esse é o caso, [então] envie-nos uma mensagem. Muito obrigado a todos(as) da comunidade do LFS pela ajuda com este projeto.

Editores(as) Atuais

  • Rahul Chandra

  • Bruce Dubbs

  • Pierre Labastie

  • Douglas Reno

  • Xi Ruoyao

  • Thomas Trepl

Colaboradores(as) e Antigos(as) Editores(as)

A lista dos(as) colaboradores(as) é ampla demais para fornecer informação detalhada acerca das contribuições para cada colaborador(a). Ao longo dos anos, os seguintes indivíduos forneceram contribuições significantes para o livro:

  • Timothy Bauscher

  • Daniel Bauman

  • Jeff Bauman

  • Andy Benton

  • Wayne Blaszczyk

  • Paul Campbell

  • Nathan Coulson

  • Jeroen Coumans

  • Guy Dalziel

  • Robert Daniels

  • Richard Downing

  • Manuel Canales Esparcia

  • Jim Gifford

  • Manfred Glombowski

  • Ag Hatzimanikas

  • Mark Hymers

  • James Iwanek

  • David Jensen

  • Jeremy Jones

  • Seth Klein

  • Alex Kloss

  • Eric Konopka

  • Larry Lawrence

  • D-J Lucas

  • Chris Lynn

  • Andrew McMurry

  • Randy McMurchy

  • Ken Moffat

  • Denis Mugnier

  • Billy O'Connor

  • Fernando de Oliveira

  • Alexander Patrakov

  • Olivier Peres

  • Andreas Pedersen

  • Henning Rohde

  • Matt Rogers

  • James Robertson

  • Henning Rohde

  • Chris Staub

  • Jesse Tie-Ten-Quee

  • Ragnar Thomsen

  • Tushar Teredesai

  • Jeremy Utley

  • Zack Winkles

  • Christian Wurst

  • Igor Živković

Reconhecimentos Gerais

  • Fernando Arbeiza

  • Miguel Bazdresch

  • Gerard Beekmans

  • Oliver Brakmann

  • Jeremy Byron

  • Ian Chilton

  • David Ciecierski

  • Jim Harris

  • Lee Harris

  • Marc Heerdink

  • Steffen Knollmann

  • Eric Konopka

  • Scot McPherson

  • Ted Riley

Informação de Contato

Por favor, direcione as suas mensagens de correio eletrônico para uma das listas de discussão do BLFS. Veja-se Listas de discussão para mais informação acerca das listas de discussão disponíveis.

Capítulo 2. Informação Importante

Este capítulo é usado para explicar algumas das políticas usadas ao longo do livro; para apresentar conceitos importantes; e para explicar alguns problemas que você possivelmente veja com alguns dos pacotes inclusos.

Observações Acerca de Construir Software

Aquelas pessoas que tenham construído um sistema LFS possivelmente estejam cientes dos princípios gerais da transferência e do desempacotamento de software. Alguma daquela informação está repetida aqui para aquelas novatas em construir o próprio software delas.

Cada conjunto de instruções de instalação contém um URL a partir do qual você pode transferir o pacote. Os remendos, no entanto, estão armazenados nos servidores do LFS e estão disponíveis via HTTP. Esses estão referenciados conforme necessários nas instruções de instalação.

Embora possa manter os arquivos do fonte onde quiser, presumimos que você desempacotou o pacote e mudou para o diretório criado pelo processo de desempacotamento (o diretório do fonte). Também presumimos que você descomprimiu quaisquer remendos exigidos e que eles estão no diretório imediatamente acima do diretório do fonte.

Nós não podemos enfatizar fortemente o suficiente que você deveria iniciar a partir de uma árvore limpa do fonte a cada vez. Isso significa que, se você tiver tido um erro durante a configuração ou a compilação, [então] geralmente é melhor deletar a árvore do fonte e desempacotá-la outra vez antes de tentar novamente. Isso, obviamente, não se aplica se você for um(a) usuário(a) avançado(a) habituado(a) a hackear Makefiles e código C; porém, se em dúvida, [então] inicie a partir de uma árvore limpa.

Construindo Software como um(a) Usuário(a) Não Privilegiado(a) (não root)

A regra de ouro da Administração do Sistema Unix é a de usar os seus super poderes somente quando necessário. Assim, o BLFS recomenda que você construa software como um(a) usuário(a) não privilegiado(a) e somente se torne o(a) usuário(a) root quando instalar o software. Essa filosofia é seguida em todos os pacotes neste livro. A menos que especificado de outra maneira, todas as instruções deveriam ser executadas como um(a) usuário(a) não privilegiado(a). O livro alertará você acerca de instruções que precisarem de privilégios do(a) root.

Desempacotando o Software

Se um arquivo estiver no formato .tar e comprimido, [então] ele é desempacotado executando-se um dos seguintes comandos:

tar -xvf nome_arquivo.tar.gz
tar -xvf nome_arquivo.tgz
tar -xvf nome_arquivo.tar.Z
tar -xvf nome_arquivo.tar.bz2

Nota

Você possivelmente omita o uso do parâmetro v nos comandos mostrados acima e abaixo se você desejar suprimir a listagem verbosa de todos os arquivos no arquivamento conforme eles forem extraídos. Isso pode ajudar a acelerar a extração, bem como torna quaisquer erros produzidos durante a extração mais óbvios para você.

Você também pode usar um método ligeiramente diferente:

bzcat nome_arquivo.tar.bz2 | tar -xv

Finalmente, ocasionalmente, temos um arquivo de remendo comprimido no formato .patch.gz ou .patch.bz2. A melhor maneira de aplicar o remendo é a de canalizar a saída gerada do descompressor para o utilitário patch. Por exemplo:

gzip -cd ../patchname.patch.gz | patch -p1

Ou para um remendo comprimido com bzip2:

bzcat ../nome_remendo.patch.bz2 | patch -p1

Averiguando a Integridade do Arquivo

Geralmente, para se averiguar se o arquivo transferido está completo, muitos(as) mantenedores(as) de pacote também distribuem somas de verificação md5 dos arquivos. Para averiguar a soma de verificação md5 dos arquivos transferidos, transfira ambos, o arquivo e o arquivo correspondente de soma de verificação md5, para o mesmo diretório (preferencialmente a partir de locais diferentes online) e (assumindo que arquivo.md5sum seja o arquivo de soma de verificação md5 transferido) execute o seguinte comando:

md5sum -c arquivo.md5sum

Se existirem quaisquer erros, [então] eles serão informados. Observe que o livro BLFS inclui somas de verificação md5 para todos os arquivos de fonte também. Para usar as somas de verificação md5 fornecidas pelo BLFS, você pode criar um arquivo.md5sum (coloque os dados da soma de verificação md5 e o nome exato do arquivo transferido na mesma linha de um arquivo, separados por espaço em branco) e executar o comando mostrado acima. Alternativamente, simplesmente execute o comando mostrado abaixo e compare a saída gerada para os dados da soma de verificação md5 mostrada no livro BLFS.

md5sum <nome_do_arquivo_transferido>

MD5 não é seguro criptograficamente, de forma que as somas de verificação md5 são fornecidas somente para se detectar mudanças não maliciosas para o conteúdo do arquivo. Por exemplo, um erro ou truncamento introduzido durante a transferência de rede de comunicação; ou uma atualização furtiva para o pacote oriunda do(a) desenvolvedor(a) (atualizando o conteúdo de um tarball liberado em vez de fazer um lançamento novo adequadamente).

Não existe maneira 100% segura de garantir a genuinidade dos arquivos do fonte. Assumindo que o(a) desenvolvedor(a) esteja gerenciando corretamente o sítio da web dele(a) (a chave privada não vazou e o domínio não esteja sequestrado); e que as âncoras de confiança tenham sido configuradas corretamente usando make-ca-1.15 no sistema BLFS; nós podemos razoavelmente confiar nos URLs de transferência para o sítio oficial da web do(a) desenvolvedor(a) com protocolo https. Observe que o próprio livro BLFS está publicado em um sítio da web com https, de forma que você já deveria ter alguma confiança no protocolo https ou você não confiaria no conteúdo do livro.

Se o pacote for transferido a partir de um local não oficial (por exemplo, um espelho local), [então] as somas de verificação geradas por algoritmos de resumo criptograficamente seguros (por exemplo, SHA256) podem ser usadas para averiguar a genuinidade do pacote. Transfira o arquivo da soma de verificação a partir do sítio da web oficial do(a) desenvolvedor(a) (ou algum lugar que você possa confiar) e compare a soma de verificação do pacote oriunda do local não oficial com ele. Por exemplo, a soma de verificação SHA256 pode ser verificada com o comando:

Nota

Se a soma de verificação e o pacote forem transferidos a partir do mesmo local não confiável, [então] você não ganharia melhoramento de segurança averiguando o pacote com a soma de verificação. O(A) atacante pode falsear a soma de verificação assim como comprometer o próprio pacote.

sha256sum -c arquivo.sha256sum

Se o GnuPG-2.4.7 estiver instalado, [então] você também pode averiguar a genuinidade do pacote com uma assinatura GPG. Importe a chave pública GPG do(a) desenvolvedor(a) com:

gpg --recv-key ID_da_chave

ID_da_chave deveria ser substituído pelo ID da chave oriundo de algum lugar que você possa confiar (por exemplo, copie-o a partir do sítio da web oficial do(a) desenvolvedor(a) usando https). Agora, você consegue averiguar a assinatura com:

gpg --recv-key arquivo.sig arquivo

A vantagem da assinatura GnuPG é, tão logo você importou uma chave pública que possa ser confiada, você pode transferir ambos, o pacote e a assinatura dele, a partir do mesmo local não oficial e averiguá-los com a chave pública. Assim, você não precisaria conectar com o sítio da web oficial do(a) desenvolvedor(a) para ir buscar uma soma de verificação para cada lançamento novo. Você somente precisa atualizar a chave pública se ela estiver expirada ou revogada.

Criando Arquivos de Registro Durante a Instalação

Para pacotes mais largos, é conveniente se criar arquivos de registro em vez de olhar fixamente para a tela esperando pegar um erro ou aviso em particular. Os arquivos de registro também são úteis para depuração e para manter registros. O seguinte comando permite a você criar um registro da instalação. Substitua <comando> pelo comando que você pretende executar.

( <comando> 2>&1 | tee compile.log && exit $PIPESTATUS )

2>&1 redireciona as mensagens de erro para o mesmo local que a saída gerada padrão. O comando tee permite visualizar a saída gerada enquanto se registra os resultados em um arquivo. Os parênteses em volta do comando executam o comando inteiro em um sub shell; e, finalmente, o comando exit $PIPESTATUS garante que o resultado do <comando> seja retornado como o resultado e não o resultado do comando tee.

Usando Múltiplos Processadores

Para muitos sistemas modernos com múltiplos processadores (ou núcleos) o tempo de compilação para um pacote pode ser reduzido realizando-se um "make paralelo", ou configurando-se uma variável de ambiente, ou dizendo-se ao aplicativo make para simultaneamente executar múltiplas tarefas.

Por exemplo, uma CPU Intel Core i9-13900K contém 8 núcleos de desempenho (P) e 16 núcleos de eficiência (E), e os núcleos P suportam SMT (Simultaneous MultiThreading, também conhecido como Hyper-Threading), portanto cada núcleo P pode executar duas camadas simultaneamente e o núcleo Linux tratará cada núcleo P como dois núcleos lógicos. Como resultado, existem 32 núcleos lógicos no total. Para utilizar todos esses núcleos lógicos executando make, nós podemos configurar uma variável de ambiente para dizer ao make para executar 32 tarefas simultaneamente:

export MAKEFLAGS='-j32'

ou apenas construir com:

make -j32

Se você tiver aplicado o sed opcional quando da construção do ninja no LFS, [então] você pode usar:

export NINJAJOBS=32

quando um pacote usar o ninja; ou apenas:

ninja -j32

Se você não tiver certeza acerca do número de núcleos lógicos, execute o comando nproc.

Para make, o número padrão de tarefas é 1. Mas para ninja, o número padrão de tarefas é N + 2, se o número de núcleos lógicos N for maior que 2; ou N + 1 se N for 1 ou 2. A razão para usar um número de tarefas ligeiramente maior que o número de núcleos lógicos é a de manter todos os processadores lógicos ocupados, mesmo se algumas tarefas estiverem realizando operações de E/S.

Observe que as chaves -j somente limitam as tarefas paralelas iniciadas por make ou ninja, mas cada tarefa possivelmente ainda gere os próprios processos ou camadas dela. Por exemplo, alguns testes de pacotes podem gerar várias camadas para testar propriedades de segurança de camadas. Não existe uma maneira genérica de o sistema de construção saber o número de processos ou camadas gerados por uma tarefa. Portanto, geralmente nós não deveríamos considerar o valor passado com -j como um limite rígido do número de núcleos lógicos a serem usados. Leia-se “Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” se você quiser configurar tal limite tão rígido.

Geralmente o número de processos não deveria exceder muito o número de elementos de processamento suportados pela CPU. Para listar os processadores em teu sistema, emita: grep processor /proc/cpuinfo.

Em alguns casos, usar múltiplos processos possivelmente resulte em uma condição de 'corrida' onde o sucesso da construção depende da ordem dos comandos executados pelo aplicativo make. Por exemplo, se um executável precisar do Arquivo A e do Arquivo B, [então] tentar-se vincular o aplicativo antes que um dos componentes dependentes esteja disponível resultará em uma falha. Essa condição geralmente surge, pois o(a) desenvolvedor(a) do aplicativo não designou adequadamente todos os pré requisitos necessários para realizar uma etapa no Makefile.

Se isso ocorrer, a melhor maneira de se proceder é a de se voltar para uma construção de processador único. Adicionar -j1 a um comando make substituirá a configuração semelhante na variável de ambiente MAKEFLAGS.

Importante

Outro problema possivelmente ocorra com CPUs modernas, as quais tem um monte de núcleos. Cada trabalho iniciado consome memória e, se a soma da memória necessária para cada trabalho exceder da memória disponível, [então] você possivelmente encontre, ou uma interrupção de kernel Out of Memory (OOM), ou troca intensa, que retardará a construção além de limites razoáveis.

Algumas compilações com o g++ possivelmente consumam até 2,5 GB de memória, de forma que, para estar seguro(a), você deveria restringir o número de trabalhos a (Memória Total em GB)/2,5, ao menos para pacotes grandes, tais como o LLVM; o WebKitGtk; o QtWebEngine; ou o Libreoffice.

Use o Grupo de Controle do Linux para Limitar o Uso de Recursos

Às vezes queremos limitar o uso de recursos quando construímos um pacote. Por exemplo, quando temos 8 núcleos lógicos, podemos querer usar somente 6 núcleos para construir o pacote e reservar outros 2 núcleos para reproduzir um filme. O núcleo Linux fornece um recurso chamado grupos de controle (cgroup) para tal necessidade.

Habilite o grupo de controle na configuração do núcleo, em seguida reconstrua o núcleo e reinicialize se necessário:

General setup --->
  [*] Control Group support --->                                       [CGROUPS]
    [*] Memory controller                                                [MEMCG]
    [*] Cpuset controller                                              [CPUSETS]

Certifique-se de que Sudo-1.9.16p2 esteja instalado. Para executar make -j5 com os primeiros 4 núcleos lógicos e 8 GB de memória do sistema, emita:

bash -e << \EOF
  sudo mkdir /sys/fs/cgroup/$$
  sudo sh -c \
    "echo +memory +cpuset > /sys/fs/cgroup/cgroup.subtree_control"
  sudo sh -c \
    "echo 0-3 > /sys/fs/cgroup/$$/cpuset.cpus"
  sudo sh -c \
    "echo $(bc -e '8*2^30') > /sys/fs/cgroup/$$/memory.high"
  (
    sudo sh -c "echo $BASHPID > /sys/fs/cgroup/$$/cgroup.procs"
    exec make -j5
  )
  sudo rmdir /sys/fs/cgroup/$$
EOF

Com 8589934592 (a saída gerada de bc -e '8*2^30', 2^30 representa 230, ou seja, um Gigabyte) na entrada memory.high, um limite flexível de uso de memória está configurado. Se os processos no cgroup (make e todos os descendentes dele) usarem mais que 8 GB de memória do sistema no total, o núcleo irá desacelerar os processos e tentará recuperar a memória do sistema proveniente deles. Mas eles ainda podem usar mais que 8 GB de memória do sistema. Se você quiser definir um limite rígido, substitua memory.high com memory.max. Mas fazer isso causará a interrupção dos processos se 8 GB não forem suficientes para eles.

0-3 na entrada cpuset.cpus faz com que o núcleo execute somente os processos no cgroup nos núcleos lógicos com números 0, 1, 2 ou 3. Você possivelmente precise ajustar essa configuração baseada no mapeamento entre os núcleos lógicos e os núcleos físicos. Por exemplo, com uma CPU Intel Core i9-13900K, os núcleos lógicos 0, 2, 4, ..., 14 são mapeados para as primeiras camadas dos oito núcleos P físicos; os núcleos lógicos 1, 3, 5, ..., 15 são mapeados para as segundas camadas dos núcleos P físicos; e os núcleos lógicos 16, 17, ..., 31 são mapeados para os 16 núcleos E físicos. Portanto, se quisermos usar quatro camadas de quatro núcleos P, precisamos especificar 0,2,4,6 em vez de 0-3. Observe que os outros modelos de CPU podem usar um esquema de mapeamento diferente. Se você não tiver certeza acerca do mapeamento entre os núcleos lógicos e os núcleos físicos, execute o comando lscpu --extended que gerará IDs de núcleo lógico na coluna CPU e IDs de núcleo físico na coluna CORE.

Quando o comando nproc ou ninja executa em um cgroup, ele usará o número de núcleos lógicos atribuídos para o cgroup como a contagem de núcleos lógicos do sistema. Por exemplo, em um cgroup com núcleos lógicos 0-3 atribuídos, nproc imprimirá 4 e ninja executará 6 (4 + 2) tarefas simultaneamente se nenhuma configuração -j for fornecida explicitamente.

Leia-se o arquivo Documentation/admin-guide/cgroup-v2.rst na árvore do fonte do núcleo Linux para a explicação detalhada das entradas do pseudo sistema de arquivos cgroup2 referidas no comando.

Procedimentos Automatizados de Construção

Existem ocasiões onde automatizar a construção de um pacote pode vir a calhar. Todo mundo tem razões próprias para querer automatizar a construção e todo mundo faz isso de maneira própria. Criar Makefiles; scripts do Bash; scripts do Perl; ou, simplesmente, uma lista de comandos usados para recortar e colar, são apenas alguns dos métodos que você pode usar para automatizar a construção de pacotes do BLFS. Detalhar como e fornecer exemplos das muitas maneiras que você pode automatizar a construção de pacotes está além do escopo desta seção. Esta seção exporá você ao uso do redirecionamento de arquivo e do comando yes para ajudar a fornecer ideias acerca do como automatizar suas construções.

Redirecionamento de Arquivo para Automatizar a Entrada Gerada

Você achará ocasiões ao longo da sua jornada BLFS quando você se deparará com um pacote que tenha um comando solicitando informação. Essa informação poderia ser detalhes de configuração; um caminho de diretório; ou uma resposta a um acordo de licença. Isso pode apresentar um desafio para automatizar a construção desse pacote. Ocasionalmente, você será consultado(a) para diferentes informações em uma série de perguntas. Um método para automatizar esse tipo de cenário exige colocar as respostas desejadas em um arquivo e usar redirecionamento, de forma que o aplicativo use os dados no arquivo como as respostas para as perguntas.

Isso, efetivamente, faz com que a suíte de teste use as respostas no arquivo como a entrada gerada para as perguntas. Ocasionalmente você possivelmente termine fazendo um bocado de tentativa e erro para determinar o formato exato do seu arquivo de entrada gerada para algumas coisas, porém, tão logo determinado e documentado, você consegue usar isso para automatizar a construção do pacote.

Usando o yes para Automatizar a Entrada Gerada

Ocasionalmente você somente precisará fornecer uma resposta ou fornecer a mesma resposta para muitas solicitações. Para tais instâncias, o comando yes funciona realmente bem. O comando yes pode ser usado para fornecer uma resposta (a mesma) para uma ou mais instâncias de perguntas. Ele pode ser usado para simular o pressionamento apenas da tecla Enter; informar a tecla Y; ou informar uma sequência de caracteres de texto. Talvez a maneira mais fácil de mostrar o uso dele é em um exemplo.

Primeiro, crie um script curto do Bash informando os seguintes comandos:

cat > blfs-yes-test1 << "EOF"
#!/bin/bash

echo -n -e "\n\nPor favor, digite algo (ou nada) e pressione Enter ---> "

read A_STRING

if test "$A_STRING" = ""; then A_STRING="Apenas a tecla Enter foi pressionada"
else A_STRING="Você informou '$A_STRING'"
fi

echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test1

Agora execute o script emitindo ./blfs-yes-test1 a partir da linha de comando. Ele aguardará por uma resposta, que pode ser algo (ou nada) seguida pela tecla Enter. Depois de informar alguma coisa, o resultado será ecoado para a tela. Agora use o comando yes para automatizar a entrada de uma resposta:

yes | ./blfs-yes-test1

Perceba que canalizar o próprio yes para o script resulta em y sendo passada para o script. Agora tente com uma sequência de caracteres de texto:

yes 'Este é algum texto' | ./blfs-yes-test1

A sequência exata de caracteres foi usada como a resposta para o script. Finalmente, tente usando uma sequência de caracteres vazia (nula):

yes '' | ./blfs-yes-test1

Perceba que isso resulta na passagem apenas do pressionamento da tecla Enter para o script. Isso é útil para ocasiões quando a resposta padrão para a solicitação for suficiente. Essa sintaxe é usada nas instruções do Net-tools para aceitar todos os padrões para as muitas solicitações durante a etapa de configuração. Você possivelmente agora remova o script de teste, se desejado.

Redirecionamento de Arquivo para Automatizar a Saída Gerada

Para a finalidade de automatizar a construção de alguns pacotes, especialmente aqueles que exigem que você leia um acordo de licença em uma página por vez, exige-se usar um método que evite ter que pressionar uma tecla para exibir cada página. Redirecionar a saída gerada para um arquivo pode ser usado nessas instâncias para auxiliar com a automação. A seção anterior nesta página tocou na criação de arquivos de registro da saída gerada da construção. O método de redirecionamento mostrado lá usou o comando tee para redirecionar a saída gerada para um arquivo enquanto também exibia a saída gerada na tela. Aqui, a saída gerada somente será enviada para um arquivo.

Novamente, a maneira mais fácil para demonstrar a técnica é de mostrar um exemplo. Primeiro, emita o comando:

ls -l /usr/bin | less

Certamente, você será exigido(a) a visualizar a saída gerada uma página por vez, pois o filtro less foi usado. Agora tente o mesmo comando, porém, dessa vez, redirecione a saída gerada para um arquivo. O arquivo especial /dev/null pode ser usado em vez do nome de arquivo mostrado, porém você não terá arquivo de registro para examinar:

ls -l /usr/bin | less > redirect_test.log 2>&1

Perceba que, dessa vez, o comando imediatamente retornou ao prompt do shell sem ter que paginar ao longo da saída gerada. Você agora possivelmente remova o arquivo de registro.

O último exemplo usará o comando yes em combinação com o redirecionamento da saída gerada para desviar-se de ter que paginar ao longo da saída gerada e, então, fornecerá um y para uma solicitação. Essa técnica poderia ser usada em instâncias quando, de outra maneira, você teria que paginar ao longo da saída gerada de um arquivo (como um acordo de licença) e, então, responder à pergunta de você aceita o acima?. Para esse exemplo, outro conjunto curto de comandos sequenciais do Bash é exigido:

cat > blfs-yes-test2 << "EOF"
#!/bin/bash

ls -l /usr/bin | less

echo -n -e "\n\nVocê curtiu ler isso? (y,n) "

read A_STRING

if test "$A_STRING" = "y"; then A_STRING="Você informou a tecla 'y'"
else A_STRING="Você NÃO informou a tecla 'y'"
fi

echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test2

Esse script pode ser usado para simular um aplicativo que exige que você leia um acordo de licença, então responda apropriadamente que aceita o acordo antes do aplicativo instalar qualquer coisa. Primeiro, execute o script sem quaisquer técnicas de automação emitindo ./blfs-yes-test2.

Agora emita o seguinte comando que usa duas técnicas de automação, tornando-o adequado para uso em um script automatizado de construção:

yes | ./blfs-yes-test2 > blfs-yes-test2.log 2>&1

Se desejado, emita tail blfs-yes-test2.log para ver o final da saída gerada paginada e a confirmação de que y foi passada ao longo para o script. Tão logo satisfeito que ele funciona como deveria, você possivelmente remova o script e o arquivo de registro.

Finalmente, tenha em mente que existem muitas maneiras de automatizar e (ou) roteirizar os comandos de construção. Não existe maneira única correta para fazê-lo. Sua imaginação é o único limite.

Dependências

Para cada pacote descrito, o BLFS lista as dependências conhecidas. Essas são listadas sob vários títulos, cujo significado é como segue:

  • Exigida significa que o pacote alvo não pode ser construído corretamente sem que a dependência tenha sido instalada primeiro, exceto se a dependência for considerada de tempo de execução, o que significa que o pacote alvo pode ser construído, mas não pode funcionar sem ela.

    Observe que um pacote alvo pode começar a funcionar de muitas maneiras sutis: um arquivo de configuração instalado pode fazer o sistema init, o processo de segundo plano cron ou o processo de segundo plano de barramento executar um aplicativo automaticamente; outro pacote usando o pacote alvo como dependência pode executar um aplicativo oriundo do pacote alvo no sistema de construção; e as seções de configuração no livro BLFS também podem executar um aplicativo a partir de um pacote recém-instalado. Portanto, se estiver instalando o pacote alvo sem uma dependência Exigida (tempo de execução) instalada, você deveria instalar a dependência o mais rápido possível depois da instalação do pacote alvo.

  • Recomendada significa que o BLFS sugere fortemente que esse pacote seja instalado primeiro (exceto se for dito ser tempo de execução, veja-se abaixo) para uma construção limpa e sem problemas, que não terá problemas nem durante o processo de construção nem em tempo de execução. As instruções no livro pressupõem que esses pacotes estejam instalados. Em muitos casos, se uma dependência recomendada (não apenas tempo de execução) não estiver instalada, o pacote construído pode carecer algumas funcionalidades importantes (por exemplo, um reprodutor de vídeo pode reproduzir somente áudio). Às vezes, é necessário modificar as instruções do livro para desabilitar essas funcionalidades importantes. Em outros casos, o sistema de construção do pacote pode construir uma cópia da dependência (frequentemente desatualizada e às vezes com vulnerabilidades conhecidas de segurança) enviada na árvore do fonte ou pode ser baixada da a partir da Internet durante o processo de construção. Isso aumenta o tempo de construção e o uso do disco. Isso poderia causar outros problemas. Se uma dependência recomendada for tempo de execução, isso significa que o BLFS sugere fortemente que essa dependência seja instalada antes de usar o pacote, para obter funcionalidade completa.

  • Opcional significa que esse pacote pode ser instalado para funcionalidade adicional. Frequentemente, o BLFS descreverá a dependência para explicar a funcionalidade adicional que resultará. Algumas dependências opcionais são automaticamente selecionadas pelo pacote alvo se a dependência estiver instalada, enquanto outras também precisam de opções de configuração adicionais para serem habilitadas quando o pacote alvo for construído. Essas opções adicionais frequentemente estão documentadas no livro BLFS. Se uma dependência opcional for dita como tempo de execução, significa que você pode instalar a dependência depois de instalar o pacote alvo para suportar alguns recursos opcionais do pacote alvo se precisar desses recursos.

    Uma dependência opcional pode estar fora do BLFS. Se você precisar de uma tal dependência opcional externa para alguns recursos necessários, leia Indo Além do BLFS para as dicas gerais acerca de instalar um pacote fora do BLFS.

Usando os Fontes Mais Atuais de Pacote

Ocasionalmente você possivelmente se encontre em uma situação no livro onde um pacote não construirá ou não funcionará adequadamente. Apesar dos(as) Editores(as) tentarem garantir que cada pacote no livro construa e funcione adequadamente, ocasionalmente um pacote tenha sido negligenciado ou não foi testado com esta versão particular do BLFS.

Se você descobrir que um pacote não construirá ou não funcionará adequadamente, [então] você deveria ver se existe uma versão mais recente do pacote. Tipicamente isso significa você ir ao sítio da web do(a) mantenedor(a) e transferir o tarball mais recente e tentar construir o pacote. Se você não conseguir determinar o sítio da web do(a) mantenedor(a) olhando para os URLs de transferência, [então] use o Google e consulte o nome do pacote. Por exemplo, na barra de pesquisa do Google, digite: 'nome_do_pacote download' (omita as aspas) ou algo semelhante. Ocasionalmente, digitar: 'nome_do_pacote home page' resultará em você encontrar o sítio da web do(a) mantenedor(a).

Despojando Mais Uma Vez

No LFS, a remoção de símbolos de depuração e entradas desnecessárias na tabela de símbolos foi discutida algumas vezes. Ao construir pacotes BLFS, geralmente não existem instruções especiais que discutam a remoção novamente. A remoção pode ser feita durante a instalação de um pacote ou posteriormente.

Despojando enquanto se Instala um Pacote

Existem várias maneiras de se despojar executáveis instalados por um pacote. Elas dependem do sistema de construção usado (veja-se abaixo a seção acerca de sistemas de construção), de modo que somente algumas generalidades podem ser listadas aqui:

Nota

Os métodos a seguir que usam o recurso de um sistema de construção ("autotools", "meson" ou "cmake") não despojarão bibliotecas estáticas, se alguma estiver instalada. Felizmente não existem muitas bibliotecas estáticas no BLFS, e uma biblioteca estática sempre pode ser despojada com segurança executando strip --strip-unneeded nela manualmente.

  • Os pacotes que usam "Autotools" geralmente tem um alvo install-strip nos arquivos Makefile gerados deles. Portanto, instalar executáveis despojados é apenas uma questão de usar make install-strip em vez de make install.

  • Os pacotes que usam o sistema de construção do meson conseguem aceitar -D strip=true ao executar meson. Se tiver esquecido de adicionar essa opção executando o meson, você também consegue executar meson install --strip em vez de ninja install.

  • cmake gera alvos install/strip para ambos os geradores Unix Makefiles e Ninja (o padrão é Unix Makefiles no Linux). Portanto, basta executar make install/strip ou ninja install/strip em vez das contrapartes install.

  • A remoção (ou não geração) de símbolos de depuração também consegue ser obtida removendo-se as opções -g<alguma_coisa> em chamadas "C/C++". Como fazer isso é muito específico para cada pacote. E não remove entradas desnecessárias da tabela de símbolos. Portanto, não será explicado em detalhes aqui. Veja-se também abaixo os parágrafos acerca de otimização.

Despojando Executáveis Instalados

O utilitário strip muda arquivos no local, o que possivelmente quebre alguma coisa que os usem se estiverem carregados na memória. Observe que se um arquivo estiver em uso, mas recém removido do disco (ou seja, não sobrescrito nem modificado), isso não será um problema, pois o núcleo consegue usar arquivos deletados. Veja-se /proc/*/maps e é provável que você veja algumas entradas (deleted). O mv apenas remove o arquivo de destino a partir do diretório, mas não toca no conteúdo dele, de modo que satisfaça a condição para o núcleo usar o arquivo antigo (deletado). Porém, essa abordagem pode desanexar links rígidos em cópias duplicadas, causando um inchaço que, obviamente, é indesejado, pois estamos despojando para reduzir o tamanho do sistema. Se dois arquivos em um mesmo sistema de arquivos compartilharem o mesmo número de inode, eles serão links rígidos entre eles e deveríamos reconstruir o link. O conjunto de comandos sequenciais abaixo é apenas um exemplo. Ele deveria ser executado como o(a) usuário(a) root:

cat > /usr/sbin/strip-all.sh << "EOF"
#!/usr/bin/bash

if [ $EUID -ne 0 ]; then
  echo "Precisa ser root"
  exit 1
fi

last_fs_inode=
last_file=

{ find /usr/lib -type f -name '*.so*' ! -name '*dbg'
  find /usr/lib -type f -name '*.a'
  find /usr/{bin,sbin,libexec} -type f
} | xargs stat -c '%m %i %n' | sort | while read fs inode file; do
       if ! readelf -h $file >/dev/null 2>&1; then continue; fi
       if file $file | grep --quiet --invert-match 'not stripped'; then continue; fi

       if [ "$fs $inode" = "$last_fs_inode" ]; then
         ln -f $last_file $file;
         continue;
       fi

       cp --preserve $file    ${file}.tmp
       strip --strip-unneeded ${file}.tmp
       mv ${file}.tmp $file

       last_fs_inode="$fs $inode"
       last_file=$file
done
EOF
chmod 744 /usr/sbin/strip-all.sh

Se você instalar aplicativos em outros diretórios, como /opt ou /usr/local, você possivelmente queira despojar os arquivos lá também . Basta adicionar outros diretórios a escanear na lista composta de comandos find entre chaves.

Para mais informações acerca de despojamento, veja-se https://www.technovelty.org/linux/stripping-shared-libraries.html.

Trabalhando com diferentes sistemas de construção

Existem, agora, três sistemas de construção em uso comum para converter código fonte C ou C++ em aplicativos ou bibliotecas compilados e os detalhes deles (particularmente, descobrir acerca de opções disponíveis e os valores padrão delas) diferem. Possivelmente seja mais fácil entender os problemas causados por algumas escolhas (tipicamente, execução lenta; ou uso inesperado de, ou omissão de, otimizações) iniciando-se com as variáveis de ambiente CFLAGS, CXXFLAGS e LDFLAGS. Também existem alguns aplicativos que usam Rust.

A maioria dos(as) construtores(as) do LFS e do BLFS provavelmente está ciente dos básicos de CFLAGS e CXXFLAGS para alterar como um aplicativo é compilado. Tipicamente, alguma forma de otimização é usada pelos(as) desenvolvedores(as) de aplicativos (-O2 ou -O3), ocasionalmente com a criação de símbolos de depuração (-g), como padrões.

Se existirem sinalizadores contraditórios (por exemplo, múltiplos valores -O), o último valor será usado. Ocasionalmente, isso significa que os sinalizadores especificados em variáveis de ambiente serão escolhidos antes dos valores codificados rigidamente no Makefile, e, portanto, ignorados. Por exemplo, onde um(a) usuário(a) especificar -O2 e isso for seguido por -O3, a construção usará -O3.

Existem várias outras coisas que podem ser passadas em CFLAGS ou em CXXFLAGS, tais como permitir-se usar as extensões de conjunto de instruções disponíveis com uma microarquitetura específica (por exemplo, -march=amdfam10 ou -march=native) ajustar o código gerado para uma microarquitetura específica (por exemplo, -mtune=tigerlake ou -mtune=native; se -mtune= não for usada, a microarquitetura oriunda da configuração -march= será usada) ou especificar-se um padrão específico para C ou C++ (-std=c++17, por exemplo). Porém, uma coisa que agora veio à tona é que os(as) programadores(as) poderiam incluir asserções de depuração no código deles(as), esperando que sejam desabilitadas em lançamentos usando-se -D NDEBUG. Especificamente, se o Mesa-24.3.4 for construído com essas asserções habilitadas, algumas atividades, tais como o carregamento de níveis dos jogos, podem tomar tempos extremamente longos, mesmo em placas de vídeo de alta qualidade.

Autotools com Make

Essa combinação frequentemente é descrita como CMMI (configure; make; make install) e é usada aqui também para cobrir os poucos pacotes que tenham um conjunto de comandos sequenciais de configuração que não seja gerado por autotools.

Ocasionalmente, executar-se ./configure --help produzirá opções úteis acerca de chaves que poderiam ser usadas. Em outras ocasiões, depois de olhar para a saída gerada a partir do configure, você possivelmente precise olhar para os detalhes do script para descobrir pelo que ele estava procurando atualmente.

Muitos scripts de configuração escolherão quaisquer CFLAGS ou CXXFLAGS a partir do ambiente, porém os pacotes CMMI variam acerca do como esses serão misturados com quaisquer sinalizadores que, de outra maneira, seriam usados (variadamente: ignorados; usados para substituir a sugestão do(a) programador(a); usados antes da sugestão do(a) programador(a); ou usados depois da sugestão do(a) programador(a)).

Na maioria dos pacotes CMMI, executar-se make listará cada comando e o executará, intercalado com quaisquer avisos. Porém, alguns pacotes tentam ser silenciosos e mostram somente qual arquivo eles estão compilando ou vinculando em vez de mostrar a linha de comando. Se você precisar inspecionar o comando, seja por causa de um erro, seja apenas para ver quais opções e sinalizadores estão sendo usados, adicionar V=1 à invocação do make possivelmente ajude.

CMake

O CMake funciona de uma maneira muito diferente e ele tem duas estruturas de retaguarda que conseguem ser usadas no BLFS: make e ninja. A estrutura de retaguarda padrão é o make, porém o ninja pode ser mais rápido sobre pacotes grandes com múltiplos processadores. Para usar o ninja, especifique -G Ninja no comando cmake. Entretanto, existem alguns pacotes que criam erros fatais nos arquivos ninja deles, porém constroem com sucesso usando o padrão dos Makefiles do Unix.

A parte mais difícil do usar-se o CMake é saber quais opções você poderia desejar especificar. A única maneira de se obter uma lista do que o pacote conhece é a de executar cmake -LAH e olhar para a saída gerada para esta configuração padrão.

Talvez a coisa mais importante acerca do CMake é que ele tem uma variedade de valores CMAKE_BUILD_TYPE e esses afetam os sinalizadores. O padrão é o de que isso não seja configurado e nenhum sinalizador seja gerado. Quaisquer CFLAGS ou CXXFLAGS no ambiente serão usadas. Se o(a) programador(a) tiver codificado quaisquer asserções de depuração, essas estarão habilitadas, a menos que -D NDEBUG seja usado. Os seguintes valores CMAKE_BUILD_TYPE gerarão os sinalizadores mostrados e esses virão depois de quaisquer sinalizadores no ambiente e, portanto, terão precedência.

Valor Sinalizadores
Debug -g
Release -O3 -D NDEBUG
RelWithDebInfo -O2 -g -D NDEBUG
MinSizeRel -Os -D NDEBUG

O "CMake" tenta produzir construções silenciosas. Para ver os detalhes dos comandos que estão sendo executados, use make VERBOSE=1 ou ninja -v.

Por padrão, o "CMake" trata a instalação de arquivos diferentemente dos outros sistemas de construção: se um arquivo já existir e não for mais recente que um arquivo que o sobrescreveria, então o arquivo não será instalado. Isso possivelmente seja um problema se um(a) usuário(a) quiser registrar qual arquivo pertence a um pacote, seja usando LD_PRELOAD, ou listando arquivos mais recentes que um carimbo de tempo. O padrão pode ser mudado definindo-se a variável CMAKE_INSTALL_ALWAYS como um ("1") no ambiente, por exemplo, via export.

Meson

O Meson tem algumas semelhanças com o CMake, porém muitas diferenças. Para obter os detalhes das definições que você possivelmente queira mudar, você pode olhar para o meson_options.txt que normalmente está no diretório de nível de topo.

Se você já configurou o pacote executando o meson e, agora, deseja mudar uma ou mais configurações, [então] você ou pode remover o diretório de construção, recriá-lo e usar as opções alteradas; ou, dentro do diretório de construção, executar meson configure, por exemplo, para configurar uma opção:

meson configure -D <some_option>=true

Se você fizer isso, [então] o arquivo meson-private/cmd_line.txt mostrará os últimos comandos que foram usados.

O Meson fornece os seguintes valores de tipo de construção e os sinalizadores que eles habilitam vem depois de quaisquer sinalizadores fornecidos no ambiente e, portanto, tem precedência.

  • simples: nenhum sinalizador adicionado. Isso é para os(as) distribuidores(as) fornecerem os próprios CFLAGS, CXXFLAGS e LDFLAGS deles(as). Não existe razão óbvia para usar isso no BLFS.

  • depuração: -g - isso é o padrão, se nada for especificado, seja no meson.build, seja na linha de comando. Entretanto, resulta em binários grandes e lentos, de forma que nós deveríamos substitui-lo no BLFS.

  • depuração otimizada: -O2 -g : isso é o padrão, especificado no meson.build, de alguns pacotes.

  • lançamento: -O3 (ocasionalmente um pacote forçará -O2 aqui) - esse é o tipo de construção que usamos para a maioria dos pacotes com sistema de construção Meson no BLFS.

O sinalizador -D NDEBUG está implícito pelo tipo de construção de lançamento para alguns pacotes (por exemplo Mesa-24.3.4). Também pode ser fornecido explicitamente passando-se -D b_ndebug=true.

Para ver os detalhes dos comandos que estão sendo executados em um pacote usando o meson, use ninja -v.

Rustc e Cargo

A maioria dos aplicativos rustc lançados é fornecida como engradado (tarballs de fonte), que consultarão um servidor para verificar as versões atuais de dependências e, então, as baixarão conforme necessário. Esses pacotes são construídos usando-se cargo --release. Na teoria, você consegue manipular a RUSTFLAGS para mudar o nível de otimização (padrão para --release é 3, isto é, -Copt-level=3, semelhante a -03) ou para forçá-lo a construir para a máquina na qual está sendo compilado, usando -Ctarget-cpu=native; porém, na prática, isso parece não fazer uma diferença significante.

Se você estiver compilando um programa Rust independente (como um arquivo .rs desempacotado) executando rustc diretamente, você deveria especificar -O (a abreviatura de -Copt-level=2) ou -Copt-level=3, caso contrário ele fará uma compilação não otimizada e executará muito mais lento. Se estiver compilando o programa para depurá-lo, substitua as opções -O ou -Copt-level= por -g para produzir um programa não otimizado com informações de depuração.

Semelhante ao ninja, por padrão cargo usa todos os núcleos lógicos. Isso frequentemente pode ser contornado, seja exportando-se CARGO_BUILD_JOBS=<N> seja passando-se --jobs <N> para cargo. Para compilar o próprio rustc, especificar-se --jobs <N> para invocações do x.py (juntamente com a variável de ambiente CARGO_BUILD_JOBS=, que se parece com uma abordagem cinto e suspensórios, porém parece ser necessária) funciona na maioria. A exceção é a de executar-se os testes quando construir-se o rustc; alguns deles, ainda assim, usarão todas as CPUs online, pelo menos desde o rustc-1.42.0.

Otimizando a construção

Muitas pessoas preferirão otimizar compilações como acharem melhor, fornecendo CFLAGS ou CXXFLAGS. Para uma introdução às opções disponíveis com o gcc e com o g++, veja-se https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Optimize-Options.html. O mesmo conteúdo também pode ser encontrado em info gcc.

Alguns pacotes são padronizados como -O2 -g, outros como -O3 -g, e se CFLAGS ou CXXFLAGS forem fornecidas, elas podem ser adicionadas aos padrões do pacote, substituir os padrões do pacote ou até mesmo serem ignoradas. Existem detalhes acerca de alguns pacotes de área de trabalho que estavam mais atualizados em abril de 2019 em https://www.linuxfromscratch.org/~ken/tuning/ - em particular, README.txt, tuning-1-packages-and-notes.txt e tuning-notes-2B.txt. A coisa específica a lembrar é que se quiser experimentar alguns dos sinalizadores mais interessantes, você possivelmente precise forçar construções detalhadas para confirmar o que está sendo usado.

Claramente, se estiver otimizando teu próprio aplicativo, você pode gastar tempo para perfilá-lo e, talvez, recodificar algo dele, se ele estiver lento demais. Porém, para construir um sistema inteiro, essa abordagem é impraticável. No geral, -O3 geralmente produz aplicativos mais rápidos que -O2. Especificar-se -march=native também é benéfico, porém significa que você não pode mover os binários para uma máquina incompatível - isso também pode se aplicar a máquinas mais novas, não apenas às máquinas mais antigas. Por exemplo, os aplicativos compilados para amdfam10 executam em Phenoms antigos; Kaveris; e Ryzens; porém, os aplicativos compilados para um Kaveri não executarão em um Ryzen, pois certos códigos de operação não estão presentes. Similarmente, se você construir para um Haswell, nem tudo executará em um SandyBridge.

Nota

Atente-se que o nome de uma configuração -march nem sempre corresponde à linha de base da microarquitetura com o mesmo nome. Por exemplo, os processadores Intel Celeron baseados em Skylake não suportam AVX, mas -march=skylake assume AVX e até mesmo AVX2.

Quando uma biblioteca compartilhada é construída pelo GCC, um recurso chamado interposição semântica é habilitado por padrão. Quando a biblioteca compartilhada se refere a um nome de símbolo com ligação externa e visibilidade padrão, se o símbolo existir tanto na biblioteca compartilhada quanto no executável principal, a interposição semântica garante que o símbolo no executável principal sempre seja usado. Esse recurso foi inventado na tentativa de tornar o comportamento de vincular uma biblioteca compartilhada e vincular uma biblioteca estática o mais semelhante possível. Hoje, somente um pequeno número de pacotes ainda depende da interposição semântica, mas o recurso ainda está ativado por padrão do GCC, fazendo com que muitas otimizações sejam desabilitadas para bibliotecas compartilhadas porque entram em conflito com a interposição semântica. A opção -fno-semantic-interposition pode ser passada para gcc ou g++ para desabilitar a interposição semântica e habilitar mais otimizações para bibliotecas compartilhadas. Essa opção é usada como padrão de alguns pacotes (por exemplo Python-3.13.2) e também é o padrão do Clang.

Existem também várias outras opções que algumas pessoas alegam que são benéficas. Na pior das hipóteses, você consegue recompilar e testar e, então, descobrir que, em seu uso, as opções não fornecem um benefício.

Se construir módulos Perl ou Python, em geral as CFLAGS e CXXFLAGS usadas são aquelas que foram usadas por esses pacotes ancestrais.

Para LDFLAGS, três opções podem ser usadas para otimização. Elas são bastante seguras de usar e o sistema de construção de alguns pacotes usa algumas dessas opções como padrão.

Com -Wl,-O1, o vinculador otimizará a tabela de resumo para acelerar a vinculação dinâmica. Observe que -Wl,-O1 não tem nenhuma relação com o sinalizador de otimização do compilador -O1.

Com -Wl,--as-needed, o vinculador desconsiderará opções -lfoo desnecessárias da linha de comando, ou seja, a biblioteca compartilhada libfoo só será vinculada se um símbolo em libfoo realmente estiver referenciado pelo executável ou biblioteca compartilhada sendo vinculado. Às vezes, isso pode atenuar os problemas de dependências excessivas de bibliotecas compartilhadas causados pela libtool.

Com -Wl,-z,pack-relative-relocs, o vinculador gera uma forma mais compactada das entradas relativas de realocação para PIEs e bibliotecas compartilhadas. Ele reduz o tamanho do PIE vinculado ou da biblioteca compartilhada e acelera o carregamento do PIE ou da biblioteca compartilhada.

O prefixo -Wl, é necessário porque, apesar da variável ser chamada LDFLAGS, o conteúdo dela é na verdade passado para o gcc (ou g++, clang, etc.) durante o estágio de ligação, não passado diretamente para o ld.

Opções para fortalecer a construção

Mesmo em sistemas de área de trabalho, existe ainda um monte de vulnerabilidades exploráveis. Para muitas dessas, o ataque vem via javascript em um navegador. Frequentemente, uma série de vulnerabilidades é usada para ganhar acesso a dados (ou, às vezes, para pwn, isto é, dominar, a máquina e instalar rootkits). A maioria das distribuições comerciais aplicará várias medidas de fortalecimento.

No passado, existia o LFS Reforçado, onde o gcc (uma versão muito mais antiga) era forçado a usar o reforçamento (com opções para desativar parte dele na base do por pacote). Os livros atuais do LFS e BLFS estão levando adiante uma parte do espírito dele ao habilitar PIE (-fPIE -pie) e SSP (-fstack-protector-strong) como padrões para GCC e clang. E o lincador (ld) também habilitou -Wl,-z,relro, o que torna uma parte da Global Offset Table (GOT) imutável, por padrão desde Binutils 2.27. O que está sendo coberto aqui é diferente - primeiro você tem que ter certeza de que o pacote está realmente usando teus sinalizadores adicionados e não os substituindo.

Para opções de reforço que são razoavelmente baratas, existe alguma discussão no link "ajuste" acima (ocasionalmente, uma ou mais dessas opções podem ser inadequadas para um pacote). Essas opções são -D _FORTIFY_SOURCE=2 (ou -D _FORTIFY_SOURCE=3 que é mais seguro, mas com maior sobrecarga de desempenho) e (para C++) -D _GLIBCXX_ASSERTIONS. Nas máquinas modernas, isso deveria ter somente um pequeno impacto na rapidez com que as coisas executam e, muitas vezes, não serão perceptíveis.

As principais distribuições usam muito mais, como:

  • -Wl,-z,now: desabilita vinculação preguiçosa para aprimorar -Wl,-z,relro, de forma que todo o GOT possa se tornar imutável.

  • -fstack-clash-protection: impede o(a) atacante de usar um deslocamento grande o suficiente e não verificado adequadamente para pular a página de proteção de pilha colocada pelo núcleo e o canário de pilha colocado por -fstack-protector=strong, e modificar a pilha a partir de um endereço de pilha, ou vice-versa.

  • -ftrivial-auto-var-init=zero: inicializa algumas variáveis preenchendo zero bytes se elas não forem inicializadas por outros meios.

  • -fcf-protection=full: utiliza a tecnologia CET da Intel e da AMD para limitar os endereços alvo das instruções de transferência de fluxo de controle. Para torná-lo realmente eficaz para um pacote, todos os pacotes que fornecem uma biblioteca compartilhada para o pacote usar precisam ser construídos com essa opção, bem como o próprio pacote, a Glibc precisa ser configurada com a opção --enable-cet habilitada, e o sistema precisa executar no Intel Tiger Lake ou mais recente, ou no AMD Zen 3 ou mais recente. Se o critério não for atendido, o programa compilado com essa opção ainda executará, mas não realmente protegido pelo CET.

No GCC 14, a opção -fhardened é uma abreviação para habilitar todas as opções de reforçamento mencionadas acima. Ela configura -D _FORTIFY_SOURCE=3 em vez de -D _FORTIFY_SOURCE=2.

Você também pode encontrar o assim chamado retpoline de espaço de usuário(a) (-mindirect-branch=thunk etc.), que é o equivalente das mitigações de espectro aplicadas para o núcleo Linux no final de 2018. As mitigações do núcleo causaram muitas reclamações acerca da perda de desempenho. Se tiver um servidor de produção, você pode desejar considerar testar isso, junto com as outras opções disponíveis, para ver se o desempenho ainda é suficiente.

Embora o gcc tenha muitas opções de fortalecimento, os pontos fortes do clang/LLVM estão em outro lugar. Algumas opções que o gcc fornece são ditas serem menos efetivas no clang/LLVM.

O Debate /usr Versus /usr/local

Eu deveria instalar XXX em /usr ou em /usr/local?

Essa é uma pergunta sem uma resposta óbvia para um sistema baseado no LFS.

Em sistemas tradicionais Unix, /usr geralmente contém arquivos que vem com a distribuição do sistema e a árvore /usr/local está livre para o(a) administrador(a) local gerenciar. A única regra realmente rígida e rápida é a de que as distribuições do Unix não deveriam tocar no /usr/local, exceto, talvez, para criar os diretórios básicos dentro dele.

Com distribuições Linux, tais como Red Hat, Debian, etc., uma possível regra é a de que o /usr é gerenciado pelo sistema de pacote da distribuição e o /usr/local não o é. Dessa maneira, a base de dados do gerenciador de pacote sabe acerca de cada arquivo dentro do /usr.

Os(As) usuários(as) do LFS constroem o próprio sistema deles(as) e, portanto, decidir onde o sistema termina e os arquivos locais começam não é simples. Por isso, a escolha deveria ser feita para a finalidade de tornar as coisas mais fáceis de administrar. Existem várias razões para dividir os arquivos entre o /usr e o /usr/local.

  • Em uma rede de comunicação de várias máquinas, todas executando o LFS; ou misturadas, o LFS e outras distribuições Linux, o /usr/local poderia ser usado para manter os pacotes que fossem comuns entre todos os computadores na rede de comunicação. Ele pode ser montado NFS ou espelhado a partir de um servidor. Aqui, local indica local para o sítio.

  • Em uma rede de comunicação de vários computadores, todos executando um sistema idêntico LFS, /usr/local poderia manter os pacotes que fossem diferentes entre as máquinas. Nesse caso, local se refere aos computadores individuais.

  • Mesmo em um computador, o /usr/local pode ser útil se você tiver várias distribuições instaladas simultaneamente e queira um local para colocar os pacotes que serão os mesmos em todas elas.

  • Ou você poderia reconstruir regularmente o seu LFS, porém quer um local para colocar os arquivos que você não quer reconstruir a cada vez. Dessa maneira você pode limpar o sistema de arquivos do LFS e iniciar a partir de uma partição limpa a cada vez sem perder tudo.

Algumas pessoas perguntam por que não usar sua própria árvore de diretório, por exemplo, /usr/site, em vez de /usr/local?

Não existe nada parando você; muitos sítios fazem as próprias árvores deles; entretanto, isso torna a instalação de software novo mais dificultosa. Os instaladores automáticos, frequentemente, procuram por dependências no /usr e no /usr/local e, se o arquivo que eles estiverem procurando estiver no /usr/site ao invés, [então] o instalador provavelmente falhará, a menos que você, especificamente, diga a ele onde procurar.

Qual é a posição do BLFS a respeito?

Todas as instruções do BLFS instalam os aplicativos no /usr, com instruções opcionais para instalar no /opt para alguns pacotes específicos.

Remendos Opcionais

Conforme seguir as várias seções no livro, você observará que o livro, ocasionalmente, inclui remendos que são exigidos para uma instalação exitosa e segura dos pacotes. A política geral do livro é a de incluir remendos que caiam em um dos seguintes critérios:

  • Corrige um problema de compilação.

  • Corrige um problema de segurança.

  • Corrige uma funcionalidade quebrada.

Resumindo, o livro inclui somente os remendos que sejam ou exigidos ou recomendados. Existe um Sub projeto dos Remendos que hospeda vários remendos (incluindo os remendos referenciados nos livros) para te habilitar a configurar o seu LFS da maneira que você gostar.

Conjuntos de Comandos Sequenciais de Inicialização do BLFS

O pacote BLFS Bootscripts contém os conjuntos de comandos sequenciais de inicialização que são usados ao longo do livro. É presumido que você estará usando o pacote BLFS Bootscripts conjuntamente com um pacote compatível LFS-Bootscripts. Consulte ../../../../lfs/view/12.3/chapter09/bootscripts.html para mais informação acerca do pacote LFS-Bootscripts.

O pacote BLFS Bootscripts será usado ao longo do livro BLFS para conjuntos de comandos sequenciais de inicialização. Diferente do LFS, cada conjunto de comandos sequenciais de inicialização tem um alvo de instalação separado no pacote BLFS Bootscripts. É recomendado que você mantenha o diretório do fonte do pacote por perto até completar o teu sistema BLFS. Quando um conjunto de comandos sequenciais for solicitado a partir do BLFS Bootscripts, simplesmente mude para o diretório e, como o(a) usuário(a) root, execute o dado comando make install-<conjunto-comandos-sequenciais-inicialização>. Esse comando instala o conjunto de comandos sequenciais de inicialização no local apropriado dele (junto com quaisquer conjuntos de comandos sequenciais de configuração auxiliares) e, também, cria os links simbólicos adequados para iniciar e parar o serviço no nível de execução adequado.

Nota

Você deveria revisar cada conjunto de comandos sequenciais de inicialização antes da instalação para verificar se ele atende à tua necessidade. Verifique também se os links simbólicos de iniciar e de parar que ele cria correspondem às tuas preferências.

Nota

De tempos em tempos, os conjuntos de comandos sequenciais de inicialização são atualizados para acomodar pacotes novos ou para se fazer pequenas correções. Todas as versões dos conjuntos de comandos sequenciais de inicialização estão localizadas em https://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/.

Acerca dos arquivos de Arquivamento do Libtool (.la)

Arquivos com uma extensão .la

No LFS e no BLFS, muitos pacotes usam uma cópia da libtool enviada internamente para construir em uma variedade de plataformas Unix. Isso inclui plataformas como AIX, Solaris, IRIX, HP-UX e Cygwin, bem como Linux. As origens dessa ferramenta são bastante antigas. Ela era destinada gerenciar bibliotecas em sistemas com capacidades menos avançadas que um sistema Linux moderno.

Em um sistema Linux, os arquivos específicos da "libtool" geralmente são desnecessários. Normalmente as bibliotecas são especificadas no processo de construção durante a fase de ligação. Como um sistema Linux usa o Executable and Linkable Format (ELF) para executáveis e bibliotecas dinâmicas, as informações necessárias para concluir a tarefa são embutidas nos arquivos. Tanto o vinculador quanto o carregador de aplicativos podem consultar os arquivos apropriados e vincular ou executar o aplicativo adequadamente.

Bibliotecas estáticas raramente são usadas no LFS e no BLFS. E hoje em dia a maioria dos pacotes armazena as informações necessárias para vincular a uma biblioteca estática em um arquivo ".pc", em vez de depender da "libtool". Um comando pkg-config --static --libs gerará os sinalizadores suficientes para o vinculador para vincular-se a uma biblioteca estática sem qualquer mágica da "libtool".

O problema é que a "libtool" geralmente cria um ou mais arquivos de texto para bibliotecas de pacotes, chamados arquivamentos "libtool". Esses pequenos arquivos tem uma extensão ".la" e contém informações semelhantes àquelas embutidas nas bibliotecas ou nos arquivos "pkg-config". Ao construir um pacote que usa "libtool", o processo procura automaticamente por esses arquivos. Às vezes, um arquivo ".la" pode conter o nome ou caminho de uma biblioteca estática usada durante a construção, mas não instalada, então o processo de construção será interrompido porque o arquivo ".la" se refere a algo inexistente no sistema. Da mesma forma, se um pacote for atualizado e não mais usar o arquivo ".la", então o processo de construção poderá quebrar com os arquivos ".la" antigos.

A solução é a de remover os arquivos .la. No entanto, existe uma pegadinha. Alguns pacotes, tais como o ImageMagick-7.1.1-43, usam uma função do libtool, lt_dlopen, para carregar bibliotecas conforme necessárias durante a execução e resolver as dependências deles em tempo de execução. Nesse caso, os arquivos .la deveriam permanecer.

O script abaixo remove todos os arquivos .la desnecessários e os salva em um diretório, /var/local/la-files, por padrão, não no caminho normal de biblioteca. Ele também procura em todos os arquivos pkg-config (.pc) por referências embutidas a arquivos .la e os corrige para serem referências convencionais de biblioteca necessárias quando uma aplicação ou biblioteca for construída. Ele pode ser executado conforme necessário para limpar os diretórios que possivelmente estejam causando problemas.

cat > /usr/sbin/remove-la-files.sh << "EOF"
#!/bin/bash

# /usr/sbin/remove-la-files.sh
# Escrito para o Beyond Linux From Scratch
# por Bruce Dubbs <bdubbs@linuxfromscratch.org>

# Certifique-se de que estamos executando com privilégios de "root"
if test "${EUID}" -ne 0; then
    echo "Erro: $(basename ${0}) precisa ser executado como o(a) usuário(a) root! Saindo..."
    exit 1
fi

# Certifique-se de que PKG_CONFIG_PATH esteja definido se descartado pelo "sudo"
source /etc/profile

OLD_LA_DIR=/var/local/la-files

mkdir -p $OLD_LA_DIR

# Pesquise somente diretórios em /opt, mas não links simbólicos para diretórios
OPTDIRS=$(find /opt -mindepth 1 -maxdepth 1 -type d)

# Mova todos os arquivos ".la" encontrados para um diretório fora do caminho
find /usr/lib $OPTDIRS -name "*.la" ! -path "/usr/lib/ImageMagick*" \
  -exec mv -fv {} $OLD_LA_DIR \;
###############

# Corrija quaisquer arquivos ".pc" que possam ter referências ".la"

STD_PC_PATH='/usr/lib/pkgconfig
             /usr/share/pkgconfig
             /usr/local/lib/pkgconfig
             /usr/local/share/pkgconfig'

# Para cada diretório que pode conter arquivos ".pc"
for d in $(echo $PKG_CONFIG_PATH | tr : ' ') $STD_PC_PATH; do

  # Para cada arquivo "pc"
  for pc in $d/*.pc ; do
    if [ $pc == "$d/*.pc" ]; then continue; fi

    # Verifique cada palavra em uma linha com uma referência ".la"
    for word in $(grep '\.la' $pc); do
      if $(echo $word | grep -q '.la$' ); then
        mkdir -p $d/la-backup
        cp -fv  $pc $d/la-backup

        basename=$(basename $word )
        libref=$(echo $basename|sed -e 's/^lib/-l/' -e 's/\.la$//')

        # Corrige o arquivo ".pc"
        sed -i "s:$word:$libref:" $pc
      fi
    done
  done
done

EOF

chmod +x /usr/sbin/remove-la-files.sh

Bibliotecas: Estáticas ou compartilhadas?

Bibliotecas: Estáticas ou compartilhadas?

As bibliotecas originais eram simplesmente um arquivamento de rotinas a partir do qual as rotinas necessárias eram extraídas e vinculadas ao aplicativo executável. Elas são descritas como bibliotecas estáticas, com nomes no formato libfoo.a em sistemas operacionais do tipo UNIX. Em alguns sistemas operacionais antigos elas são o único tipo disponível.

Em quase todas as plataformas Linux também existem bibliotecas compartilhadas (ou equivalentemente dinâmicas) (com nomes no formato libfoo.so) – uma cópia da biblioteca é carregada na memória virtual e compartilhada por todos os aplicativos que chamam alguma das funções dela. Isso é eficiente em termos de espaço.

No passado, aplicativos essenciais, como um "shell", frequentemente eram vinculados estaticamente, de forma que existisse alguma forma de sistema mínimo de recuperação, mesmo se bibliotecas compartilhadas, como libc.so, se tornassem danificadas (por exemplo, movidas para lost+found depois de fsck após um desligamento incorreto). Hoje em dia, a maioria das pessoas usa uma instalação alternativa de sistema ou um pendrive se precisar se recuperar. Os sistemas de arquivos com registro em diário também reduzem a probabilidade desse tipo de problema.

Dentro do livro, existem vários locais onde chaves de configuração, tais como --disable-static, são empregadas; e outros locais onde a possibilidade de usar versões de sistema das bibliotecas em vez das versões inclusas em outro pacote é discutida. A razão principal para isso é a de simplificar as atualizações de bibliotecas.

Se um pacote for vinculado a uma biblioteca dinâmica, [então] a atualização para uma versão mais recente da biblioteca é automática tão logo a biblioteca mais recente seja instalada e o aplicativo for (re)iniciado (condicionada a que a versão maior da biblioteca não seja modificada, por exemplo, indo de libfoo.so.2.0 para libfoo.so.2.1. Ir para libfoo.so.3 exigirá recompilação – o ldd pode ser usado para encontrar quais aplicativos usam a versão antiga). Se um aplicativo for vinculado a uma biblioteca estática, [então] o aplicativo sempre tem de ser recompilado. Se você souber quais aplicativos estão vinculados a uma biblioteca estática em particular, [então] isso é meramente um aborrecimento. Entretanto, normalmente você não saberá quais aplicativos recompilar.

Uma forma de identificar quando uma biblioteca estática é usada é a de tratar disso ao final da instalação de cada pacote. Escreva um script para achar todas as bibliotecas estáticas em /usr/lib ou onde quer que você esteja instalando, e, ou mova-as para outro diretório, de forma que não mais sejam encontradas pelo vinculador; ou renomeie-as, de forma que libfoo.a se torne, por exemplo. libfoo.a.oculta. A biblioteca estática pode então ser restaurada temporariamente se for efetivamente necessária, e o pacote que precisa dela pode ser identificado. Isso não deveria ser feito às cegas, pois muitas bibliotecas existem somente em uma versão estática. Por exemplo, algumas bibliotecas originárias dos pacotes glibc e gcc deveriam sempre estar presentes no sistema (libc_nonshared.a, libg.a, libpthread_nonshared.a, libssp_nonshared. a, libsupc++.a desde "glibc-2.36" e "gcc-12.2").

Se você usar essa abordagem, [então] você possivelmente descubra que mais pacotes que o que estava esperando usam uma biblioteca estática. Esse foi o caso com o nettle-2.4 na configuração padrão somente estática dele: Ele era exigido pelo GnuTLS-3.0.19, porém vinculado também em pacote(s) que usa(m) o GnuTLS, tais como o glib-networking-2.32.3.

Muitos pacotes colocam algumas das funções comuns deles em uma biblioteca estática que somente é usada pelos aplicativos dentro do pacote e, crucialmente, a biblioteca não é instalada como uma biblioteca independente. Essas bibliotecas internas não são um problema – se o pacote tiver de ser reconstruído para corrigir um defeito ou uma vulnerabilidade, [então] nada mais é vinculado a elas.

Quando o BLFS menciona bibliotecas de sistema, significa versões compartilhadas de bibliotecas. Alguns pacotes como Firefox-128.7.0 e ghostscript-10.04.0 agrupam muitas outras bibliotecas na árvore de construção deles. A versão que eles enviam geralmente é mais antiga que a versão usada no sistema, portanto possivelmente contenham defeitos – às vezes os(as) desenvolvedores(as) se dão ao trabalho de consertar defeitos nas bibliotecas incluídas deles(as), outras vezes não.

Ocasionalmente, decidir usar as bibliotecas do sistema é uma decisão fácil. Outras vezes, possivelmente exija que você altere a versão do sistema (por exemplo, para a libpng-1.6.46, se usada pelo Firefox-128.7.0). De vez em quando, um pacote envia uma biblioteca antiga e não mais pode se vincular à versão atual, porém pode se vincular a uma versão mais antiga. Nesse caso, o BLFS normalmente usará apenas a versão enviada. De quando em quando, a biblioteca inclusa não mais é desenvolvida separadamente; ou o(a) desenvolvedor(a) dela é o(a) mesmo(a) que o desenvolvedor(a) do pacote e você não tem outros pacotes que a usarão. Nesses casos, você será levado(a) a usar a biblioteca inclusa, mesmo se geralmente preferir usar as bibliotecas do sistema.

Problemas Relacionados à Localidade

Esta página contém informações acerca de problemas e de consequências relacionados à localidade. Nos parágrafos seguintes você encontrará uma visão geral das coisas que podem surgir ao configurar o seu sistema para várias localidades. Muitos (mas, não todos) problemas existentes relacionados à localidade podem ser classificados e enquadrados sob um dos títulos abaixo. As avaliações de gravidade abaixo usam o seguinte critério:

  • Crítica: O aplicativo não realiza a função principal dele. A correção seria muito invasiva; é melhor procurar por uma substituição.

  • Alta: Parte da funcionalidade que o aplicativo fornece não é utilizável. Se essa funcionalidade for exigida, [então] é melhor procurar por uma substituição.

  • Baixa: O aplicativo funciona em todos os casos típicos de uso, porém carece de alguma funcionalidade normalmente fornecida pelos equivalentes dele.

Se existir uma solução alternativa conhecida para um pacote específico, ela aparecerá na página desse pacote.

A Codificação Necessária Não É uma Opção Válida no Aplicativo

Gravidade: Crítica

Alguns aplicativos exigem que o(a) usuário(a) especifique a codificação de caracteres para os dados de entrada gerada ou de saída gerada deles e apresentam somente uma escolha limitada de codificações. Esse é o caso para a opção -X no Enscript-1.6.6; para a opção -input-charset no Cdrtools-3.02a09 não remendado; e para os conjuntos de caracteres oferecidos para exibição no menu do Links-2.30. Se a codificação exigida não estiver na lista, [então] o aplicativo geralmente se torna completamente inutilizável. Para os aplicativos não interativos, possivelmente seja possível contornar isso convertendo-se o documento para um conjunto suportado de caracteres de entrada gerada antes de submetê-lo ao aplicativo.

Uma solução para esse tipo de problema é a de implementar o suporte necessário para a codificação ausente como um remendo para o aplicativo original ou encontrar um substituto.

O Aplicativo Assume a Codificação Baseada no Locale dos Documentos Externos

Gravidade: Alta para documentos não textuais; baixa para documentos de texto

Alguns aplicativos, nano-8.3 ou JOE-4.6, por exemplo, assumem que os documentos sempre estejam na codificação implícita pelo locale atual. Enquanto essa presunção possivelmente seja válida para os documentos criados pelo(a) usuário(a), ela não é segura para os externos. Quando essa presunção falha, os caracteres não ASCII são exibidos incorretamente e o documento possivelmente se torne ilegível.

Se o documento externo for inteiramente baseado em texto, [então] ele pode ser convertido para a codificação atual do locale usando-se o aplicativo iconv.

Para documentos que não sejam baseados em texto, isso não é possível. De fato, a presunção feita no aplicativo possivelmente seja completamente inválida para documentos onde o sistema operacional Windows da Microsoft tenha configurado padrões efetivos. Um exemplo desse problema são as etiquetas ID3v1 nos arquivos MP3. Para esses casos, a única solução é a de encontrar um aplicativo substituto que não tenha o problema (por exemplo, um que te permitirá especificar a codificação presumida do documento).

Entre os pacotes do BLFS, esse problema se aplica ao nano-8.3; ao JOE-4.6; e a todos os reprodutores de mídia, exceto o Audacious-4.4.2.

Outro problema nessa categoria é quando alguém não consegue ler os documentos que você enviou, pois o sistema operacional dessa pessoa está configurado para manusear diferentemente as codificações de caracteres. Isso pode acontecer frequentemente quando a outra pessoa estiver usando o Microsoft Windows, o qual fornece apenas uma codificação de caracteres para um dado país. Por exemplo, isso causa problemas com documentos do TeX codificados em UTF-8 criados no Linux. No Windows, a maioria dos aplicativos assumirá que esses documentos tenham sido criados usando a codificação padrão de oito (08) bits do Windows.

Em casos extremos, os problemas de compatibilidade de codificação do Windows possivelmente somente sejam resolvidos executando-se os aplicativos do Windows sob o Wine.

O Aplicativo Usa ou Cria os Nomes de Arquivo na Codificação Errada

Gravidade: Crítica

O padrão POSIX manda que a codificação do nome de arquivo seja a codificação implícita pela categoria de locale LC_CTYPE atual. Essa informação está bem ocultada na página que especifica o comportamento dos aplicativos Tar e Cpio. Alguns aplicativos obtém isso errado por padrão (ou, simplesmente, não tem informação suficiente para obter isso certo). O resultado é o de que eles criam nomes de arquivo que não são subsequentemente mostrados corretamente pelo ls; ou eles se recusam a aceitar nomes de arquivo que o ls mostra adequadamente. Para a biblioteca GLib-2.82.5, o problema pode ser corrigido configurando-se a variável de ambiente G_FILENAME_ENCODING para o valor especial "@locale". Os aplicativos baseados na Glib2 que não respeitarem essa variável de ambiente são defeituosos.

O formato .zip tem esse problema porque não salva a codificação para os nomes dos arquivos arquivados. Quando unzip (na verdade, um link simbólico para bsdunzip proveniente de libarchive-3.7.7) o extrai, por padrão os nomes são assumidos como codificados como CP850, a página de código do Windows para idiomas da Europa Ocidental. Mas os nomes podem ser realmente codificados de uma maneira diferente se contiverem caracteres não latinos (por exemplo, CP936 para chinês simplificado). Então, sem especificar-se manualmente a codificação, esses caracteres não latinos serão transformados em sequências ilegíveis pelo bsdunzip.

A regra geral para se evitar essa classe de problemas é a de se evitar instalar aplicativos quebrados. Se isso for impossível, [então] a ferramenta de linha de comando convmv pode ser usada para corrigir os nomes de arquivos criados por esses aplicativos quebrados; ou, intencionalmente, desfigurar os nomes de arquivos existentes para satisfazer as expectativas quebradas de tais aplicativos.

Em outros casos, um problema similar é causado importando-se nomes de arquivos a partir de um sistema usando um locale diferente com uma ferramenta que não é ciente do locale (por exemplo, o OpenSSH-9.9p2). Para a finalidade de se evitar desfigurar os caracteres não ASCII quando se transferir arquivos para um sistema com um locale diferente, quaisquer dos seguintes métodos podem ser usados:

  • Transfira de qualquer modo; corrija o dano com o convmv.

  • No lado do(a) remetente, crie um arquivamento tar com a chave --format=posix passada para o tar (isso será o padrão em uma versão futura do tar).

  • Envie os arquivos como anexos de mensagem de correio eletrônico. Os clientes de correio eletrônico especificam a codificação dos nomes de arquivos anexados.

  • Escreva os arquivos para um disco removível formatado com um sistema de arquivos FAT ou FAT32.

  • Transfira os arquivos usando o Samba.

  • Transfira os arquivos via FTP usando um servidor (atualmente, isso significa somente o wu-ftpd, que tem um mau histórico de segurança) e um cliente (por exemplo, o lftp) cientes da RFC2640.

Os últimos quatro métodos funcionam, pois os nomes de arquivos são convertidos automaticamente do locale do(a) remetente para UNICODE e armazenados ou enviados nessa forma. Eles são então convertidos transparentemente do UNICODE para a codificação do locale do(a) recipiente.

O Aplicativo Quebra Caracteres Multi Byte ou Não Conta Células de Caracteres Corretamente

Gravidade: Alta ou crítica

Muitos aplicativos foram escritos em uma era mais antiga onde locales multi Byte não eram comuns. Tais aplicativos assumem que o tipo de dados "char" do C, que é um Byte, pode ser usado para armazenar caracteres únicos. Além disso, eles assumem que qualquer sequência de caracteres é uma sequência de caracteres válida e que cada caractere ocupa uma célula única de caractere. Tais presunções quebram completamente em locales UTF-8. A manifestação visível é a de que o aplicativo trunca sequências de caracteres prematuramente (isto é, em oitenta (80) Bytes, em vez de oitenta (80) caracteres). Os aplicativos baseados em terminal não colocam o cursor corretamente na tela; não reagem à tecla "Backspace" apagando um caractere; e deixam caracteres inúteis ao atualizar a tela, geralmente transformando a tela em uma completa bagunça.

Corrigir esses tipos de problemas é uma tarefa tediosa, a partir de um ponto de vista do(a) programador(a), semelhante a todos os outros casos de retro adequar conceitos novos no projeto falho antigo. Nesse caso, deve-se reprojetar todas as estruturas de dados para a finalidade de acomodar ao fato de que um caractere completo possivelmente abranja um número variável de "char"s (ou alternar para wchar_t e converter conforme necessário). Também, para cada chamada à "strlen" e funções similares, descobrir se um número de Bytes; um número de caracteres; ou a largura da sequência de caracteres realmente foi declarada. Ocasionalmente, é mais rápido escrever um aplicativo com a mesma funcionalidade desde o zero.

Entre os pacotes do BLFS, esse problema se aplica ao xine-ui-0.99.14 e a todos os shells.

Indo Além do BLFS

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.

  • 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.

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 http://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 fluxo de desenvolvimento; 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 http://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".

Dica

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.

Parte II. Configuração Pós LFS e Software Extra

Capítulo 3. Problemas Depois da Configuração do LFS

A intenção do LFS é a de fornecer um sistema básico sobre o qual você possa construir. Existem várias coisas acerca de aprimorar o sistema que muitas pessoas se questionam tão logo tenham feito a instalação básica. Nós esperamos cobrir esses problemas neste capítulo.

A maioria das pessoas vindas de origens não Unix para o Linux acha o conceito de arquivos de configuração somente texto um pouco estranho. No Linux, quase toda a configuração é feita via manuseio de arquivos de texto. A maioria desses arquivos pode ser encontrada na hierarquia /etc. Existem frequentemente aplicativos gráficos de configuração disponíveis para diferentes subsistemas, porém a maioria é simplesmente estrutura bonita de interação direta com o(a) usuário(a) para o processo de editar um arquivo de texto. A vantagem da configuração somente texto é a de que você consegue editar os parâmetros usando o seu editor de texto favorito, seja ele vim; emacs; ou qualquer outro editor.

A primeira tarefa é a de fazer um dispositivo de inicialização de recuperação em Criando um Dispositivo Personalizado de Inicialização, pois ele é a necessidade mais crítica. Problemas de hardware relevantes para firmware e outros dispositivos são endereçados a seguir. O sistema é então configurado para facilitar a adição de usuários(as) novos(as), pois isso pode afetar as escolhas que você fizer nos dois tópicos subsequentes—Os Arquivos de Iniciação do Shell Bash e Os Arquivos vimrc.

Os tópicos restantes, Personalizando o seu Logon com o /etc/issue e Geração de número aleatório, são então endereçados, nessa ordem. Eles não tem muita interação com os outros tópicos neste capítulo.

Criando um Dispositivo Personalizado de Inicialização

Necessidades Decentes do Dispositivo de Inicialização de Resgate

Esta seção realmente é a respeito de criar um dispositivo de resgate. Como o nome resgate indica, o sistema anfitrião tem um problema, frequentemente informação de partição perdida ou sistemas de arquivo corrompidos, que o impede de inicializar e (ou) de operar normalmente. Por essa razão, você não deve depender dos recursos oriundos do anfitrião sendo "resgatado". Presumir que qualquer dada partição ou unidade rígida estará disponível é uma suposição arriscada.

Em um sistema moderno, existem muitos dispositivos que podem ser usados como um dispositivo de resgate: disquete; CDROM; unidade USB; ou mesmo uma placa de rede. Qual desses você usa depende do seu hardware e do seu BIOS. No passado, um dispositivo de resgate era concebido para ser um disquete. Atualmente, muitos sistemas nem mesmo tem uma unidade de disquete.

Construir um dispositivo de resgate completo é uma tarefa desafiadora. De muitas maneiras, isso é equivalente a construir um sistema LFS inteiro. Adicionalmente, seria uma repetição da informação já disponível. Por essas razões, os procedimentos para uma imagem de dispositivo de resgate não são apresentados aqui.

Criando um Disquete de Resgate

O software dos sistemas atuais cresceu muito. O Linux 2.6 não mais suporta inicializar diretamente a partir de um disquete. Apesar disso, existem soluções disponíveis usando versões mais antigas do Linux. Uma das melhores é o Disco de Root/Inicialização do Tom disponível em http://www.toms.net/rb/. Isso fornecerá um sistema mínimo Linux em disquete único e fornece a habilidade para personalizar o conteúdo do seu disco se necessário.

Criando um CD-ROM Inicializável

Existem várias fontes que podem ser usadas para um CD-ROM de resgate. Quase quaisquer CD-ROMs ou DVDs de instalação das distribuições comerciais funcionarão. Essas incluem RedHat; Ubuntu; e SuSE. Uma opção muito popular é a Knoppix.

Também, a Comunidade do LFS desenvolveu o próprio LiveCD dela, disponível em https://www.linuxfromscratch.org/livecd/. Esse LiveCD não mais é capaz de construir um sistema LFS/BLFS inteiro, porém ainda é um bom CD-ROM de resgate. Se você baixar a imagem ISO, [então] use o xorriso para copiar a imagem para um CD-ROM.

As instruções para usar o GRUB2 para fazer um CD-ROM de resgate personalizado também estão disponíveis no Capítulo 10 do LFS.

Criando uma Unidade USB Inicializável

Uma unidade Pen USB, por vezes chamada de unidade Polegar, é reconhecida pelo Linux como um dispositivo SCSI. Usar um desses dispositivos como um dispositivo de resgate tem a vantagem de que, geralmente, ele é largo o suficiente para manter mais que uma imagem de inicialização mínima. Você consegue salvar dados críticos na unidade, bem como usá-la para diagnosticar e recuperar um sistema danificado. Inicializar tal unidade exige suporte BIOS, porém construir o sistema consiste de formatar a unidade; adicionar o GRUB; bem como o núcleo Linux e arquivos de suporte.

Acerca das Fontes do Console

Um sistema LFS pode ser usado sem uma área de trabalho gráfica e, a menos ou até que instale o um ambiente gráfico, você terá que trabalhar no console. A maioria, se não todos, dos PCs inicializa com uma fonte 8x16 - qualquer que seja o tamanho atual da tela. Existem umas poucas coisas que você pode fazer para alterar a exibição no console. A maioria delas envolve mudar a fonte, porém a primeira altera a linha de comando usada pelo GRUB.

Configurando uma resolução menor de tela no grub

As telas modernas frequentemente tem muito mais pixeis que as telas usadas no passado. Se a tua tela for da largura de mil e seiscentos (1.600) pixeis, uma fonte 8x16 te dará duzentas (200) colunas de texto - a menos que o teu monitor seja enorme, o texto será pequeno. Uma das maneiras de se contornar isso é a de se dizer ao GRUB e ao núcleo para usar uma resolução menor, tal como 1.024x768 ou 800x600; ou mesmo 640x480. Mesmo se a tua tela não tiver uma proporção de aspecto de 4:3, isso deveria funcionar.

Se você tiver seguido o livro LFS para configurar teu núcleo com SimpleDRM habilitado e o controlador dedicado de núcleo para tua GPU (por exemplo, i915 ou AMDGPU) for construído como um módulo de núcleo, antes que o controlador dedicado seja carregado, o controlador SimpleDRM será usado para exibição. O controlador SimpleDRM em si não consegue mudar a resolução, de forma que você precisa dizer ao GRUB para configurar a resolução adequada antes de carregar o núcleo modificando a linha set gfxpayload=1024x768x32 no arquivo grub.cfg.

Quando o controlador dedicado da GPU começa a funcionar (tão logo que o núcleo ou o módulo seja carregado, dependendo se você o tiver construído como parte da imagem do núcleo ou como um módulo), ele tira o controle de exibição do controlador SimpleDRM e muda a resolução de exibição. Para fazê-lo usar a resolução que você quer, edite novamente o arquivo grub.cfg para inserir um parâmetro video= na linha de comando do núcleo, por exemplo root=/dev/sda2 video=DP-1:800x600 ro. Observe que é necessário especificar explicitamente o nome de saída como DP-1 aqui: um parâmetro video= sem um nome de saída é reconhecido somente pelo GRUB (como um apelido obsoleto de set gfxpayload=) e completamente ignorado pelo núcleo. O conteúdo de /sys/class/drm/ pode ser útil para descobrir o nome da saída gerada; por exemplo, o subdiretório card1-DP-1 indica uma saída gerada chamada DP-1. Para alinhar o nome da saída gerada com teu monitor, instale o utilitário edid-decode e execute o comando edid-decode /sys/class/drm/card<ID da placa>-<nome da saída gerada>/edid para mostrar as informações (incluindo o nome do modelo e as resoluções suportadas) acerca do monitor conectado na saída.

Se decidir que deseja fazer isso, você pode então (como o(a) usuário(a) root) editar /boot/grub/grub.cfg.

Usando as fontes psf padrão

No LFS o pacote kbd é usado. As fontes que ele fornece são as Fontes de Tela do PC, geralmente chamadas de PSF, e elas foram instaladas no /usr/share/consolefonts. Onde essas incluem uma tabela de mapeamento Unicode, o sufixo do arquivo frequentemente é mudado para .psfu, apesar de pacotes tais como o terminus-font (veja-se abaixo) não adicionarem o 'u'. Essas fontes geralmente são comprimidas com o gzip para economizar espaço, porém isso não é essencial.

As telas de texto iniciais do PC tinham oito (08) cores; ou dezesseis (16) cores se as versões brilhantes das oito (08) cores originais fossem usadas. Uma fonte PSF pode incluir até duzentos e cinquenta e seis (256) caracteres (tecnicamente, glifos) enquanto permite dezesseis (16) cores; ou até quinhentos e doze (512) caracteres (caso no qual, as cores brilhantes não estarão disponíveis). Claramente, essas fontes de console não podem ser usadas para exibir texto CJK - isso precisaria de centenas de glifos disponíveis.

Algumas fontes no kbd conseguem cobrir mais que quinhentos e doze (512) pontos de código ('caracteres'), com graus variantes de fidelidade: Unicode contém vários pontos de código de espaço em branco os quais podem todos serem mapeados para um espaço; variedades de traços podem ser mapeados para um sinal de menos; aspas inteligentes podem ser mapeadas para as aspas ASCII regulares em vez de para o que é usado para "ponto de código não presente ou inválido"; e aquelas letras cirílicas ou gregas que se parecem com letras latinas podem ser mapeadas nelas, de forma que 'A' também pode cumprir o dever para o A cirílico e grego Alfa; e 'P' também pode cumprir o dever para o cirílico ER e grego RHO. Infelizmente, onde uma fonte tenha sido criada a partir de um arquivo BDF (o método no terminus e no console-setup do Debian) tal mapeamento dos pontos de código adicionais em um glifo existente nem sempre é feito, apesar das fontes ter-vXXn do terminus fazerem isso bem.

Existem mais que cento e vinte (120) combinações de fonte e tamanho no kbd: frequentemente uma fonte é fornecida em vários tamanhos de caracteres; e, de vez em quando, as variedades cobrem subconjuntos diferentes do Unicode. A maioria é da largura de oito (08) pixeis, em alturas de oito (08) até dezesseis (16) pixeis; porém, existem umas poucas que são da largura de nove (09) pixeis; algumas outras são 12x22; e mesmo uma, (latarcyrheb-sun32.psfu), que foi escalada até 16x32. Usar uma fonte maior é outra maneira de tornar o texto mais fácil de ler em uma tela grande.

Testando fontes diferentes

Você consegue testar as fontes como um(a) usuário(a) normal. Se tiver uma fonte que não tenha sido instalada, [então] você consegue carregá-la com:

setfont /caminho/para/sua_fonte.ext

Para as fontes já instaladas você precisa somente do nome; assim, usando gr737a-9x16.psfu.gz como um exemplo:

setfont gr737a-9x16

Para ver os glifos na fonte, use:

showconsolefont

Se a fonte aparentar como se pudesse ser útil, você pode então ir em frente para testá-la mais minuciosamente.

Quando você encontrar uma fonte que desejar usar, como o(a) usuário(a) root edite o /etc/sysconfig/console conforme descrito na seção 9.6.5 do LFS ../../../../lfs/view/12.3/chapter09/usage.html .

Para fontes não fornecidas com o pacote kbd, você precisará opcionalmente comprimi-la(s) com o gzip e então instalá-la(s) como o(a) usuário(a) root.

Editando fontes usando o psf-tools

Apesar de algumas fontes de console serem criadas a partir de arquivos "BDF", que é um formato de texto com valores hexadecimais para os pixeis em cada linha do caractere, existem ferramentas mais modernas disponíveis para editar fontes "psf". O pacote psftools te permite despejar uma fonte para uma representação de texto com um travessão para um pixel que esteja desligado (preto); e uma cerquilha para um pixel que esteja ligado (branco). Você consegue então editar o arquivo de texto para adicionar mais caracteres; ou remodelá-los; ou mapear pontos extras de código para eles; e, então, criar uma fonte "psf" nova com as suas mudanças.

Usando fontes a partir da fonte Terminus

O pacote Fonte Terminus fornece fontes de mapa de bits de largura fixa projetadas para trabalho longo (oito (08) horas ou mais por dia) com computadores. Sob "Character variants" naquela página está uma lista de remendos (no diretório alt/). Se estiver usando um navegador gráfico para olhar para aquela página, [então] você consegue ver o que os remendos fazem; por exemplo, "ll2" torna o "l" mais visivelmente diferente de "i" e "1".

Por padrão, terminus-fonts tentará criar vários tipos de fontes e falhará se bdftopcf oriundo do Aplicativos do Xorg não tiver sido instalado. O script configure somente é realmente útil se você for em frente para instalar todas as fontes (console e mapa de bits do X11) nos diretórios corretos, como em uma distribuição. Para construir somente as fontes PSF e as dependências delas, execute:

make psf

Isso criará mais que duzentas e quarenta (240) fontes ter-*.psf. O sufixo 'b' indica brilhante; 'n' indica normal. Você consegue então testá-las para ver se alguma se adéqua às suas exigências. A menos que esteja criando uma distribuição, parece não fazer sentido instalá-las todas.

Como um exemplo, para instalar a última dessas fontes, você pode gzipá-la e, então, como o(a) usuário(a) root:

install -v -m644 ter-v32n.psf.gz /usr/share/consolefonts

Acerca de Firmware

Em alguns PCs recentes, pode ser necessário, ou desejável, carregar firmware para fazê-los funcionar da melhor forma possível. O núcleo ou os controladores de núcleo procuram imagens de firmware em /lib/firmware. Mas no LFS /lib é um link simbólico para usr/lib, de forma que o diretório que contém os arquivos de firmware é, na verdade, /usr/lib/firmware.

Atualmente, a maioria do firmware pode ser encontrada em um repositório git, o qual pode ser visualizado no navegador com a URL https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain. Por conveniência, o Projeto LFS criou um espelho, atualizado diariamente, onde esses arquivos de firmware podem ser acessados via wget ou via um navegador da web em https://anduin.linuxfromscratch.org/BLFS/linux-firmware/.

Para obter o firmware, aponte um navegador para um dos repositórios acima e, então, baixe o(s) item(s) que você precisar. Se você quiser todos esses arquivos de firmware (por exemplo, você estiver distribuindo o sistema em vários sistemas de hardware), ou instale git-2.48.1 e clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git, ou abra essa URL em um navegador e baixe o instantâneo mais recente listado na tabela Tag.

Importante

Observe que alguns arquivos de firmware exigidos (e diretórios) são, na verdade, links simbólicos para outros arquivos (ou diretórios). Esses links simbólicos não são armazenados no repositório Git; em vez disso, eles estão documentados no arquivo WHENCE. Cada linha começando com Link: descreve um link simbólico. Se você estiver baixando um item que precisa e ele for um link simbólico (ou em um diretório que seja um link simbólico), você precisa criar o link simbólico manualmente e baixar o alvo. Por outro lado, se você quiser todos os arquivos de firmware, use o comando ./copy-firmware.sh /usr/lib/firmware que copiará os arquivos de firmware e criará todos os links simbólicos no arquivo WHENCE, em vez de um comando de cópia simples como cp -r * /usr/lib/firmware/.

Para algum outro firmware, particularmente para microcódigo da Intel e certos dispositivos wifi, o firmware necessário não está disponível no repositório acima. Algo disso será endereçado abaixo, porém uma busca da Internet pelo firmware necessário de vez em quando é necessária.

Os arquivos de firmware convencionalmente são referenciados como blobs, pois você não consegue determinar o que eles farão. Observe que o firmware é distribuído sob diferentes licenças que não permitem desmontagem ou engenharia reversa.

Firmware para PCs caem em quatro categorias:

  • Atualizações para a CPU contornar erros, geralmente referenciadas como microcódigo.

  • Firmware para controladores de vídeo. Em máquinas x86, isso é exigido para dispositivos ATI (chips Radeon e AMDGPU); e possivelmente seja útil para GPUs Intel (Skylake e posteriores) e NVIDIA (Kepler e posteriores).

    Dispositivos ATI Radeon e AMDGPU todos exigem firmware para estarem aptos para usar KMS (kernel modesetting - a opção preferida), bem como para o Xorg.

    GPUs integradas Intel a partir do Skylake em diante conseguem usar firmware para GuC (o microcontrolador Graphics) e, também, para o HuC (microcontrolador HEVC/H265, que descarrega para a GPU); e o DMC (Display Microcontroller) para fornecer estados adicionais de baixa eletricidade. O GuC e o HuC tiveram um histórico duvidoso no núcleo e o firmware atualizado possivelmente esteja desabilitado por padrão, dependendo da sua versão de núcleo. Maiores detalhes podem ser encontrados em 01.org; e Arch linux.

    GPUs NVIDIA a partir do Kepler em diante exigem firmware assinado, caso contrário o controlador nouveau estará inapto para fornecer aceleração de hardware. A NVIDIA agora lançou firmware até Ada Lovelace (série GeForce 40) para linux-firmware.

  • Atualizações de firmware para portas cabeadas de rede de comunicação. A maioria delas funciona mesmo sem as atualizações, porém provavelmente funcionarão melhor com o firmware atualizado. Para alguns laptops modernos, o firmware para ambos, ethernet cabeado (por exemplo, rtl_nic), e também para dispositivos bluetooth (por exemplo, qca), é exigido antes que a rede de comunicação cabeada possa ser usada.

  • Firmware para outros dispositivos, tais como NICs sem fios. Esses dispositivos não são exigidos para o PC inicializar, porém precisam do firmware antes que esses dispositivos possam ser usados.

Nota

Apesar de não necessárias para carregar um blob de firmware, as seguintes ferramentas possivelmente sejam úteis para determinar, obter ou preparar o firmware necessário para a finalidade de carregá-lo no sistema: cpio-2.15; git-2.48.1; pciutils-3.13.0; e Wget-1.25.0

Atualizações de microcódigo para CPUs

Em geral, microcódigo pode ser carregado pelo BIOS ou pela UEFI e poderia ser atualizado atualizando-se para uma versão mais recente daqueles. No Linux, você também pode carregar o microcódigo a partir do núcleo se estiver usando um processador AMD família 10h ou posterior (introduzido primeiramente no final de 2007); ou um processador Intel a partir de 1998 e posterior (Pentium4, Core, etc), se microcódigo atualizado tiver sido lançado. Essas atualizações duram somente até que a máquina seja desligada, de forma que elas precisam ser aplicadas a cada inicialização.

Nota

Em alguns casos raros, uma atualização de microcódigo oriunda do núcleo pode ser inefetiva. Por exemplo, apesar de intel-microcode-20241029 conter a revisão de microcódigo Raptor Lake 0x12b, que visa a corrigir um problema notório de voltagem excessiva que causa problemas de estabilidade e até mesmo danos permanentes para a CPU, quando o núcleo inicializa, já é tarde demais para o microcódigo corrigir o problema. A única maneira de corrigir esse problema é a de atualizar o BIOS.

A "Intel" fornece atualizações do microcódigo dela para os processadores "Skylake" e posteriores conforme vulnerabilidades novas surjam e forneceu no passado atualizações para processadores a partir do "SandyBridge" em diante, apesar daqueles não mais serem suportados para correções novas. Versões novas do "firmware" "AMD" são raras e geralmente somente se aplicam a uns poucos modelos, apesar dos(as) fabricantes de placas mãe obterem atualizações "AMD Generic Encapsulated Software Architecture" ("AGESA") para mudar os valores do "BIOS", por exemplo, para suportar mais variantes de memória, correções novas de vulnerabilidades ou "CPUs" mais recentes.

Existiam duas maneiras de carregar o microcódigo, descritas como "antecipada" e "atrasada". O carregamento antecipado ocorre antes que o espaço de usuário(a) tenha sido iniciado; o carregamento atrasado ocorre depois que o espaço de usuário(a) iniciou. No entanto, o carregamento atrasado é conhecido por ser problemático e não mais é suportado (veja-se o "commit" do núcleo x86/microcode: Taint and warn on late loading). Na verdade, o carregamento antecipado é necessário para contornar uma errata específica nos primeiros processadores "Intel" "Haswell" que tinham "TSX" habilitado. (Veja-se Intel Disables TSX Instructions: Erratum Found in Haswell, Haswell-E/EP, Broadwell-Y). Sem essa atualização, a "glibc" pode fazer a coisa errada em situações incomuns.

Nas versões anteriores deste livro, era recomendado o carregamento atrasado do microcódigo para verificar se ele seria aplicado, seguido pelo uso de um "initrd" para forçar o carregamento antecipado. Mas agora que o conteúdo do "tarball" do microcódigo "Intel" está documentado e o microcódigo "AMD" pode ser lido por um script "Python" para determinar quais máquinas ele cobre, não existe razão real para usar o carregamento atrasado.

Ainda pode ser possível forçar manualmente o carregamento atrasado do microcódigo. Mas isso possivelmente cause mau funcionamento do núcleo e você mesmo(a) deveria correr o risco. Você precisará reconfigurar teu núcleo para carregamento atrasado, mas carregamento antecipado sempre é suportado pelo núcleo Linux versão 6.6 ou posterior em um sistema x86 (não importa se 32 bits ou 64 bits). As instruções aqui te mostrarão como criar um initrd para carregamento antecipado. Também é possível construir o mesmo arquivo binário de microcódigo interno ao núcleo, o que permite carregamento antecipado, mas exige que o núcleo seja recompilado para atualizar o microcódigo.

Para confirmar qual(is) processador(es) você tem (se mais que um, eles serão idênticos) olhe em "/proc/cpuinfo". Determine os valores decimais da família da "CPU"; do modelo; e da revisão executando o seguinte comando (também informará a versão atual do microcódigo):

head -n7 /proc/cpuinfo

Converta a família da "CPU", o modelo e a revisão em pares de dígitos hexadecimais e lembre-se do valor do campo microcode. Agora você pode verificar se existe algum microcódigo disponível.

Se você estiver criando um "initrd" para atualizar "firmware" para máquinas diferentes, como uma distribuição faria, [então] vá para baixo até 'Carregamento antecipado do microcódigo' e concatene todos os "blobs" "Intel" para "GenuineIntel.bin"; ou concatene todos os "blobs" "AMD" para "AuthenticAMD.bin". Isso cria um "initrd" mais largo - para todas as máquinas "Intel" na atualização 20200609, o tamanho era de três (3,0) MB comparado a tipicamente vinte e quatro (24) KB para uma máquina.

Microcódigo Intel para a CPU

O primeiro passo é o de obter a versão mais recente do microcódigo da Intel. Isso precisa ser feito navegando-se até https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/ e baixando-se o arquivo mais recente lá. Ao tempo da escrita deste texto, a versão mais segura do microcódigo era microcode-20250211. Extraia esse arquivo da maneira normal; o microcódigo estará no diretório intel-ucode, contendo vários blobs com nomes na forma XX-YY-ZZ. Também existem vários outros arquivos e uma observação de lançamento.

No passado, a Intel não fornecia quaisquer detalhes relativos a quais blobs tinham versões mudadas, mas agora a nota de lançamento detalha isso. Você consegue comparar a versão do microcódigo em /proc/cpuinfo com a versão para teu modelo de CPU na nota de lançamento para saber se existe uma atualização.

O firmware recente para processadores mais antigos é fornecido para lidar com vulnerabilidades que agora tenham sido tornadas públicas e, para algumas dessas, tais como Microarchitectural Data Sampling (MDS), você poderia desejar aumentar a proteção desabilitando hyperthreading; ou, alternativamente, desabilitar a mitigação padrão do núcleo, por causa do impacto dela sobre os tempos de compilação. Por favor, leia a documentação online em https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/index.html.

Para um dispositivo móvel Tigerlake (descrito como CPU Intel(R) Core(TM) i5-11300H), os valores relevantes são cpu family 6, model 140, stepping 1, de modo que, nesse caso, a identificação exigida é 06-8c-01. A observação de lançamento diz que o microcódigo mais recente para ele está versionado 0xb8. Se o valor do campo microcode em /proc/cpuinfo for 0xb8 ou superior, isso indica que a atualização do microcódigo já foi aplicada pelo BIOS. Caso contrário, prossiga para “Carregamento antecipado do microcódigo”.

Microcódigo AMD para a CPU

Comece baixando um contêiner do "firmware" para a família da sua "CPU" a partir de https://anduin.linuxfromscratch.org/BLFS/linux-firmware/amd-ucode/. A família sempre é especificada em hexadecimal. As famílias "10h" até "14h" (16 até 20) estão no "microcode_amd.bin". As famílias "15h", "16h", "17h" ("Zen", "Zen+", "Zen2") e "19h" ("Zen3") tem os contêineres próprios delas, mas pouquíssimas máquinas provavelmente receberão microcódigo atualizado. Em vez disso, a "AMD" fornece um "AGESA" atualizado para os(as) fabricantes de placas-mãe, que possivelmente forneçam um "BIOS" atualizado usando-o. Existe um script "Python3" em https://github.com/AMDESE/amd_ucode_info/blob/master/amd_ucode_info.py. Baixe esse script e execute-o em relação ao arquivo "bin" para verificar quais processadores tem atualizações.

Para o muito antigo "Athlon(tm) II X2" nesses exemplos os valores eram "cpu family 16", "model 5", "stepping 3", dando uma identificação de Família=0x10 Modelo=0x05 Passo=0x03. Uma linha da saída gerada do script amd_ucode_info.py descreve a versão do microcódigo para ele:

Family=0x10 Model=0x05 Stepping=0x03: Patch=0x010000c8 Length=960 bytes

Se o valor do campo microcode em /proc/cpuinfo for 0x10000c8 ou superior, isso indica que o BIOS já aplicou a atualização do microcódigo. Caso contrário, prossiga para “Carregamento antecipado do microcódigo”.

Carregamento antecipado do microcódigo

Se você tiver estabelecido que o microcódigo atualizado está disponível para o seu sistema, [então] é hora de prepará-lo para o carregamento antecipado. Isso exige um pacote adicional, o cpio-2.15 e a criação de um initrd que precisará ser adicionado ao grub.cfg.

Não importa onde você prepara o initrd e, tão logo ele esteja funcionando, você pode aplicar o mesmo initrd a sistemas LFS posteriores ou a núcleos mais recentes na mesma máquina, ao menos até que algum microcódigo mais recente seja liberado. Use os seguintes comandos:

mkdir -p initrd/kernel/x86/microcode
cd initrd

Para uma máquina AMD, use o seguinte comando (substitua <MEUCONTEINER> pelo nome do contêiner para a família da sua CPU):

cp -v ../<MEU_CONTẼINER> kernel/x86/microcode/AuthenticAMD.bin

Ou, para uma máquina Intel, copie o blob apropriado usando este comando:

cp -v ../intel-ucode/<XX-YY-ZZ> kernel/x86/microcode/GenuineIntel.bin

Agora, prepare o initrd:

find . | cpio -o -H newc > /boot/microcode.img

Agora você precisa adicionar uma entrada nova a /boot/grub/grub.cfg e aqui você deveria adicionar uma linha nova depois da linha linux dentro da estância. Se /boot for um ponto de montagem separado:

initrd /microcode.img

ou isto, se ele não for:

initrd /boot/microcode.img

Se já estiver inicializando com um initrd (veja-se “A respeito do initramfs”), você deveria executar mkinitramfs novamente depois de colocar o blob ou contêiner apropriado em /usr/lib/firmware. Mais precisamente, coloque um blob da Intel em um diretório /usr/lib/firmware/intel-ucode ou um contêiner da AMD em um diretório /usr/lib/firmware/amd-ucode antes de executar mkinitramfs. Alternativamente, você pode ter ambos os initrd na mesma linha, como initrd /microcode.img /other-initrd.img (adapte isso como acima se /boot não for um ponto de montagem separado).

Você agora pode reinicializar com o "initrd" adicionado e, então, usar o seguinte comando para verificar se o carregamento antecipado funcionou:

dmesg | grep -e 'microcode' -e 'Linux version' -e 'Command line'

Se atualizou para endereçar vulnerabilidades, [então] você pode olhar a saída gerada do comando lscpu para ver o que é informado agora.

Os locais e horários onde o carregamento antecipado acontece são muito diferentes em máquinas AMD e Intel. Primeiro, um exemplo de uma Intel (dispositivo móvel Tigerlake) com carregamento antecipado:

[    0.000000] Linux version 6.10.4 (xry111@stargazer) (gcc (GCC) 14.2.0, GNU ld (GNU Binutils) 2.43) #4 SMP PREEMPT_DYNAMIC Tue Aug 15 18:04:11 CST 2024
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.10.0 root=PARTUUID=<CLASSIFIED> ro
[    0.585605] microcode: Current revision: 0x000000b8
[    0.585611] microcode: Updated early from: 0x00000086

Um exemplo histórico AMD:

[    0.000000] Linux version 4.15.3 (ken@testserver) (gcc version 7.3.0 (GCC))
               #2 SMP Sun Feb 18 02:32:03 GMT 2018
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.15.3-sda5 root=/dev/sda5 ro
[    0.307619] microcode: microcode updated early to new patch_level=0x010000c8
[    0.307678] microcode: CPU0: patch_level=0x010000c8
[    0.307723] microcode: CPU1: patch_level=0x010000c8
[    0.307795] microcode: Microcode Update Driver: v2.2.

Firmware para Placas de Vídeo

Firmware para chips de vídeo ATI Radeon

Os dispositivos iniciais Radeon precisavam somente de um blob de firmware de 2K. Os dispositivos recentes precisam de vários blobs e alguns deles são muito maiores. O tamanho total do diretório do firmware Radeon é de mais que 500K — em um sistema largo moderno você provavelmente pode poupar o espaço, porém ainda é redundante instalar todos os arquivos não usados a cada vez que construir um sistema.

Uma abordagem melhor é a de instalar o pciutils-3.13.0 e, então, usar o lspci para identificar qual controlador VGA está instalado.

Com essa informação, verifique a página "RadeonFeature" da "wiki" do "Xorg" para Decoder ring for engineering vs marketing names para identificar a família (você possivelmente precise saber disso para o controlador "Xorg" no BLFS — Ilhas do Sul e Ilhas do Mar usam o controlador "radeonsi") e o modelo específico.

Agora que você sabe qual controlador está usando, consulte a página Radeon da wiki do Gentoo a qual tem uma tabela listando os blobs de firmware exigidos para os vários chipsets. Observe que os chips das Ilhas do Sul e os das Ilhas do Mar usam firmware diferente para o núcleo 3.17 e posteriores comparados a núcleos anteriores. Identifique e baixe os blobs exigidos; então instale-os:

mkdir -pv /usr/lib/firmware/radeon
cp -v <YOUR_BLOBS> /usr/lib/firmware/radeon

Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).

"Firmware" para chips de vídeo "amdgpu" "AMD"/"ATI"

Todos os controladores de vídeo que usam o controlador "amdgpu" do núcleo exigem "firmware", se você estará usando o controlador "amdgpu" do "Xorg", o controlador "modesetting" do "xserver" ou apenas o "modesetting" do núcleo para obter um "framebuffer" do console maior que "80x25".

Instale pciutils-3.13.0 e use-o para verificar o nome do modelo (procure por "VGA compatible controller:"). Se você tiver uma "Unidade de Processamento Acelerado" ("APU"), ou seja, "CPU" e vídeo no mesmo chip), provavelmente te dirá o nome. Se você tiver uma placa de vídeo "amdgpu" separada, [então] precisará pesquisar para determinar qual nome ela usa (por exemplo, uma placa descrita como "Advanced Micro Devices, Inc." ["AMD"/"ATI"] "Baffin" ["Radeon RX 550 640SP / RX 560/560X"] precisa de "firmware" "Polaris11". Existe uma tabela de "Família, nome do "Chipset", nome do Produto e Firmware" no final das seções "Kernel" na página AMDGPU do "wiki" do "Gentoo".

Depois que você tiver identificado o nome do "firmware", instale todos os arquivos relevantes para ele. Por exemplo, a placa "Baffin" mencionada acima tem vinte e um (21) arquivos "polaris11*", "APUs" como "renoir" e "picasso" tem pelo menos doze (12) arquivos e podem ganhar mais em atualizações futuras (por exemplo, a "APU" "raven" agora tem um décimo terceiro (13º) arquivo, "raven_ta.bin").

mkdir -pv /usr/lib/firmware/amdgpu
cp -v <YOUR_BLOBS> /usr/lib/firmware/amdgpu

Se espaço em disco não for um problema, [então] você poderá instalar todos os arquivos atuais de "firmware" "amdgpu" e não se preocupar exatamente com qual "chipset" está instalado.

Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).

Firmware para chips de vídeo NVIDIA

Algumas GPUs NVIDIA a partir da Kepler em diante (incluindo todas as GPUs NVIDIA GeForce RTX e séries GTX 9xx em diante) exigem firmware assinado pela NVIDIA para funcionar. Para o controlador Nouveau, a NVIDIA lançou os arquivos assinados de firmware no diretório nvidia/ do linux-firmware. Leia-se a página CodeNames do wiki Nouveau para descobrir o nome do código da tua GPU NVIDIA (por exemplo, o nome do código da GeForce RTX 4060 Ti é AD106). O diretório para os arquivos de firmware que você precisa é nomeado como resultado da conversão do nome do código para letras minúsculas (ad106 para o exemplo). O diretório (ou parte do conteúdo dele) pode ser, na verdade, um link simbólico para outro diretório (ou alguns arquivos em outro diretório) e você precisará então criar o link simbólico e baixar o alvo dele você mesmo(a) (por exemplo, ad106 é um link simbólico para ad102).

Se você não conseguir encontrar o diretório da tua GPU nem na árvore linux-firmware nem no arquivo WHENCE (como um link simbólico), isso significa que, ou tua GPU não precisa de nenhum firmware, ou ela é mais recente que a Ada Lovelace (série RTX 40xx) e o firmware para ela ainda não foi lançado (no final de 2024).

Para as GPUs NVIDIA a partir da Tesla até a Kepler, o controlador Nouveau exige algum firmware extra para suportar aceleração de decodificação de vídeo. Esses arquivos de firmware não são lançados pela NVIDIA, mas eles podem ser extraídos a partir do controlador binário da NVIDIA. Para informações mais exatas acerca de quais chips precisam de firmware extraído, veja-se o VideoAcceleration do wiki Nouveau. Para extrair e instalar esses arquivos de firmware, emita:

wget https://anduin.linuxfromscratch.org/BLFS/nvidia-firmware/extract_firmware.py
wget https://us.download.nvidia.com/XFree86/Linux-x86/340.32/NVIDIA-Linux-x86-340.32.run
sh NVIDIA-Linux-x86-340.32.run --extract-only
python3 extract_firmware.py
mkdir -p /usr/lib/firmware/nouveau
cp -d nv* vuc-* /usr/lib/firmware/nouveau/

Firmware para Interfaces de Rede de Comunicação

O núcleo gosta de carregar firmware para alguns controladores de rede de intercomunicação, particularmente aqueles provenientes da Realtek (o diretório /usr/lib/linux-firmware/rtl_nic/), mas eles geralmente parecem funcionar sem ele. Portanto, você pode inicializar o núcleo, verificar o dmesg para mensagens acerca desse firmware ausente e, se necessário, baixar o firmware e colocá-lo no diretório especificado em /usr/lib/firmware, de forma que ele seja encontrado em inicializações subsequentes. Observe que com os núcleos atuais isso funciona independentemente de o controlador ser compilado internamente ou construído como um módulo; não existe necessidade de construir esse firmware internamente no núcleo. Aqui está um exemplo onde o controlador R8169 foi compilado internamente, mas o firmware não foi disponibilizado. Uma vez que o firmware tenha sido fornecido, não existiu menção a ele em inicializações posteriores.

dmesg | grep firmware | grep r8169
[    7.018028] r8169 0000:01:00.0: Direct firmware load for rtl_nic/rtl8168g-2.fw failed with error -2
[    7.018036] r8169 0000:01:00.0 eth0: unable to load firmware patch rtl_nic/rtl8168g-2.fw (-2)

Firmware para Base de Dados Regulatória de Dispositivos Sem Fio

Diferentes países tem diferentes regulamentações acerca do uso do espectro de rádio de dispositivos sem fio. Você pode instalar um firmware para fazer os dispositivos sem fio obedecerem às regulamentações locais do espectro, de forma que você não seja questionado(a) por autoridades locais ou encontre tua placa de rede sem fio bloqueando as frequências de outros dispositivos (por exemplo, controles remotos). O firmware da base de dados regulatória pode ser baixado a partir de https://kernel.org/pub/software/network/wireless-regdb/. Para instalá-lo, basta extrair regulatory.db e regulatory.db.p7s a partir do tarball em /usr/lib/firmware. Observe que ou o controlador cfg80211 precisa estar selecionado como um módulo para que os arquivos regulatory.* sejam carregados, ou esses arquivos precisam estar incluídos como firmware no núcleo, conforme explicado acima em “Firmware para Placas de Vídeo”.

O ponto de acesso (AP) enviaria um código de país para tua NIC sem fio e wpa_supplicant-2.11 diria ao núcleo para carregar a regulação desse país a partir de regulatory.db, e aplicá-la. Observe que vários AP não enviam esse código de país, de forma que você possivelmente fique bloqueado(a) para um uso bastante restrito (especialmente se quiser usar tua interface como um AP).

Firmware Aberto de Som

Alguns sistemas (especialmente laptops econômicos) utilizam um DSP fornecido com a CPU para conexão com o codificador de áudio. O Firmware Aberto de Som precisa ser carregado no DSP para torná-lo funcional. Esses arquivos de firmware podem ser baixados a partir de https://github.com/thesofproject/sof-bin/releases. Extraia o tarball e mude para o diretório extraído e, em seguida, como o(a) usuário(a) root instale o firmware:

install -vdm755 /usr/lib/firmware/intel    &&
cp -av -T --no-preserve=ownership sof      \
   /usr/lib/firmware/intel/sof             &&
cp -av -T --no-preserve=ownership sof-tplg \
   /usr/lib/firmware/intel/sof-tplg

alsa-lib-1.2.13 precisa de arquivos de configuração do Use Case Manager para os sistemas que usam o Sound Open Firmware também. Leia-se a página alsa-lib-1.2.13 para as instruções para instalá-los. Depois que o firmware for carregado (você possivelmente precise reinicializar para que o núcleo os carregue) e os arquivos de configuração do UCM forem instalados, siga “Configurando o ALSA Utilities” para configurar tua placa de som para ALSA corretamente.

Firmware para Outros Dispositivos

Identificar o firmware correto tipicamente exigirá que você instale o pciutils-3.13.0 e, então, use o lspci para identificar o dispositivo. Você deveria então procurar online para verificar qual módulo ele usa; qual firmware; e onde obter o firmware — nem todos eles estão no linux-firmware.

Se possível, você deveria iniciar usando uma conexão com fios quando inicializar pela primeira vez o teu sistema LFS. Para usar uma conexão sem fios, você precisará usar ferramentas de rede de comunicação, tais como iw-6.9, Wireless Tools-29 or wpa_supplicant-2.11.

Firmware possivelmente também seja necessário para outros dispositivos, tais como alguns controladores SCSI; adaptadores bluetooth; ou gravadores de TV. Os mesmos princípios se aplicam.

Incluir Blobs de Firmware na Imagem do Núcleo

Alguns controladores, principalmente os controladores para GPU ATI ou AMD, exigem os arquivos de firmware acessíveis no momento em que são carregados. O método mais fácil de lidar com esses controladores é o de construí-los como um módulo do núcleo. Um método alternativo é o de criar um initramfs (leia-se “A respeito do initramfs” para detalhes) incluindo os arquivos de firmware. Se não quiser usar nenhum dos métodos, você pode incluir os arquivos de firmware na própria imagem do núcleo. Instale os arquivos de firmware necessários em /usr/lib/firmware primeiro, depois configure a seguinte configuração do núcleo e reconstrua o núcleo:

Device Drivers --->
  Generic Driver Options --->
    Firmware loader --->
      <*>                   Firmware loading facility                [FW_LOADER]
      (xx/aa.bin xx/bb.bin)   Build named firmware blobs into the kernel binary
                                                           ...  [EXTRA_FIRMWARE]
      # This is the default, you can change it to "/usr/lib/firmware"
      # if you want:
      (/lib/firmware)           Firmware blobs root directory
                                                       ...  [EXTRA_FIRMWARE_DIR]

Substitua xx/aa.bin xx/bb.bin por uma lista de caminhos separados por espaços em branco para os arquivos de firmware necessários, relativos a /usr/lib/firmware. Um método mais fácil que digitar manualmente a lista (ele possivelmente seja longa) é o de executar o seguinte comando:

echo CONFIG_EXTRA_FIRMWARE='"'$({ cd /usr/lib/firmware; echo amdgpu/* })'"' >> .config
make oldconfig

Substitua amdgpu/* por um padrão de shell que corresponda aos arquivos de firmware necessários.

Atenção

Não distribua uma imagem do núcleo contendo o firmware para terceiros(as) ou você possivelmente viole a GPL.

Acerca de Dispositivos

Apesar da maioria dos dispositivos necessitados pelos pacotes no BLFS e além serem configurados adequadamente pelo udev usando as regras padrão instaladas pelo LFS em /etc/udev/rules.d, existem casos onde as regras precisam ser modificadas ou estendidas.

Múltiplas Placas de Som

Se existirem múltiplas placas de som em um sistema, [então] a placa de som "padrão" se torna aleatória. O método para estabelecer a ordem da placa de som depende se os controladores são módulos ou não. Se os controladores da placa de som forem compilados internamente no núcleo, [então] o controle é via parâmetros de linha de comando do núcleo em /boot/grub/grub.cfg. Por exemplo, se um sistema tiver ambas, uma placa FM801 e uma placa PCI SoundBlaster, [então] o seguinte pode ser acrescentado à linha de comando:

snd-fm801.index=0 snd-ens1371.index=1

Se os controladores da placa de som forem construídos como módulos, [então] a ordem pode ser estabelecida no arquivo /etc/modprobe.conf com:

options snd-fm801 index=0
options snd-ens1371 index=1

Consequências do Dispositivo USB

Os dispositivos USB geralmente tem dois tipos de nós de dispositivo associados com eles.

O primeiro tipo é criado pelos controladores específicos do dispositivo (por exemplo, usb_storage/sd_mod ou usblp) no núcleo. Por exemplo, um dispositivo USB de armazenamento em massa seria /dev/sdb; e uma impressora USB seria /dev/usb/lp0. Esses nós de dispositivo existem somente quando o controlador específico do dispositivo estiver carregado.

O segundo tipo de nós de dispositivo (/dev/bus/usb/BBB/DDD, onde BBB é o número do barramento e DDD é o número do dispositivo) é criado mesmo se o dispositivo não tiver um controlador de núcleo. Ao usar esses nós de dispositivo USB "crus", um aplicativo consegue trocar pacotes USB arbitrários com o dispositivo, isto é, contornar o possivelmente existente controlador de núcleo.

O acesso a nós de dispositivo USB brutos é necessário quando um aplicativo do espaço do(a) usuário(a) estiver atuando como um controlador de dispositivo. Entretanto, para o aplicativo abrir o dispositivo com sucesso, as permissões tem de ser configuradas corretamente. Por padrão, devido a motivos de segurança, todos os dispositivos USB brutos são de propriedade do(a) usuário(a) root e do grupo root, e tem permissões 0664 (o acesso de leitura é necessário, por exemplo, para o lsusb funcionar e para os aplicativos acessarem hubs USB). Os pacotes (tais como SANE e libgphoto2) contendo controladores de dispositivo USB do espaço do(a) usuário(a) também enviam regras do Udev que mudam as permissões dos dispositivos USB brutos controlados. Isto é, as regras instaladas pelo SANE mudam as permissões para escaneadores conhecidos, porém não para impressoras. Se um(a) mantenedor(a) de pacote se esqueceu de escrever uma regra para o teu dispositivo, informe um defeito para ambos, o BLFS (se o pacote estiver lá) e o(a) desenvolvedor(a), e você precisará escrever tua própria regra.

Antes do Linux-2.6.15, o acesso de dispositivo USB bruto era realizado não com nós de dispositivo /dev/bus/usb/BBB/DDD, mas com pseudo arquivos /proc/bus/usb/BBB/DDD. Alguns aplicativos ainda usam somente essa técnica obsoleta e não conseguem usar os novos nós de dispositivo. Eles não conseguem funcionar com a versão 3.5 ou mais recente do núcleo Linux. Se você precisar executar tal aplicativo, contacte o(a) desenvolvedor(a) dele para uma correção.

Atributos de Dispositivo do Udev

O ajuste fino dos atributos de dispositivo, tais como nome e permissões do grupo, é possível criando-se regras extras do udev, casando com algo como isto. O fornecedor e produto pode ser encontrado procurando-se nas entradas do diretório /sys/devices ou usando-se o udevadm info depois que o dispositivo tenha sido anexado. Veja-se a documentação no diretório atual do udev do /usr/share/doc para detalhes.

SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", \
  GROUP:="scanner", MODE:="0660"

Nota

A linha acima é usada somente para propósitos descritivos. As regras do udev da escaneadora são colocadas no lugar quando se instalar o SANE-1.2.1.

Dispositivos para Servidores

Em alguns casos, faz sentido desabilitar o udev completamente e criar dispositivos estáticos. Servidores são um exemplo dessa situação. Um servidor precisa da capacidade de manusear dispositivos dinâmicos? Somente o(a) administrador(a) do sistema pode responder a essa pergunta, porém, em muitos casos, a resposta será não.

Se dispositivos dinâmicos não forem desejados, então dispositivos estáticos precisam ser criados no sistema. Na configuração padrão, o script de inicialização /etc/rc.d/rcS.d/S10udev monta uma partição tmpfs sobre o diretório /dev. Esse problema pode ser ultrapassado montando-se a partição raiz temporariamente:

Atenção

Se as instruções abaixo não forem seguidas cuidadosamente, [então] o seu sistema poderia se tornar não inicializável.

mount --bind / /mnt
cp -a /dev/* /mnt/dev
rm /etc/rc.d/rcS.d/{S10udev,S50udev_retry}
umount /mnt

Neste ponto, o sistema usará dispositivos estáticos até a próxima reinicialização. Crie quaisquer dispositivos adicionais desejados usando o mknod.

Se você quiser restaurar os dispositivos dinâmicos, recrie os vínculos simbólicos /etc/rc.d/rcS.d/{S10udev,S50udev_retry} e reinicialize novamente. Dispositivos estáticos não precisam ser removidos (console e null sempre são necessários), pois eles são cobertos pela partição tmpfs. O uso do disco para dispositivos é desprezível (cerca de 20–30 bytes por entrada).

Dispositivos para Unidades de DVD

Se o processo inicial da inicialização não configurar o dispositivo /dev/dvd adequadamente, [então] ele pode ser instalado usando-se a seguinte modificação para as regras padrão do udev. Como o(a) usuário(a) root, execute:

sed '1d;/SYMLINK.*cdrom/ a\
KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100"' \
/lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules

Configurando para Adicionar Usuários(as)

Juntos, o comando /usr/sbin/useradd e o diretório /etc/skel (ambos são fáceis de configurar e de usar), fornecem uma maneira para assegurar que usuários(as) novos(as) sejam adicionados(as) ao seu sistema LFS com as mesmas configurações iniciais para coisas como o PATH; o processamento do teclado; e outras variáveis ambientais. Usar essas duas facilidades torna mais fácil assegurar esse estado inicial para cada usuário(a) novo(a) adicionado(a) ao sistema.

O diretório /etc/skel mantém cópias de vários arquivos de inicialização e de outros que possivelmente sejam copiados para o diretório home do(a) novo(a) usuário(a) quando o aplicativo /usr/sbin/useradd adicionar o(a) usuário(a) novo(a).

Useradd

O aplicativo useradd usa uma coleção de valores padrão mantidos em /etc/default/useradd. Esse arquivo é criado em uma instalação da base do LFS pelo pacote Shadow. Se ele tiver sido removido ou renomeado, [então] o aplicativo useradd usa alguns parâmetros residuais internos. Você consegue ver os valores dos parâmetros residuais executando /usr/sbin/useradd -D.

Para mudar esses valores, simplesmente modifique o arquivo /etc/default/useradd como o(a) usuário(a) root. Uma alternativa para modificar diretamente o arquivo é a de executar useradd como o(a) usuário(a) root enquanto fornece as modificações desejadas na linha de comando. Informação acerca do como fazer isso pode ser encontrada na página de manual do useradd.

/etc/skel

Para começar, crie um diretório /etc/skel e tenha certeza de que ele seja gravável somente pelo(a) administrador(a) do sistema, usualmente o(a) root. Criar-se o diretório como o(a) root é o melhor caminho a percorrer.

O modo de quaisquer arquivos oriundos desta parte do livro que você coloque no /etc/skel deveria ser gravável somente pelo(a) dono(a). Também, dado que não existe como se dizer que tipo de informação sensível um(a) usuário(a) eventualmente possa colocar na cópia dele(a) desses arquivos, você deveria torná-los ilegíveis por "group" e "other".

Você também pode colocar outros arquivos no /etc/skel e permissões diferentes possivelmente sejam necessárias para eles.

Decida quais arquivos de inicialização deveriam ser fornecidos em cada (ou na maioria) diretório "home" do(a) usuário(a) novo(a). As decisões que você tomar afetarão o que você fizer nas próximas duas seções, Os Arquivos de Iniciação do Shell Bash e Os Arquivos vimrc. Alguns, ou todos, daqueles arquivos serão úteis para o(a) root; para quaisquer usuários(as) já existentes; e para usuários(as) novos(as).

Os arquivos originários daquelas seções que você poderia querer colocar no /etc/skel incluem: .inputrc; .bash_profile; .bashrc; .bash_logout; .dircolors; e .vimrc. Se estiver inseguro(a) acerca de quais desses deveriam ser colocados lá, [então] apenas continue para as seções seguintes; leia cada seção e quaisquer referências fornecidas; e, então, tome a sua decisão.

Você executará um conjunto ligeiramente modificado de comandos para arquivos que estejam colocados no /etc/skel. Cada seção te lembrará disso. Em resumo, os comandos do livro foram escritos para arquivos não adicionados ao /etc/skel; e, em vez disso, apenas envia os resultados para o diretório "home" do(a) usuário(a). Se o arquivo estará no /etc/skel, [então] mude o(s) comando(s) do livro para enviar a saída gerada para lá em vez disso; e, então, apenas copie o arquivo a partir do /etc/skel para os diretórios apropriados, como o /etc; o ~; ou o diretório "home" de qualquer outro(a) usuário(a) já no sistema.

Quando Adicionando-se um(a) Usuário(a)

Quando se adicionar um(a) usuário(a) novo(a) com o useradd, use o parâmetro -m, o qual diz ao useradd para criar o diretório "home" do(a) usuário(a); e para copiar arquivos a partir do /etc/skel (pode ser anulado) para o diretório "home" do(a) usuário(a) novo(a). Por exemplo, (realize como o(a) usuário(a) root):

useradd -m <novo(a)_usuário(a)>

Se você estiver compartilhando um /home ou /usr/src com outra distribuição Linux (por exemplo, a distribuição anfitriã usada para construir o LFS), [então] você pode criar um(a) usuário(a) com o mesmo "UID" (e o mesmo "GID" de grupo primário) para manter a titularidade da propriedade do arquivo consistente em todos os sistemas. Primeiro, na outra distribuição, obtenha o "UID" do(a) usuário(a) e o "GID" do grupo primário do(a) usuário(a):

getent passwd <nome_usuário(a)> | cut -d ':' -f 3,4

O comando deveria gerar o "UID" e o "GID", separados por dois pontos. Agora no sistema BLFS, crie o grupo primário e o(a) usuário(a):

groupadd -g <GID> <nome_usuário(a)> &&
useradd -u <UID> -g <nome_usuário(a)> <nome_usuário(a)>

Acerca de Usuários(as) e de Grupos do Sistema

Ao longo do BLFS, muitos pacotes instalam aplicativos que executam como processos em segundo plano ou, de alguma maneira, deveriam ter um nome de usuário(a) ou um de grupo atribuído. Geralmente esses nomes são usados para mapear um ID do(a) usuário(a) (uid) ou um ID do grupo (gid) para uso do sistema. Geralmente os números específicos do uid ou do gid usados por esses aplicativos não são significativos. A exceção, certamente, é que o(a) root tem um uid e um gid de zero (0), que é, de fato, especial. Os valores do uid são armazenados em /etc/passwd; e os valores do gid são encontrados em /etc/group.

Costumeiramente, os sistemas Unix classificam os(as) usuários(as) e os grupos em duas categorias: usuários(as) do sistema; e usuários(as) regulares. Aos(Às) usuários(as) e aos grupos do sistema são dados números baixos; e os(as) usuários(as) e os grupos regulares tem valores numéricos maiores que todos os valores do sistema. O ponto de corte para esses números é encontrado em dois parâmetros no arquivo de configuração /etc/login.defs. O valor padrão UID_MIN é mil (1000); e o valor padrão GID_MIN é mil (1000). Se um valor específico do uid e do gid não for especificado quando se criar um(a) usuário(a) com o useradd ou um grupo com o groupadd, [então] os valores atribuídos sempre estarão acima desses valores do ponto de corte.

Adicionalmente, o Linux Standard Base recomenda que os valores do "UID" e do "GID" do sistema deveriam estar abaixo de cem (100).

Abaixo está uma tabela de valores sugeridos do uid/gid usados no BLFS além daqueles definidos em uma instalação da base do LFS. Estes podem ser mudados conforme desejado, porém fornecem um conjunto sugerido de valores consistentes.

Tabela 3.1. Valores Sugeridos do UID/GID

Nome uid gid
bin 1
lp 9
adm 16
atd 17 17
messagebus 18 18
lpadmin   19
named 20 20
gdm 21 21
fcron 22 22
systemd-journal 23 23
apache 25 25
smmsp 26 26
polkitd 27 27
rpc 28 28
exim 31 31
postfix 32 32
postdrop 33
sendmail 34
mail 34
vmailman 35 35
news 36 36
kdm 37 37
fetchmail 38
mariadb 40 40
postgres 41 41
dovecot 42 42
dovenull 43 43
ftp 45 45
proftpd 46 46
vsftpd 47 47
rsyncd 48 48
sshd 50 50
stunnel 51 51
dhcpcd 52 52
svn 56 56
svntest 57
git 58 58
games 60 60
kvm 61
wireshark 62
sddm 64 64
lightdm 65 65
scanner 70
colord 71 71
systemd-journal-gateway 73 73
systemd-journal-remote 74 74
systemd-journal-upload 75 75
systemd-network 76 76
systemd-resolve 77 77
systemd-timesync 78 78
systemd-coredump 79 79
uuidd 80 80
systemd-oom 81 81
ldap 83 83
avahi 84 84
avahi-autoipd 85 85
netdev 86
ntp 87 87
unbound 88 88
plugdev 90
wheel 97
anonymous 98
nobody 65534
nogroup 65534

Os Arquivos de Iniciação do Shell Bash

O aplicativo de shell /bin/bash (doravante referenciado apenas como "o shell") usa uma coleção de arquivos de iniciação para auxiliar a criar um ambiente. Cada arquivo tem um uso específico e possivelmente afete diferentemente os ambientes de login e os interativos. Os arquivos no diretório /etc geralmente fornecem configurações globais. Se um arquivo equivalente existir no seu diretório home, [então] ele possivelmente substitua as configurações globais.

Um shell de login interativo é iniciado depois de um login exitoso, usando o /bin/login, pela leitura do arquivo /etc/passwd. Essa invocação do shell normalmente lê /etc/profile e o equivalente privado dele ~/.bash_profile (ou o ~/.profile, se chamado como /bin/sh) assim que iniciar.

Um shell de não login interativo normalmente é iniciado em linha de comando usando um aplicativo de shell (por exemplo, [prompt]$/bin/bash) ou pelo comando /bin/su. Um shell de não login interativo também é iniciado com um aplicativo de terminal, tal como o xterm ou o konsole, a partir de dentro de um ambiente gráfico. Esse tipo de invocação do shell normalmente copia o ambiente do(a) ancestral e, então, lê o arquivo ~/.bashrc do(a) usuário(a) para instruções adicionais de configuração de iniciação.

Um shell não interativo usualmente está presente quando um script de shell está executando. Ele é não interativo, pois está processando um script e não aguardando por entradas geradas de usuário(a) entre os comandos. Para essas invocações de shell, somente o ambiente herdado a partir do shell ancestral é usado.

O arquivo ~/.bash_logout não é usado para uma invocação do shell. Ele é lido e executado quando um(a) usuário(a) sai de um shell de login interativo.

Muitas distribuições usam o /etc/bashrc para a inicialização abrangente ao sistema dos shells de não login. Esse arquivo usualmente é chamado a partir do arquivo ~/.bashrc do(a) usuário(a) e não é construído diretamente no próprio bash. Essa convenção é seguida nesta seção.

Para mais informação, veja-se info bash -- Nós: Arquivos de Iniciação do Bash e Shells Interativos.

Nota

A maioria das instruções abaixo é usada para criar arquivos localizados na estrutura de diretório /etc, o que exige que você execute os comandos como o(a) usuário(a) root. Se você escolher criar os arquivos nos diretórios home dos(as) usuários(as) em vez disso, [então] você deveria executar os comandos como um(a) usuário(a) desprivilegiado(a).

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/bash-shell-startup-files

/etc/profile

Aqui está um /etc/profile base. Esse arquivo começa configurando algumas funções auxiliares e alguns parâmetros básicos. Ele especifica alguns parâmetros de histórico do bash e, para propósitos de segurança, desabilita a manutenção de um arquivo permanente de histórico para o(a) usuário(a) root. Em seguida, ele chama conjuntos de comandos sequenciais pequenos e de propósito único no diretório /etc/profile.d para fornecer a maior parte da inicialização.

cat > /etc/profile << "EOF"
# Begin /etc/profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>

# System wide environment variables and startup programs.

# System wide aliases and functions should go in /etc/bashrc.  Personal
# environment variables and startup programs should go into
# ~/.bash_profile.  Personal aliases and functions should go into
# ~/.bashrc.

# Functions to help us manage paths.  Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
        local IFS=':'
        local NEWPATH
        local DIR
        local PATHVARIABLE=${2:-PATH}
        for DIR in ${!PATHVARIABLE} ; do
                if [ "$DIR" != "$1" ] ; then
                  NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
                fi
        done
        export $PATHVARIABLE="$NEWPATH"
}

pathprepend () {
        pathremove $1 $2
        local PATHVARIABLE=${2:-PATH}
        export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}

pathappend () {
        pathremove $1 $2
        local PATHVARIABLE=${2:-PATH}
        export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}

export -f pathremove pathprepend pathappend

# Set the initial path
export PATH=/usr/bin

# Attempt to provide backward compatibility with LFS earlier than 11
if [ ! -L /bin ]; then
        pathappend /bin
fi

if [ $EUID -eq 0 ] ; then
        pathappend /usr/sbin
        if [ ! -L /sbin ]; then
                pathappend /sbin
        fi
        unset HISTFILE
fi

# Set up some environment variables.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"

# Set some defaults for graphical systems
export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share}
export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg}
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done

unset script

# End /etc/profile
EOF

O Diretório /etc/profile.d

Agora crie o diretório /etc/profile.d, onde os scripts individuais da inicialização são colocados:

install --directory --mode=0755 --owner=root --group=root /etc/profile.d

/etc/profile.d/bash_completion.sh

Nota

Usar o script de completação do bash abaixo é controverso. Nem todos(as) os(as) usuários(as) gostam dele. Ele adiciona muitas (usualmente mais que mil (1.000)) linhas ao ambiente do bash e torna difícil usar o comando 'set' para examinar variáveis simples de ambiente. Omitir-se este script não interfere na habilidade do bash de usar a tecla tab para a completação de nome de arquivo.

Este script importa scripts de completação do bash, instalados por muitos outros pacotes do BLFS, para permitir a completação de linha de comando TAB.

cat > /etc/profile.d/bash_completion.sh << "EOF"
# Início /etc/profile.d/bash_completion.sh
# Importa scripts de completação do bash

# Se o pacote "bash-completion" estiver instalado, use configuração dele ao invés
if [ -f /usr/share/bash-completion/bash_completion ]; then

  # Verificar Bash interativo e que já não fomos carregados.
  if [ -n "${BASH_VERSION-}" -a -n "${PS1-}" -a -z "${BASH_COMPLETION_VERSINFO-}" ]; then

    # Verificar versão do Bash suficientemente recente.
    if [ ${BASH_VERSINFO[0]} -gt 4 ] || \
       [ ${BASH_VERSINFO[0]} -eq 4 -a ${BASH_VERSINFO[1]} -ge 1 ]; then
       [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && \
            . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion"
       if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then
          # Carregar código de completação.
          . /usr/share/bash-completion/bash_completion
       fi
    fi
  fi

else

  # bash-completions não estão instaladas; use somente o diretório de completação do Bash
  if shopt -q progcomp; then
    for script in /etc/bash_completion.d/* ; do
      if [ -r $script ] ; then
        . $script
      fi
    done
  fi
fi

# Fim /etc/profile.d/bash_completion.sh
EOF

Tenha certeza de que o diretório existe:

install --directory --mode=0755 --owner=root --group=root /etc/bash_completion.d

Para uma instalação mais completa, veja-se https://wiki.linuxfromscratch.org/blfs/wiki/bash-shell-startup-files#bash-completions.

/etc/profile.d/dircolors.sh

Este script usa os arquivos ~/.dircolors e /etc/dircolors para controlar as cores dos nomes de arquivos em uma listagem de diretório. Eles controlam a saída gerada colorida de coisas como ls --color. A explicação do como inicializar esses arquivos está ao final desta seção.

cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
        eval $(dircolors -b /etc/dircolors)
fi

if [ -f "$HOME/.dircolors" ] ; then
        eval $(dircolors -b $HOME/.dircolors)
fi
EOF

/etc/profile.d/extrapaths.sh

Este script adiciona alguns caminhos úteis à PATH e pode ser usado para personalizar outras variáveis de ambiente relacionadas a PATH (por exemplo, LD_LIBRARY_PATH, etc) que possivelmente sejam necessárias para todos(as) os(as) usuários(as).

cat > /etc/profile.d/extrapaths.sh << "EOF"
if [ -d /usr/local/lib/pkgconfig ] ; then
        pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
fi
if [ -d /usr/local/bin ]; then
        pathprepend /usr/local/bin
fi
if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
        pathprepend /usr/local/sbin
fi

if [ -d /usr/local/share ]; then
        pathprepend /usr/local/share XDG_DATA_DIRS
fi

# Set some defaults before other applications add to these paths.
pathappend /usr/share/info INFOPATH
EOF

Nota

O programa man deduz automaticamente o caminho de pesquisa para páginas de manual examinando o conteúdo da variável PATH; veja-se manpath(5) para detalhes. Configurar a variável MANPATH possivelmente substitua a dedução automática, de forma que os(as) editores(as) do BLFS não recomendam configurá-la. Se você precisar configurá-la por qualquer motivo, é melhor iniciar o valor dela com dois pontos (:), por exemplo MANPATH=:/opt/somepkg/share/man:/opt/otherpkg/share/man, de forma que os caminhos listados na variável MANPATH sejam pospostos ao valor deduzido automaticamente em vez de substituí-lo.

/etc/profile.d/readline.sh

Este script configura o arquivo padrão de configuração inputrc. Se o(a) usuário(a) não tiver configurações individuais, [então] usa o arquivo global.

cat > /etc/profile.d/readline.sh << "EOF"
# Configura a variável de ambiente "INPUTRC".
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
        INPUTRC=/etc/inputrc
fi
export INPUTRC
EOF

/etc/profile.d/umask.sh

Configurar-se o valor do umask é importante para a segurança. Aqui as permissões padrão de escrita do grupo são desligadas para os(as) usuários(as) de sistema e quando o nome do(a) usuário(a) e o nome do grupo não forem os mesmos.

cat > /etc/profile.d/umask.sh << "EOF"
# Por padrão, a máscara de usuário(a) deveria ser configurada.
if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
  umask 002
else
  umask 022
fi
EOF

/etc/profile.d/i18n.sh

Este script configura uma variável de ambiente necessária para o suporte ao idioma nativo. Uma discussão completa acerca de se determinar esta variável pode ser encontrada na página Configurando o Local do Sistema.

cat > /etc/profile.d/i18n.sh << "EOF"
# Configura variáveis de i18n
for i in $(locale); do
  unset ${i%=*}
done

if [[ "$TERM" = linux ]]; then
  export LANG=C.UTF-8
else
  export LANG=<ll>_<CC>.<charmap><@modifiers>
fi
EOF

Outros Valores da Inicialização

Outra inicialização pode facilmente ser adicionada ao profile adicionando-se scripts adicionais ao diretório /etc/profile.d.

/etc/bashrc

Aqui está um /etc/bashrc de base. Os comentários no arquivo deveriam explicar tudo o que você precisa.

cat > /etc/bashrc << "EOF"
# Begin /etc/bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>

# System wide aliases and functions.

# System wide environment variables and startup programs should go into
# /etc/profile.  Personal environment variables and startup programs
# should go into ~/.bash_profile.  Personal aliases and functions should
# go into ~/.bashrc

# Provides colored /bin/ls and /bin/grep commands.  Used in conjunction
# with code in /etc/profile.

alias ls='ls --color=auto'
alias grep='grep --color=auto'

# Provides prompt for interactive shells, specifically shells started
# in the X environment. [Review the LFS archive thread titled
# PS1 Environment Variable for a great case study behind this script
# addendum.]

NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
  PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
  PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi

unset RED GREEN NORMAL

# GnuPG wants this or it'll fail with pinentry-curses under some
# circumstances (for example signing a Git commit)
tty -s && export GPG_TTY=$(tty)

# End /etc/bashrc
EOF

Para mais informação acerca das sequências de escape que você pode usar para o seu prompt (isto é, a variável de ambiente PS1), veja-se info bash -- Nó: Imprimindo um Prompt.

~/.bash_profile

Aqui está um ~/.bash_profile de base. Se você quiser que cada usuário(a) novo(a) tenha esse arquivo automaticamente, [então] apenas mude a saída gerada do comando para o /etc/skel/.bash_profile e verifique as permissões depois que o comando for executado. Você pode, então, copiar o /etc/skel/.bash_profile para os diretórios home dos(as) usuários(as) já existentes, incluindo o(a) root, e configurar o(a) proprietário(a) e o grupo apropriadamente.

cat > ~/.bash_profile << "EOF"
# Início ~/.bash_profile
# Escrito para o Beyond Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>
# atualizado por Bruce Dubbs <bdubbs@linuxfromscratch.org>

# Variáveis de ambiente e aplicativos de inicialização pessoais.

# Alias e funções pessoais deveriam ir em ~/.bashrc. Variáveis de
# ambiente e aplicativos de inicialização abrangentes ao sistema estão
# em /etc/profile. Alias e funções abrangentes ao sistema estão em /etc/bashrc.

if [ -f "$HOME/.bashrc" ] ; then
  source $HOME/.bashrc
fi

if [ -d "$HOME/bin" ] ; then
  pathprepend $HOME/bin
fi

# Ter-se o "." no PATH é perigoso.
#if [ $EUID -gt 99 ]; then
#  pathappend .
#fi

# Fim ~/.bash_profile
EOF

~/.profile

Aqui está um ~/.profile de base. Os comentários e as instruções para se usar o /etc/skel para o .bash_profile acima também se aplicam aqui. Somente os nomes dos arquivos alvo são diferentes.

cat > ~/.profile << "EOF"
# Início ~/.profile
# Variáveis de ambiente e aplicativos de inicialização pessoais.

if [ -d "$HOME/bin" ] ; then
  pathprepend $HOME/bin
fi

# Configura variáveis de internacionalização específicas de usuário(a).
#export LANG=<ll>_<CC>.<charmap><@modifiers>

# Fim ~/.profile
EOF

~/.bashrc

Aqui está um ~/.bashrc de base.

cat > ~/.bashrc << "EOF"
# Início ~/.bashrc
# Escrito para o Beyond Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>

# Alias e funções pessoais.

# Variáveis de ambiente e aplicativos da inicialização pessoais deveriam
# ir em ~/.bash_profile. Variáveis de ambiente e aplicativos da
# inicialização abrangentes ao sistema estão em /etc/profile. Alias e
# funções abrangentes ao sistema estão em /etc/bashrc.

if [ -f "/etc/bashrc" ] ; then
  source /etc/bashrc
fi

# Configura variáveis de internacionalização específicas de usuário(a).
#export LANG=<ll>_<CC>.<charmap><@modifiers>

# Fim ~/.bashrc
EOF

~/.bash_logout

Este é um ~/.bash_logout vazio que pode ser usado como um modelo. Você perceberá que o ~/.bash_logout de base não inclui um comando clear. Isso é porque o clear é manuseado no arquivo /etc/issue.

cat > ~/.bash_logout << "EOF"
# Início ~/.bash_logout
# Escrito para o Beyond Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>

# Itens pessoais a realizar quando do logout.

# Fim ~/.bash_logout
EOF

/etc/dircolors

Se você quiser usar o recurso dircolors, então execute o seguinte comando. As etapas de configuração do /etc/skel mostradas acima também podem ser usadas aqui para fornecer um arquivo ~/.dircolors quando um(a) usuário(a) novo(a) for configurado(a). Como antes, apenas mude o nome de arquivo da saída gerada no seguinte comando e se assegure de que as permissões, proprietário(a) e grupo estejam corretas nos arquivos criados e (ou) copiados.

dircolors -p > /etc/dircolors

Se desejar personalizar as cores usadas para os diferentes tipos de arquivo, [então] você pode editar o arquivo /etc/dircolors. As instruções para configurar as cores estão embutidas no arquivo.

Finalmente, Ian Macdonald escreveu uma excelente coleção de dicas e de truques para melhorar o teu ambiente de shell. Você consegue lê-la online em https://caliban.org/bash/index.shtml.

Os Arquivos /etc/vimrc e ~/.vimrc

O livro LFS instala o Vim como o editor de texto dele. Neste ponto, deveria ser observado que existe um monte de aplicativos de edição por aí, incluindo o Emacs; o nano; o Joe; e muitos mais. Qualquer um(a) que tenha estado na Internet (especialmente usenet) por um curto período de tempo certamente terá observado pelo menos uma guerra de chamas, geralmente envolvendo usuários(as) do Vim e do Emacs!

O livro LFS cria um arquivo vimrc básico. Nesta seção, você encontrará uma tentativa de melhorar esse arquivo. Na iniciação, o vim lê o arquivo global de configuração (/etc/vimrc), bem como um arquivo específico do(a) usuário(a) (~/.vimrc). Qualquer um ou ambos podem ser adaptados para atender às necessidades de seu sistema específico.

Aqui está um .vimrc ligeiramente expandido que você pode colocar no ~/.vimrc para fornecer efeitos específicos do(a) usuário(a). Certamente, se você colocá-lo no /etc/skel/.vimrc em vez disso, [então] ele será disponibilizado para os(as) usuários(as) que você adicionar ao sistema posteriormente. Você também pode copiar o arquivo a partir do /etc/skel/.vimrc para o diretório home dos(as) usuários(as) já no sistema, tais como o(a) root. Tenha certeza de configurar permissões, proprietário(a) e grupo se você efetivamente copiar alguma coisa diretamente a partir do /etc/skel.

" Início .vimrc

set columns=80
set wrapmargin=8
set ruler

" Fim .vimrc

Observe que as etiquetas de comentário são ", em vez da mais usual # ou //. Isso está correto; a sintaxe para o vimrc é ligeiramente incomum.

Abaixo você encontrará uma explicação rápida do que cada uma das opções nesse arquivo de exemplo significa aqui:

  • set columns=80: Isso simplesmente configura o número de colunas usadas na tela.

  • set wrapmargin=8: Isso é o número de caracteres a partir da borda direita da janela onde a quebra inicia.

  • set ruler: Isso faz com que o vim mostre a linha e a coluna atuais no canto direito inferior da tela.

Mais informação acerca das muitas opções do vim pode ser encontrada lendo-se a ajuda dentro do próprio vim. Faça isso digitando :help no vim para obter a ajuda geral; ou digitando :help usr_toc.txt para visualizar a Tabela de Conteúdo do Manual do(a) Usuário(a).

Personalizando o seu Logon com o /etc/issue

Quando você inicializar pela primeira vez o seu novo sistema LFS, a tela do logon será legal e plana (como deveria ser em um sistema esqueleto). Muitas pessoas, entretanto, desejarão que o sistema delas exiba alguma informação na mensagem do logon. Isso pode ser realizado usando o arquivo /etc/issue.

O arquivo /etc/issue é um arquivo de texto plano que também aceitará certas sequências de escape (veja-se abaixo) para a finalidade de inserir informação acerca do sistema. Existe também o arquivo issue.net que pode ser usado quando se logar remotamente. O ssh, no entanto, somente o usará se você configurar a opção no arquivo de configuração e não interpretará as sequências de escape mostradas abaixo.

Uma das coisas mais comuns que as pessoas querem fazer é limpar a tela a cada logon. A maneira mais fácil de fazer isso é a de colocar uma sequência de escape "clear" no /etc/issue. Uma maneira simples de fazer isso é a de emitir o comando clear > /etc/issue. Isso inserirá o código de escape relevante no início do arquivo /etc/issue. Observe que, se você fizer isso, quando editar o arquivo, você deveria deixar os caracteres (normalmente '^[[H^[[2J') sozinhos na primeira linha.

Nota

Sequências de escape do terminal são códigos especiais reconhecidos pelo terminal. O ^[ representa um caractere ASCII ESC. A sequência ESC [ H coloca o cursor no canto superior esquerdo da tela; e ESC 2 J apaga a tela. Para mais informação acerca das sequências de escape do terminal, veja-se https://invisible-mirror.net/xterm/ctlseqs/ctlseqs.html

As seguintes sequências são reconhecidas pelo agetty (o aplicativo que normalmente analisa o /etc/issue). Esta informação é originária do man agetty, onde você consegue encontrar informação extra acerca do processo do logon.

O arquivo issue pode conter certas sequências de caracteres para exibir várias informações. Todas as sequências do issue consistem de uma contra barra (\) imediatamente seguida de uma das letras explicadas abaixo (assim, \d no /etc/issue inseriria a data atual).

b   Insere a taxa de transmissão da linha atual.
d   Insere a data atual.
s   Insere o nome do sistema; o nome do sistema operacional.
l   Insere o nome da linha tty atual.
m   Insere o identificador da arquitetura da máquina, por exemplo, i686.
n   Insere o nome do nó da máquina, também conhecido como nome do host.
o   Insere o nome de domínio da máquina.
r   Insere o número de lançamento do núcleo, por exemplo, 2.6.11.12.
t   Insere a hora atual.
u   Insere o número de usuários(as) atuais conectados(as).
U   Insere a string "1 usuário(a)" ou "<n> usuários" onde <n> é o
    número de usuários(as) atuais conectados(as).
v   Insere a versão do sistema operacional, por exemplo, a data de construção, etc.

Geração de Número Aleatório

O núcleo Linux fornece um gerador de número aleatório o qual é acessado por meio do /dev/random e do /dev/urandom. Os aplicativos que utilizam os dispositivos random e urandom, como o OpenSSH, se beneficiarão destas instruções.

Quando um sistema Linux inicia sem muita interação do(a) operador(a), o pool de entropia (dados usados para computar um número aleatório) possivelmente esteja em um estado razoavelmente previsível. Isso cria a possibilidade real de que o número gerado na iniciação possivelmente seja sempre o mesmo. Para a finalidade de neutralizar esse efeito, você deveria transportar a informação do pool de entropia ao longo dos seus desligamentos e iniciações.

Instale o script de iniciação /etc/rc.d/init.d/random incluso com o pacote blfs-bootscripts-20250225.

make install-random

Capítulo 4. Segurança

Segurança toma muitas formas em um ambiente computacional. Depois de alguma discussão inicial, este capítulo dá exemplos de três tipos de segurança: acesso; prevenção; e detecção.

O acesso para os(as) usuários(as) geralmente é manuseado pelo login ou um aplicativo projetado para lidar com a função de login. Neste capítulo, nós mostramos como melhorar o login configurando-se políticas com os módulos PAM. O acesso via redes de comunicação também pode ser assegurado por políticas configuradas pelo iptables, comumente referenciado como um firewall. As bibliotecas Network Security Services (NSS) e Netscape Portable Runtime (NSPR) podem ser instaladas e compartilhadas entre os muitos aplicativos exigindo elas. Para os aplicativos que não oferecem a melhor segurança, você pode usar o pacote Stunnel para amarrar um processo de segundo plano do aplicativo dentro de um túnel SSL.

A prevenção a violações, como um trojan, é auxiliada por aplicativos como o GnuPG, especificamente a habilidade de confirmar pacotes assinados, o que reconhece modificações do tarball depois que o(a) empacotador(a) o criou.

Finalmente, nós tocamos na detecção com um pacote que armazena "assinaturas" de arquivos críticos (definidos pelo(a) administrador(a)) e, então, regenera aquelas "assinaturas" e compara para arquivos que tenham sido mudados.

Vulnerabilidades

Acerca de vulnerabilidades

Todo software tem defeitos. De vez em quando, um defeito cosegue ser explorado, por exemplo para permitir que os(as) usuários(as) ganhem privilégios melhorados (talvez ganhando um shell do(a) root; ou simplesmente acessando ou deletando os arquivos dos(as) outros(as) usuários(as)); ou para permitir que um sítio remoto quebre um aplicativo (negação de serviço); ou para roubo de dados. Esses defeitos são rotulados como vulnerabilidades.

O lugar principal onde as vulnerabilidades são registradas é cve.mitre.org. Infelizmente, muitos números de vulnerabilidade ("CVE-yyyy-nnnn") inicialmente são rotulados somente como "reservado" quando as distribuições iniciam a emitir correções. Também, algumas vulnerabilidades se aplicam a combinações particulares das opções do configure; ou se aplicam somente a versões antigas de pacotes que foram há muito tempo atualizados no BLFS.

O BLFS se diferencia das distribuições—não existe equipe de segurança do BLFS e os(as) editores(as) somente se tornam cientes das vulnerabilidades depois que elas são de conhecimento público. De vez em quando, um pacote com uma vulnerabilidade não será atualizado no livro por um tempo longo. Os problemas podem ser registrados no sistema Trac, o que poderia acelerar a resolução.

A maneira normal para o BLFS corrigir uma vulnerabilidade é, idealmente, a de atualizar o livro para um novo lançamento corrigido do pacote. De vez em quando isso acontece mesmo antes da vulnerabilidade ser de conhecimento público, de forma que não existe a garantia de que será mostrada como uma correção de vulnerabilidade no Registro das Mudanças. Alternativamente, um comando sed ou um remendo tomado a partir de uma distribuição, possivelmente seja apropriado.

O ponto principal é o de que você é o(a) responsável pela sua própria segurança e por avaliar o impacto potencial de quaisquer problemas.

Os(As) editores(as) agora emitem Avisos de Segurança para pacotes no BLFS (e no LFS), os quais podem ser encontrados em Avisos de Segurança do BLFS, e graduam a gravidade de acordo com o que o(a) desenvolvedor(a) informa; ou com o que for mostrado em nvd.nist.gov, se isso tiver detalhes.

Para acompanhar o que está sendo descoberto, você possivelmente deseje seguir os anúncios de segurança de uma ou mais distribuições. Por exemplo, o Debian tem o Segurança do Debian. Os links do Fedora acerca de segurança estão em o wiki do Fedora. Os detalhes dos anúncios de segurança do Linux do Gentoo são discutidos em Segurança do Gentoo. Finalmente, os arquivamentos do Slackware dos anúncios de segurança estão em Segurança do Slackware.

A fonte mais genérica no idioma inglês é talvez a Lista de Discussão de Divulgação Completa; porém, por favor, leia o comentário naquela página. Se usar outros idiomas, [então] você possivelmente prefira outros sítios, tais como o heise.de (alemão); ou o cert.hr (croata). Não existe um específico para Linux. Existe também uma atualização diária em "lwn.net" para assinantes (acesso livre aos dados depois de duas semanas, porém a base de dados de vulnerabilidades deles em lwn.net/Alerts é irrestrita).

Para alguns pacotes, assinar as listas de 'anúncio' deles fornecerá notícias imediatas das versões mais recentes.

make-ca-1.15

Introdução ao make-ca

A Infraestrutura de Chave Pública (ICP) é um método para validar a autenticidade de uma entidade desconhecida ao longo de redes de comunicação não confiáveis. A ICP funciona estabelecendo uma cadeia de confiança, em vez de confiar explicitamente em cada dispositivo individual ou entidade. Para a finalidade de um certificado apresentado por uma entidade remota ser acreditado, esse certificado precisa apresentar uma cadeia completa de certificados que possa ser validada usando-se o certificado raiz de uma Autoridade Certificadora (AC) que é acreditada pela máquina local.

Estabelecer confiança com uma AC envolve validar coisas como endereço da companhia, titularidade de propriedade, informação de contato, etc., e assegurar que a AC tenha seguido as melhores práticas, tais como se submeter a auditorias periódicas de segurança por investigadores(as) independentes e manter uma sempre disponível lista de revogação de certificado. Isso está bem fora do escopo do BLFS (como está para a maior parte das distribuições do Linux). A loja de certificado fornecida aqui é tomada a partir da Fundação Mozilla, que estabeleceu políticas de inclusão muito estritas descritas aqui.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/lfs-book/make-ca/archive/v1.15/make-ca-1.15.tar.gz

  • Tamanho da transferência: 40 KB

  • Somas de verificação MD5 da transferência: 1af805d92b55091b5f11fd7db77c9b0e

  • Espaço em disco estimado exigido: 164 KB (com todas as dependências em tempo de execução)

  • Tempo de construção estimado: menos que 0,1 UPC (com todas as dependências em tempo de execução)

Nota

Esse pacote envia um certificado de AC para validar a identidade de https://hg.mozilla.org/. Se a cadeia de confiança desse sítio da web tiver sido mudada depois do lançamento do make-ca-1.15, ele poderá falhar ao obter a revisão do certdata.txt a partir do servidor. Use uma versão atualizada do make-ca na página de lançamento se esse problema ocorrer.

Dependências do make-ca

Exigidas

p11-kit-0.25.5 (tempo de execução, construído depois do libtasn1-4.20.0, exigido nas instruções a seguir para gerar armazenamentos de certificados a partir de âncoras de confiança, e a cada vez que make-ca for executado)

Opcionais (tempo de execução)

nss-3.108 (para gerar um NSSDB compartilhado)

Instalação do make-ca e Geração dos Armazenamentos de Certificados de AC

O script make-ca baixará e processará os certificados incluídos no arquivo certdata.txt para uso como âncoras de confiança para o módulo de confiança p11-kit-0.25.5. Adicionalmente, gerará lojas de certificado do sistema usadas pelos aplicativos do BLFS (se os aplicativos recomendados e os opcionais estiverem presentes no sistema). Quaisquer certificados locais armazenados em /etc/ssl/local serão importados para ambos: as âncoras de confiança; e as lojas de certificado geradas (substituindo a confiança do Mozilla). Adicionalmente, quaisquer valores de confiança modificados serão copiados a partir das âncoras de confiança para /etc/ssl/local antes de quaisquer atualizações, preservando os valores de confiança personalizados que divergirem do Mozilla quando se usar o utilitário trust oriundo do p11-kit para operar sobre a loja de confiança.

Para instalar as várias lojas de certificados, primeiro instale o script make-ca no local correto. Como o(a) usuário(a) root:

make install &&
install -vdm755 /etc/ssl/local

Importante

Tecnicamente, esse pacote já está instalado neste ponto. Mas, a maioria dos pacotes que listam make-ca como uma dependência na verdade exige a loja de certificados do sistema configurado por esse pacote, em vez do próprio programa make-ca. Portanto, as instruções para usar make-ca para configurar a loja de certificados do sistema estão incluídas nesta seção. Você deveria certificar-se de que a dependência de tempo de execução exigida para make-ca esteja satisfeita agora e continuar para seguir as instruções.

Como o(a) usuário(a) root, baixe o fonte do certificado e apronte para uso do sistema com o seguinte comando:

Nota

Se executar-se o script uma segunda vez com a mesma versão do certdata.txt, por exemplo, para atualizar as lojas quando o make-ca for atualizado; ou para acrescentar lojas adicionais conforme o software solicitante for instalado, [então] substitua a chave -g pela chave -r na linha de comando. Se empacotando, [então] execute make-ca --help para ver todas as opções de linha de comando disponíveis.

/usr/sbin/make-ca -g

Você deveria atualizar periodicamente a loja com o comando acima, seja manualmente, ou via um trabalho do cron. Se você tiver instalado o Fcron-3.2.1 e completado a seção relativa a trabalhos periódicos, [então] execute os seguintes comandos, como o(a) usuário(a) root, para criar um trabalho semanal do cron:

cat > /etc/cron.weekly/update-pki.sh << "EOF" &&
#!/bin/bash
/usr/sbin/make-ca -g
EOF
chmod 754 /etc/cron.weekly/update-pki.sh

Configurando make-ca

Para a maioria dos(as) usuários(as), nenhuma configuração adicional é necessária; entretanto, o arquivo certdata.txt padrão fornecido pelo "make-ca" é obtido a partir da ramificação "mozilla-release" e é modificado para fornecer uma revisão "Mercurial". Essa será a versão correta para a maior parte dos sistemas. Existem muitas outras variantes do arquivo disponíveis para uso que poderiam ser preferidas por uma razão ou por outra, incluindo os arquivos enviados com os produtos da "Mozilla" neste livro. "RedHat" e "OpenSUSE", por exemplo, usam a versão inclusa no nss-3.108. Transferências adicionais do(a) desenvolvedor(a) estão disponíveis nos links inclusos em /etc/make-ca/make-ca.conf.dist. Simplesmente copie o arquivo para /etc/make-ca.conf e edite conforme apropriado.

Acerca de Argumentos de Confiança

Existem três tipos de confiança que são reconhecidos pelo script make-ca, SSL/TLS, S/Mime e assinatura de código. Para o OpenSSL, esses são serverAuth; emailProtection; e codeSigning, respectivamente. Se um dos três argumentos de confiança for omitido, [então] o certificado nem é acreditado, nem é rejeitado para aquela função. Os clientes que usarem o OpenSSL ou o NSS encontrando esse certificado apresentarão um aviso para o(a) usuário(a). Os clientes usando o GnuTLS sem o suporte ao p11-kit não estão cientes dos certificados confiáveis. Para incluir essa AC nos arquivos ca-bundle.crt, email-ca-bundle.crt ou objsign-ca-bundle.crt (os pacotes legados do GnuTLS), precisa ter os argumentos confiáveis adequados.

Acrescentando Certificados Adicionais de AC

O diretório /etc/ssl/local está disponível para acrescentar certificados adicionais de AC à loja de confiança do sistema. Esse diretório também é usado para armazenar certificados que foram acrescentados a ou modificados na loja de confiança do sistema pelo p11-kit-0.25.5, de forma que os valores de confiança sejam mantidos ao longo de atualizações. Os arquivos nesse diretório precisam estar no formato de certificado confiável do OpenSSL. Os certificados importados usando o utilitário trust originário do p11-kit-0.25.5 utilizarão os valores Uso Estendido de Chave x509 para atribuir valores confiáveis padrão para as âncoras do sistema.

Se você precisar substituir os valores de confiança ou, do contrário, precisar criar um certificado de confiança do OpenSSL manualmente a partir de um arquivo codificado PEM comum, [então] você precisa acrescentar argumentos de confiança ao comando openssl e criar um certificado novo. Por exemplo, usando as raízes do CAcert, se você quiser confiar em ambos para todas as três funções, [então] os seguintes comandos criarão os certificados confiáveis do OpenSSL adequados (execute como o(a) usuário(a) root depois que o Wget-1.25.0 estiver instalado):

wget http://www.cacert.org/certs/root.crt &&
wget http://www.cacert.org/certs/class3.crt &&
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
       -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
        > /etc/ssl/local/CAcert_Class_1_root.pem &&
openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
        -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
        > /etc/ssl/local/CAcert_Class_3_root.pem &&
/usr/sbin/make-ca -r

Substituindo a Confiança do Mozilla

Ocasionalmente, possivelmente existam instâncias onde você não concorda com a inclusão do Mozilla de uma autoridade de certificação específica. Se você gostaria de substituir a confiança padrão de uma AC específica, [então] simplesmente crie uma cópia do certificado existente em /etc/ssl/local com argumentos de confiança diferentes. Por exemplo, se você gostaria de desconfiar do arquivo "Makebelieve_CA_Root", [então] execute os seguintes comandos:

openssl x509 -in /etc/ssl/certs/Makebelieve_CA_Root.pem \
            -text \
            -fingerprint \
             -setalias "Disabled Makebelieve CA Root" \
             -addreject serverAuth \
             -addreject emailProtection \
             -addreject codeSigning \
       > /etc/ssl/local/Disabled_Makebelieve_CA_Root.pem &&
/usr/sbin/make-ca -r

Conteúdo

Aplicativos Instalados: make-ca
Diretórios Instalados: /etc/ssl/{certs,local} e /etc/pki/{nssdb,anchors,tls/{certs,java}}

Descrições Curtas

make-ca

é um script de shell que adapta uma versão atual do certdata.txt e o apronta para uso como a loja de confiança do sistema

CrackLib-2.10.3

Introdução ao CrackLib

O pacote CrackLib contém uma biblioteca usada para impor senhas fortes comparando senhas selecionadas pelo(a) usuário(a) a palavras em listas de palavras escolhidas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Lista de palavras recomendadas para países de idioma inglês:

Existem listas adicionais de palavras disponíveis para download, por exemplo, em https://wiki.skullsecurity.org/index.php/Passwords. O CrackLib consegue utilizar o máximo ou o mínimo possível das listas de palavras que você escolher instalar.

Importante

Os(As) usuários(as) tendem a basear as senhas deles(as) em palavras comuns do idioma falado e os crackers sabem disso. CrackLib destina-se a filtrar essas senhas ruins na fonte usando um dicionário criado a partir de listas de palavras. Para conseguir isso, a(s) lista(s) de palavras para uso com CrackLib precisa ser uma lista exaustiva de palavras e combinações de teclas baseadas em palavras que provavelmente serão escolhidas pelos(as) usuários(as) do sistema como senhas (adivinháveis).

A lista de palavras padrão recomendada acima para download atende principalmente a essa função em países de língua inglesa. Em outras situações, possivelmente seja necessário baixar (ou mesmo criar) listas adicionais de palavras.

Observe que as listas de palavras adequadas para verificação ortográfica não podem ser usadas como listas de palavras do CrackLib em países com alfabetos não latinos, devido às combinações de teclas baseadas em palavras que tornam as senhas incorretas .

Instalação do CrackLib

Instale o CrackLib executando os seguintes comandos:

CPPFLAGS+=' -I /usr/include/python3.13' \
./configure --prefix=/usr               \
            --disable-static            \
            --with-default-dict=/usr/lib/cracklib/pw_dict &&
make

Agora, como o(a) usuário(a) root:

make install

Emita os seguintes comandos como o(a) usuário(a) root para instalar a lista de palavras recomendadas e criar o dicionário CrackLib. Outras listas de palavras (baseadas em texto, uma palavra por linha) também podem ser usadas simplesmente instalando-as em /usr/share/dict e adicionando-as ao comando create-cracklib -dict.

xzcat ../cracklib-words-2.10.3.xz \
                       > /usr/share/dict/cracklib-words       &&
ln -v -sf cracklib-words /usr/share/dict/words                &&
echo $(hostname) >>      /usr/share/dict/cracklib-extra-words &&
install -v -m755 -d      /usr/lib/cracklib                    &&

create-cracklib-dict     /usr/share/dict/cracklib-words \
                         /usr/share/dict/cracklib-extra-words

Se desejado, verifique a operação adequada da biblioteca como um(a) usuário(a) não privilegiado(a) emitindo o seguinte comando:

make test

Se desejado, teste o módulo Python com:

python3 -c 'import cracklib; cracklib.test()'

Importante

Se você estiver instalando o CrackLib depois que seu sistema LFS tiver sido concluído e você tiver o pacote Shadow instalado, [então] você precisa reinstalar o Shadow-4.17.3 se desejar fornecer suporte de senha forte em seu sistema. Se for instalar agora o pacote Linux-PAM-1.7.0, você pode desconsiderar essa observação, pois o Shadow será reinstalado depois da instalação do Linux-PAM.

Explicações do Comando

CPPFLAGS+=' -I /usr/include/python3.13': Essa variável de ambiente é necessária para permitir que o pacote encontre os arquivos de inclusão do Python-3.13.

--with-default-dict=/usr/lib/cracklib/pw_dict: Esse parâmetro força a instalação do dicionário CrackLib na hierarquia /lib.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

sed ... ./python/test_cracklib.py: Esse comando atualiza o procedimento de construção para o módulo Python para Python-3.13 e posteriores.

install -v -m644 -D ...: Esse comando cria o diretório /usr/share/dict (se já não existir) e instala a lista compactada de palavras lá.

ln -v -s cracklib-words /usr/share/dict/words: A lista de palavras está vinculada a /usr/share/dict/words como historicamente; words é a lista principal de palavras no diretório /usr/share/dict. Omita esse comando se você já tiver um arquivo /usr/share/dict/words instalado em seu sistema.

echo $(hostname) >>...: O valor de hostname é ecoado para um arquivo chamado cracklib-extra-words. Esse arquivo extra destina-se a ser uma lista específica do sítio que inclui senhas fáceis de adivinhar, como nomes de organizações empresariais ou departamentos, nomes de usuários(as), nomes de produtos, nomes de computadores, nomes de domínio, etc.

create-cracklib-dict ...: Esse comando cria o dicionário CrackLib a partir das listas de palavras. Modifique o comando para adicionar quaisquer listas adicionais de palavras que você tiver instalado.

Conteúdo

Aplicativos Instalados: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker, cracklib-update e create-cracklib-dict
Bibliotecas Instaladas: libcrack.so e _cracklib.so (módulo Python)
Diretórios Instalados: /usr/lib/cracklib, /usr/share/dict e /usr/share/cracklib

Descrições Curtas

cracklib-check

é usado para determinar se uma senha é forte

cracklib-format

é usado para formatar arquivos de texto (minuscula todas as palavras, remove caracteres de controle e ordena as listas)

cracklib-packer

cria uma base de dados com palavras lidas a partir da entrada gerada padrão

cracklib-unpacker

exibe na saída gerada padrão a base de dados especificada

create-cracklib-dict

é usado para criar o dicionário CrackLib a partir da(s) lista(s) fornecida(s) de palavras

libcrack.so

fornece um método rápido de pesquisa de dicionário para imposição de senha forte

cryptsetup-2.7.5

Introdução ao cryptsetup

cryptsetup é usado para configurar a encriptação transparente de dispositivos de bloco usando a API criptográfica do núcleo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do cryptsetup

Exigidas

JSON-C-0.18, LVM2-2.03.30 e popt-1.19

Opcionais

asciidoctor-2.0.23, libpwquality-1.4.5, argon2, libssh e passwdqc

Configuração do Núcleo

Dispositivos de bloco encriptados exigem suporte de núcleo. Para usá-lo, os parâmetros apropriados de configuração do núcleo precisam estar configurados:

Device Drivers --->
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M> Device mapper support                                     [BLK_DEV_DM]
    <*/M>   Crypt target support                                      [DM_CRYPT]

-*- Cryptographic API --->                                              [CRYPTO]
  Block ciphers --->
    <*/M> AES (Advanced Encryption Standard)                        [CRYPTO_AES]
    # For tests:
    <*/M> Twofish                                               [CRYPTO_TWOFISH]
  Length-preserving ciphers and modes --->
    <*/M> XTS (XOR Encrypt XOR with ciphertext stealing)            [CRYPTO_XTS]
  Hashes, digests, and MACs --->
    <*/M> SHA-224 and SHA-256                                    [CRYPTO_SHA256]
  Userspace interface --->
    <*/M> Symmetric key cipher algorithms             [CRYPTO_USER_API_SKCIPHER]

Instalação do cryptsetup

Instale cryptsetup executando os seguintes comandos:

./configure --prefix=/usr       \
            --disable-ssh-token \
            --disable-asciidoc  &&
make

Para testar o resultado, emita como o(a) usuário(a) root: make check. Alguns testes falharão se opções apropriadas de configuração do núcleo não estiverem configuradas. Algumas opções adicionais que possivelmente sejam necessárias para testes são:

CONFIG_SCSI_LOWLEVEL,
CONFIG_SCSI_DEBUG,
CONFIG_BLK_DEV_DM_BUILTIN,
CONFIG_CRYPTO_USER,
CONFIG_CRYPTO_CRYPTD,
CONFIG_CRYPTO_LRW,
CONFIG_CRYPTO_XTS,
CONFIG_CRYPTO_ESSIV,
CONFIG_CRYPTO_CRCT10DIF,
CONFIG_CRYPTO_AES_TI,
CONFIG_CRYPTO_AES_NI_INTEL,
CONFIG_CRYPTO_BLOWFISH,
CONFIG_CRYPTO_CAST5,
CONFIG_CRYPTO_SERPENT,
CONFIG_CRYPTO_SERPENT_SSE2_X86_64,
CONFIG_CRYPTO_SERPENT_AVX_X86_64,
CONFIG_CRYPTO_SERPENT_AVX2_X86_64, and
CONFIG_CRYPTO_TWOFISH_X86_64

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-ssh-token: Essa chave é exigida se a dependência opcional libssh não estiver instalada.

--disable-asciidoc: Essa chave desabilita regeneração das páginas de manual. Remova essa chave se você tiver asciidoctor-2.0.23 instalado e desejar regenerar as páginas de manual. Observe que mesmo se essa chave for usada, as páginas de manual pré geradas são enviadas no tarball e ainda serão instaladas.

Configurando cryptsetup

Devido ao número de configurações possíveis, a configuração de volumes encriptados está além do escopo do livro BLFS. Por favor, veja-se o guia de configuração nas Perguntas Frequentes do cryptsetup.

Conteúdo

Aplicativos Instalados: cryptsetup, cryptsetup-reencrypt, integritysetup e veritysetup
Bibliotecas Instaladas: libcryptsetup.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

cryptsetup

é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados pelo dm-crypt

cryptsetup-reencrypt

é uma ferramenta para re-encriptação offline de dispositivo LUKS

integritysetup

é uma ferramenta para gerenciar volumes dm-integrity (integridade em nível de bloco)

veritysetup

é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados dm-verity. O alvo de veracidade do mapeador de dispositivos fornece verificação de integridade transparente somente leitura de dispositivos de bloco usando a API criptográfica do núcleo

Cyrus SASL-2.1.28

Introdução ao Cyrus SASL

O pacote Cyrus SASL contém uma implementação de Autenticação Simples e Camada de Segurança, um método para adicionar suporte de autenticação a protocolos baseados em conexão. Para usar o SASL, um protocolo inclui um comando para identificar e autenticar um(a) usuário(a) em um servidor e, opcionalmente, negociar a proteção de interações subsequentes de protocolo. Se o uso dele for negociado, [então] uma camada de segurança é inserida entre o protocolo e a conexão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Cyrus SASL

Recomendadas
Opcionais

Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, sphinx-8.2.1, SQLite-3.49.1, Berkeley DB (obsoleto), krb4, Dmalloc e Pod::POM::View::Restructured

Instalação do Cyrus SASL

Nota

Esse pacote não suporta construção paralela.

Primeiro, corrija um problema revelado pelo gcc-14:

sed '/saslint/a #include <time.h>'       -i lib/saslutil.c &&
sed '/plugin_common/a #include <time.h>' -i plugins/cram.c

Instale o Cyrus SASL executando os seguintes comandos:

./configure --prefix=/usr                       \
            --sysconfdir=/etc                   \
            --enable-auth-sasldb                \
            --with-dblib=lmdb                   \
            --with-dbpath=/var/lib/sasl/sasldb2 \
            --with-sphinx-build=no              \
            --with-saslauthd=/var/run/saslauthd &&
make -j1

Esse pacote não vem com uma suíte de teste. Se estiver planejando usar o mecanismo de autenticação GSSAPI, [então teste-o depois de instalar o pacote usando os aplicativos de amostra servidor e cliente que foram construídos na etapa anterior. As instruções para realizar os testes podem ser encontradas em https://www.linuxfromscratch.org/hints/downloads/files/cyrus-sasl.txt.

Agora, como o(a) usuário(a) root:

make install &&
install -v -dm755                         /usr/share/doc/cyrus-sasl-2.1.28/html &&
install -v -m644  saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.28      &&
install -v -m644  doc/legacy/*.html        /usr/share/doc/cyrus-sasl-2.1.28/html &&
install -v -dm700 /var/lib/sasl

Explicações do Comando

--with-dbpath=/var/lib/sasl/sasldb2: Essa chave força a base de dados sasldb a ser criada em /var/ lib/sasl em vez de /etc.

--with-saslauthd=/var/run/saslauthd: Essa chave força saslauthd a usar o diretório conforme com FHS /var/run/ saslauthd para dados variáveis de tempo de execução.

--enable-auth-sasldb: Essa chave habilita a estrutura de retaguarda de autenticação SASLDB.

--with-dblib=gdbm: Essa chave força GDBM a ser usado em vez de LMDB.

--with-ldap: Essa chave habilita o suporte OpenLDAP.

--enable-ldapdb: Essa chave habilita a estrutura de retaguarda de autenticação LDAPDB.

--enable-login: Essa opção habilita a autenticação não suportada LOGIN.

--enable-ntlm: Essa opção habilita a autenticação não suportada NTLM.

install -v -m644 ...: Esses comandos instalam a documentação que não é instalada pelo comando make install.

install -v -m700 -d /var/lib/sasl: Esse diretório precisa existir ao iniciar saslauthd ou usar o plug-in sasldb. Se não vai executar o processo de segundo plano ou usar os plugins, [então] você pode omitir a criação desse diretório.

Configurando o Cyrus SASL

Arquivos de Configuração

/etc/saslauthd.conf (para configuração LDAP do saslauthd) e /etc/sasl2/Appname.conf (onde "Appname" é o nome definido do aplicativo do aplicativo)

Informação de Configuração

Veja-se https://www.cyrusimap.org/sasl/sasl/sysadmin.html para informação a respeito do que incluir nos arquivos de configuração do aplicativo.

Veja-se file:///usr/share/doc/cyrus-sasl-2.1.28/LDAP_SASLAUTHD para configuração do saslauthd com o OpenLDAP.

Veja-se https://www.cyrusimap.org/sasl/sasl/gssapi.html#gssapi para configurar o saslauthd com Kerberos.

Script de Iniciação

Se você precisar executar o processo de segundo plano saslauthd na inicialização do sistema, [então] instale o script de iniciação /etc/rc.d/init.d/saslauthd incluído no pacote blfs-bootscripts-20250225 usando o seguinte comando:

make install-saslauthd

Nota

Você precisará modificar /etc/sysconfig/saslauthd e modificar o parâmetro AUTHMECH com o mecanismo de autenticação desejado.

Conteúdo

Aplicativos Instalados: pluginviewer, saslauthd, sasldblistusers2, saslpasswd2 e testsaslauthd
Biblioteca Instalada: libsasl2.so
Diretórios Instalados: /usr/include/sasl, /usr/lib/sasl2, /usr/share/doc/cyrus-sasl-2.1.28 e /var/lib/sasl

Descrições Curtas

pluginviewer

é usado para listar plugins carregáveis SASL e as propriedades deles

saslauthd

é o servidor de autenticação SASL

sasldblistusers2

é usado para listar os(as) usuários(as) na base de dados de senha SASL sasldb2

saslpasswd2

é usado para configurar e para deletar uma senha SASL, e os segredos específicos do mecanismo, do(a) usuário(a) na base de dados de senhas SASL sasldb2

testsaslauthd

é um utilitário de teste para o servidor de autenticação SASL

libsasl2.so

é uma biblioteca de autenticação de uso geral para aplicativos servidor e cliente

GnuPG-2.4.7

Introdução ao GnuPG

O pacote GnuPG é a ferramenta do GNU para comunicação e armazenamento de dados segura. Ela pode ser usada para encriptar dados e para criar assinaturas digitais. Ela inclui uma facilidade avançada de gerenciamento de chave e é conforme com o padrão proposto da Internet OpenPGP conforme descrito na RFC2440 e com o padrão S/MIME conforme descrito por várias RFCs. O GnuPG 2 é a versão estável do suporte de integração GnuPG para o OpenPGP e o S/MIME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 59ec68633deefcd38a5012f39a9d9311

  • Tamanho da transferência: 7,6 MB

  • Espaço em disco estimado exigido: 135 MB (com testes)

  • Tempo de construção estimado: 0,7 UPC (com testes; ambos usando paralelismo=4)

Dependências do GnuPG 2

Exigidas

libassuan-3.0.2, libgcrypt-1.11.0, libksba-1.6.7, npth-1.8 e OpenLDAP-2.6.9

Recomendadas
Opcionais

cURL-8.12.1, Fuse-3.16.2, ImageMagick-7.1.1-43 (para o utilitário convert, usado para gerar a documentação), libusb-1.0.27, um MTA, SQLite-3.49.1, texlive-20240312 (ou install-tl-unx), fig2dev (para gerar a documentação) e GNU adns

Instalação do GnuPG

Instale GnuPG executando os seguintes comandos:

mkdir build &&
cd    build &&

../configure --prefix=/usr          \
             --localstatedir=/var    \
             --sysconfdir=/etc       \
             --docdir=/usr/share/doc/gnupg-2.4.7 &&
make &&

makeinfo --html --no-split -I doc -o doc/gnupg_nochunks.html ../doc/gnupg.texi &&
makeinfo --plaintext       -I doc -o doc/gnupg.txt           ../doc/gnupg.texi &&
make -C doc html

Se tiver o texlive-20240312 instalado e você desejar criar documentação no formato PDF, emita o seguinte comando:

make -C doc pdf

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d /usr/share/doc/gnupg-2.4.7/html           &&
install -v -m644    doc/gnupg_nochunks.html \
                    /usr/share/doc/gnupg-2.4.7/html/gnupg.html &&
install -v -m644    ../doc/*.texi doc/gnupg.txt \
                    /usr/share/doc/gnupg-2.4.7 &&
install -v -m644    doc/gnupg.html/* \
                    /usr/share/doc/gnupg-2.4.7/html

Se você criou o formato PDF da documentação, instale-os usando o seguinte comando como o(a) usuário(a) root:

install -v -m644 doc/gnupg.pdf \
                 /usr/share/doc/gnupg-2.4.7

Explicações do Comando

mkdir build && cd build: os(as) desenvolvedores(as) do "GnuPG2" recomendam construir o pacote em um diretório dedicado.

--docdir=/usr/share/doc/gnupg-2.4.7: Essa chave muda o diretório padrão da documentação para /usr/share/doc/gnupg-2.4.7.

--enable-all-tests: Essa chave permite que mais testes sejam executados com make check.

--enable-g13: Essa chave habilita a construção do aplicativo g13.

Conteúdo

Aplicativos Instalados: addgnupghome, applygnupgdefaults, dirmngr, dirmngr-client, g13 (opcional), gpg-agent, gpg-card, gpg-connect-agent, gpg, gpgconf, gpgparsemail, gpgscm, gpgsm, gpgsplit, gpgtar, gpgv, gpg-wks-client, gpg-wks-server, kbxutil e watchgnupg
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/gnupg-2.4.7 e /usr/share/gnupg

Descrições Curtas

addgnupghome

é usado para criar e povoar os diretórios ~/.gnupg de um(a) usuário(a)

applygnupgdefaults

é um script amarrador usado para executar o gpgconf com o parâmetro --apply-defaults em todos os diretórios home GnuPG do(a) usuário(a)

dirmngr

é uma ferramenta que se encarrega de acessar os servidores de chave OpenPGP

dirmngr-client

é uma ferramenta para contactar um dirmngr em execução e testar quando um certificado tenha sido revogado

g13

é uma ferramenta para criar, montar ou desmontar um contêiner de sistema de arquivos encriptado (opcional)

gpg-agent

é um processo de segundo plano usado para gerenciar chaves secretas (privadas) independentemente de qualquer protocolo. Ele é usado como uma estrutura de retaguarda para o gpg e o gpgsm, bem como para um par de outros utilitários

gpg-card

é uma ferramenta para gerenciar cartões inteligentes e "tokens"

gpg-connect-agent

é um utilitário usado para comunicar com um gpg-agent em execução

gpg

é a parte OpenPGP do GNU Privacy Guard (GnuPG). Ele é uma ferramenta usada para fornecer serviços digitais de encriptação e de assinatura usando o padrão OpenPGP

gpgconf

é um utilitário usado para consultar e para modificar arquivos de configuração automática e razoavelmente seguramente no diretório home ~/.gnupg. Ele é projetado não para ser invocado manualmente pelo(a) usuário(a), mas automaticamente por interfaces gráficas de usuário(a)

gpgparsemail

é um utilitário atualmente útil somente para depuração. Execute-o com --help para informação de uso

gpgscm

executa o aplicativo de esquema dado ou gera um shell interativo

gpgsm

é uma ferramenta semelhante ao gpg usada para fornecer serviços digitais de encriptação e de assinatura em certificados X.509 e o protocolo CMS. Ele é usado principalmente como uma estrutura de retaguarda para o processamento de mensagem S/MIME

gpgsplit

divide uma mensagem OpenPGP em pacotes

gpgtar

é uma ferramenta para encriptar ou para assinar arquivos dentro de um arquivamento

gpgv

é uma versão somente verificação do gpg

gpg-wks-client

é um cliente para o protocolo Web Key Service

gpg-wks-server

fornece um servidor para o protocolo Web Key Service

kbxutil

é usado para listar, exportar e importar dados Keybox

watchgnupg

é usado para ouvir um soquete Unix Domain criado por quaisquer das ferramentas GnuPG

GnuTLS-3.8.9

Introdução ao GnuTLS

O pacote GnuTLS contém bibliotecas e ferramentas do espaço de usuário(a) que fornecem uma camada segura sobre uma camada de transporte confiável. Atualmente, a biblioteca GnuTLS implementa os padrões propostos pelo grupo de trabalho TLS da IETF. Citando a especificação do protocolo TLS 1.3 :

O TLS permite que aplicativos cliente/servidor se comuniquem pela Internet de uma maneira projetada para evitar espionagem, adulteração e falsificação de mensagens.

O GnuTLS fornece suporte para os protocolos TLS 1.3, TLS 1.2, TLS 1.1, TLS 1.0 e (opcionalmente) SSL 3.0. Ele também suporta extensões TLS, incluindo nome do servidor e tamanho máximo do registro. Além disso, a biblioteca suporta autenticação usando o protocolo SRP, certificados X.509 e chaves OpenPGP, junto com suporte para a extensão TLS Pre-Shared-Keys (PSK), a extensão Inner Application (TLS/IA) e manuseio de certificados OpenPGP e X.509.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.9.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 33f4c800c20af2983c45223a803da865

  • Tamanho da transferência: 6,5 MB

  • Espaço em disco estimado exigido: 178 MB (adicionar 111 MB para os testes)

  • Tempo de construção estimado: 0,6 UPC (adicionar 1,4 UPC para testes; ambos usando paralelismo=8)

Dependências do GnuTLS

Exigidas

Nettle-3.10.1

Recomendadas
Opcionais

Brotli-1.1.0, Doxygen-1.13.2, GTK-Doc-1.34.0, libidn-1.42 ou libidn2-2.3.7, libseccomp-2.6.0, Net-tools-2.10 (usado durante a suíte de teste), texlive-20240312 ou install-tl-unx, Unbound-1.22.0 (para construir a biblioteca DANE), Valgrind-3.24.0 (usado durante a suíte de teste), autogen, cmocka e datefudge (usado durante a suíte de teste se a biblioteca DANE for construída), leancrypto, liboqs e Trousers (suporte ao módulo Trusted Platform)

Nota

Observe que, se você não instalar o libtasn1-4.20.0, [então] uma versão enviada no tarball GnuTLS será usada em vez.

Instalação do GnuTLS

Instale GnuTLS executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/gnutls-3.8.9 \
           --with-default-trust-store-pkcs11="pkcs11:" &&
make

Para testar os resultados, agora emita: make check.

Agora, instale o pacote como o(a) usuário(a) root:

make install

Explicações do Comando

--with-default-trust-store-pkcs11="pkcs11:": Essa chave diz ao gnutls para usar o armazenamento de confiança PKCS #11 como a confiança padrão. Omita essa chave se p11-kit-0.25.5 não estiver instalado.

--with-default-trust-store-file=/etc/pki/tls/certs/ca-bundle.crt: Essa chave informa ao configure onde encontrar o pacote legado de certificados da AC e usá-lo em vez do módulo PKCS #11 por padrão. Use isso se p11-kit-0.25.5 não estiver instalado.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--enable-openssl-compatibility: Use essa chave se desejar construir a biblioteca de compatibilidade OpenSSL.

--without-p11-kit: Use essa chave se você não tiver instalado o p11-kit-0.25.5.

--with-included-unistring: Essa chave usa a versão empacotada da libunistring, em vez da do sistema. Use essa chave se você não tiver instalado libunistring-1.3.

--disable-dsa: Essa chave desabilita completamente o suporte ao algoritmo DSA.

Conteúdo

Aplicativos Instalados: certtool, danetool, gnutls-cli, gnutls-cli-debug, gnutls-serv, ocsptool, p11tool, psktool e srptool
Bibliotecas Instaladas: libgnutls.so, libgnutls-dane.so, libgnutlsxx.so e libgnutls-openssl.so (opcional)
Diretórios Instalados: /usr/include/gnutls e /usr/share/doc/gnutls-3.8.9

Descrições Curtas

certtool

é usado para gerar certificados X.509, solicitações de certificados e chaves privadas

danetool

é uma ferramenta usada para gerar e verificar registros de recursos DNS para o protocolo DANE

gnutls-cli

é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador

gnutls-cli-debug

é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador e produz resultados de progresso muito detalhados

gnutls-serv

é um aplicativo servidor simples que escuta as conexões TLS entrantes

ocsptool

é um aplicativo que pode analisar e imprimir informação relativa a solicitações/respostas OCSP, gerar solicitações e verificar respostas

p11tool

é um aplicativo que permite manusear dados procedentes de cartões inteligentes PKCS #11 e de módulos de segurança

psktool

é um aplicativo simples que gera chaves aleatórias para uso com TLS-PSK

srptool

é um aplicativo simples que emula os aplicativos nas bibliotecas Stanford SRP (Secure Remote Password) usando o GnuTLS

libgnutls.so

contém as funções centrais da API e as funções da API de certificado X.509

GPGME-1.24.2

Introdução ao GPGME

O pacote GPGME é uma biblioteca C que permite que suporte à criptografia seja adicionada a um aplicativo. Ele é projetado para tornar o acesso a mecanismos de criptografia de chave pública, como o GnuPG ou o GpgSM, mais fácil para os aplicativos. O GPGME fornece uma API criptográfica de alto nível para encriptação, desencriptação, assinatura, verificação de assinatura e gerenciamento de chaves.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2e0cc1df9f3da8c2a7d7c9dc33b7f0bf

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 404 MB (com testes)

  • Tempo de construção estimado: 1,5 UPC (com todas as ligações e testes; com paralelismo=4)

Dependências do GPGME

Exigidas

libassuan-3.0.2

Opcionais

Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação da API), GnuPG-2.4.7 (exigido se Qt ou SWIG estiverem instalados; usado durante a suíte de teste), Clisp-2.49 e SWIG-4.3.0 (para ligações de idioma)

Instalação do GPGME

Instale GPGME executando os seguintes comandos:

mkdir build &&
cd    build &&

../configure --prefix=/usr --disable-gpg-test &&
make PYTHONS=

Se SWIG-4.3.0 estiver instalado, construa a ligação Python 3 como uma wheel:

if swig -version > /dev/null; then
  srcdir=$PWD/../lang/python \
  top_builddir=$PWD          \
  pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/lang/python
fi

Para testar os resultados, você deveria ter GnuPG-2.4.7 instalado e remover o --disable-gpg-test acima. Emita:

if swig -version > /dev/null; then
  python3 -m venv testenv                                              &&
  testenv/bin/pip3 install --no-index --find-links=dist --no-cache-dir \
                           gpg                                         &&
  sed '/PYTHON/s#run-tests.py#& --python-libdir=/dev/null#'            \
      -i lang/python/tests/Makefile
fi &&

make -k check PYTHONS= PYTHON=$PWD/testenv/bin/python3

Agora, como o(a) usuário(a) root:

make install PYTHONS=

Se SWIG-4.3.0 estiver instalado, ainda como o(a) usuário(a) root, instale a ligação do Python 3:

if swig -version > /dev/null; then
  pip3 install --no-index --find-links dist --no-user gpg
fi

Explicações do Comando

--disable-gpg-test: se esse parâmetro não for passado para configurar, [então] os aplicativos de teste são construídos durante o estágio make, que exige GnuPG-2.4.7. Esse parâmetro não é necessário se GnuPG-2.4.7 estiver instalado.

PYTHONS=: Desabilite a construção de ligação Python usando o comando obsoleto python3 setup.py build. A instrução explícita para construir a ligação Python 3 com o comando pip3 wheel é fornecida.

Conteúdo

Aplicativo Instalado: gpgme-json e gpgme-tool
Bibliotecas Instaladas: libgpgme.so, libgpgmepp.so e libqgpgme.so
Diretório Instalado: /usr/include/{gpgme++,qgpgme,QGpgME}, /usr/lib/cmake/{Gpgmepp,QGpgme}. /usr/lib/python3.13/site-packages/gpg{,-1.24.2.dist-info} e /usr/share/common-lisp/source/gpgme

Descrições Curtas

gpgme-json

gera comandos GPGME no formato JSON

gpgme-tool

é um servidor assuan que expõe operações GPGME, como impressão de impressões digitais e identificadores de chave com servidores de chaves

libgpgme.so

contém as funções da API GPGME

libgpgmepp.so

contém as funções da API C++ GPGME

libqgpgme.so

contém funções de API para lidar com operações GPG em aplicativos Qt

iptables-1.8.11

Introdução ao iptables

O iptables é um aplicativo de linha de comando do espaço do(a) usuário(a) usado para configurar o conjunto de regras de filtragem de pacote do núcleo Linux 2.4 e posteriores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do iptables

Opcionais

libpcap-1.10.5 (exigido para suporte ao compilador BPF ou nfsynproxy), bpf-utils (exigido para suporte ao Berkeley Packet Filter), libnfnetlink (exigido para suporte ao connlabel), libnetfilter_conntrack (exigido para suporte ao connlabel) e nftables

Configuração do Núcleo

Um firewall no Linux é realizado por meio da interface netfilter. Para usar o iptables para configurar a netfilter, os seguintes parâmetros de configuração do núcleo são exigidos:

[*] Networking support --->                                                [NET]
  Networking options --->
    [*] Network packet filtering framework (Netfilter) --->          [NETFILTER]
      [*] Advanced netfilter configuration                  [NETFILTER_ADVANCED]
      Core Netfilter Configuration --->
        <*/M> Netfilter connection tracking support               [NF_CONNTRACK]
        <*/M> Netfilter Xtables support (required for ip_tables)
                                                        ...  [NETFILTER_XTABLES]
        <*/M>   LOG target support                     [NETFILTER_XT_TARGET_LOG]
      IP: Netfilter Configuration --->
        <*/M> IP tables support (required for filtering/masq/NAT)
                                                           ...  [IP_NF_IPTABLES]

Inclua quaisquer protocolos de rastreamento de conexão que serão usados, bem como quaisquer protocolos que você desejar usar para corresponder ao suporte sob a seção "Configuração Central da Netfilter". As opções acima são suficientes para se executar o Criando um Firewall Pessoal Com o iptables abaixo.

Instalação do iptables

Nota

A instalação abaixo não inclui a construção de algumas bibliotecas de extensão especializadas que exigem os cabeçalhos crus no código fonte do Linux. Se desejar construir as extensões adicionais (se não tiver certeza, então provavelmente não deseja), [então] você pode olhar no arquivo INSTALL para ver um exemplo do como mudar o parâmetro KERNEL_DIR= para apontar para o código fonte do Linux. Observe que, se atualizar a versão do núcleo, [então] possivelmente precisará também recompilar o iptables e isso a equipe do BLFS não testou usando os cabeçalhos crus do núcleo.

Instale iptables executando os seguintes comandos:

./configure --prefix=/usr     \
            --disable-nftables \
            --enable-libipq    &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-nftables: Essa chave desabilita a construção da compatibilidade do nftables.

--enable-libipq: Essa chave habilita a construção da libipq.so a qual pode ser usada por alguns pacotes fora do BLFS.

--enable-nfsynproxy: Essa chave habilita a instalação da ferramenta de configuração do SYNPROXY nfsynproxy.

Configurando iptables

Nota

Nas seguintes configurações de exemplo, LAN1 é usada para a interface interna da LAN e WAN1 é usada para a interface externa conectada com a Internet. Você precisará substituir esses valores por nomes apropriados de interface para o seu sistema.

Firewall Pessoal

Um Firewall Pessoal é projetado para permitir que você acesse todos os serviços oferecidos na Internet enquanto mantém o seu computador seguro e os seus dados privados.

Abaixo está uma versão ligeiramente modificada da recomendação do Rusty Russell oriunda do Linux 2.4 Packet Filtering HOWTO. Ela ainda é aplicável aos núcleos Linux 6.x.

cat > /etc/rc.d/rc.iptables << "EOF"
#!/bin/sh

# Início do rc.iptables

# Insere módulos de rastreamento de conexão
# (não necessário se construído internamente ao kernel)
modprobe nf_conntrack
modprobe xt_LOG

# Habilita difusão echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Desabilita Pacotes Fonte Roteados
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route

# Habilita a Proteção SYN Cookie do TCP
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Desabilita a Aceitação de Redireção de ICMP
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects

# Não envia Mensagens de Redireção
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

# Descarta Pacotes Falsificados entrantes em uma interface, onde as 
# respostas resultariam na resposta indo para uma interface diferente.
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Registra pacotes com endereços impossíveis.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/conf/default/log_martians

# Seja detalhado acerca de endereços de IP dinâmicos (não necessário no caso de IP estático)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# Desabilita a Notificação Explícita de Congestão
# roteadores demais ainda são ignorantes
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Configura um estado conhecido
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Estas linhas estão aqui no caso das regras já estiverem no lugar e o conjunto de comandos sequenciais for até mesmo
# reexecutado em tempo real. Nós queremos remover todas as regras e cadeias preexistentes definidas por usuário(a)
# antes de implementarmos novas regras.
iptables -F
iptables -X
iptables -Z

iptables -t nat -F

# Permite conexões locais somente
iptables -A INPUT  -i lo -j ACCEPT

# Libera a saída gerada em qualquer interface para qualquer IP para 
# qualquer serviço (igual a -P ACCEPT)
iptables -A OUTPUT -j ACCEPT

# Permite respostas em conexões já estabelecidas e permite novas 
# conexões relacionadas às estabelecidas (por exemplo, modo de porta 
# ftp)
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Descarte qualquer pacote MULTICAST ou BROADCAST entrante antes de registrar:
# A caixa gera vários deles ao usar netbios ou mDNS e aqueles aparecem imediatamente
# como entrantes, o que sobrecarrega o log.
iptables -A INPUT -m addrtype --dst-type BROADCAST,MULTICAST -j DROP

# Registra tudo o mais.
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# Fim do $rc_base/rc.iptables
EOF
chmod 700 /etc/rc.d/rc.iptables

Esse script é bastante simples; ele descarta todo o tráfego entrante no seu computador que não foi iniciado a partir do seu computador; porém, considerando que você está simplesmente surfando na Internet, é improvável que exceda os limites dele.

Se você encontrar frequentemente certos atrasos ao acessar servidores FTP, [então] dê uma olhada em Exemplo número quatro de BusyBox com o iptables.

Mesmo se você tiver processos de segundo plano ou serviços executando em seu sistema, esses estarão inacessíveis em todos os lugares, exceto a partir do seu próprio computador. Se quiser permitir o acesso a serviços na sua máquina, tais como o ssh ou o ping, [então] dê uma olhada em Criando um BusyBox Com o iptables.

Roteador de Mascaramento

Um Firewall de Rede de Comunicação tem duas interfaces, uma conectada com uma intranet, neste exemplo LAN1 e uma conectada com a Internet, aqui WAN1. Para fornecer a máxima segurança para o próprio firewall, tenha certeza de que não existem servidores desnecessários executando nele, tais como o X11. Como um princípio geral, o próprio firewall não deveria acessar qualquer serviço não confiável (pense em um servidor remoto dando respostas que fazem com que um processo de segundo plano no seu sistema quebre; ou ainda pior, que implementa um verme via um estouro do buffer).

cat > /etc/rc.d/rc.iptables << "EOF"
#!/bin/sh

# Início do rc.iptables

echo
echo "Você está usando a configuração de exemplo para uma configuração de um firewall"
echo "oriunda do Beyond Linux From Scratch."
echo "Este exemplo está longe de ser completo; ele é entendido para ser"
echo "somente uma referência."
echo "A segurança do firewall é um problema complexo, que excede o escopo"
echo "das regras de configuração abaixo."
echo "Você pode encontrar informação adicional"
echo "acerca de firewalls no Capítulo 4 do livro BLFS."
echo "https://www.linuxfromscratch.org/blfs"
echo

# Insere módulos do iptables (não necessário se construído internamente ao kernel).

modprobe nf_conntrack
modprobe nf_conntrack_ftp
modprobe xt_conntrack
modprobe xt_LOG
modprobe xt_state

# Habilita difusão echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Desabilita Pacotes Fonte Roteados
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Habilita a Proteção SYN Cookie do TCP
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Desabilita a Aceitação de Redireção de ICMP
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# Não envia Mensagens de Redireção
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

# Descarta Pacotes Falsificados entrantes em uma interface, onde as 
# respostas resultariam na resposta indo para uma interface diferente.
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Registra pacotes com endereços impossíveis.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Seja verboso a respeito de endereços dinâmicos de IP (não necessário no caso de IP estático)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# Desabilita a Notificação Explícita de Congestão
# roteadores demais ainda são ignorantes
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Configura um estado conhecido
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Estas linhas estão aqui no caso das regras já estiverem no lugar e o script for mesmo
# reexecutado em tempo real.  Nós queremos remover todas as regras e cadeias preexistentes
# definidas por usuário(a) antes de implementarmos novas regras.
iptables -F
iptables -X
iptables -Z

iptables -t nat -F

# Permite conexões locais
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Permite o encaminhamento se a iniciada na intranet
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD ! -i WAN1 -m conntrack --ctstate NEW       -j ACCEPT

# Faz o mascaramento (não necessário se a intranet não estiver usando 
# endereços IP privados)
iptables -t nat -A POSTROUTING -o WAN1 -j MASQUERADE

# Registra tudo para depuração (última de todas as regras, porém antes 
# das regras de política)
iptables -A INPUT   -j LOG --log-prefix "FIREWALL:INPUT "
iptables -A FORWARD -j LOG --log-prefix "FIREWALL:FORWARD "
iptables -A OUTPUT  -j LOG --log-prefix "FIREWALL:OUTPUT "

# Habilita o Encaminhamento de IP
echo 1 > /proc/sys/net/ipv4/ip_forward
EOF
chmod 700 /etc/rc.d/rc.iptables

Com esse script sua intranet deveria estar razoavelmente segura contra ataques externos. Ninguém deveria estar apto(a) a configurar uma conexão nova para qualquer serviço interno e, se estiver mascarada, torna a sua intranet invisível para a Internet. Além disso, o seu firewall deveria estar relativamente a salvo, pois não existem serviços executando que um cracker pudesse atacar.

BusyBox

Este cenário não é muito diferente do Criando um Roteador de Mascaramento Com o iptables, porém, adicionalmente, oferece alguns serviços para a sua intranet. Exemplos disto podem ser quando você quer administrar o seu firewall a partir de outro dispositivo na sua intranet ou usá-lo como um proxy ou como um servidor de nome.

Nota

Delinear especificamente como proteger um servidor que oferece serviços na Internet vai bem além do escopo deste documento. Vejam-se as referências em “Informação Extra” para mais informação.

Seja cauteloso(a). Cada serviço que você tenha habilitado torna a sua configuração mais complexa e o seu firewall menos seguro. Você está exposto(a) aos riscos dos serviços mal configurados ou de executar um serviço com um defeito explorável. Um firewall geralmente não deveria executar quaisquer serviços extras. Veja-se a introdução ao Criando um Roteador de Mascaramento Com o iptables para mais alguns detalhes.

Se você quiser acrescentar serviços, tais como servidores internos Samba ou de nome, que não precisem acessar eles próprios a Internet, [então] as declarações adicionais são bastante simples e ainda deveriam ser aceitáveis a partir de um ponto de vista da segurança. Apenas acrescente as seguintes linhas no script antes das regras de registro.

iptables -A INPUT -i ! WAN1  -j ACCEPT
iptables -A OUTPUT -o ! WAN1  -j ACCEPT

Se processos de segundo plano, tais como o squid, tiverem que acessar eles próprios a Internet, [então] você geralmente poderia abrir OUTPUT e restringir INPUT.

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j ACCEPT

Entretanto, geralmente não é aconselhável deixar OUTPUT irrestrito. Você perde algum controle sobre trojans que gostariam de "chamar home", e um monte de redundância no caso de você tiver (mal) configurado um serviço, de forma que difunda a existência dele para o mundo.

Para realizar isso, você deveria restringir INPUT e OUTPUT em todas as portas, exceto naquelas que sejam absolutamente necessárias ter abertas. Quais portas você tem de abrir depende das suas necessidades: a maioria você as encontrará procurando por acessos falhos nos seus arquivos de registro.

Dê Uma Olhada nos Seguintes Exemplos:

  • O Squid está armazenando a web em cache:

    iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED \
      -j ACCEPT
  • Seu servidor de nome de cache (por exemplo, named) faz as pesquisas dele via UDP:

    iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
  • Você quer executar ping em seu computador para garantir que ele ainda esteja ativo:

    iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
    iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply   -j ACCEPT
  • Se frequentemente estiver acessando servidores FTP ou curte chat, [então] você poderia notar atrasos, pois algumas implementações desses processos de segundo plano consultam um processo de segundo plano identd no seu sistema para obter nomes de usuário(a). Embora exista realmente pouco dano nisso, ter-se um identd executando não é recomendado, pois muitos especialistas em segurança entendem que o serviço dá muito mais informação adicional.

    Para evitar tais atrasos, você poderia rejeitar as solicitações com uma resposta 'tcp-reset':

    iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
  • Para registrar e descartar pacotes inválidos (pacotes que vieram depois de um tempo esgotado do netfilter ou de alguns tipos de escaneamentos de rede de comunicação) insira estas regras no topo da cadeia:

    iptables -I INPUT 0 -p tcp -m conntrack --ctstate INVALID \
     -j LOG --log-prefix "FIREWALL:INVALID "
    iptables -I INPUT 1 -p tcp -m conntrack --ctstate INVALID -j DROP
  • Qualquer coisa vinda a partir do lado de fora não deveria ter um endereço privado; isso é um ataque comum chamado de falsificação de IP:

    iptables -A INPUT -i WAN1 -s 10.0.0.0/8    -j DROP
    iptables -A INPUT -i WAN1 -s 172.16.0.0/12  -j DROP
    iptables -A INPUT -i WAN1 -s 192.168.0.0/16 -j DROP

    Existem outros endereços que você possivelmente também queira descartar: 0.0.0.0/8, 127.0.0.0/8, 224.0.0.0/3 (multicast e experimental), 169.254.0.0/16 (Redes de Comunicação Link Local) e 192.0.2.0/24 (rede de comunicação de teste definida pela IANA).

  • Se o seu firewall for um cliente DHCP, [então] você precisa permitir aqueles pacotes:

    iptables -A INPUT -i WAN1 -p udp -s 0.0.0.0 --sport 67 \
       -d 255.255.255.255 --dport 68 -j ACCEPT
  • Para simplificar a depuração e ser justo(a) com qualquer um(a) que gostaria de acessar um serviço que você tenha desabilitado, propositalmente ou por erro, você poderia REJEITAR aqueles pacotes que são descartados.

    Obviamente, isso precisa ser feito diretamente depois do registro, como as ultimíssimas linhas antes dos pacotes serem descartados pela política:

    iptables -A INPUT -j REJECT

Esses são somente exemplos para mostrar para você algumas das capacidades do código do firewall no Linux. Dê uma olhada na página de manual do iptables. Lá você encontrará muito mais informação. Os números de porta necessários para isso podem ser encontrados em /etc/services, caso você não os encontrou por tentativa e erro no seu arquivo de registro.

Conjunto de Comandos Sequenciais de Inicialização

Para configurar o firewall iptables na inicialização, instale o script de inicialização /etc/rc.d/init.d/iptables incluso no pacote blfs-bootscripts-20250225.

make install-iptables

Conteúdo

Aplicativos Instalados: ip6tables, ip6tables-apply, ip6tables-legacy, ip6tables-legacy-restore, ip6tables-legacy-save, ip6tables-restore, ip6tables-save, iptables, iptables-apply, iptables-legacy, iptables-legacy-restore, iptables-legacy-apply, iptables-restore, iptables-save, iptables-xml, nfsynproxy (opcional) e xtables-multi
Bibliotecas Instaladas: libip4tc.so, libip6tc.so, libipq.so, libiptc.so e libxtables.so
Diretórios Instalados: /lib/xtables e /usr/include/libiptc

Descrições Curtas

iptables

é usado para configurar, manter e inspecionar as tabelas de regras de filtro de pacote IP no núcleo Linux

iptables-apply

é uma maneira mais segura para atualizar o iptables remotamente

iptables-legacy

é usado para interagir com o iptables usando o conjunto legado de comandos

iptables-legacy-restore

é usado para restaurar um conjunto de regras legadas do iptables

iptables-legacy-save

é usado para salvar um conjunto de regras legadas do iptables

iptables-restore

é usado para restaurar as Tabelas de IP a partir de dados especificados na STDIN. Use o redirecionamento de Entrada/Saída fornecida pelo seu shell para ler a partir de um arquivo

iptables-save

é usado para despejar o conteúdo de uma Tabela de IP em formato facilmente analisável para a STDOUT. Use o redirecionamento de Entrada/Saída fornecido pelo seu shell para escrever em um arquivo

iptables-xml

é usado para converter a saída gerada do iptables-save para um formato XML. Usar a folha de estilo iptables.xslt converte o XML de volta para o formato do iptables-restore

ip6tables*

é um conjunto de comandos para IPv6 que paraleliza os comandos do iptables acima

nfsynproxy

ferramenta de configuração (opcional). O alvo SYNPROXY torna o manuseio de grandes inundações SYN possível sem as grandes penalidades de desempenho impostas pelo rastreio de conexão em tais casos

xtables-multi

é um binário que se comporta de acordo com o nome pelo qual ele for chamado

Configurando um Firewall de Rede de Comunicação

Introdução à Criação de Firewall

O propósito de um firewall é o de proteger um computador ou uma rede de comunicação contra acesso malicioso. Em um mundo perfeito, cada processo de segundo plano ou serviço, em cada máquina, está perfeitamente configurado e imune a falhas de segurança e todos(as) os(as) usuários(as) são implicitamente confiáveis para usar o equipamento conforme pretendido. Entretanto, isso é raramente, se é que existe, o caso. Processos de segundo plano possivelmente estejam mal configurados ou atualizações possivelmente não tenham sido aplicadas para maus usos em benefício próprio conhecidos contra serviços essenciais. Adicionalmente, você possivelmente deseje escolher quais serviços são acessíveis por certas máquinas ou por usuários(as); ou você possivelmente deseje limitar para quais máquinas ou aplicativos são permitidas o acesso externo. Alternativamente, você possivelmente simplesmente não confie em alguns dos seus aplicativos ou usuários(as). Por essas razões, um firewall cuidadosamente projetado deveria ser uma parte essencial da segurança do sistema.

Embora um firewall consiga limitar bastante o escopo dos problemas acima, não assuma que ter-se um firewall torna redundante a configuração cuidadosa ou que qualquer má configuração negligente seja inofensiva. Um firewall não evita o mau uso em benefício próprio de qualquer serviço que você ofereça do lado de fora dele. A despeito de ter um firewall, você precisa manter aplicativos e processos de segundo plano devidamente configurados e atualizados.

Significado da Palavra "Firewall"

A palavra firewall pode ter diferentes significados.

Firewall Pessoal

Esse é um dispositivo de hardware ou aplicativo de software destinado a proteger computador doméstico ou de área de trabalho conectado com a Internet. Esse tipo de firewall é altamente relevante para usuários(as) que não sabem como o computador deles(as) poderia ser acessado via Internet ou como desabilitar tal acesso, especialmente se eles(as) sempre estiverem online e conectados(as) via links de banda larga.

Uma configuração de exemplo para um firewall pessoal é fornecida em Criando um Firewall Pessoal Com o iptables.

Roteador de Mascaramento

Isso é um sistema colocado entre a Internet e uma intranet. Para minimizar o risco de comprometimento do próprio firewall, geralmente deveria ter somente uma função—aquela de proteger a intranet. Embora não completamente livre de risco, as tarefas de fazer o roteamento e de mascaramento de IP (reescrever cabeçalhos de IP dos pacotes que ele roteia de clientes com endereços IP privados para a Internet, de forma que eles pareçam vir a partir do próprio firewall) comumente são consideradas relativamente seguras.

Uma configuração de exemplo para um firewall de mascaramento é fornecida em Criando um Roteador de Mascaramento Com o iptables.

BusyBox

Isso frequentemente é um computador antigo que você possivelmente tenha aposentado e quase esquecido, realizando funções de mascaramento ou de roteamento, porém oferecendo serviços que não são de firewall, tais como um cache de web ou correio. Isso possivelmente seja usado para redes de comunicação domésticas, porém não é para ser considerado tão seguro quanto uma máquina somente de firewall, pois a combinação de servidor e roteador/firewall em uma máquina eleva a complexidade da configuração.

Uma configuração de exemplo para uma BusyBox é fornecida em Criando um BusyBox Com o iptables.

Firewall com uma Zona Desmilitarizada

Esse tipo de firewall realiza mascaramento ou roteamento, porém concede acesso público a alguma ramificação da sua rede de comunicação que é separada fisicamente da sua intranet regular e essencialmente é uma rede de comunicação separada com acesso direto à Internet. Os servidores nessa rede de comunicação são aqueles que precisam estar facilmente acessíveis a partir tanto da Internet quanto da intranet. O firewall protege ambas as redes de comunicação. Esse tipo de firewall tem um mínimo de três interfaces de rede de comunicação.

Filtro de Pacote

Esse tipo de firewall faz roteamento ou mascaramento, porém não mantém uma tabela estável dos fluxos de comunicação transeuntes. É rápido, entretanto bastante limitado na habilidade de bloquear pacotes indesejados sem bloquear pacotes desejados.

Conclusão

Cuidado

As configurações de exemplo fornecidas para o iptables-1.8.11 não são destinadas para serem um guia completo para a segurança de sistemas. As técnicas de firewall são um problema complexo que exige configuração cuidadosa. As configurações fornecidas pelo BLFS são destinadas somente para dar exemplos do como um firewall funciona. Elas não são destinadas a se adequarem a qualquer configuração específica e possivelmente não forneçam proteção completa contra um ataque.

O BLFS fornece um utilitário para gerenciar a interface Netfilter do núcleo, o iptables-1.8.11. Ele tem estado por aí desde os primeiros núcleos 2.4 e tem sido o padrão desde então. Esse provavelmente é o conjunto de ferramentas que será mais familiar para os(as) administradores(as) existentes. Outras ferramentas tem sido desenvolvidas mais recentemente; veja-se a lista das leituras adicionais abaixo para mais detalhes. Aqui você encontrará uma lista de URLs que contém informação compreensível acerca do construir firewalls e de proteção adicional ao seu sistema.

libcap-2.73 com PAM

Introdução ao libcap com PAM

O pacote libcap foi instalado no LFS, porém se o suporte Linux-PAM for desejado, [então] o módulo PAM precisa ser construído (depois da instalação do Linux-PAM).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libcap

Exigidas

Linux-PAM-1.7.0

Instalação do libcap

Nota

Se você estiver atualizando o libcap a partir de uma versão anterior, [então] use as instruções na página libcap do LFS para atualizar o libcap. Se Linux-PAM-1.7.0 tiver sido construído, o módulo PAM também será construído automaticamente.

Instale libcap executando os seguintes comandos:

make -C pam_cap

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -m755 pam_cap/pam_cap.so /usr/lib/security &&
install -v -m644 pam_cap/capability.conf /etc/security

Configurando Libcap

Para a finalidade de permitir que o Linux-PAM conceda privilégios baseados nos recursos POSIX, você precisa adicionar o módulo libcap ao início do arquivo /etc/pam.d/system-auth. Faça as edições necessárias com os seguintes comandos:

mv -v /etc/pam.d/system-auth{,.bak} &&
cat > /etc/pam.d/system-auth << "EOF" &&
# Begin /etc/pam.d/system-auth

auth     optional    pam_cap.so
EOF
tail -n +3 /etc/pam.d/system-auth.bak >> /etc/pam.d/system-auth

Além disso, você precisará modificar o arquivo /etc/security/capability.conf para conceder os privilégios necessários para os(as) usuários(as) e utilizar o utilitário setcap para configurar recursos em utilitários específicos como necessário. Veja-se man 8 setcap e man 3 cap_from_text para informação adicional.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: pam_cap.so
Diretórios Instalados: Nenhum(a)

Linux-PAM-1.7.0

Introdução ao Linux PAM

O pacote Linux PAM contém Módulos Plugáveis de Autenticação usados pelo(a) administrador(a) local do sistema para controlar como os aplicativos autenticam usuários(as).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Documentação Opcional

Dependências do Linux PAM

Opcionais

libnsl-2.0.1, libtirpc-1.3.6, rpcsvc-proto-1.4.4, Berkeley DB (obsoleto), libaudit e libeconf

Opcionais (Para construir a Documentação e Páginas de Manual)

docbook-xml-5.0, docbook-xsl-ns-1.79.2, fop-2.10 (para o formato PDF), libxslt-1.1.42 e Lynx-2.9.2 (para o formato de texto simples)

Nota

Shadow-4.17.3 precisa ser reinstalado e reconfigurado depois de instalar e de configurar o Linux PAM.

Configuração do Núcleo

Para o módulo PAM pam_loginuid.so (referido pelo arquivo de configuração PAM system-session, se elogind-255.17 for construído posteriormente) funcionar, um parâmetro de configuração do núcleo precisa ser configurado ou o módulo simplesmente não fará nada:

General setup --->
  [*] Auditing support                                                   [AUDIT]

Instalação do Linux PAM

Se você tiver instalado docbook-xml-5.0, docbook-xsl-ns-1.79.2, libxslt-1.1.42 e Lynx-2.9.2 e desejar gerar o formato de texto simples das documentações, modifique meson.build para usar Lynx-2.9.2 em vez de W3m ou Elinks que o BLFS não fornece:

sed -e "s/'elinks'/'lynx'/"                       \
    -e "s/'-no-numbering', '-no-references'/      \
          '-force-html', '-nonumbers', '-stdin'/" \
    -i meson.build

Compile e vincule o Linux PAM executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..        \
  --prefix=/usr       \
  --buildtype=release \
  -D docdir=/usr/share/doc/Linux-PAM-1.7.0 &&

ninja

Para testar os resultados, um arquivo de configuração adequado /etc/pam.d/other precisa existir.

Reinstalação ou Atualização do Linux PAM

Se você tiver um sistema com Linux PAM instalado e funcionando, seja cuidadoso(a) ao modificar os arquivos em /etc/pam.d, pois seu sistema possivelmente se torne totalmente inutilizável. Se você deseja executar os testes, [então] não precisa criar outro arquivo /etc/pam.d/other. O arquivo existente pode ser usado para os testes.

Você também deveria estar ciente de que ninja install sobrescreve os arquivos de configuração em /etc/security, assim como em /etc/environment. Se você tiver modificado esses arquivos, certifique-se de produzir uma cópia de segurança deles.

Para uma primeira instalação, crie um arquivo de configuração emitindo os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /etc/pam.d &&

cat > /etc/pam.d/other << "EOF"
auth     required       pam_deny.so
account  required       pam_deny.so
password required      pam_deny.so
session  required       pam_deny.so
EOF

Agora execute os testes emitindo ninja test. Certifique-se de que os testes não produziram erros antes de continuar a instalação.

Para uma primeira instalação, remova o arquivo de configuração criado anteriormente emitindo o seguinte comando como o(a) usuário(a) root:

rm -fv /etc/pam.d/other

Agora, como o(a) usuário(a) root:

ninja install &&
chmod -v 4755 /usr/sbin/unix_chkpwd

Agora remova um diretório desnecessário como root:

rm -rf /usr/lib/systemd

Se você não tiver as dependências opcionais instaladas para construir a documentação e baixou a documentação opcional pré construída, novamente como o(a) usuário(a) root:

tar -C / -xvf ../../Linux-PAM-1.7.0-docs.tar.xz

Configurando Linux-PAM

Arquivos de Configuração

/etc/security/* e /etc/pam.d/*

Informação de Configuração

A informação de configuração é colocada em /etc/pam.d/. Aqui está um arquivo de amostra:

# Início /etc/pam.d/other

auth            required        pam_unix.so     nullok
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so     nullok

# Fim /etc/pam.d/other

Agora, crie alguns arquivos genéricos de configuração. Como o(a) usuário(a) root:

install -vdm755 /etc/pam.d &&
cat > /etc/pam.d/system-account << "EOF" &&
# Inicia /etc/pam.d/system-account

account   required    pam_unix.so

# Termina /etc/pam.d/system-account
EOF

cat > /etc/pam.d/system-auth << "EOF" &&
# Inicia /etc/pam.d/system-auth

auth      required    pam_unix.so

# Termina /etc/pam.d/system-auth
EOF

cat > /etc/pam.d/system-session << "EOF" &&
# Inicia /etc/pam.d/system-session

session   required    pam_unix.so

# Termina /etc/pam.d/system-session
EOF

cat > /etc/pam.d/system-password << "EOF"
# Inicia /etc/pam.d/system-password

# Use resumo 'yescrypt' para encriptação; use sombra e tente usar
# qualquer token de autenticação previamente definido (senha escolhida)
# configurado por qualquer módulo anterior.
password  required    pam_unix.so       yescrypt shadow try_first_pass

# Termina /etc/pam.d/system-password
EOF

Se você deseja ativar o suporte a senhas fortes, [então] instale libpwquality-1.4.5 e siga as instruções naquela página para configurar o módulo PAM pam_pwquality com suporte a senhas fortes.

Em seguida, adicione um arquivo de configuração /etc/pam.d/other restritivo. Com esse arquivo, os aplicativos que reconhecem o PAM não serão executados, a menos que exista um arquivo de configuração específico para esse aplicativo.

cat > /etc/pam.d/other << "EOF"
# Início /etc/pam.d/other

auth        required        pam_warn.so
auth        required        pam_deny.so
account     required        pam_warn.so
account     required        pam_deny.so
password    required        pam_warn.so
password    required        pam_deny.so
session     required        pam_warn.so
session     required        pam_deny.so

# Fim /etc/pam.d/other
EOF

A página de manual do PAM (man pam) fornece um bom ponto de partida para aprender a respeito dos diversos campos e entradas permissíveis. O Guia Linux-PAM do(a) Administrador(a) do Sistema em /usr/share/doc/Linux-PAM-1.7.0/Linux-PAM_SAG.txt é recomendado para informações adicionais.

Importante

Você agora deveria reinstalar o pacote Shadow-4.17.3.

Conteúdo

Aplicativo Instalado: faillock, mkhomedir_helper, pam_namespace_helper, pam_timestamp_check, pwhistory_helper, unix_chkpwd e unix_update
Bibliotecas Instaladas: libpam.so, libpamc.so e libpam_misc.so
Diretórios Instalados: /etc/security, /usr/lib/security, /usr/include/security e /usr/share/doc/Linux-PAM-1.7.0

Descrições Curtas

faillock

exibe e modifica os arquivos de registro de falha de autenticação

mkhomedir_helper

é um binário auxiliar que cria diretórios home

pam_namespace_helper

é um aplicativo auxiliar usado para configurar um espaço de nome privado para uma sessão de usuário(a)

pwhistory_helper

é um aplicativo auxiliar que transfere hashes de senha de passwd ou shadow para opasswd

pam_timestamp_check

é usado para verificar se o carimbo padrão de tempo é válido

unix_chkpwd

é um binário auxiliar que verifica a senha do(a) usuário(a) atual

unix_update

é um binário auxiliar que atualiza a senha de um(a) determinado(a) usuário(a)

libpam.so

fornece as interfaces entre os aplicativos e os módulos PAM

liboauth-1.0.3

Introdução ao liboauth

liboauth é uma coleção de funções POSIX-C implementando o padrão OAuth Core RFC 5849. Liboauth fornece funções para escapar e codificar parâmetros de acordo com a especificação OAuth e oferece funcionalidade de alto nível para assinar solicitações ou verificar assinaturas OAuth, bem como realizar solicitações HTTP.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do liboauth

Exigidas

cURL-8.12.1

Opcionais

nss-3.108 e Doxygen-1.13.2 (para construir a documentação)

Instalação do liboauth

Aplique um remendo para a versão atual do OpenSSL:

patch -Np1 -i ../liboauth-1.0.3-openssl-1.1.0-3.patch

Instale liboauth executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você deseja construir a documentação (precisa do Doxygen-1.13.2), emita:

make dox

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você previamente já tiver criado a documentação, [então] instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/liboauth-1.0.3 &&
cp -rv doc/html/* /usr/share/doc/liboauth-1.0.3

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-nss: Use essa chave se desejar usar Mozilla NSS em vez do OpenSSL.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: liboauth.so
Diretórios Instalados: /usr/share/doc/liboauth-1.0.3

Descrições Curtas

liboauth.so

fornece funções para escapar e codificar sequências de caracteres de acordo com as especificações OAuth e oferece funcionalidade de alto nível integrada para assinar solicitações ou verificar assinaturas usando NSS ou OpenSSL para calcular o hash/assinaturas

libpwquality-1.4.5

Introdução ao libpwquality

O pacote libpwquality fornece funções comuns para verificação da qualidade da senha e também pontuação com base na aparente aleatoriedade dela. A biblioteca também fornece uma função para gerar senhas aleatórias com boa pronúncia.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libpwquality

Exigidas

CrackLib-2.10.3

Recomendadas

Instalação do libpwquality

Instale libpwquality executando os seguintes comandos:

./configure --prefix=/usr                      \
            --disable-static                   \
            --with-securedir=/usr/lib/security \
            --disable-python-bindings          &&
make &&
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/python

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
pip3 install --no-index --find-links dist --no-user pwquality

Explicações do Comando

--disable-python-bindings: Esse parâmetro desabilita construir ligações Python com o comando obsoleto python3 setup.py build. A instrução explícita para construir a ligação Python 3 com o comando pip3 wheel é fornecida.

Configurando libpwquality

libpwquality é destinado a ser um substituto funcional para o agora obsoleto módulo PAM pam_cracklib.so. Para configurar o sistema para usar o módulo pam_pwquality, execute os seguintes comandos como o(a) usuário(a) root:

mv /etc/pam.d/system-password{,.orig} &&
cat > /etc/pam.d/system-password << "EOF"
# Inicia /etc/pam.d/system-password

# verifique a força das novas senhas (man pam_pwquality)
password  required    pam_pwquality.so   authtok_type=UNIX retry=1 difok=1 \
                                         minlen=8 dcredit=0 ucredit=0 \
                                         lcredit=0 ocredit=0 minclass=1 \
                                         maxrepeat=0 maxsequence=0 \
                                         maxclassrepeat=0 gecoscheck=0 \
                                         dictcheck=1 usercheck=1 \
                                         enforcing=1 badwords="" \
                                         dictpath=/usr/lib/cracklib/pw_dict

# use resumo yescrypt para encriptação; use sombra e tente usar algum
# token de autenticação previamente definido (senha escolhida) configurado
# por algum módulo anterior.
password  required    pam_unix.so        yescrypt shadow try_first_pass

# Termina /etc/pam.d/system-password
EOF

Conteúdo

Aplicativos Instalados: pwscore e pwmake
Bibliotecas Instaladas: pam_pwquality.so e libpwquality.so
Diretórios Instalados: /usr/lib/python3.11/site-packages/pwquality-1.4.5.dist-info

Descrições Curtas

pwmake

é uma ferramenta configurável simples para gerar senhas aleatórias e relativamente fáceis de pronunciar

pwscore

é uma ferramenta simples para verificar a qualidade de uma senha

libpwquality.so

contém funções de API para verificar a qualidade da senha

pam_pwquality.so

é um módulo Linux PAM usado para realizar verificação da qualidade da senha

MIT Kerberos V5-1.21.3

Introdução ao MIT Kerberos V5

MIT Kerberos V5 é uma implementação livre do Kerberos 5. Kerberos é um protocolo de autenticação de rede de comunicação. Ele centraliza a base de dados de autenticação e usa aplicativos kerberizados para trabalhar com servidores ou serviços que suportem Kerberos, permitindo logins únicos e comunicação criptografada em redes internas de comunicação ou na Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: beb34d1dfc72ba0571ce72bed03e06eb

  • Tamanho da transferência: 8,7 MB

  • Espaço em disco estimado exigido: 95 MB (adicionar 14 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,1 UPC para testes)

Dependências do MIT Kerberos V5

Opcionais

Utilitários BIND-9.20.6, CrackLib-2.10.3 (/usr/share/dict/words referenciado por alguns testes), GnuPG-2.4.7 (para autenticar o pacote), keyutils-1.6.3, OpenLDAP-2.6.9, Valgrind-3.24.0 (usado durante a suíte de teste), yasm-1.3.0, libedit, cmocka, kdcproxy, pyrad e resolv_wrapper

Nota

Algum tipo de recurso de sincronização de tempo em seu sistema (como o ntp-4.2.8p18) é necessário, pois o Kerberos não autenticaria se houvesse uma diferença de horário entre um cliente kerberizado e o servidor KDC.

Instalação do MIT Kerberos V5

Construa MIT Kerberos V5 executando os seguintes comandos:

cd src &&
sed -i -e '/eq 0/{N;s/12 //}' plugins/kdb/db2/libdb2/test/run.test &&

./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --runstatedir=/run       \
            --with-system-et         \
            --with-system-ss         \
            --with-system-verto=no   \
            --enable-dns-for-realm   \
            --disable-rpath          &&
make

Para testar a construção, emita: make -j1 -k check. Alguns testes possivelmente falhem com a versão mais recente de dejagnu e glibc. Alguns testes possivelmente travem por um tempo longo e falhem se o sistema não estiver conectado a uma rede de comunicação. Um teste, t_kadm5srv, é conhecido por falhar. Se keyutils-1.6.3 estiver instalado, mas Configuração de Núcleo do Keyutils não estiver satisfeita, alguns testes falharão, reclamando que keyctl falhou com o código 1.

Agora, como o(a) usuário(a) root:

make install &&
cp -vfr ../doc -T /usr/share/doc/krb5-1.21.3

Explicações do Comando

O comando sed remove um teste que é conhecido por falhar.

--localstatedir=/var/lib: Essa opção é usada de forma que os dados variáveis de tempo de execução do Kerberos estejam localizados em /var/lib em vez de /usr/var.

--runstatedir=/run: Essa opção é usada de forma que a informação de estado em tempo de execução do Kerberos esteja localizada em /run em vez do obsoleto /var/run.

--with-system-et: Essa chave faz com que a construção use as versões instaladas do sistema do software de suporte à tabela de erros.

--with-system-ss: Essa chave faz com que a construção use as versões instaladas do sistema do software de interface de linha de comando do subsistema.

--with-system-verto=no: Essa chave corrige um defeito no pacote: ele não reconhece a própria biblioteca verto dele instalada anteriormente. Isso não é um problema, se reinstalar-se a mesma versão; mas, se estiver atualizando, [então] a biblioteca antiga é usada como a do sistema, ao invés de instalar a nova versão.

--enable-dns-for-realm: Essa chave permite que os domínios sejam resolvidos usando o servidor DNS.

--disable-rpath: Essa chave evita codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos executáveis binários e bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança.

--with-ldap: Use essa chave se desejar compilar o módulo de estrutura de retaguarda da base de dados OpenLDAP.

Configurando o MIT Kerberos V5

Arquivos de Configuração

/etc/krb5.conf e /var/lib/krb5kdc/kdc.conf

Informação de Configuração

Configuração do Kerberos

Dica

Você deveria considerar instalar algum tipo de dicionário de verificação de senha, de forma que consiga configurar a instalação para aceitar somente senhas fortes. Um dicionário adequado para usar é mostrado nas instruções do CrackLib-2.10.3. Observe que somente um arquivo pode ser usado, mas você pode concatenar muitos arquivos em um. O arquivo de configuração mostrado abaixo assume que você tenha instalado um dicionário em /usr/share/dict/words.

Crie o arquivo de configuração do Kerberos com os seguintes comandos emitidos pelo(a) usuário(a) root:

cat > /etc/krb5.conf << "EOF"
# Início /etc/krb5.conf

[libdefaults]
    default_realm = <EXAMPLE.ORG>
    encrypt = true

[realms]
    <EXAMPLE.ORG> = {
        kdc = <belgarath.example.org>
        admin_server = <belgarath.example.org>
        dict_file = /usr/share/dict/words
    }

[domain_realm]
    .<example.org> = <EXAMPLE.ORG>

[logging]
    kdc = SYSLOG:INFO:AUTH
    admin_server = SYSLOG:INFO:AUTH
    default = SYSLOG:DEBUG:DAEMON

# Fim /etc/krb5.conf
EOF

Você precisará substituir seu domínio e nome adequado do dispositivo para as ocorrências dos nomes <belgarath> e <example.org>.

default_realm deveria ser o nome do seu domínio mudado para TUDO EM MAIÚSCULAS. Isso não é obrigatório, mas tanto o Heimdal quanto o MIT o recomendam.

encrypt = true fornece encriptação de todo o tráfego entre clientes e servidores kerberizados. Não é necessário e pode ser deixado de lado. Se você deixá-lo desativado, [então] consegue encriptar todo o tráfego procedente do cliente para o servidor usando uma chave no aplicativo cliente.

Os parâmetros [realms] dizem aos aplicativos clientes onde procurar pelos serviços de autenticação do KDC.

A seção [domain_realm] mapeia um domínio para um reino.

Crie a base de dados do KDC:

kdb5_util create -r <EXEMPLO.ORG> -s

Agora você deveria povoar a base de dados com principais (usuários(as)). Por enquanto, apenas use seu nome normal de login ou root.

kadmin.local
kadmin.local: add_policy dict-only
kadmin.local: addprinc -policy dict-only <nome_login>

O servidor KDC e qualquer máquina executando processos de segundo plano de servidor kerberizados precisam ter uma chave de dispositivo instalada:

kadmin.local: addprinc -randkey host/<belgarath.exemplo.org>

Depois de escolher os padrões quando solicitado, você terá que exportar os dados para um arquivo de tabela de chave:

kadmin.local: ktadd host/<belgarath.exemplo.org>

Isso deveria ter criado um arquivo em /etc chamado krb5.keytab (Kerberos 5). Esse arquivo deveria ter permissões 600 (somente leitura e escrita por root). Manter os arquivos de tabela de chave do acesso público é crucial para a segurança geral da instalação do Kerberos.

Saia do aplicativo kadmin (use quit ou exit) e retorne ao prompt do shell. Inicie o processo de segundo plano KDC manualmente, apenas para testar a instalação:

/usr/sbin/krb5kdc

Tente obter um tíquete com o seguinte comando:

kinit <nome_login>

Você será solicitado(a) a fornecer a senha que criou. Depois de obter seu tíquete, você consegue listá-lo com o seguinte comando:

klist

Informação a respeito do tíquete deveriam ser exibidas na tela.

Para testar a funcionalidade do arquivo de tabela de chave, emita o seguinte comando como o(a) usuário(a) root:

ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: l

Isso deveria despejar uma lista do principal do dispositivo, juntamente com os métodos de encriptação usados para acessar o principal.

Crie um arquivo ACL vazio que possa ser modificado posteriormente:

touch /var/lib/krb5kdc/kadm5.acl

Neste ponto, se tudo deu certo até agora, [então] você pode se sentir bastante confiante na instalação e configuração do pacote.

Informação Adicional

Para informação adicional, consulte a documentação para krb5-1.21.3 na qual as instruções acima são baseadas.

Script de Iniciação

Se você deseja iniciar os serviços Kerberos na inicialização, [então] instale o script de iniciação /etc/rc.d/init.d/krb5 incluído no pacote blfs-bootscripts-20250225 usando o seguinte comando:

make install-krb5

Conteúdo

Aplicativos Instalados: gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util (opcional), kdb5_util, kdestroy, kinit, klist, kpasswd, kprop, kpropd, kproplog, krb5-config, krb5-send-pr, krb5kdc, ksu, kswitch, ktutil, kvno, sclient, sim_client, sim_server, sserver, uuclient e uuserver
Bibliotecas Instaladas: libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt_mit.so, libkadm5clnt.so, libkadm5srv_mit.so, libkadm5srv.so, libkdb_ldap.so (opcional), libkdb5.so, libkrad.so, libkrb5.so, libkrb5support.so, libverto.so e alguns plugins sob a árvore /usr/lib/krb5
Diretórios Instalados: /usr/include/{gssapi,gssrpc,kadm5,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.21.3,examples/krb5}, /var/lib/krb5kdc e /run/krb5kdc

Descrições Curtas

gss-client

é um cliente de teste da API GSS

gss-server

é um servidor de teste da API GSS

k5srvutil

é um utilitário de manipulação da tabela de chaves do dispositivo

kadmin

é um utilitário usado para fazer modificações na base de dados Kerberos

kadmin.local

é um utilitário semelhante ao kadmin, mas se a base de dados for db2, [então] o cliente local kadmin.local, destina-se a executar diretamente no KDC mestre sem autenticação Kerberos

kadmind

é um servidor para acesso administrativo a uma base de dados Kerberos

kdb5_ldap_util (opcional)

permite que um(a) administrador(a) gerencie reinos, serviços Kerberos e políticas de tíquete

kdb5_util

é o utilitário de base de dados KDC

kdestroy

remove o conjunto atual de tíquetes

kinit

é usado para se autenticar no servidor Kerberos como um(a) principal e adquirir um tíquete que concede tíquete que consegue posteriormente ser usado para obter tíquetes para outros serviços

klist

lê e exibe os tíquetes atuais no cache de credenciais

kpasswd

é um aplicativo para mudar as senhas do Kerberos 5

kprop

pega uma base de dados principal em um formato especificado e a converte em um fluxo de registros de base de dados

kpropd

recebe uma base de dados enviada pelo kprop e a grava como uma base de dados local

kproplog

exibe o conteúdo do registro de atualização da base de dados KDC na saída gerada padrão

krb5-config

fornece informação a respeito do como vincular aplicativos a bibliotecas

krb5kdc

é o servidor Kerberos 5

krb5-send-pr

envia um Informe de Problema (IP) para um sítio central de suporte

ksu

é o aplicativo de superusuário(a) que usa o protocolo Kerberos. Exige um /etc/shells configurado adequadamente e ~/.k5login contendo principais autorizados a se tornarem superusuários(as)

kswitch

torna o cache especificado de credenciais o cache primário para a coleção, se uma coleção de cache estiver disponível

ktutil

é um aplicativo para gerenciar tabelas de chave do Kerberos

kvno

imprime os números de versão de chave dos principais do Kerberos

sclient

é usado para contactar um servidor de amostra e autenticar-se nele usando tíquetes Kerberos 5 e, em seguida, exibir a resposta do servidor

sim_client

é um simples aplicativo cliente de amostra baseado em UDP, para demonstração

sim_server

é um simples aplicativo servidor baseado em UDP, para demonstração

sserver

é o servidor de amostra Kerberos 5

uuclient

é outro cliente de amostra

uuserver

é outro servidor de amostra

libgssapi_krb5.so

contém as funções Generic Security Service Application Programming Interface (GSSAPI) que fornecem serviços de segurança para chamadores de forma genérica, compatíveis com uma variedade de mecanismos e tecnologias subjacentes e, portanto, permitindo a portabilidade de nível de fonte de aplicativos para diferentes ambientes

libkadm5clnt.so

contém as funções administrativas de autenticação e verificação de senha exigidas pelos aplicativos Kerberos 5 do lado do cliente

libkadm5srv.so

contém as funções administrativas de autenticação e verificação de senha exigidas pelos servidores Kerberos 5

libkdb5.so

é uma biblioteca de acesso à base de dados de autenticação/autorização Kerberos 5

libkrad.so

contém a biblioteca interna de suporte para a funcionalidade RADIUS

libkrb5.so

é uma biblioteca Kerberos 5 multifuncional

Nettle-3.10.1

Introdução ao Nettle

O pacote Nettle contém uma biblioteca criptográfica de baixo nível que é projetada para caber facilmente em muitos contextos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/nettle/nettle-3.10.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c3dc1729cfa65fcabe2023dfbff60beb

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 100 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)

Dependências do Nettle

Opcionais

Valgrind-3.24.0 (opcional para os testes)

Instalação do Nettle

Instale Nettle executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
chmod   -v   755 /usr/lib/lib{hogweed,nettle}.so &&
install -v -m755 -d /usr/share/doc/nettle-3.10.1 &&
install -v -m644 nettle.{html,pdf} /usr/share/doc/nettle-3.10.1

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: nettle-hash, nettle-lfib-stream, nettle-pbkdf2, pkcs1-conv e sexp-conv
Bibliotecas Instaladas: libhogweed.so e libnettle.so
Diretório Instalado: /usr/include/nettle e /usr/share/doc/nettle-3.10.1

Descrições Curtas

nettle-hash

calcula um valor de hash usando um algoritmo especificado

nettle-lfib-stream

gera uma sequência de bytes pseudo-aleatórios (não criptográficos), usando o gerador fibonacci defasado de Knuth. O fluxo é útil para testes, mas não deveria ser usado para gerar chaves criptográficas ou qualquer outra coisa que precise de aleatoriedade real

nettle-pbkdf2

é uma função de derivação de chave baseada em senha que usa uma senha ou frase secreta como entrada e retorna uma senha reforçada, que é protegida contra ataques de pré-computação usando salting e outros cálculos dispendiosos.

pkcs1-conv

converte chaves RSA privadas e públicas do formato PKCS #1 para o formato sexp

sexp-conv

converte uma expressão s para uma codificação diferente

NSS-3.108

Introdução ao NSS

O pacote Network Security Services (NSS) é um conjunto de bibliotecas projetadas para suportar o desenvolvimento em plataforma cruzada de aplicativos cliente e servidor habilitados para segurança. Aplicativos construídos com NSS podem suportar SSL v2 e v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, certificados X.509 v3 e outros padrões de segurança. Isso é útil para implementar SSL e S/MIME ou outros padrões de segurança da Internet em um aplicativo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/security/nss/releases/NSS_3_108_RTM/src/nss-3.108.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9208c05e756a06be19ce0e683777466e

  • Tamanho da transferência: 73 MB

  • Espaço em disco estimado exigido: 315 MB (adicionar 449 MB para os testes)

  • Tempo de construção estimado: 0,9 UPC (com paralelismo=4; adicionar 16 UPC para testes em Ryzens da AMD ou ao menos 29 UPC em máquinas Intel)

Transferências Adicionais

Dependências do NSS

Exigidas

NSPR-4.36

Recomendadas

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/nss

Instalação do NSS

Instale NSS executando os seguintes comandos:

patch -Np1 -i ../nss-standalone-1.patch &&

cd nss &&

make BUILD_OPT=1                      \
  NSPR_INCLUDE_DIR=/usr/include/nspr  \
  USE_SYSTEM_ZLIB=1                   \
  ZLIB_LIBS=-lz                       \
  NSS_ENABLE_WERROR=0                 \
  $([ $(uname -m) = x86_64 ] && echo USE_64=1) \
  $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1)

Para executar os testes, execute os seguintes comandos:

cd tests &&
HOST=localhost DOMSUF=localdomain ./all.sh
cd ../

Nota

Alguma informação relativa aos testes:

  • HOST=localhost e DOMSUF=localdomain são exigidas. Sem essas variáveis, um FQDN é exigido que seja especificado e essa forma genérica deveria funcionar para todos(as), desde que localhost.localdomain esteja definido em /etc/hosts, conforme feito no livro LFS.

  • Os testes tomam um tempo longo para executar. Se desejado, existe informação no conjunto de comandos sequenciais all.sh relativa a executar subconjuntos da suíte total de teste.

  • Ao interromper os testes, a suíte de teste falha ao desligar os servidores de teste que estão executando. Isso leva a um loop infinito nos testes em que a suíte de teste tenta matar um servidor que não mais existe porque extrai o PID errado.

  • Os resultados da suíte de teste (em formato HTML!) podem ser encontrados em ../../test_results/security/localhost.1/results.html

  • Uns poucos testes podem falhar em algumas máquinas Intel por razões desconhecidas.

Agora, como o(a) usuário(a) root:

cd ../dist                                                          &&

install -v -m755 Linux*/lib/*.so              /usr/lib              &&
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib              &&

install -v -m755 -d                           /usr/include/nss      &&
cp -v -RL {public,private}/nss/*              /usr/include/nss      &&

install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin &&

install -v -m644 Linux*/lib/pkgconfig/nss.pc  /usr/lib/pkgconfig

Explicações do Comando

BUILD_OPT=1: Essa opção é passada para make de modo que a construção seja realizada sem símbolos de depuração embutidos nos binários e as otimizações padrão do compilador sejam usadas.

NSPR_INCLUDE_DIR=/usr/include/nspr: Essa opção configura o local dos cabeçalhos nspr.

USE_SYSTEM_ZLIB=1: Essa opção é passada para make para garantir que a biblioteca libssl3.so esteja vinculada ao zlib instalado do sistema em vez da versão em árvore.

ZLIB_LIBS=-lz: Essa opção fornece os sinalizadores de vinculador necessários para vincular ao zlib do sistema.

$([ $(uname -m) = x86_64 ] && echo USE_64=1): A opção USE_64=1 é exigida em x86_64, caso contrário, make tentará (e falhará) criar objetos de 32 bits. O teste [ $(uname -m) = x86_64 ] garante que não tenha efeito em um sistema de 32 bits.

([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1): Isso testa se o sqlite está instalado e, se estiver, echo a opção NSS_USE_SYSTEM_SQLITE=1 para make, de modo que libsoftokn3.so vinculará à versão do sistema do sqlite.

NSS_DISABLE_GTESTS=1: Se você não precisa executar a suíte de teste NSS, anexe essa opção ao comando make, para evitar a compilação dos testes e economizar algum tempo de construção.

Configurando NSS

Se p11-kit-0.25.5 estiver instalado, o módulo de confiança do p11-kit (/usr/lib/pkcs11/p11-kit-trust.so) pode ser usado como um substituto imediato para /usr/lib/libnssckbi.so para transparentemente tornar as ACs do sistema disponíveis para aplicativos cientes de NSS, em vez da biblioteca estática fornecida por /usr/lib/libnssckbi.so. Como o(a) usuário(a) root, execute o seguinte comando:

ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so

Além disso, para aplicativos dependentes que não usam a base de dados interna (/usr/lib/libnssckbi.so), o script /usr/sbin/make-ca incluído na página make-ca-1.15 pode gerar uma base de dados NSS abrangente ao sistema com a chave -n ou modificando o arquivo /etc/make-ca/make-ca. conf.

Conteúdo

Aplicativos Instalados: certutil, nss-config e pk12util
Bibliotecas Instaladas: libcrmf.a, libfreebl3.so, libfreeblpriv3.so, libnss3.so, libnssckbi.so, libnssckbi-testlib.so, libnssdbm3.so, libnsssysinit.so, libnssutil3.so, libpkcs11testmodule.so, libsmime3.so, libsoftokn3.so e libssl3.so
Diretórios Instalados: /usr/include/nss

Descrições Curtas

certutil

é a ferramenta de base de dados de certificados da Mozilla. É um utilitário de linha de comando que consegue criar e modificar os arquivos de base de dados cert8.db e key3.db do Netscape Communicator. Ele também consegue listar, gerar, modificar ou deletar certificados dentro do arquivo cert8.db e criar ou mudar a senha, gerar novos pares de chaves públicas e privadas, exibir o conteúdo da base de dados de chaves ou deletar pares de chaves dentro do arquivo key3.db

nss-config

é usado para determinar as configurações da biblioteca NSS das bibliotecas instaladas NSS

pk12util

é uma ferramenta para importar certificados e chaves a partir de arquivos PKCS #12 para o NSS ou exportá-los. Ele também consegue listar certificados e chaves nesses arquivos

OpenSSH-9.9p2

Introdução ao OpenSSH

O pacote OpenSSH contém clientes ssh e o processo de segundo plano sshd. Isso é útil para encriptar a autenticação e o tráfego subsequente em uma rede de comunicação. Os comandos ssh e scp são implementações seguras do telnet e do rcp respectivamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f617b95fe278bfea8d004589c7a68a85

  • Tamanho da transferência: 1,9 MB

  • Espaço em disco estimado exigido: 46 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; executar os testes leva cerca de 20 minutos, independentemente da velocidade do processador)

Dependências do OpenSSH

Opcionais

GDB-16.2 (para testes), Linux-PAM-1.7.0 (arquivos de configuração de PAM oriundos de Shadow-4.17.3 são usados para criar arquivos do openssh), Aplicativos do Xorg (ou Ambiente de construção do "Xorg", veja-se Explicação dos Comandos), MIT Kerberos V5-1.21.3, Which-2.23 (para testes), libedit, LibreSSL Portable, OpenSC e libsectok

Opcional em Tempo de Execução (usado somente para coletar entropia)

Net-tools-2.10 e Sysstat-12.7.7

Instalação do OpenSSH

O OpenSSH executa como dois processos ao se conectar a outros computadores. O primeiro processo é um processo privilegiado e controla a emissão de privilégios conforme necessário. O segundo processo se comunica com a rede de intercomunicação. Etapas adicionais de instalação são necessárias para configurar o ambiente adequado, que são realizadas emitindo os seguintes comandos como o(a) usuário(a) root:

install -v -g sys -m700 -d /var/lib/sshd &&

groupadd -g 50 sshd        &&
useradd  -c 'sshd PrivSep' \
         -d /var/lib/sshd  \
         -g sshd           \
         -s /bin/false     \
         -u 50 sshd

Instale o OpenSSH executando os seguintes comandos:

./configure --prefix=/usr                           \
            --sysconfdir=/etc/ssh                    \
            --with-privsep-path=/var/lib/sshd        \
            --with-default-path=/usr/bin             \
            --with-superuser-path=/usr/sbin:/usr/bin \
            --with-pid-dir=/run                      &&
make

Para testar os resultados, emita: make -j1 tests.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755   contrib/ssh-copy-id /usr/bin     &&

install -v -m644    contrib/ssh-copy-id.1 \
                    /usr/share/man/man1              &&
install -v -m755 -d /usr/share/doc/openssh-9.9p2     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-9.9p2

Explicações do Comando

--sysconfdir=/etc/ssh: Isso evita que os arquivos de configuração sejam instalados em /usr/etc.

--with-default-path=/usr/bin e --with-superuser-path=/usr/sbin:/usr/bin: Esses configuram PATH consistente com o pacote Shadow do LFS e do BLFS.

--with-pid-dir=/run: Isso evita que OpenSSH se refira ao obsoleto /var/run.

--with-pam: Esse parâmetro habilita o suporte Linux-PAM na construção.

--with-xauth=$XORG_PREFIX/bin/xauth: Configure o local padrão para o binário xauth para autenticação do X. A variável de ambiente XORG_PREFIX deveria estar configurada seguindo Ambiente de construção do "Xorg". Isso também pode ser controlado a partir de sshd_config com a palavra-chave XAuthLocation. Você pode omitir essa chave se o Xorg já estiver instalado.

--with-kerberos5=/usr: Essa opção é usada para incluir suporte a Kerberos 5 na construção.

--with-libedit: Essa opção habilita a edição de linha e recursos de histórico para o sftp.

Configurando o OpenSSH

Arquivos de Configuração

~/.ssh/*, /etc/ssh/ssh_config e /etc/ssh/sshd_config

Não existem mudanças exigidas para nenhum desses arquivos. No entanto, você possivelmente deseje visualizar os arquivos do /etc/ssh/ e fazer quaisquer mudanças apropriadas para a segurança do teu sistema. Uma mudança recomendada é a de desabilitar o login do(a) root via ssh. Execute o seguinte comando como o(a) usuário(a) root para desabilitar o login do(a) root via ssh:

echo "PermitRootLogin no" >> /etc/ssh/sshd_config

Se quiser estar apto(a) a se logar sem digitar tua senha, crie primeiro ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub com o ssh-keygen e depois copie ~/.ssh /id_rsa.pub para ~/.ssh/authorized_keys no computador remoto no qual deseja se logar. Você precisará mudar NOME_USUARIO(A)_REMOTO e NOME_DISPOSITIVO_REMOTO para o nome de usuário(a) e nome do dispositivo do computador remoto e também precisará inserir tua senha para que o comando ssh-copy-id seja bem-sucedido:

ssh-keygen &&
ssh-copy-id -i ~/.ssh/id_ed25519.pub NOME_USUÁRIO(A)_REMOTO@NOME_DISPOSITIVO_REMOTO

Tão logo tenha obtido logins sem senha funcionando, atualmente é mais seguro que se logar com uma senha (já que a chave privada é muito mais longa que as senhas da maioria das pessoas). Se você gostaria de desabilitar logins de senha agora, como o(a) usuário(a) root:

echo "PasswordAuthentication no" >> /etc/ssh/sshd_config &&
echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config

Se você adicionou suporte Linux-PAM e deseja que o ssh o use, então precisará adicionar um arquivo de configuração para o sshd e habilitar o uso do Linux-PAM. Observe que o ssh somente usa PAM para verificar senhas; se tiver desabilitado os logins de senha, estes comandos não são necessários. Se você deseja usar o PAM, emita os seguintes comandos como o(a) usuário(a) root:

sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd &&
chmod 644 /etc/pam.d/sshd &&
echo "UsePAM yes" >> /etc/ssh/sshd_config

Informação adicional de configuração pode ser encontrada nas páginas de manual para sshd, ssh e ssh-agent.

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar o servidor SSH na inicialização do sistema, instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sshd incluído no pacote blfs-bootscripts-20250225.

Nota

Mudar a configuração de ListenAddress em /etc/sshd/sshd_config não é suportado com o conjunto de comandos sequenciais de inicialização do sshd do BLFS.

make install-sshd

Conteúdo

Aplicativos Instalados: scp, sftp, ssh, ssh-add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan e sshd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/ssh, /usr/share/doc/openssh-9.9p2 e /var/lib/sshd

Descrições Curtas

scp

é um aplicativo de cópia de arquivo que age como rcp, exceto que usa um protocolo encriptado

sftp

é um aplicativo do tipo FTP que funciona ao longo dos protocolos SSH1 e SSH2

ssh

é um aplicativo cliente do tipo rlogin/rsh, exceto que usa um protocolo encriptado

sshd

é um processo de segundo plano que escuta solicitações de login do ssh

ssh-add

é uma ferramenta que adiciona chaves ao ssh-agent

ssh-agent

é um agente de autenticação que consegue armazenar chaves privadas

ssh-copy-id

é um conjunto de comandos sequenciais que habilita logins em máquinas remotas usando chaves locais

ssh-keygen

é uma ferramenta de geração de chave

ssh-keyscan

é um utilitário para coletar chaves públicas de dispositivo a partir de vários dispositivos

p11-kit-0.25.5

Introdução ao p11-kit

O pacote p11-kit fornece uma maneira de carregar e de enumerar módulos PKCS #11 (um padrão de interface de token criptográfico).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do p11-kit

Recomendadas
Recomendadas (tempo de execução)
Opcionais

GTK-Doc-1.34.0, libxslt-1.1.42 e nss-3.108 (tempo de execução)

Instalação do p11-kit

Prepare o gancho de ancoragem específico para distribuição:

sed '20,$ d' -i trust/trust-extract-compat &&

cat >> trust/trust-extract-compat << "EOF"
# Copiar modificações existentes de âncora para /etc/ssl/local
/usr/libexec/make-ca/copy-trust-modifications

# Atualizar lojas de confiança
/usr/sbin/make-ca -r
EOF

Instale p11-kit executando os seguintes comandos:

mkdir p11-build &&
cd    p11-build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D trust_paths=/etc/pki/anchors &&
ninja

Para testar os resultados, emita: LC_ALL=C ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&
ln -sfv /usr/libexec/p11-kit/trust-extract-compat \
       /usr/bin/update-ca-certificates

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D trust_paths=/etc/pki/anchors: essa chave configura o local dos certificados confiáveis usados pela libp11-kit.so.

-D hash_impl=freebl: Use essa chave se quiser usar a biblioteca Freebl proveniente da NSS para hash SHA1 e MD5.

-D gtk_doc=true: Use essa chave se você tiver instalado GTK-Doc-1.34.0 e libxslt-1.1.42 e deseja reconstruir a documentação e gerar páginas de manual .

Configurando p11-kit

O módulo de confiança p11-kit (/usr/lib/pkcs11/p11-kit-trust.so) pode ser usado como um substituto imediato para /usr/lib/libnssckbi.so para transparentemente tornar as ACs do sistema disponíveis para aplicativos cientes da NSS, em vez da lista estática fornecida pela /usr/lib/libnssckbi.so. Como o(a) usuário(a) root, execute os seguintes comandos:

ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so

Conteúdo

Aplicativos Instalados: p11-kit, trust e update-ca-certificates
Bibliotecas Instaladas: libp11-kit.so e p11-kit-proxy.so
Diretórios Instalados: /etc/pkcs11, /usr/include/p11-kit-1, /usr/lib/pkcs11, /usr/libexec/p11-kit, /usr/share/gtk-doc/html/p11-kit e /usr/share/p11-kit

Descrições Curtas

p11-kit

é uma ferramenta de linha de comando que pode ser usada para realizar operações em módulos PKCS#11 configurados no sistema

trust

é uma ferramenta de linha de comando para examinar e modificar o armazenamento de política de confiança compartilhada

update-ca-certificates

é uma ferramenta de linha de comando para extrair certificados locais a partir de um armazenamento âncora atualizado e regenerar todas as âncoras e armazenamentos de certificados no sistema. Isso é feito incondicionalmente no BLFS usando os sinalizadores --force e --get para o make-ca e provavelmente não deveria ser usado para atualizações automáticas

libp11-kit.so

contém funções usadas para coordenar a inicialização e a finalização de qualquer módulo PKCS#11

p11-kit-proxy.so

é o módulo proxy PKCS#11

Polkit-126

Introdução ao Polkit

Polkit é um kit de ferramentas para definir e para manusear autorizações. Ele é usado para permitir que processos não privilegiados se comuniquem com processos privilegiados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/polkit-org/polkit/archive/126/polkit-126.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: db4ce0a42d5bf8002061f8e34ee9bdd0

  • Tamanho da transferência: 448 KB

  • Espaço em disco estimado exigido: 7,4 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes; usando paralelismo=4)

Dependências do Polkit

Exigidas

duktape-2.7.0 e GLib-2.82.5 (GObject Introspection recomendado)

Recomendadas

Nota

Como elogind usa PAM para registrar sessões de usuário(a), é uma boa ideia construir Polkit com suporte a PAM, de forma que elogind possa rastrear sessões Polkit.

Opcionais

GTK-Doc-1.34.0 e dbusmock-0.34.3 (exigido para testes)

Dependências Opcionais em Tempo de Execução

Um agente de autenticação polkit para usar polkit no ambiente gráfico: polkit-kde-agent em Plasma-6.3.2 para KDE, o agente construído em gnome-shell-47.4 para GNOME3, polkit-gnome-0.105 para XFCE e lxqt-policykit-2.1.0 para LXQt

Nota

Se libxslt-1.1.42 estiver instalado, então docbook-xml-4.5 e docbook-xsl-nons-1.79.2 serão exigidos. Se você tiver instalado libxslt-1.1.42, mas não deseja instalar nenhum dos pacotes DocBook mencionados, você precisará usar -D man=false nas instruções abaixo.

Configuração do Núcleo

Alguns testes precisam de suporte a espaços de nome de usuário(a). Se você for executar a suíte de teste, habilite o suporte e recompile o núcleo se necessário:

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]

Instalação do Polkit

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano polkitd depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) root:

groupadd -fg 27 polkitd &&
useradd -c "Dono(a) do Processo de Segundo Plano do PolicyKit" -d /etc/polkit-1 -u 27 \
        -g polkitd -s /bin/false polkitd

Instale o Polkit executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                     \
      --prefix=/usr                \
      --buildtype=release          \
      -D man=true                  \
      -D session_tracking=elogind  \
      -D systemdsystemunitdir=/tmp \
      -D tests=true

Construa o pacote:

ninja

Para testar os resultados, primeiro certifique-se de que o processo de segundo plano D-Bus do sistema esteja executando e que D-Bus Python-1.3.2 e dbusmock-0.34.3 estejam instalados. Em seguida, execute ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Remova alguns arquivos que não são úteis em um sistema SysV como o(a) usuário(a) root:

rm -v /tmp/*.service                 &&
rm -rf /usr/lib/{sysusers,tmpfiles}.d 

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D tests=true: Essa chave permite executar a suíte de teste deste pacote. Como Polkit é usado para autorizações, a integridade dele pode afetar a segurança do sistema. Portanto, é recomendado executar a suíte de teste construindo este pacote.

-D os_type=lfs: Use essa chave se você não criou o arquivo /etc/lfs-release ou a detecção automática da distribuição falhará e você estará inapto(a) a usar o Polkit.

-D authfw=shadow: Essa chave habilita o pacote a usar o Shadow em vez da estrutura de autenticação Linux PAM. Use-a se você não tiver instalado Linux PAM.

-D introspection=false: Use essa opção se você tiver certeza de que não precisa de arquivos do gobject-introspection para polkit ou não tiver instalado GLib-2.82.5 com GObject Introspection.

-D man=false: Use essa opção para desabilitar a geração e a instalação das páginas de manual. Isso é útil se libxslt não estiver instalado.

-D examples=true: Use essa opção para construir os aplicativos de exemplo.

-D gtk_doc=true: Use essa opção para habilitar a construção e a instalação da documentação da API.

Conteúdo

Aplicativos Instalados: pkaction, pkcheck, pkexec, pkttyagent e polkitd
Bibliotecas Instaladas: libpolkit-agent-1.so e libpolkit-gobject-1.so
Diretórios Instalados: /etc/polkit-1, /usr/include/polkit-1, /usr/lib/polkit-1, /usr/share/gtk-doc/html/polkit-1 e /usr/share/polkit-1

Descrições Curtas

pkaction

é usado para obter informação relativa às ações registradas do PolicyKit

pkcheck

é usado para verificar se um processo está autorizado para ação

pkexec

permite que um(a) usuário(a) autorizado(a) execute um comando como outro(a) usuário(a)

pkttyagent

é usado para iniciar um agente textual de autenticação para o assunto

polkitd

fornece o serviço D-Bus do org.freedesktop.PolicyKit1 no barramento de mensagem do sistema

libpolkit-agent-1.so

contém as funções de API do agente de autenticação Polkit

libpolkit-gobject-1.so

contém as funções da API de autorização Polkit

polkit-gnome-0.105

Introdução ao Polkit GNOME

O pacote Polkit GNOME fornece um Agente de Autenticação para Polkit que se integra bem com o ambiente de área de trabalho GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Polkit GNOME

Exigidas

AccountsService-23.13.9, GTK-3.24.48 e Polkit-126

Instalação do Polkit GNOME

Primeiro, aplique algumas correções que permitem que o ícone adequado de usuário(a) seja usado, bem como algumas correções de segurança:

patch -Np1 -i ../polkit-gnome-0.105-consolidated_fixes-1.patch

Instale o Polkit GNOME executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Configurando o Polkit GNOME

Iniciação Automática

Para que a estrutura de autenticação funcione, polkit-gnome-authentication-agent-1 precisa ser iniciado. No entanto, make install não instalou um arquivo de iniciação para o Polkit GNOME, de modo que você tem de criá-lo você mesmo(a).

Emita os seguintes comandos como o(a) usuário(a) root para criar um arquivo de iniciação para Polkit GNOME:

mkdir -p /etc/xdg/autostart &&
cat > /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop << "EOF"
[Desktop Entry]
Name=PolicyKit Authentication Agent
Comment=PolicyKit Authentication Agent
Exec=/usr/libexec/polkit-gnome-authentication-agent-1
Terminal=false
Type=Application
Categories=
NoDisplay=true
OnlyShowIn=GNOME;XFCE;Unity;
AutostartCondition=GNOME3 unless-session gnome
EOF

Conteúdo

Aplicativo Instalado: polkit-gnome-authentication-agent-1
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

polkit-gnome-authentication-agent-1

é o agente de autenticação Polkit

Shadow-4.17.3

Introdução ao Shadow

Shadow foi realmente instalado no LFS e não existe razão para reinstalá-lo, a menos que você instalou Linux-PAM depois que teu sistema LFS foi concluído. Com Linux-PAM instalado, reinstalar Shadow permitirá que programas como login e su utilizem o PAM.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Shadow

Exigidas

Linux-PAM-1.7.0

Opcionais

libbsd e tcb

Instalação do Shadow

Importante

Os comandos de instalação mostrados abaixo são para instalações onde o Linux-PAM tenha sido instalado e o Shadow esteja sendo reinstalado para suportar a instalação do Linux-PAM.

Reinstale Shadow executando os seguintes comandos:


sed -i 's/groups$(EXEEXT) //' src/Makefile.in          &&

find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \; &&
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; &&
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \; &&

sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' \
    -e 's@/var/spool/mail@/var/mail@'                   \
    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                  \
    -i etc/login.defs                                   &&

./configure --sysconfdir=/etc   \
            --disable-static    \
            --without-libbsd    \
            --with-{b,yes}crypt &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make exec_prefix=/usr pamddir= install

As páginas de manual foram instaladas no LFS, mas se a reinstalação for desejada, execute (como o(a) usuário(a) root):

make -C man install-man

Explicações do Comando

sed -i 's/groups$(EXEEXT) //' src/Makefile.in: Esse sed é usado para suprimir a instalação do aplicativo groups, pois a versão originária do pacote Coreutils instalado durante o LFS é a preferida.

find man -name Makefile.in -exec ... {} \;: O primeiro comando é usado para suprimir a instalação das páginas de manual do groups, de modo que as existentes instaladas a partir do pacote Coreutils não sejam substituídas. Os outros dois comandos impedem a instalação de páginas de manual que já estão instaladas pelo Man-pages no LFS.

sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' -e 's@/var/spool/mail@/var/mail@' -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' -i etc/login.defs: Em vez de usar o método padrão 'DES ', esse comando modifica a instalação para usar o método muito mais seguro 'YESCRYPT' de resumo de senhas, que também permite senhas maiores que oito caracteres. O comando também muda o local obsoleto /var/spool/mail para caixas de correio de usuário(a) que Shadow usa por padrão para o local /var/mail. Ele também muda o caminho padrão para estar consistente com aquele configurado no LFS.

--without-libbsd: Impede a procura pela função readpassphrase, que pode ser encontrada somente na libbsd, a qual nós não temos no BLFS. Uma implementação interna de readpassphrase é usada no lugar.

pamddir=: Impede instalação dos arquivos enviados de configuração do PAM em /etc/pam.d. A configuração enviada não funciona com a configuração PAM do BLFS e nós criaremos esses arquivos de configuração explicitamente.

Configurando Linux-PAM para Funcionar com Shadow

Nota

O restante desta página é dedicado para configurar o Shadow para funcionar corretamente com o Linux-PAM.

Arquivos de Configuração

/etc/pam.d/* ou, alternativamente, /etc/pam.conf, /etc/login.defs e /etc/security/*

Informação de Configuração

Configurar seu sistema para usar Linux-PAM pode ser uma tarefa complexa. A informação abaixo fornecerá uma configuração básica, de modo que a funcionalidade de login e senha do Shadow funcione efetivamente com o Linux-PAM. Revise a informação e os links na página Linux-PAM-1.7.0 para informação adicional de configuração. Para informação específica relativa a integrar o Shadow, Linux-PAM e o libpwquality, você pode visitar o seguinte link:

Configurando /etc/login.defs

O aplicativo login atualmente realiza muitas funções que os módulos Linux-PAM agora deveriam manusear. O seguinte comando sed comentará as linhas apropriadas em /etc/login.defs e impedirá login de realizar essas funções (um arquivo de cópia de segurança chamado /etc/login.defs.orig também é criado para preservar o conteúdo do arquivo original). Emita os seguintes comandos como o(a) usuário(a) root:

install -v -m644 /etc/login.defs /etc/login.defs.orig &&
for FUNCTION in FAIL_DELAY               \
                FAILLOG_ENAB             \
                LASTLOG_ENAB             \
                MAIL_CHECK_ENAB          \
                OBSCURE_CHECKS_ENAB      \
                PORTTIME_CHECKS_ENAB     \
                QUOTAS_ENAB              \
                CONSOLE MOTD_FILE        \
                FTMP_FILE NOLOGINS_FILE  \
                ENV_HZ PASS_MIN_LEN      \
                SU_WHEEL_ONLY            \
                PASS_CHANGE_TRIES        \
                PASS_ALWAYS_WARN         \
                CHFN_AUTH ENCRYPT_METHOD \
                ENVIRON_FILE
do
    sed -i "s/^${FUNCTION}/# &/" /etc/login.defs
done
Configurando os Arquivos /etc/pam.d/

Conforme mencionado anteriormente nas instruções do Linux-PAM, o Linux-PAM tem dois métodos suportados para configuração. Os comandos abaixo assumem que você tenha escolhido usar uma configuração baseada em diretório, onde cada aplicativo tem o próprio arquivo de configuração dele. Você pode opcionalmente usar um arquivo de configuração /etc/pam.conf usando o texto oriundo dos arquivos abaixo e fornecendo o nome do aplicativo como um primeiro campo adicional para cada linha.

Como o(a) usuário(a) root, crie os seguintes arquivos de configuração do Linux-PAM no diretório /etc/pam.d/ (ou adicione o conteúdo ao arquivo /etc/pam.conf) usando os seguintes comandos:

'login'
cat > /etc/pam.d/login << "EOF"
# Início /etc/pam.d/login

# Configura atraso de falha antes do próximo prompt para 3 segundos
auth      optional    pam_faildelay.so  delay=3000000

# Verifica se o(a) usuário(a) tem permissão para se logar
auth      requisite   pam_nologin.so

# Verifica para assegurar que o(a) root tem permissão para se logar.
# Desabilitado por padrão. Você precisará criar o arquivo /etc/securetty
# para que este módulo funcione. Veja-se man 5 securetty.
#auth      required    pam_securetty.so

# Associações adicionais de grupo - desabilitadas por padrão
#auth      optional    pam_group.so

# Inclui configurações de autenticação do sistema
auth      include     system-auth

# Verifica acesso para o(a) usuário(a)
account   required    pam_access.so

# Inclui configurações de conta do sistema
account   include     system-account

# Configura variáveis padrão de ambiente para o(a) usuário(a)
session   required    pam_env.so

# Configura limites de recursos para o(a) usuário(a)
session   required    pam_limits.so

# Exibe a mensagem do dia - Desabilitado por padrão
#session   optional    pam_motd.so

# Verifica mensagens eletrônicas para o(a) usuário(a) - Desabilitado por padrão
#session   optional    pam_mail.so      standard quiet

# inclui configurações da sessão e senha do sistema
session   include     system-session
password  include     system-password

# Fim /etc/pam.d/login
EOF
'passwd'
cat > /etc/pam.d/passwd << "EOF"
# Início /etc/pam.d/passwd

password  include     system-password

# Fim /etc/pam.d/passwd
EOF
'su'
cat > /etc/pam.d/su << "EOF"
# Início /etc/pam.d/su

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Permite que usuários(as) do grupo wheel executem su sem uma senha
# Desabilitado por padrão
#auth      sufficient  pam_wheel.so trust use_uid

# Inclui configurações de autenticação do sistema
auth      include     system-auth

# Limita su a usuários(as) no grupo wheel
# Desabilitado por padrão
#auth      required    pam_wheel.so use_uid

# Inclui configurações de conta do sistema
account   include     system-account

# Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço
session   required    pam_env.so

# Inclui configurações de sessão do sistema
session   include     system-session

# Fim /etc/pam.d/su
EOF
'chpasswd' e 'newusers'
cat > /etc/pam.d/chpasswd << "EOF"
# Início /etc/pam.d/chpasswd

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Inclui configurações do sistema de autenticação e de conta
auth      include     system-auth
account   include     system-account
password  include     system-password

# Fim /etc/pam.d/chpasswd
EOF

sed -e s/chpasswd/newusers/ /etc/pam.d/chpasswd >/etc/pam.d/newusers
'chage'
cat > /etc/pam.d/chage << "EOF"
# Início /etc/pam.d/chage

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Inclui configurações do sistema de autenticação e de conta
auth      include     system-auth
account   include     system-account

# Fim /etc/pam.d/chage
EOF
Outros utilitários de sombra
for PROGRAM in chfn chgpasswd chsh groupadd groupdel \
              groupmems groupmod useradd userdel usermod
do
    install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM}
    sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM}
done

Atenção

Neste ponto, você deveria fazer um teste simples para ver se o Shadow está funcionando conforme o esperado. Abra outro terminal e se logue como root e, em seguida, execute login e se logue como outro(a) usuário(a). Se não vir nenhum erro, então está tudo bem e você deveria prosseguir com o restante da configuração. Se você recebeu erros, [então] pare agora e verifique duplamente os arquivos de configuração acima manualmente. Qualquer erro é o sinal de um erro no procedimento acima. Você também pode executar a suíte de teste proveniente do pacote Linux-PAM para ajudá-lo(a) a determinar o problema. Se não conseguir localizar e corrigir o erro, [então] você deveria recompilar o Shadow adicionando a chave --without-libpam ao comando configure nas instruções acima (também mova o arquivo de cópia de segurança /etc/login.defs.orig para /etc/login.defs). Se falhar em fazer isso e os erros persistirem, [então] você não conseguirá se logar no seu sistema.

Configurando Acesso de Login

Em vez de usar o arquivo /etc/login.access para controlar o acesso ao sistema, o Linux-PAM usa o módulo pam_access.so juntamente com o arquivo /etc/security/access.conf. Renomeie o arquivo /etc/login.access usando o seguinte comando:

if [ -f /etc/login.access ]; then mv -v /etc/login.access{,.SEMUSO}; fi
Configurando Limites de Recurso

Em vez de usar o arquivo /etc/limits para limitar o uso dos recursos do sistema, o Linux-PAM usa o módulo pam_limits.so junto com o arquivo /etc/security/limits.conf. Renomeie o arquivo /etc/limits usando o seguinte comando:

if [ -f /etc/limits ]; then mv -v /etc/limits{,.SEMUSO}; fi

Cuidado

Certifique-se de testar os recursos de login do sistema antes de se deslogar. Erros na configuração podem causar um bloqueio permanente exigindo uma inicialização a partir de uma fonte externa para corrigir o problema.

Conteúdo

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3/chapter08/shadow.html#contents-shadow.

ssh-askpass-9.9p2

Introdução ao ssh-askpass

O ssh-askpass é um nome executável genérico para muitos pacotes, com nomes semelhantes, que fornecem um serviço interativo do X para obter senha para pacotes que exigem privilégios administrativos para serem executados. Ele exibe para o(a) usuário(a) uma caixa de janela onde a senha necessária pode ser inserida. Aqui, escolhemos o pacote de Damien Miller distribuído no tarball do OpenSSH.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ssh-askpass

Exigidas

GTK-3.24.48, Sudo-1.9.16p2 (tempo de execução), Bibliotecas do Xorg e um ambiente gráfico (tempo de execução)

Instalação do ssh-askpass

Instale ssh-askpass executando os seguintes comandos:

cd contrib &&
make gnome-ssh-askpass3

Agora, como o(a) usuário(a) root:

install -v -d -m755                   /usr/libexec/openssh/contrib  &&
install -v -m755    gnome-ssh-askpass3 /usr/libexec/openssh/contrib  &&
ln -sv -f contrib/gnome-ssh-askpass3   /usr/libexec/openssh/ssh-askpass

O uso de /usr/libexec/openssh/contrib e um link simbólico é justificado pela eventual necessidade de um aplicativo diferente para esse serviço.

Configurando ssh-askpass

Informação de Configuração

Como o(a) usuário(a) root, configure Sudo-1.9.16p2 para usar ssh-askpass:

cat >> /etc/sudo.conf << "EOF" &&
# Caminho para o aplicativo auxiliar askpass
Path askpass /usr/libexec/openssh/ssh-askpass
EOF
chmod -v 0644 /etc/sudo.conf

Se um dado <aplicativo> gráfico exigir privilégios administrativos, [então] use sudo -A <aplicativo> a partir de um terminal do X, a partir de um menu do Gerenciador de janelas e(ou) substitua "Exec=<aplicativo> ..." por "Exec=sudo -A <aplicativo> ..." no arquivo <aplicativo>.desktop.

Conteúdo

Aplicativos Instalados: gnome-ssh-askpass3, ssh-askpass (link simbólico para gnome-ssh-askpass3)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/libexec/openssh/contrib

stunnel-5.74

Introdução ao stunnel

O pacote stunnel contém um aplicativo que permite encriptar conexões arbitrárias TCP dentro de SSL (Secure Sockets Layer), de modo que você consiga se comunicar facilmente com clientes ao longo de canais seguros. stunnel também pode ser usado para encapsular PPP ao longo de soquetes de rede de comunicação sem mudanças no código-fonte do pacote do servidor.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do stunnel

Opcionais

libnsl-2.0.1, netcat (exigido para os testes), tcpwrappers e TOR

Instalação do stunnel

O processo de segundo plano stunnel será executado em uma jaula chroot por um(a) usuário(a) sem privilégios. Crie o(a) novo(a) usuário(a) e grupo usando os seguintes comandos como o(a) usuário(a) root:

groupadd -g 51 stunnel &&
useradd -c "Processo de segundo plano stunnel" -d /var/lib/stunnel \
        -g stunnel -s /bin/false -u 51 stunnel

Nota

Um certificado SSL assinado e uma chave privada é necessário(a) para executar o processo de segundo plano stunnel. Depois que o pacote estiver instalado, existem instruções para gerá-lo(a). No entanto, se você é dono(a) ou já criou um Certificado SSL assinado que deseja usar, [então] copie-o para /etc/stunnel/stunnel.pem antes de iniciar a construção (certifique-se de que somente o(a) root tenha acesso de leitura e gravação). O arquivo .pem precisa ser formatado conforme mostrado:

-----BEGIN PRIVATE KEY-----
<muitas linhas encriptadas da chave privada>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<muitas linhas encriptadas do certificado>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<linhas encriptadas dos parâmetros dh>
-----END DH PARAMETERS-----

Instale stunnel executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-systemd    &&
make

Se você tiver instalado o aplicativo opcional netcat, [então] os testes de regressão podem ser executados com make check.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/stunnel-5.74 install

Se você ainda não tiver um certificado SSL assinado e uma chave privada, [então] crie o arquivo stunnel.pem no diretório /etc/stunnel usando o comando abaixo. Você será solicitado(a) a inserir a informação necessária. Certifique-se de responder ao

Common Name (FQDN of your server) [localhost]:

prompt com o nome ou o endereço IP que você usará para acessar o(s) serviço(s).

Para gerar um certificado, como o(a) usuário(a) root, emita:

make cert

Explicações do Comando

--disable-systemd: Essa chave desabilita o suporte a ativação de soquete do systemd que não está disponível no BLFS.

make docdir=... install: Esse comando instala o pacote e muda o diretório de instalação da documentação para convenções de nomenclatura padrão.

Configurando stunnel

Arquivos de Configuração

/etc/stunnel/stunnel.conf

Informação de Configuração

Como o(a) usuário(a) root, crie o diretório usado para o arquivo .pid criado quando o processo de segundo plano stunnel inicia:

install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run &&
chown stunnel:stunnel /var/lib/stunnel

Em seguida, crie um arquivo básico de configuração /etc/stunnel/stunnel.conf usando os seguintes comandos como o(a) usuário(a) root:

cat > /etc/stunnel/stunnel.conf << "EOF"
; File: /etc/stunnel/stunnel.conf

; Observação: os locais da saída gerada e do PID são relativos ao local do chroot.

pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
cert = /etc/stunnel/stunnel.pem

;debug = 7
;output = stunnel.log

;[https]
;accept = 443
;connect = 80
;; "TIMEOUTclose = 0" é um contorno para uma falha de projeto no Microsoft SSL
;; Implementações Microsoft não usam alerta de notificação de fechamento SSL e, portanto,
;; elas são vulneráveis a ataques de truncamento
;TIMEOUTclose = 0

EOF

Finalmente, adicione o(s) serviço(s) que deseja encriptar ao arquivo de configuração. O formato é como segue:

[<service>]
accept = <nome_dispositivo:número_porta>
connect = <nome_dispositivo:número_porta>

Para uma explicação completa dos comandos e da sintaxe usados no arquivo de configuração, emita man stunnel.

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar automaticamente o processo de segundo plano stunnel quando o sistema for inicializado, instale o script de inicialização /etc/rc.d/init.d/stunnel a partir do pacote blfs-bootscripts-20250225.

make install-stunnel

Conteúdo

Aplicativos Instalados: stunnel e stunnel3
Biblioteca Instalada: libstunnel.so
Diretórios Instalados: /{etc,lib,var/lib}/stunnel e /usr/share/doc/stunnel-5.74

Descrições Curtas

stunnel

é um aplicativo projetado para funcionar como invólucro de encriptação SSL entre clientes remotos e servidores locais ou remotos

stunnel3

é um script de invólucro Perl para usar a sintaxe 3.x do stunnel com o stunnel 4.05 ou posterior

libstunnel.so

contém as funções de API exigidas pelo stunnel

Sudo-1.9.16p2

Introdução ao Sudo

O pacote Sudo permite que um(a) administrador(a) do sistema dê a certos(as) usuários(as) (ou a grupos de usuários(as)) a capacidade de executar alguns (ou todos) comandos como root ou outro usuário(a) enquanto registra os comandos e argumentos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 52681ba928fb7aba46998f061d9ba85c

  • Tamanho da transferência: 5,1 MB

  • Espaço em disco estimado exigido: 53 MB (adicionar 10 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 0,1 UPC para testes)

Dependências do Sudo

Opcionais

Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9, MTA (isso fornece um comando sendmail), AFS, libaudit, Opie e Sssd

Instalação do Sudo

Instale Sudo executando os seguintes comandos:

./configure --prefix=/usr              \
            --libexecdir=/usr/lib      \
            --with-secure-path         \
            --with-env-editor          \
            --docdir=/usr/share/doc/sudo-1.9.16p2 \
            --with-passprompt="[sudo] password for %p: " &&
make

Para testar os resultados, emita: env LC_ALL=C make check |& tee make-check.log. Verifique os resultados com grep failed make-check.log.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--libexecdir=/usr/lib: Essa chave controla onde os aplicativos privados são instalados. Tudo nesse diretório é uma biblioteca, de forma que eles pertencem a /usr/lib em vez de /usr/libexec.

--with-secure-path: Essa chave adiciona transparentemente os diretórios /sbin e /usr/sbin à variável de ambiente PATH.

--with-env-editor: Essa chave habilita o uso da variável de ambiente EDITOR para o visudo.

--with-passprompt: Essa chave configura o prompt de senha. O %p será expandido para o nome do(a) usuário(a) cuja senha está sendo solicitada.

--without-pam: Essa chave evita a construção do suporte a Linux-PAM quando o Linux-PAM estiver instalado no sistema.

--with-all-insults: Essa chave inclui todos os conjuntos de insultos do sudo. Os insultos serão impressos se o(a) usuário(a) digitar uma senha incorreta e se estiver habilitados em /etc/sudoers. Use --with-insults para tê-los habilitados por padrão. Vários conjuntos de insultos podem ser selecionados com algumas outras chaves.

Nota

Existem muitas opções para o comando configure do sudo. Verifique a saída gerada do configure --help para uma lista completa.

Configurando Sudo

Arquivo de Configuração

/etc/sudoers

Informação de Configuração

O arquivo sudoers pode ser bastante complicado. Ele é composto por dois tipos de entradas: aliases (basicamente variáveis) e especificações de usuário(a) (que especificam quem pode executar o quê). A instalação instala uma configuração padrão que não tem privilégios instalados para nenhum(a) usuário(a).

Algumas mudanças comuns de configuração são para configurar o caminho para o(a) superusuário(a) e para permitir que os(as) membros(as) do grupo wheel executem todos os comandos depois de fornecerem as próprias credenciais deles(as). Use os seguintes comandos para criar o arquivo de configuração /etc/sudoers.d/00-sudo como o(a) usuário(a) root:

cat > /etc/sudoers.d/00-sudo << "EOF"
Defaults secure_path="/usr/sbin:/usr/bin"
%wheel ALL=(ALL) ALL
EOF

Nota

Em instalações muito simples onde existe somente um(a) usuário(a), possivelmente seja mais fácil apenas editar o arquivo /etc/sudoers diretamente. Nesse caso, a entrada secure_path possivelmente não seja necessária e usar sudo -E ... pode importar o ambiente completo do(a) usuário(a) não privilegiado(a) para a sessão privilegiada.

Os arquivos no diretório /etc/sudoers.d são analisados em ordem léxica classificada. Tenha cuidado para que as entradas em um arquivo adicionado não sobrescrevam as entradas anteriores.

Para detalhes, veja-se man sudoers.

Nota

Os(As) desenvolvedores(as) do Sudo recomendam enfaticamente usar o aplicativo visudo para editar o arquivo sudoers. Isso fornecerá verificação básica de sanidade, como análise de sintaxe e permissão de arquivo, para evitar alguns possíveis erros que poderiam levar a uma configuração vulnerável.

Se o PAM estiver instalado no sistema, [então] Sudo será construído com suporte a PAM. Nesse caso, emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração do PAM:

cat > /etc/pam.d/sudo << "EOF"
# Início /etc/pam.d/sudo

# Inclui as configurações padrão de autenticação
auth      include     system-auth

# Inclui as configurações padrão de conta
account   include     system-account

# Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço
session   required    pam_env.so

# Inclui padrões de sessão do sistema
session   include     system-session

# Fim /etc/pam.d/sudo
EOF
chmod 644 /etc/pam.d/sudo

Conteúdo

Aplicativos Instalados: cvtsudoers, sudo, sudo_logsrvd, sudo_sendlog, sudoedit (link simbólico), sudoreplay e visudo
Bibliotecas Instaladas: audit_json.so, group_file.so, libsudo_util.so, sudoers.so, sudo_intercept.so, sudo_noexec.so e system_group.so
Diretórios Instalados: /etc/sudoers.d, /usr/lib/sudo, /usr/share/doc/sudo-1.9.16p2 e /var/lib/sudo

Descrições Curtas

cvtsudoers

converte entre formatos de arquivo sudoers

sudo

executa um comando como outro(a) usuário(a) conforme permitido pelo arquivo de configuração /etc/sudoers

sudo_logsrvd

é um servidor de registro de Entrada/Saída e de evento do sudo

sudo_sendlog

envia registros de Entrada/Saída do sudo para o servidor de registro

sudoedit

é um link simbólico para sudo que implica a opção -e para invocar um editor como outro(a) usuário(a)

sudoreplay

é usado para reproduzir ou para listar os registros de saída gerada criados pelo sudo

visudo

permite uma edição mais segura do arquivo sudoers

Tripwire-2.4.3.7

Introdução ao Tripwire

O pacote Tripwire contém aplicativos usados para verificar a integridade dos arquivos em um determinado sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Tripwire

Opcionais

Um MTA

Instalação do Tripwire

Compile Tripwire executando os seguintes comandos:

sed -e '/^CLOBBER/s/false/true/'        \
    -e 's|TWDB="${prefix}|TWDB="/var|'   \
    -e '/TWMAN/ s|${prefix}|/usr/share|' \
    -e '/TWDOCS/s|${prefix}/doc/tripwire|/usr/share/doc/tripwire-2.4.3.7|' \
    -i installer/install.cfg                               &&

find . -name Makefile.am | xargs                           \
    sed -i 's/^[[:alpha:]_]*_HEADERS.*=/noinst_HEADERS =/' &&

sed '/dist/d' -i man/man?/Makefile.am                      &&
autoreconf -fi                                             &&

./configure --prefix=/usr --sysconfdir=/etc/tripwire       &&
make CPPFLAGS=-std=c++11

Nota

A configuração padrão é a de usar um MTA local. Se você não teiver um MTA instalado e não desejar instalar um, [então] modifique install/install.cfg para usar um servidor SMTP. Caso contrário, a instalação falhará.

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
cp -v policy/*.txt /usr/share/doc/tripwire-2.4.3.7

Nota

Durante o make install, várias perguntas são feitas, incluindo senhas. Se você deseja criar um script, [então] tem de aplicar um sed antes de executar make install:

sed -i -e 's@installer/install.sh@& -n -s <senha_do_sítio> -l <senha_local>@' Makefile

Claro, você deveria fazer isso com senhas fictícias e mudá-las posteriormente.

Outro problema ao criar scripts é o de que o instalador sai quando a entrada padrão não é um terminal. Você consegue desativar esse comportamento com o seguinte sed:

sed '/-t 0/,+3d' -i installer/install.sh

Explicações do Comando

sed ... installer/install.cfg: Esse comando informa ao pacote para instalar a base de dados do aplicativo e informa em /var/lib/tripwire e configura o local adequado para páginas de manual e documentação.

find ..., sed ... e autoreconf -fi: O sistema de construção é inutilizável como está e tem de ser modificado para que a construção tenha sucesso.

CPPFLAGS=-std=c++11: Configurar os sinalizadores do pré processador C++ para a versão 11 é necessário para evitar um conflito com a versão padrão que é c++17 na versão recente do GCC.

make install: Esse comando cria as chaves de segurança do Tripwire assim como instala os binários. Existem duas chaves: uma chave do sítio e uma chave local que são armazenadas em /etc/tripwire/.

cp -v policy/*.txt /usr/doc/tripwire-2.4.3.7: Esse comando instala os arquivos de amostra da política do tripwire com a outra documentação do tripwire.

Configurando Tripwire

Arquivos de Configuração

/etc/tripwire/*

Informação de Configuração

O Tripwire usa um arquivo de política para determinar quais arquivos são verificados quanto à integridade. O arquivo padrão da política (/etc/tripwire/twpol.txt) é para uma instalação padrão e precisará ser atualizado para seu sistema.

Os arquivos da política deveriam ser adaptados para cada distribuição e(ou) instalação individual. Alguns arquivos de exemplo da política podem ser encontrados em /usr/share/doc/tripwire/.

Se desejado, [então] copie o arquivo da política que gostaria de tentar para /etc/tripwire/ em vez de usar o arquivo padrão da política, twpol.txt. É, no entanto, recomendado que você edite seu arquivo da política. Obtenha ideias a partir dos exemplos acima e leia /usr/share/doc/tripwire/policyguide.txt para informação adicional. twpol.txt é um bom arquivo da política para aprender a respeito do Tripwire, pois ele observará quaisquer mudanças no sistema de arquivos e até mesmo pode ser usado como uma maneira irritante de manter rastreio das mudanças para desinstalação de software.

Depois que seu arquivo da política tiver sido editado para sua satisfação, você poderá iniciar as etapas de configuração (realizar como o(a) usuário(a) root):

twadmin --create-polfile --site-keyfile /etc/tripwire/site.key \
   /etc/tripwire/twpol.txt &&
tripwire --init

Dependendo do seu sistema e do conteúdo do arquivo da política, a fase de inicialização acima pode levar um tempo relativamente longo.

Informação de Uso

O Tripwire identificará as mudanças de arquivo nos arquivos críticos do sistema especificados no arquivo da política. Usar o Tripwire enquanto se faz mudanças frequentes nesses diretórios sinalizará todas essas mudanças. É mais útil depois que um sistema tenha atingido uma configuração que o(a) usuário(a) considere estável.

Para usar o Tripwire depois de criar um arquivo da política para executar um informe, use o seguinte comando:

tripwire --check > /etc/tripwire/report.txt

Veja a saída gerada para verificar a integridade dos seus arquivos. Um informe automático de integridade pode ser produzido usando-se um recurso cron para agendar as execuções.

Os informes são armazenados em binário e, se desejado, encriptados. Visualize os informes, como o(a) usuário(a) root, com:

twprint --print-report -r /var/lib/tripwire/report/<nome-informe.twr>

Depois de executar uma verificação de integridade, você deveria examinar o informe (ou o correio eletrônico) e, então, modificar a base de dados do Tripwire para refletir os arquivos mudados em seu sistema. Isso é assim de forma que o Tripwire não te notificará continuamente que os arquivos que você mudou intencionalmente sejam uma violação de segurança. Para fazer isso, você precisa primeiro ls -l /var/lib/tripwire/report/ e anotar o nome do arquivo mais recente que começa com o nome do seu sistema conforme apresentado pelo comando uname -n e termina em .twr. Esses arquivos foram criados durante a criação do informe e o mais atual é necessário para atualizar a base de dados do Tripwire do seu sistema. Como o(a) usuário(a) root, digite o seguinte comando criando o nome apropriado do informe:

tripwire --update --twrfile /var/lib/tripwire/report/<nome-informe.twr>

Você será colocado(a) no Vim com uma cópia do informe à sua frente. Se todas as mudanças estiverem boas, então apenas digite :wq e depois de inserir sua chave local, a base de dados será atualizada. Se existirem arquivos a respeito dos quais você ainda desejar ser avisado(a), [então] remova o 'x' de antes do nome do arquivo no informe e digite :wq.

Mudando o Arquivo da Política

Se você estiver insatisfeito(a) com seu arquivo da política e gostaria de modificá-lo ou de usar um novo, [então] modifique o arquivo da política e então execute os seguintes comandos como o(a) usuário(a) root:

twadmin --create-polfile /etc/tripwire/twpol.txt &&
tripwire --init

Conteúdo

Aplicativos Instalados: siggen, tripwire, twadmin e twprint
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/tripwire, /var/lib/tripwire e /usr/share/doc/tripwire-2.4.3.7

Descrições Curtas

siggen

é um utilitário de coleta de assinatura que exibe os valores da função hash para os arquivos especificados

tripwire

é o principal aplicativo de verificação de integridade de arquivo

twadmin

ferramenta administrativa e utilitária usada para realizar certas funções administrativas relacionadas a arquivos e opções de configuração do Tripwire

twprint

imprime a base de dados e arquivos de informe do Tripwire em formato de texto simples

Capítulo 5. Sistemas de Arquivos e Gerenciamento de Disco

Os sistemas de arquivos com diário reduzem o tempo necessário para recuperar um sistema de arquivos que não foi desmontado adequadamente. Embora isso possa ser extremamente importante para reduzir o tempo de inatividade dos servidores, também se tornou popular em ambientes de área de trabalho. Este capítulo contém outros sistemas de arquivos com diário que você pode usar em vez do sistema de arquivos estendido padrão do LFS (ext2/3/4). Ele também fornece material introdutório a respeito de gerenciamento de matrizes de disco.

A respeito do initramfs

O único propósito de um initramfs é o do montar o sistema de arquivos raiz. O initramfs é um conjunto completo de diretórios que você encontraria em um sistema de arquivos raiz normal. Ele é agrupado em um arquivamento cpio e comprimido com um dos vários algoritmos de compressão.

Ao tempo da inicialização, o carregador de inicialização carrega o núcleo e a imagem initramfs na memória e inicia o núcleo. O núcleo verifica a presença do initramfs e, se encontrado, o monta como / e executa /init. O aplicativo init é tipicamente um conjunto de comandos sequenciais de shell. Observe que o processo de inicialização leva mais tempo, possivelmente significativamente mais, se um initramfs for usado.

Para a maioria das distribuições, os módulos do núcleo são a maior razão para ter um initramfs. Em uma distribuição geral, existem muitas incógnitas, como tipos de sistema de arquivos e esquemas de disco. De certa forma, isso é o oposto do LFS, onde os recursos e o esquema do sistema são conhecidos e um núcleo personalizado normalmente é construído. Nessa situação, um initramfs raramente é necessário.

Existem somente quatro razões principais para se ter um initramfs no ambiente LFS: carregar o sistema de arquivos raiz a partir de uma rede; carregá-lo a partir de um volume lógico LVM; ter um sistema de arquivos raiz encriptado onde uma senha seja exigida; ou para a conveniência de se especificar o sistema de arquivos raiz como um RÓTULO ou como um UUID. Qualquer outra coisa geralmente significa que o núcleo não foi configurado adequadamente.

Construindo um initramfs

Se você decidir construir um initramfs, os conjuntos de comandos sequenciais a seguir fornecerão uma base para isso. Os conjuntos de comandos sequenciais permitirão especificar um sistema de arquivos raiz via partição UUID ou partição RÓTULO ou um sistema de arquivos raiz em um volume lógico LVM. Eles não suportam um sistema de arquivos raiz encriptado ou montar o sistema de arquivos raiz passando por uma placa de rede de comunicação. Para uma capacidade mais completa, vejam-se as Dicas do LFS ou dracut.

Para instalar estes conjuntos de comandos sequenciais, execute os seguintes comandos como o(a) usuário(a) root:

cat > /usr/sbin/mkinitramfs << "EOF"
#!/bin/bash
# Este arquivo é baseado em parte no script mkinitramfs para o LiveCD do LFS
# escrito por Alexander E. Patrakov e Jeremy Huntwork.

copy()
{
  local file

  if [ "$2" = "lib" ]; then
    file=$(PATH=/usr/lib type -p $1)
  else
    file=$(type -p $1)
  fi

  if [ -n "$file" ] ; then
    cp $file $WDIR/usr/$2
  else
    echo "Ausente arquivo exigido: $1 para o diretório $2"
    rm -rf $WDIR
    exit 1
  fi
}

if [ -z $1 ] ; then
  INITRAMFS_FILE=initrd.img-no-kmods
else
  KERNEL_VERSION=$1
  INITRAMFS_FILE=initrd.img-$KERNEL_VERSION
fi

if [ -n "$KERNEL_VERSION" ] && [ ! -d "/usr/lib/modules/$1" ] ; then
  echo "Sem diretório dos módulos chamado $1"
  exit 1
fi

printf "Criando $INITRAMFS_FILE... "

binfiles="sh cat cp dd killall ls mkdir mknod mount "
binfiles="$binfiles umount sed sleep ln rm uname"
binfiles="$binfiles readlink basename"

# O systemd instala udevadm em /bin. Outras implementações do udev o tem em /sbin
if [ -x /usr/bin/udevadm ] ; then binfiles="$binfiles udevadm"; fi

sbinfiles="modprobe blkid switch_root"

# Arquivos e locais opcionais
for f in mdadm mdmon udevd udevadm; do
  if [ -x /usr/sbin/$f ] ; then sbinfiles="$sbinfiles $f"; fi
done

# Adiciona lvm se presente (não pode ser feito com os outros, pois
# também precisa do dmsetup
if [ -x /usr/sbin/lvm ] ; then sbinfiles="$sbinfiles lvm dmsetup"; fi

unsorted=$(mktemp /tmp/unsorted.XXXXXXXXXX)

DATADIR=/usr/share/mkinitramfs
INITIN=init.in

# Cria um diretório temporário de trabalho
WDIR=$(mktemp -d /tmp/initrd-work.XXXXXXXXXX)

# Cria a estrutura básica de diretório
mkdir -p $WDIR/{dev,run,sys,proc,usr/{bin,lib/{firmware,modules},sbin}}
mkdir -p $WDIR/etc/{modprobe.d,udev/rules.d}
touch $WDIR/etc/modprobe.d/modprobe.conf
ln -s usr/bin  $WDIR/bin
ln -s usr/lib  $WDIR/lib
ln -s usr/sbin $WDIR/sbin
ln -s lib      $WDIR/lib64

# Cria os nós necessários de dispositivo
mknod -m 640 $WDIR/dev/console c 5 1
mknod -m 664 $WDIR/dev/null    c 1 3

# Instala os arquivos de configuração do udev
if [ -f /etc/udev/udev.conf ]; then
  cp /etc/udev/udev.conf $WDIR/etc/udev/udev.conf
fi

for file in $(find /etc/udev/rules.d/ -type f) ; do
  cp $file $WDIR/etc/udev/rules.d
done

# Instala quaisquer firmware presentes
cp -a /usr/lib/firmware $WDIR/usr/lib

# Copia o arquivo de configuração RAID se presente
if [ -f /etc/mdadm.conf ] ; then
  cp /etc/mdadm.conf $WDIR/etc
fi

# Instala o arquivo init
install -m0755 $DATADIR/$INITIN $WDIR/init

if [  -n "$KERNEL_VERSION" ] ; then
  if [ -x /usr/bin/kmod ] ; then
    binfiles="$binfiles kmod"
  else
    binfiles="$binfiles lsmod"
    sbinfiles="$sbinfiles insmod"
  fi
fi

# Instala binários básicos
for f in $binfiles ; do
  ldd /usr/bin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
  copy /usr/bin/$f bin
done

for f in $sbinfiles ; do
  ldd /usr/sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
  copy $f sbin
done

# Adiciona bibliotecas do udevd se não em /usr/sbin
if [ -x /usr/lib/udev/udevd ] ; then
  ldd /usr/lib/udev/udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
elif [ -x /usr/lib/systemd/systemd-udevd ] ; then
  ldd /usr/lib/systemd/systemd-udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
fi

# Adiciona links simbólicos de módulo se apropriado
if [ -n "$KERNEL_VERSION" ] && [ -x /usr/bin/kmod ] ; then
  ln -s kmod $WDIR/usr/bin/lsmod
  ln -s kmod $WDIR/usr/bin/insmod
fi

# Adiciona links simbólicos do lvm se apropriado
# Também copia o arquivo lvm.conf
if  [ -x /usr/sbin/lvm ] ; then
  ln -s lvm $WDIR/usr/sbin/lvchange
  ln -s lvm $WDIR/usr/sbin/lvrename
  ln -s lvm $WDIR/usr/sbin/lvextend
  ln -s lvm $WDIR/usr/sbin/lvcreate
  ln -s lvm $WDIR/usr/sbin/lvdisplay
  ln -s lvm $WDIR/usr/sbin/lvscan

  ln -s lvm $WDIR/usr/sbin/pvchange
  ln -s lvm $WDIR/usr/sbin/pvck
  ln -s lvm $WDIR/usr/sbin/pvcreate
  ln -s lvm $WDIR/usr/sbin/pvdisplay
  ln -s lvm $WDIR/usr/sbin/pvscan

  ln -s lvm $WDIR/usr/sbin/vgchange
  ln -s lvm $WDIR/usr/sbin/vgcreate
  ln -s lvm $WDIR/usr/sbin/vgscan
  ln -s lvm $WDIR/usr/sbin/vgrename
  ln -s lvm $WDIR/usr/sbin/vgck
  # Arquivo(s) de configuração
  cp -a /etc/lvm $WDIR/etc
fi

# Instala bibliotecas
sort $unsorted | uniq | while read library ; do
# linux-vdso e linux-gate são pseudo bibliotecas e não correspondem a um arquivo
# libsystemd-shared está em /lib/systemd, de forma que não é encontrada pela cópia, e
# é copiada abaixo de qualquer forma
  if [[ "$library" == linux-vdso.so.1 ]] ||
     [[ "$library" == linux-gate.so.1 ]] ||
     [[ "$library" == libsystemd-shared* ]]; then
    continue
  fi

  copy $library lib
done

if [ -d /usr/lib/udev ]; then
  cp -a /usr/lib/udev $WDIR/usr/lib
fi
if [ -d /usr/lib/systemd ]; then
  cp -a /usr/lib/systemd $WDIR/usr/lib
fi
if [ -d /usr/lib/elogind ]; then
  cp -a /usr/lib/elogind $WDIR/usr/lib
fi

# Instala os módulos do núcleo se solicitado
if [ -n "$KERNEL_VERSION" ]; then
  find \
     /usr/lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib}                      \
     /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,nvme,md,firewire} \
     /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \
     /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage}           \
     -type f 2> /dev/null | cpio --make-directories -p --quiet $WDIR

  cp /usr/lib/modules/$KERNEL_VERSION/modules.{builtin,order} \
            $WDIR/usr/lib/modules/$KERNEL_VERSION
  if [ -f /usr/lib/modules/$KERNEL_VERSION/modules.builtin.modinfo ]; then
    cp /usr/lib/modules/$KERNEL_VERSION/modules.builtin.modinfo \
            $WDIR/usr/lib/modules/$KERNEL_VERSION
  fi

  depmod -b $WDIR $KERNEL_VERSION
fi

( cd $WDIR ; find . | cpio -o -H newc --quiet | gzip -9 ) > $INITRAMFS_FILE

# Prepare o carregamento antecipado do micro código se disponível
if ls /usr/lib/firmware/intel-ucode/* >/dev/null 2>&1 ||
   ls /usr/lib/firmware/amd-ucode/*   >/dev/null 2>&1; then

# Primeiro, esvazia WDIR para reusá-lo
  rm -r $WDIR/*

  DSTDIR=$WDIR/kernel/x86/microcode
  mkdir -p $DSTDIR

  if [ -d /usr/lib/firmware/amd-ucode ]; then
    cat /usr/lib/firmware/amd-ucode/microcode_amd*.bin > $DSTDIR/AuthenticAMD.bin
  fi

  if [ -d /usr/lib/firmware/intel-ucode ]; then
    cat /usr/lib/firmware/intel-ucode/* > $DSTDIR/GenuineIntel.bin
  fi

  ( cd $WDIR; find . | cpio -o -H newc --quiet ) > microcode.img
  cat microcode.img $INITRAMFS_FILE > tmpfile
  mv tmpfile $INITRAMFS_FILE
  rm microcode.img
fi

# Remove os arquivos e diretórios temporários
rm -rf $WDIR $unsorted
printf "done.\n"

EOF

chmod 0755 /usr/sbin/mkinitramfs
mkdir -p /usr/share/mkinitramfs &&
cat > /usr/share/mkinitramfs/init.in << "EOF"
#!/bin/sh

PATH=/usr/bin:/usr/sbin
export PATH

problem()
{
   printf "Encontrado um problema!\n\nDeixando você em um shell.\n\n"
   sh
}

no_device()
{
   printf "O dispositivo %s, que se presume conter o\n" $1
   printf "sistema de arquivos raiz, não existe.\n"
   printf "Por favor, corrija esse problema e saia deste shell.\n\n"
}

no_mount()
{
   printf "Não poderia montar o dispositivo %s\n" $1
   printf "Dormindo para sempre. Por favor, reinicialize e corrija a linha de comando do núcleo.\n\n"
   printf "Talvez o dispositivo esteja formatado com um sistema de arquivos não suportado?\n\n"
   printf "Ou talvez a auto detecção do tipo do sistema de arquivos foi errada, caso no qual\n"
   printf "você deveria adicionar o parâmetro rootfstype=... à linha de comando do núcleo.\n\n"
   printf "Partições disponíveis:\n"
}

do_mount_root()
{
   mkdir /.root
   [ -n "$rootflags" ] && rootflags="$rootflags,"
   rootflags="$rootflags$ro"

   case "$root" in
      /dev/*    ) device=$root ;;
      UUID=*    ) eval $root; device="/dev/disk/by-uuid/$UUID" ;;
      PARTUUID=*) eval $root; device="/dev/disk/by-partuuid/$PARTUUID" ;;
      LABEL=*   ) eval $root; device="/dev/disk/by-label/$LABEL" ;;
      ""        ) echo "Nenhum dispositivo raiz especificado." ; problem ;;
   esac

   while [ ! -b "$device" ] ; do
       no_device $device
       problem
   done

   if ! mount -n -t "$rootfstype" -o "$rootflags" "$device" /.root ; then
       no_mount $device
       cat /proc/partitions
       while true ; do sleep 10000 ; done
   else
       echo "Dispositivo montado com sucesso $root"
   fi
}

do_try_resume()
{
   case "$resume" in
      UUID=* ) eval $resume; resume="/dev/disk/by-uuid/$UUID"  ;;
      LABEL=*) eval $resume; resume="/dev/disk/by-label/$LABEL" ;;
   esac

   if $noresume || ! [ -b "$resume" ]; then return; fi

   ls -lH "$resume" | ( read x x x x maj min x
       echo -n ${maj%,}:$min > /sys/power/resume )
}

init=/sbin/init
root=
rootdelay=
rootfstype=auto
ro="ro"
rootflags=
device=
resume=
noresume=false

mount -n -t devtmpfs devtmpfs /dev
mount -n -t proc     proc     /proc
mount -n -t sysfs    sysfs    /sys
mount -n -t tmpfs    tmpfs    /run

read -r cmdline < /proc/cmdline

for param in $cmdline ; do
  case $param in
    init=*      ) init=${param#init=}             ;;
    root=*      ) root=${param#root=}             ;;
    rootdelay=* ) rootdelay=${param#rootdelay=}   ;;
    rootfstype=*) rootfstype=${param#rootfstype=} ;;
    rootflags=* ) rootflags=${param#rootflags=}   ;;
    resume=*    ) resume=${param#resume=}         ;;
    noresume    ) noresume=true                   ;;
    ro          ) ro="ro"                         ;;
    rw          ) ro="rw"                         ;;
  esac
done

# Local do udevd depende da versão
if [ -x /sbin/udevd ]; then
  UDEVD=/sbin/udevd
elif [ -x /lib/udev/udevd ]; then
  UDEVD=/lib/udev/udevd
elif [ -x /lib/systemd/systemd-udevd ]; then
  UDEVD=/lib/systemd/systemd-udevd
else
  echo "Não consigo encontrar o udevd nem o systemd-udevd"
  problem
fi

${UDEVD} --daemon --resolve-names=never
udevadm trigger
udevadm settle

if [ -f /etc/mdadm.conf ] ; then mdadm -As                       ; fi
if [ -x /sbin/vgchange  ] ; then /sbin/vgchange -a y > /dev/null ; fi
if [ -n "$rootdelay"    ] ; then sleep "$rootdelay"              ; fi

do_try_resume # Esta função não retornará se retomar a partir do disco
do_mount_root

killall -w ${UDEVD##*/}

exec switch_root /.root "$init" "$@"

EOF

Usando um initramfs

Dependência Exigida em Tempo de Execução

cpio-2.15

Outras Dependências em Tempo de Execução

LVM2-2.03.30 e(ou) mdadm-4.3 precisam ser instalados antes de gerar o initramfs, se a partição do sistema os usar.

Para construir um initramfs, execute o seguinte como o(a) usuário(a) root:

mkinitramfs [VERSÃO DO NÚCLEO]

O argumento opcional é o diretório onde os módulos apropriados do núcleo estão localizados. Esse precisa ser um subdiretório de /lib/modules. Se nenhum módulo for especificado, então o initramfs é nomeado initrd.img-no-kmods. Se uma versão do núcleo for especificada, o initrd é nomeado de initrd.img-$VERSÃO_DO_NÚCLEO e é apropriado somente para o núcleo específico especificado. O arquivo de saída gerada será colocado no diretório atual.

Se for necessário o carregamento antecipado do microcódigo (veja-se “Atualizações de microcódigo para CPUs”), você pode instalar o blob ou contêiner apropriado em /lib/firmware. Ele será adicionado automaticamente ao initrd ao executar mkinitramfs.

Depois de gerar o initrd, copie-o para o diretório /boot.

Agora edite /boot/grub/grub.cfg e adicione uma nova entrada de menu. Abaixo estão vários exemplos.

# initramfs genérico e sistema de arquivos raiz identificado por UUID
menuentry "LFS Dev (LFS-7.0-Feb14) initrd, Linux 3.0.4"
{
  linux  /vmlinuz-3.0.4-lfs-20120214 root=UUID=54b934a9-302d-415e-ac11-4988408eb0a8 ro
  initrd /initrd.img-no-kmods
}
# initramfs genérico e sistema de arquivos raiz na partição LVM
menuentry "LFS Dev (LFS-7.0-Feb18) initrd lvm, Linux 3.0.4"
{
  linux  /vmlinuz-3.0.4-lfs-20120218 root=/dev/mapper/myroot ro
  initrd /initrd.img-no-kmods
}
# initramfs específico e sistema de arquivos raiz identificado por RÓTULO
menuentry "LFS Dev (LFS-7.1-Feb20) initrd label, Linux 3.2.6"
{
  linux  /vmlinuz-3.2.6-lfs71-120220 root=LABEL=lfs71 ro
  initrd /initrd.img-3.2.6-lfs71-120220
}

Finalmente, reinicialize o sistema e selecione o sistema desejado.

btrfs-progs-6.13

Introdução ao btrfs-progs

O pacote btrfs-progs contém ferramentas de administração e de depuração para o sistema de arquivos B-tree (btrfs).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v6.13.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9dced32d9f63118d214c01fed08c1439

  • Tamanho da transferência: 2,6 MB

  • Espaço em disco estimado exigido: 65 MB (arquivos temporários criados durante testes precisam de até 10 GB)

  • Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 3,7 UPC para testes, até 14 UPC em discos lentos)

Dependências do Btrfs-progs

Exigidas

LZO-2.10

Opcionais

LVM2-2.03.30 (dmsetup é usado em testes), sphinx-8.2.1 e sphinx_rtd_theme-3.0.2 (exigido para construir documentação) e reiserfsprogs (para testes).

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> Btrfs filesystem support                                      [BTRFS_FS]

Além do acima e das opções exigidas para LVM2-2.03.30, as seguintes opções precisam estar configuradas para executar-se testes. As opções marcadas como vazias não deveriam estar selecionadas porque elas são para desenvolvedores(as) e fazem alguns testes falharem.

File systems --->
  <*/M> Btrfs filesystem support                                      [BTRFS_FS]
  [*]     Btrfs POSIX Access Control Lists                  [BTRFS_FS_POSIX_ACL]
  [ ]     Btrfs will run sanity tests upon loading   [BTRFS_FS_RUN_SANITY_TESTS]
  [ ]     Btrfs debugging support                                  [BTRFS_DEBUG]
  [ ]     Btrfs assert support                                    [BTRFS_ASSERT]
  [ ]     Btrfs with the ref verify tool compiled in       [BTRFS_FS_REF_VERIFY]

Instalação do btrfs-progs

Instale o btrfs-progs executando os seguintes comandos:

./configure --prefix=/usr           \
            --disable-static        \
            --disable-documentation &&
make

Nota

Alguns testes exigem grep construído com expressões regulares perl. Para obter isso, reconstrua o grep com as instruções do Capítulo 8 do LFS depois de instalar o pcre2-10.45.

Antes de executar os testes, construa um aplicativo de suporte:

make fssum

Agora remova um teste conhecido por falhar. Como root:

mv tests/mkfs-tests/013-reserved-1M-for-single/test.sh{,.broken}

Para testar os resultados, emita (como o(a) usuário(a) root):

pushd tests
   ./fsck-tests.sh
   ./mkfs-tests.sh
   ./cli-tests.sh
   ./convert-tests.sh
   ./misc-tests.sh
   ./fuzz-tests.sh
popd

Nota

Se as opções de núcleo mencionadas acima não estiverem habilitadas, alguns testes falharão e impedirão que todos os testes restantes executem, porque a imagem do disco de teste não foi desmontada corretamente. Certifique-se também de que o módulo de núcleo do btrfs esteja carregado.

Instale o pacote como o(a) usuário(a) root:

make install

Se você tiver passado --disable-documentation para configure e precisar das páginas de manual, instale-as executando, como o(a) usuário(a) root:

for i in 5 8; do
   install Documentation/*.$i /usr/share/man/man$i
done

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-documentation: Essa chave desabilita reconstruir as páginas de manual, porque isso exige sphinx-8.2.1.

Conteúdo

Aplicativos Instalados: btrfs, btrfs-convert, btrfs-find-root, btrfs-image, btrfs-map-logical, btrfs-select-super, btrfsck (link para btrfs), btrfstune, fsck.btrfs e mkfs.btrfs
Bibliotecas Instaladas: libbtrfs.so e libbtrfsutil.so
Diretórios Instalados: /usr/include/btrfs

Descrições Curtas

btrfs

é a interface principal para as operações do sistema de arquivos btrfs

btrfs-convert

converte a partir de um sistema de arquivos ext2/3/4 ou reiserfs para btrfs

btrfs-find-root

é um filtro para encontrar a raiz do btrfs

btrfs-map-logical

mapeia a extensão lógica do btrfs para a extensão física

btrfs-select-super

sobrescreve o superbloco primário com uma cópia da cópia de segurança

btrfstune

ajusta vários parâmetros do sistema de arquivos

fsck.btrfs

não faz nada, mas está presente para consistência com fstab

mkfs.btrfs

cria um sistema de arquivos btrfs

dosfstools-4.2

Introdução ao dosfstools

O pacote dosfstools contém vários utilitários para uso com a família FAT de sistemas de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo se você precisar montar um sistema de arquivos da família FAT:

File systems --->
  DOS/FAT/EXFAT/NT Filesystems --->
    < /*/M> MSDOS fs support                                          [MSDOS_FS]
    <*/M>   VFAT (Windows-95) fs support                               [VFAT_FS]

Observe que CONFIG_MSDOS_FS deliberadamente não suporta nomes longos de arquivos. CONFIG_VFAT_FS deveria ser usada em vez disso, a menos que você realmente queira impor os nomes de arquivo 8.3 no estilo DOS.

Você pode montar um sistema de arquivos da família FAT assim que o núcleo o suportar. Se não precisar criar, verificar ou rotular novamente um sistema da família FAT, você pode ignorar esse pacote.

Instalação do dosfstools

Instale dosfstools executando os seguintes comandos:

./configure --prefix=/usr           \
            --enable-compat-symlinks \
            --mandir=/usr/share/man  \
            --docdir=/usr/share/doc/dosfstools-4.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-compat-symlinks: Essa chave cria os links simbólicos dosfsck, dosfslabel, fsck.msdos, fsck.vfat, mkdosfs, mkfs.msdos e mkfs.vfat exigidos por alguns aplicativos.

Conteúdo

Aplicativos Instalados: fatlabel, fsck.fat e mkfs.fat

Descrições Curtas

fatlabel

configura ou obtém um rótulo do sistema de arquivos MS-DOS a partir de um dado dispositivo

fsck.fat

verifica e repara sistemas de arquivos MS-DOS

mkfs.fat

cria um sistema de arquivos MS-DOS sob o Linux

Fuse-3.16.2

Introdução ao Fuse

FUSE (Filesystem in Userspace) é uma interface simples para aplicativos do espaço de usuário(a) para exportar um sistema de arquivos virtual para o núcleo Linux. O Fuse também visa a fornecer um método seguro para usuários(as) não privilegiados(as) criarem e montarem as próprias implementações de sistema de arquivos deles(as).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Fuse

Opcionais

Doxygen-1.13.2 (para reconstruir a documentação da API), pytest-8.3.4 (exigido para testes) e looseversion (para testes)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]

Os dispositivos de caracteres no espaço do usuário(a) também deveriam ser habilitados para executar os testes:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]
  <*/M>   Character device in Userspace support                           [CUSE]

Instalação do Fuse

Instale Fuse executando os seguintes comandos:

sed -i '/^udev/,$ s/^/#/' util/meson.build &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

A documentação da API está incluída no pacote, mas se você tiver o Doxygen-1.13.2 instalado e quiser reconstruí-la, [então] emita:

pushd .. &&
  doxygen doc/Doxyfile &&
popd

Para testar os resultados, emita os seguintes comandos (como o(a) usuário(a) root):

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install looseversion                      &&
python3 -m pytest
deactivate

O módulo Python pytest-8.3.4 é exigido para os testes. Um teste chamado test_cuse falhará se o item de configuração CONFIG_CUSE não foi habilitado quando o núcleo foi construído. Um teste, test/util.py, gerará um aviso devido ao uso de uma marca desconhecida no pytest.

Agora, como o(a) usuário(a) root:

ninja install                  &&
chmod u+s /usr/bin/fusermount3 &&

cd ..                          &&
cp -Rv doc/html -T /usr/share/doc/fuse-3.16.2 &&
install -v -m644   doc/{README.NFS,kernel.txt} \
                   /usr/share/doc/fuse-3.16.2

Explicações do Comando

sed ... util/meson.build: Esse comando desabilita a instalação de um script de inicialização e de uma regra udev que não são necessários(as).

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Configurando fuse

Arquivos de Configuração

Algumas opções relacionadas à política de montagem podem ser configuradas no arquivo /etc/fuse.conf. Para instalar o arquivo, execute o seguinte comando como o(a) usuário(a) root:

cat > /etc/fuse.conf << "EOF"
# Configura o número máximo de montagens FUSE permitidas para usuários(as) não root.
# O padrão é 1000.
#
#mount_max = 1000

# Permitir que usuários(as) não root especifiquem as
# opções de montagem 'allow_other' ou 'allow_root'.
#
#user_allow_other
EOF

Informação adicional a respeito do significado das opções de configuração são encontradas na página de manual.

Conteúdo

Aplicativos Instalados: fusermount3 e mount.fuse3
Bibliotecas Instaladas: libfuse3.so
Diretório Instalado: /usr/include/fuse3 e /usr/share/doc/fuse-3.16.2

Descrições Curtas

fusermount3

é um aplicativo raiz suid para montar e desmontar sistemas de arquivos Fuse

mount.fuse3

é o comando mount chamado para montar um sistema de arquivos Fuse

libfuse3.so

contém as funções da API do FUSE

jfsutils-1.1.15

Introdução ao jfsutils

O pacote jfsutils contém ferramentas de administração e de depuração para o sistema de arquivos jfs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> JFS filesystem support                                          [JFS_FS]

Instalação do jfsutils

Primeiro, corrija alguns problemas expostos pelo GCC 10 e posteriores:

patch -Np1 -i ../jfsutils-1.1.15-gcc10_fix-1.patch

Instale jfsutils executando os seguintes comandos:

sed -i "/unistd.h/a#include <sys/types.h>"    fscklog/extract.c &&
sed -i "/ioctl.h/a#include <sys/sysmacros.h>" libfs/devices.c   &&

./configure &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ...: Corrige a construção com a glibc 2.28.

Conteúdo

Aplicativos Instalados: fsck.jfs, jfs_debugfs, jfs_fsck, jfs_fscklog, jfs_logdump, jfs_mkfs, jfs_tune e mkfs.jfs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

fsck.jfs

é usado para reproduzir o registro de transações do JFS, verificar um dispositivo formatado do JFS para erros e corrigir quaisquer erros encontrados

jfs_fsck

é um link rígido para fsck.jfs

mkfs.jfs

constrói um sistema de arquivos JFS

jfs_mkfs

é um link rígido para mkfs.jfs

jfs_debugfs

é um aplicativo que pode ser usado para realizar várias ações de baixo nível em um dispositivo formatado do JFS

jfs_fscklog

extrai um registro de serviço fsck do JFS em um arquivo e(ou) formata e exibe o arquivo extraído

jfs_logdump

despeja o conteúdo do registro do diário a partir do dispositivo formatado com JFS especificado no arquivo de saída gerada ./jfslog.dmp

jfs_tune

ajusta os parâmetros ajustáveis do sistema de arquivos em sistemas de arquivos JFS

LVM2-2.03.30

Introdução ao LVM2

O pacote LVM2 é um conjunto de ferramentas que gerenciam partições lógicas. Ele permite a extensão completa de sistemas de arquivos transversalmente entre vários discos físicos e partições de disco e fornece crescimento dinâmico ou redução de partições lógicas, espelhamento e instantâneos de baixo consumo de armazenamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.30.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 048cd0e39cce7b15e48a8d3ba5c8d80c

  • Tamanho da transferência: 2,7 MB

  • Espaço em disco estimado exigido: 39 MB (adicionar 20 MB para testes; arquivos transitórios podem crescer até cerca de 300 MB no diretório /tmp durante testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 9 a 48 UPC para testes, dependendo da velocidade do disco e de se o dispositivo de bloco de RAM estiver habilitado no núcleo)

Dependências do LVM2

Exigidas

libaio-0.3.113

Opcionais

mdadm-4.3, Valgrind-3.24.0, Which-2.23, xfsprogs-6.13.0 (todos quatro possivelmente sejam usados, mas não são exigidos, para testes), reiserfsprogs, thin-provisioning-tools e vdo

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Nota

Existem várias outras opções do Device Mapper no núcleo além das listadas abaixo. Para obter resultados razoáveis ao executar os testes de regressão, todas precisam ser habilitadas, seja internamente ou como um módulo. Todos os testes expirarão se a chave Magic SysRq não estiver habilitada.

Device Drivers --->
  [*] Block devices --->                                               [BLK_DEV]
    <*/M> RAM block device support                                 [BLK_DEV_RAM]
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M> Device mapper support                                     [BLK_DEV_DM]
    <*/M>   Crypt target support                                      [DM_CRYPT]
    <*/M>   Snapshot target                                        [DM_SNAPSHOT]
    <*/M>   Thin provisioning target                      [DM_THIN_PROVISIONING]
    <*/M>   Cache target (EXPERIMENTAL)                               [DM_CACHE]
    <*/M>   Mirror target                                            [DM_MIRROR]
    <*/M>   Zero target                                                [DM_ZERO]
    <*/M>   I/O delaying target                                       [DM_DELAY]

Kernel hacking --->
  Generic Kernel Debugging Instruments --->
    [*] Magic SysRq key                                            [MAGIC_SYSRQ]

Instalação do LVM2

Instale LVM2 executando os seguintes comandos:

PATH+=:/usr/sbin               \
./configure --prefix=/usr       \
            --enable-cmdlib     \
            --enable-pkgconfig  \
            --enable-udev_sync  &&
make

Os testes usam udev para sincronização de volume lógico, de forma que as regras LVM do udev e alguns utilitários precisam ser instalados antes de se executar os testes. Se você estiver instalando o LVM2 pela primeira vez e não quiser instalar o pacote completo antes de executar os testes, [então] o conjunto mínimo de utilitários pode ser instalado executando as seguintes instruções como o(a) usuário(a) root:

make -C tools install_tools_dynamic &&
make -C udev  install              &&
make -C libdm install

Para testar os resultados, emita, como o(a) usuário(a) root:

LC_ALL=en_US.UTF-8 make check_local

Alguns testes possivelmente travem. Nesse caso, eles podem ser pulados adicionando-se S=<nome_do_teste> ao comando make. Outros alvos estão disponíveis e podem ser listados com make -C test help. Os tempos de teste são muito dependentes da velocidade do(s) disco(s) e do número de opções de núcleo habilitadas.

Os testes não implementam a possibilidade de falha esperada e um pequeno número de falhas de teste é esperado pelo(a) desenvolvedor(a). Mais falhas possivelmente acontecam porque algumas opções do núcleo estão ausentes. Por exemplo, a falta do alvo do mapeador de dispositivos dm-delay explica algumas falhas. Alguns testes possivelmente falhem se existir espaço livre insuficiente disponível na partição com o diretório /tmp. Pelo menos um teste falha se 16 TB não estiver disponível. Alguns testes são sinalizados como avisados se thin-provisioning-tools não estiver instalado. Uma solução alternativa é a de adicionar os seguintes sinalizadores a configure:

     --with-thin-check=    \
     --with-thin-dump=    \
     --with-thin-repair=   \
     --with-thin-restore=  \
     --with-cache-check=   \
     --with-cache-dump=    \
     --with-cache-repair=  \
     --with-cache-restore= \

Alguns testes possivelmente travem. Eles podem ser removidos se necessário, por exemplo: rm test/shell/lvconvert-raid-reshape.sh. Os testes geram um monte de mensagens do núcleo, que possivelmente sobrecarreguem seu terminal. Você consegue desabilitá-los emitindo dmesg -D antes de executar os testes (não se esqueça de emitir dmesg -E quando os testes forem concluídos).

Nota

As verificações criam nós de dispositivo no diretório /tmp. Os testes falharão se /tmp for montado com a opção nodev.

Agora, como o(a) usuário(a) root:

make install
rm -fv /usr/lib/udev/rules.d/69-dm-lvm.rules

Explicações do Comando

PATH+=:/usr/sbin: O caminho precisa conter /usr/sbin para detecção adequada da ferramenta do sistema pelo script configure. Essa instrução garante que PATH seja configurada adequadamente, mesmo se você construir como um(a) usuário(a) sem privilégios.

--enable-cmdlib: Essa chave habilita a construção da biblioteca compartilhada de comandos. É exigida ao se construir o processo de segundo plano de evento.

--enable-pkgconfig: Essa chave habilita a instalação de arquivos de suporte pkg-config.

--enable-udev_sync: Essa chave habilita a sincronização com o processamento Udev.

--enable-dmeventd: Essa chave habilita a construção do processo de segundo plano de evento Device Mapper.

rm .../69-dm-lvm.rules: Sob certas circunstâncias, essa regra do udev chama systemd-run, que não está disponível no sysv. Ela realiza ações que, de qualquer maneira, são feitas por outro script de inicialização; portanto, não é necessária.

Conteúdo

Aplicativos Instalados: blkdeactivate, dmeventd (opcional), dmsetup, fsadm, lvm, lvmdump e lvm_import_vdo. Existem também numerosos links simbólicos para lvm que implementam funcionalidades específicas
Bibliotecas Instaladas: libdevmapper.so e liblvm2cmd.so; opcional: libdevmapper-event.so, libdevmapper-event-lvm2.so, libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2raid.so, libdevmapper-event-lvm2snapshot.so, libdevmapper-event-lvm2thin.so e libdevmapper-event-lvm2vdo.so
Diretórios Instalados: /etc/lvm e /usr/lib/device-mapper (opcional)

Descrições Curtas

blkdeactivate

é um utilitário para desativar dispositivos de bloco

dmeventd

(opcional) é o processo de segundo plano de evento do Device Mapper

dmsetup

é uma ferramenta de baixo nível de gerenciamento de volume lógico

fsadm

é um utilitário usado para redimensionar ou para verificar o sistema de arquivos em um dispositivo

lvm

fornece as ferramentas de linha de comando para LVM2. Os comandos são implementados por meio de links simbólicos para esse aplicativo para gerenciar dispositivos físicos (pv*), grupos de volumes (vg*) e volumes lógicos (lv*)

lvmdump

é uma ferramenta usada para despejar várias informações concernentes ao LVM2

vgimportclone

é usado para importar um VG duplicado (por exemplo, instantâneo de hardware)

libdevmapper.so

contém as funções da API Device Mapper

A respeito de Logical Volume Management (LVM)

O LVM gerencia as unidades de disco. Ele permite que várias unidades e partições sejam combinadas em grupos de volumes maiores; ajuda na produção de cópias de segurança por meio de um instantâneo e permite o redimensionamento dinâmico do volume. Ele também pode fornecer espelhamento semelhante a uma matriz RAID 1.

Uma discussão completa do LVM está além do escopo desta introdução, mas os conceitos básicos são apresentados abaixo.

Para executar qualquer dos comandos apresentados aqui, o pacote LVM2-2.03.30 precisa estar instalado. Todos os comandos precisam ser executados como o(a) usuário(a) root.

O gerenciamento de discos com LVM é realizado usando os seguintes conceitos:

volumes físicos

Esses são discos físicos ou partições, como /dev/sda3 ou /dev/sdb.

grupos de volumes

Esses são grupos nomeados de volumes físicos que podem ser manipulados pelo(a) administrador(a). O número de volumes físicos que compõem um grupo de volumes é arbitrário. Os volumes físicos podem ser adicionados ou removidos dinamicamente a partir de um grupo de volumes.

volumes lógicos

Os grupos de volumes podem ser subdivididos em volumes lógicos. Cada volume lógico pode então ser formatado individualmente como se fosse uma partição normal do Linux. Os volumes lógicos podem ser redimensionados dinamicamente pelo(a) administrador(a) de acordo com a necessidade.

Para dar um exemplo concreto, suponha que você tenha dois discos de 2 TB. Suponha também que uma quantidade realmente grande de espaço seja exigida para uma base de dados muito grande, montada em /srv/mysql. É assim que o conjunto inicial de partições se pareceria:

Partição  Uso    Tamanhp      Tipo da Partição
/dev/sda1  /boot  100MB     83 (Linux)
/dev/sda2  /       10GB     83 (Linux)
/dev/sda3  swap     2GB     82 (Swap)
/dev/sda4  LVM    remainder 8e (LVM)
/dev/sdb1  swap     2GB     82 (Swap)
/dev/sdb2  LVM    remainder 8e (LVM)

Primeiro, inicialize os volumes físicos:

pvcreate /dev/sda4 /dev/sdb2

Nota

Um disco inteiro pode ser usado como parte de um volume físico, mas esteja ciente de que o comando pvcreate destruirá qualquer informação de partição nesse disco.

Em seguida, crie um grupo de volumes chamado lfs-lvm:

vgcreate lfs-lvm /dev/sda4 /dev/sdb2

O situação do grupo de volumes pode ser verificada executando-se o comando vgscan. Agora crie os volumes lógicos. Como existe cerca de 3.900 GB disponíveis, deixe cerca de 900 GB livres para expansão. Observe que o volume lógico chamado mysql é maior que qualquer disco físico.

lvcreate --name mysql --size 2500G lfs-lvm
lvcreate --name home --size 500G lfs-lvm

Finalmente, os volumes lógicos podem ser formatados e montados. Neste exemplo, o sistema de arquivos jfs (jfsutils-1.1.15) é usado para o propósito de demonstração.

mkfs -t ext4 /dev/lfs-lvm/home
mkfs -t jfs /dev/lfs-lvm/mysql
mount /dev/lfs-lvm/home /home
mkdir -p /srv/mysql
mount /dev/lfs-lvm/mysql /srv/mysql

Possivelmente seja necessário ativar esses volumes lógicos, para que apareçam em /dev. Todos eles podem ser ativados ao mesmo tempo emitindo-se, como o(a) usuário(a) root:

vgchange -a y

Os scripts de inicialização do LFS automaticamente tornam esses volumes lógicos disponíveis para o sistema no script udev. Edite o arquivo /etc/fstab conforme exigido para montá-los automaticamente.

Um volume lógico LVM pode hospedar um sistema de arquivos raiz, mas exige o uso de um initramfs (sistema de arquivos RAM inicial). O initramfs proposto em “A respeito do initramfs” permite passar o volume LVM na chave root= da linha de comando do núcleo.

Para mais informação a respeito do LVM, veja-se o LVM HOWTO e as páginas de manual do lvm. Um bom e detalhado guia está disponível a partir da RedHat®, embora às vezes ele faça referência a ferramentas proprietárias.

A respeito de RAID

A tecnologia de armazenamento conhecida como RAID (Redundant Array of Independent Disks) combina vários discos físicos em uma unidade lógica. As unidades geralmente podem ser combinadas para fornecer redundância de dados ou para estender o tamanho das unidades lógicas além da capacidade dos discos físicos ou de ambos. A tecnologia também permite fornecer manutenção de hardware sem desligar o sistema.

Os tipos de organização de RAID são descritos no RAID Wiki.

Observe que, embora o RAID forneça proteção contra falhas de disco, ele não é um substituto para as cópias de segurança. Um arquivo deletado ainda é deletado em todos os discos de uma matriz RAID. As cópias de segurança modernas geralmente são feitas via rsync-3.4.1.

Existem três tipos principais de implementação de RAID: RAID de hardware, RAID baseado em BIOS e RAID de software.

RAID de Hardware

O RAID baseado em hardware fornece capacidade por meio de esquemas de dados e hardware proprietários. O controle e a configuração geralmente são feitos via firmware em conjunto com aplicativos executáveis disponibilizados pelo fabricante do dispositivo. Os recursos geralmente são fornecidos por meio de uma placa PCI, embora existam algumas instâncias de componentes RAID integrados à placa-mãe. O RAID de hardware também possivelmente esteja disponível em um gabinete independente.

Uma vantagem do RAID baseado em hardware é que as unidades são oferecidas ao sistema operacional como uma unidade lógica e nenhuma configuração dependente do sistema operacional é necessária.

As desvantagens incluem dificuldades em transferir unidades de um sistema para outro, atualização de firmware ou substituição de hardware RAID com falha.

RAID baseado em BIOS

Alguns computadores oferecem uma implementação RAID semelhante a hardware no BIOS do sistema. Às vezes, isso é chamado de RAID 'falso', pois os recursos geralmente estão incorporados no firmware sem qualquer aceleração de hardware.

As vantagens e desvantagens do RAID baseado em BIOS são geralmente as mesmas do RAID de hardware, com a desvantagem adicional de não existir aceleração de hardware.

Em alguns casos, o firmware RAID baseado em BIOS é habilitado por padrão (por exemplo, alguns sistemas DELL). Se o RAID por software for desejado, [então] essa opção precisa ser explicitamente desabilitada no BIOS.

RAID por Software

O RAID baseado em software é a forma mais flexível de RAID. É fácil instalar e atualizar e fornece capacidade total em todas ou em parte de quaisquer unidades disponíveis para o sistema. No BLFS, o software RAID é encontrado em mdadm-4.3.

A configuração de um dispositivo RAID é direta usando mdadm. Geralmente os dispositivos são criados no diretório /dev como /dev/mdx onde x é um número inteiro.

A primeira etapa na criação de uma matriz RAID é a de usar um software de particionamento, como o fdisk ou o parted-3.6, para definir as partições necessárias para a matriz. Normalmente, existirá uma partição em cada unidade participante da matriz RAID, mas isso não é estritamente necessário. Para este exemplo, existirão quatro unidades de disco: /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd. Eles serão particionados como segue:

Tamanho da partição     Tipo                Uso
sda1:     100 MB   fd Linux raid auto  /boot    (RAID 1) /dev/md0
sda2:      10 GB   fd Linux raid auto  /        (RAID 1) /dev/md1
sda3:       2 GB   83 Linux swap       swap
sda4      300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdb1:     100 MB   fd Linux raid auto  /boot    (RAID 1) /dev/md0
sdb2:      10 GB   fd Linux raid auto  /        (RAID 1) /dev/md1
sdb3:       2 GB   83 Linux swap       swap
sdb4      300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdc1:      12 GB   fd Linux raid auto  /usr/src (RAID 0) /dev/md3
sdc2:     300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdd1:      12 GB   fd Linux raid auto  /usr/src (RAID 0) /dev/md3
sdd2:     300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2 

Nesse arranjo, uma partição separada de inicialização é criada como a primeira matriz RAID pequena e um sistema de arquivos raiz como a segunda matriz RAID, ambas espelhadas. A terceira partição é uma matriz grande (cerca de 1 TB) para o diretório /home. Isso fornece uma capacidade de distribuir dados entre vários dispositivos, melhorando a velocidade de leitura e de gravação de arquivos grandes. Por fim, uma quarta matriz é criada que concatena duas partições em um dispositivo maior.

Nota

Todos os comandos mdadm precisam ser executados como o(a) usuário(a) root.

Para criar essas matrizes RAID, os comandos são:

/sbin/mdadm -Cv /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
/sbin/mdadm -Cv /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
/sbin/mdadm -Cv /dev/md3 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1
/sbin/mdadm -Cv /dev/md2 --level=5 --raid-devices=4 \
       /dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2 

Os dispositivos criados podem ser examinados por dispositivo. Por exemplo, para ver os detalhes de /dev/md1, use /sbin/mdadm --detail /dev/md1:

        Version : 1.2
  Creation Time : Tue Feb  7 17:08:45 2012
     Raid Level : raid1
     Array Size : 10484664 (10.00 GiB 10.74 GB)
  Used Dev Size : 10484664 (10.00 GiB 10.74 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Tue Feb  7 23:11:53 2012
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : core2-blfs:0  (local to host core2-blfs)
           UUID : fcb944a4:9054aeb2:d987d8fe:a89121f8
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       8        1         0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

A partir deste ponto, as partições podem ser formatadas com o sistema de arquivos de escolha (por exemplo, ext3, ext4, xfsprogs-6.13.0, etc). As partições formatadas podem então serem montadas. O arquivo /etc/fstab pode usar os dispositivos criados para montagem em tempo de inicialização e a linha de comando linux em /boot/grub/grub.cfg pode especificar root=/dev/md1.

Nota

Os dispositivos de troca deveriam ser especificados no arquivo /etc/fstab normalmente. O núcleo normalmente distribui os dados de troca entre vários arquivos de troca e não deveria fazer parte de uma matriz RAID.

Para mais opções e detalhes de gerenciamento de dispositivos RAID, consulte man mdadm.

Detalhes adicionais para monitorar matrizes RAID e para lidar com problemas podem ser encontrados no Linux RAID Wiki.

mdadm-4.3

Introdução ao mdadm

O pacote mdadm contém ferramentas de administração para RAID de software.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do mdadm

Opcionais

Um MTA

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário. Somente os tipos de RAID desejados são exigidos.

Device Drivers --->
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M>   RAID support                                            [BLK_DEV_MD]
    [*]       Autodetect RAID arrays during kernel boot          [MD_AUTODETECT]
    # Only the RAID types desired are required:
    < /*/M> RAID-0 (striping) mode                                    [MD_RAID0]
    < /*/M> RAID-1 (mirroring) mode                                   [MD_RAID1]
    < /*/M> RAID-10 (mirrored striping) mode                         [MD_RAID10]
    < /*/M> RAID-4/RAID-5/RAID-6 mode                               [MD_RAID456]

Instalação do mdadm

Construa o mdadm executando o seguinte comando:

make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make BINDIR=/usr/sbin install

Explicações do Comando

make everything: Esse alvo opcional cria aplicativos extras, particularmente uma versão vinculada estaticamente do mdadm. Isso precisa ser instalado manualmente.

Conteúdo

Aplicativos Instalados: mdadm e mdmon
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

mdadm

gerencia dispositivos MD, também conhecidos como RAID de Software do Linux

mdmon

monitora matrizes de metadados externos MD

ntfs-3g-2022.10.3

Introdução ao Ntfs-3g

Nota

Um novo controlador de leitura e gravação para NTFS, chamado NTFS3, foi adicionado ao núcleo Linux desde o lançamento 5.15. O desempenho do NTFS3 é muito melhor que o do NTFS-3G. Para habilitar o NTFS3, habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

File systems --->
  DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> NTFS Read-Write file system support                         [NTFS3_FS]

Para garantir que o comando mount use NTFS3 para partições NTFS, crie um script vinculador:

cat > /usr/sbin/mount.ntfs << "EOF" &&
#!/bin/sh
exec mount -t ntfs3 "$@"
EOF
chmod -v 755 /usr/sbin/mount.ntfs

Com o suporte do núcleo disponível, o ntfs-3g é necessário somente se você precisar dos utilitários oriundos dele (por exemplo, para criar sistemas de arquivos NTFS).

O pacote Ntfs-3g contém um controlador estável, de leitura e gravação e de código aberto para partições NTFS. As partições NTFS são usadas pela maioria dos sistemas operacionais da Microsoft. O Ntfs-3g permite que você monte partições NTFS no modo de leitura e gravação a partir do seu sistema Linux. Ele usa o módulo do núcleo FUSE para poder implementar o suporte NTFS no espaço do(a) usuário(a). O pacote também contém vários utilitários úteis para manipular partições NTFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Ntfs-3g

Opcionais

fuse 2.x (isso desabilita as montagens do(a) usuário(a))

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]

Observe que isso só é necessário para montar partições NTFS com ntfs-3g. Se, ao invés, você usará o controlador NTFS3 intra núcleo para montar partições NTFS (como os(as) editores(as) do BLFS recomendam), você pode ignorar esse item de configuração.

Instalação do Ntfs-3g

Instale Ntfs-3g executando os seguintes comandos:

./configure --prefix=/usr       \
            --disable-static     \
            --with-fuse=internal \
            --docdir=/usr/share/doc/ntfs-3g-2022.10.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

É recomendável usar o controlador NTFS3 interno ao núcleo para montar sistemas de arquivos NTFS, em vez do ntfs-3g (veja-se a observação no início desta página). No entanto, se você quiser, de qualquer maneira, usar o ntfs-3g para montar os sistemas de arquivos NTFS, [então] crie um link simbólico para o comando mount:

ln -sv ../bin/ntfs-3g /usr/sbin/mount.ntfs &&
ln -sv ntfs-3g.8 /usr/share/man/man8/mount.ntfs.8

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-fuse=internal: Essa chave força dinamicamente o ntfs-3g a usar uma cópia interna da biblioteca fuse-2.x. Isso é exigido se você deseja permitir que os(as) usuários(as) montem partições NTFS.

--disable-ntfsprogs: Desabilita a instalação de vários utilitários usados para manipular partições NTFS.

chmod -v 4755 /usr/bin/ntfs-3g: Tornar mount.ntfs setuid root permite que usuários(as) não root montem partições NTFS.

Usando o Ntfs-3g

Para montar uma partição do Windows em tempo de inicialização, coloque uma linha como esta em /etc/fstab:

/dev/sda1 /mnt/windows auto defaults 0 0

Para permitir que os(as) usuários(as) montem um pendrive com um sistema de arquivos NTFS nele, coloque uma linha semelhante a esta (mude sdc1 para o que um pendrive seria em seu sistema) em /etc/fstab:

/dev/sdc1 /mnt/usb auto user,noauto,umask=0,utf8 0 0

Para que um(a) usuário(a) possa montar o pendrive, ele(a) precisará ser capaz de escrever em /mnt/usb; portanto, como o(a) usuário(a) root:

chmod -v 777 /mnt/usb

Conteúdo

Aplicativos Instalados: lowntfs-3g, mkfs.ntfs, mkntfs, mount.lowntfs-3g, mount.ntfs, mount.ntfs-3g, ntfs-3g, ntfs-3g.probe, ntfscat, ntfsclone, ntfscluster, ntfscmp, ntfscp, ntfsfix, ntfsinfo, ntfslabel, ntfsls, ntfsresize e ntfsundelete
Biblioteca Instalada: libntfs-3g.so
Diretórios Instalados: /usr/include/ntfs-3g e /usr/share/doc/ntfs-3g

Descrições Curtas

lowntfs-3g

é semelhante ao ntfs-3g, mas usa a interface de baixo nível Fuse

mkfs.ntfs

é um link simbólico para mkntfs

mkntfs

cria um sistema de arquivos NTFS

mount.lowntfs-3g

é um link simbólico para lowntfs-3g

mount.ntfs

monta um sistema de arquivos NTFS

mount.ntfs-3g

é um link simbólico para ntfs-3g

ntfs-3g

é um controlador NTFS, que consegue criar, remover, renomear, mover arquivos, diretórios, links rígidos e fluxos. Ele também consegue ler e gravar arquivos, incluindo fluxos, arquivos esparsos e arquivos comprimidos de forma transparente. Ele também consegue lidar com arquivos especiais, como links simbólicos, dispositivos e FIFOs; além disso, fornece gerenciamento padrão de propriedade e de permissões de arquivos, incluindo ACLs POSIX

ntfs-3g.probe

testa se um volume NTFS é montável somente leitura ou leitura/gravação e sai com um valor de status correspondente. O volume pode ser um dispositivo de bloco ou arquivo de imagem

ntfscluster

identifica arquivos em uma região especificada de um volume NTFS

ntfscp

copia um arquivo para um volume NTFS

ntfsfix

corrige erros comuns e força o Windows a verificar uma partição NTFS

ntfsls

lista o conteúdo do diretório em um sistema de arquivos NTFS

ntfscat

imprime arquivos e fluxos NTFS na saída gerada padrão

ntfsclone

clona um sistema de arquivos NTFS

ntfscmp

compara dois sistemas de arquivos NTFS e mostra as diferenças

ntfsinfo

despeja os atributos de um arquivo

ntfslabel

exibe ou muda o rótulo em um sistema de arquivos NTFS

ntfsresize

redimensiona um sistema de arquivos NTFS sem perda de dados

ntfsundelete

recupera um arquivo deletado a partir de um volume NTFS

libntfs-3g.so

contém as funções da API do Ntfs-3g

gptfdisk-1.0.10

Introdução ao gptfdisk

O pacote gptfdisk é um conjunto de aplicativos para criação e manutenção de unidades de disco GUID Partition Table (GPT). Um disco particionado GPT é exigido para unidades maiores que 2 TB e é um substituto moderno para unidades de disco particionadas do BIOS legado do PC que usam um Master Boot Record (MBR). O aplicativo principal, gdisk, tem uma interface semelhante ao aplicativo clássico fdisk.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/gptfdisk/gptfdisk-1.0.10.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1970269eb7a97560e238611524b7797a

  • Tamanho da transferência: 216 KB

  • Espaço em disco estimado exigido: 2,4 MB

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,2 UPC para testes)

Transferências Adicionais

Dependências do gptfdisk

Exigidas

popt-1.19

Opcionais

ICU-76.1

Instalação do gptfdisk

O pacote gptfdisk vem com um Makefile rudimentar. Primeiro, nós o atualizamos para fornecer uma interface simples de construção e instalação e corrigimos o local de um arquivo de cabeçalho e corrigimos alguns problemas menores de local. Instale o gptfdisk executando os seguintes comandos:

patch -Np1 -i ../gptfdisk-1.0.10-convenience-1.patch &&
sed -i 's|ncursesw/||' gptcurses.cc &&
sed -i 's|sbin|usr/sbin|' Makefile  &&

make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

patch -Np1 ...: Esse remendo modifica o arquivo Makefile, de forma que ele forneça um alvo install.

Conteúdo

Aplicativos Instalados: cgdisk, gdisk, fixparts e sgdisk

Descrições Curtas

cgdisk

é uma ferramenta baseada em ncurses para manipular partições GPT

gdisk

é uma ferramenta interativa em modo texto para manipular partições GPT

fixparts

repara partições de disco baseadas em MBR mal formatadas

sgdisk

é um aplicativo de manipulação de partição para partições GPT semelhante ao sfdisk

parted-3.6

Introdução ao parted

O pacote Parted é uma ferramenta de particionamento de disco e de redimensionamento de partição.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 93d2d8f22baebc5eb65b85da05a79e4e

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 29 MB (adicionais 3 MB para os testes e adicionais 2 MB para a documentação opcional PDF e Postscript)

  • Tempo de construção estimado: 0,3 UPC (3,6 UPC adicionais para os testes)

Dependências do Parted

Recomendadas
Opcionais

dosfstools-4.2, texlive-20240312 (ou install-tl-unx) e Digest::CRC (para testes)

Configuração Opcional do Núcleo para Testes

Cerca de 20% mais testes são executados se o seguinte módulo do núcleo for construído:

Device Drivers --->
  SCSI device support --->
    [*] SCSI low-level drivers --->                              [SCSI_LOWLEVEL]
      <M> SCSI debugging host and device simulator                  [SCSI_DEBUG]

Instalação do parted

Instale Parted executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make &&

make -C doc html                                      &&
makeinfo --html      -o doc/html       doc/parted.texi &&
makeinfo --plaintext -o doc/parted.txt doc/parted.texi

Se você tiver texlive-20240312 instalado e desejar criar documentação em PDF e Postscript, [então] emita os seguintes comandos:

cp build-aux/texinfo.tex doc               &&
texi2pdf -o doc/parted.pdf doc/parted.texi &&
texi2dvi -o doc/parted.dvi doc/parted.texi &&
dvips    -o doc/parted.ps  doc/parted.dvi

Para testar os resultados, emita, como o(a) usuário(a) root:

make check

Nota

Muitos testes são pulados se não executados como o(a) usuário(a) root.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/parted-3.6/html &&
install -v -m644    doc/html/* \
                   /usr/share/doc/parted-3.6/html &&
install -v -m644    doc/{FAT,API,parted.{txt,html}} \
                    /usr/share/doc/parted-3.6

Instale a documentação opcional PDF e Postscript emitindo o seguinte comando como o(a) usuário(a) root:

install -v -m644 doc/FAT doc/API doc/parted.{pdf,ps,dvi} \
                   /usr/share/doc/parted-3.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-device-mapper: Essa opção desabilita o suporte a mapeador de dispositivos. Adicione esse parâmetro se você não tiver instalado o LVM2.

Conteúdo

Aplicativos Instalados: parted e partprobe
Bibliotecas Instaladas: libparted.so e libparted-fs-resize.so
Diretórios Instalados: /usr/include/parted e /usr/share/doc/parted-3.6

Descrições Curtas

parted

é um aplicativo de manipulação de partição

partprobe

informa o Sistema Operacional a respeito de mudanças da tabela de partição

libparted.so

contém as funções da API do Parted

smartmontools-7.4

Introdução ao smartmontools

O pacote smartmontools contém aplicativos utilitários (smartctl, smartd) para controlar/monitorar sistemas de armazenamento usando o Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) embutido nos discos ATA e SCSI mais modernos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do smartmontools

Opcionais (tempo de execução)

cURL-8.12.1 ou Lynx-2.9.2 ou Wget-1.25.0 (ferramentas de transferência) e GnuPG-2.4.7 (discos rígidos encriptados)

Instalação do smartmontools

Instale smartmontools executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --with-initscriptdir=no \
            --with-libsystemd=no    \
            --docdir=/usr/share/doc/smartmontools-7.4 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-initscriptdir=no: Essa chave suprime o script padrão de inicialização. Veja-se abaixo para o script do BLFS.

--with-libsystemd=no: Essa chave desabilita o suporte para o sistema de notificação sd-notify fornecido pelo systemd.

Configurando smartmontools

Arquivo de Configuração

/etc/smartd.conf

Informação de Configuração

Consulte os comentários embutidos em /etc/smartd.conf para instruções detalhadas a respeito de personalizar o processo de segundo plano smartd.

Conjunto de Comandos Sequenciais de Inicialização

Se você desejar que o processo de segundo plano smartd inicie automaticamente quando o sistema for inicializado, [então] instale o script de iniciação /etc/rc.d/init.d/smartd incluído no pacote blfs-bootscripts-20250225.

make install-smartd

Conteúdo

Aplicativos Instalados: smartctl, smartd e update-smart-drivedb
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/smartmontools, /usr/share/doc/smartmontools-7.4 e /etc/smartd_warning.d

Descrições Curtas

smartctl

é o utilitário de controle e de monitoramento para Discos SMART

smartd

é o processo de segundo plano de monitoramento de disco SMART

update-smart-drivedb

é a ferramenta de atualização para a base de dados de unidade smartmontools

sshfs-3.7.3

Introdução ao Sshfs

O pacote Sshfs contém um cliente de sistema de arquivos baseado no File Transfer Protocol do SSH. Isso é útil para montar um computador remoto ao qual você tenha acesso ssh como um sistema de arquivos local. Isso permite que você arraste e solte arquivos ou execute comandos de shell nos arquivos remotos como se estivessem em seu computador local.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Sshfs

Exigidas

Fuse-3.16.2, GLib-2.82.5 e OpenSSH-9.9p2.

Opcionais

docutils-0.21.2 (exigido para construir a página de manual)

Instalação do Sshfs

Instale Sshfs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Usando o Sshfs

Para montar um servidor SSH, você precisa estar apto(a) a se logar no servidor. Por exemplo, para montar sua pasta "home" remota no ~/caminho_de_exemplo local (o diretório precisa existir e você precisa ter permissões para gravar nele):

sshfs exemplo.com:/home/userid ~/caminho_de_exemplo

Quando tiver terminado o trabalho e quiser desmontá-lo novamente:

fusermount3 -u ~/exemplo

Você também consegue montar um sistema de arquivos sshfs na inicialização adicionando uma entrada semelhante à seguinte no arquivo /etc/fstab:

id_de_usuario@exemplo.com:/caminho /media/caminho fuse.sshfs _netdev,IdentityFile=/home/id_de_usuario/.ssh/id_rsa 0 0

Veja-se man 1 sshfs e man 8 mount.fuse3 para todas as opções disponíveis de montagem.

Conteúdo

Aplicativo Instalado: sshfs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

sshfs

monta um servidor ssh como um sistema de arquivos local

xfsprogs-6.13.0

Introdução ao xfsprogs

O pacote xfsprogs contém ferramentas de administração e de depuração para o sistema de arquivos XFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xfsprogs

Exigidas

inih-58 e liburcu-0.15.1

Opcionais

ICU-76.1 (para escaneamento de nome Unicode em xfs_scrub)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> XFS filesystem support                                          [XFS_FS]

Instalação do xfsprogs

Primeiro, adapte o conjunto de comandos sequenciais configure para ICU-76:

sed -i 's/icu-i18n/icu-uc &/' configure

Instale xfsprogs executando os seguintes comandos:

case "$(uname -m)" in
  i?86) sed -e "s/static long filesize/static off_t filesize/" -i mkfs/proto.c ;;
esac &&
make DEBUG=-DNDEBUG     \
     INSTALL_USER=root  \
     INSTALL_GROUP=root \
     LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var"

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install    &&
make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install-dev &&

rm -rfv /usr/lib/libhandle.{a,la}

Explicações do Comando

sed ... static long filesize...: Esse sed corrige um problema que aparece ao se construir em sistemas de 32 bits, somente. Existe uma descorrespondência no protótipo e no cabeçalho da função, o que resulta em erro nessa arquitetura.

DEBUG=-DNDEBUG: Desliga os símbolos de depuração.

INSTALL_USER=root INSTALL_GROUP=root: Isso configura o(a) proprietário(a) e o grupo dos arquivos instalados.

LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var": Isso configura o diretório de estado como /var, impedindo que /usr/var seja criado.

OPTIMIZER="...": Adicionar esse parâmetro ao final do comando make substitui as configurações padrão de otimização.

Conteúdo

Aplicativos Instalados: fsck.xfs, mkfs.xfs, xfs_admin, xfs_bmap, xfs_copy, xfs_db, xfs_estimate, xfs_freeze, xfs_fsr, xfs_growfs, xfs_info, xfs_io, xfs_logprint, xfs_mdrestore, xfs_metadump, xfs_mkfile, xfs_ncheck, xfs_property, xfs_protofile, xfs_quota, xfs_repair, xfs_rtcp, xfs_scrub, xfs_scrub_all e xfs_spaceman
Bibliotecas Instaladas: libhandle.so
Diretórios Instalados: /usr/include/xfs, /usr/lib/xfsprogs, /usr/share/xfsprogs e /usr/share/doc/xfsprogs-6.13.0

Descrições Curtas

fsck.xfs

simplesmente sai com um status zero, pois as partições XFS são verificadas ao tempo da montagem

mkfs.xfs

constrói um sistema de arquivos XFS

xfs_admin

muda os parâmetros de um sistema de arquivos XFS

xfs_bmap

imprime o mapeamento de bloco para um arquivo XFS

xfs_copy

copia o conteúdo de um sistema de arquivos XFS para um ou mais destinos em paralelo

xfs_estimate

para cada argumento de diretório, estima o espaço que o diretório ocuparia se fosse copiado para um sistema de arquivos XFS (não cruza os pontos de montagem)

xfs_db

é usado para depurar um sistema de arquivos XFS

xfs_freeze

suspende o acesso a um sistema de arquivos XFS

xfs_fsr

aplicável somente a sistemas de arquivos XFS, melhora a organização de sistemas de arquivos montados; o algoritmo de reorganização opera sobre um arquivo por vez, compactando ou, do contrário, melhorando o esquema das extensões de arquivo (blocos contíguos de dados de arquivo)

xfs_growfs

expande um sistema de arquivos XFS

xfs_info

é equivalente a invocar xfs_growfs, mas especificando que nenhuma mudança no sistema de arquivos é para ser feita

xfs_io

é uma ferramenta de depuração, como xfs_db, mas tem como objetivo examinar o caminho regular de Entrada/Saída de arquivo em vez do próprio volume cru XFS

xfs_logprint

imprime o registro de um sistema de arquivos XFS

xfs_mdrestore

restaura uma imagem do meta despejo XFS para uma imagem do sistema de arquivos

xfs_metadump

copia os metadados do sistema de arquivos XFS para um arquivo

xfs_mkfile

cria um arquivo XFS, preenchido com zeros por padrão

xfs_ncheck

gera nomes de caminhos a partir de números de "inode" para um sistema de arquivos XFS

xfs_property

examina e edita propriedades acerca de um sistema de arquivos XFS

xfs_protofile

cria um protótipo para uso com mkfs.xfs

xfs_quota

é um utilitário para informar e para editar vários aspectos das cotas do sistema de arquivos

xfs_repair

repara sistemas de arquivos XFS corrompidos ou danificados

xfs_rtcp

copia um arquivo para a partição em tempo real em um sistema de arquivos XFS

xfs_scrub

verifica e repara o conteúdo de um sistema de arquivos XFS montado

xfs_scrub_all

limpa todos os sistemas de arquivos XFS montados

xfs_spaceman

informa e controla o uso de espaço livre em um sistema de arquivos XFS

libhandle.so

contém funções específicas do XFS que fornecem uma maneira de realizar certas operações do sistema de arquivos sem usar um descritor de arquivo para acessar objetos do sistema de arquivos

Pacotes para Inicialização UEFI

efivar-39

Introdução ao efivar

O pacote efivar fornece ferramentas e bibliotecas para manipular variáveis EFI.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/rhboot/efivar/archive/39/efivar-39.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a8fc3e79336cd6e738ab44f9bc96a5aa

  • Tamanho da transferência: 456 KB

  • Espaço em disco estimado exigido: 21 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do efivar

Opcionais

mandoc (para a página de manual do efisecdb)

Instalação do efivar

Nota

Esse pacote não pode funcionar corretamente em um sistema de 32 bits com uma implementação de UEFI de 64 bits. Não instale esse pacote (ou o efibootmgr) em um sistema de 32 bits, a menos que você esteja absolutamente seguro(a) de que tem uma implementação UEFI de 32 bits, o que é muito raro na prática.

Construa o efivar com os seguintes comandos:

make ENABLE_DOCS=0

A suíte de teste desse pacote é perigosa. Executá-la pode deflagrar erros de firmware e tornar seu sistema inutilizável sem usar algum hardware especial para reprogramar o firmware.

Agora, como o(a) usuário(a) root:

make install ENABLE_DOCS=0 LIBDIR=/usr/lib

Para evitar uma dependência rígida em relação ao mandoc nós usamos ENABLE_DOCS=0, mas isso faz com que todas as páginas de manual sejam ignoradas da instalação, embora a maioria delas, na verdade, não precise do mandoc. Ainda como o(a) usuário(a) root, instale essas páginas de manual:

install -vm644 docs/efivar.1 /usr/share/man/man1 &&
install -vm644 docs/*.3      /usr/share/man/man3

Explicações do Comando

ENABLE_DOCS=0: Desabilite a geração de páginas de manual para a finalidade de permitir construir este pacote sem o mandoc instalado.

LIBDIR=/usr/lib: Essa opção substitui o diretório padrão da biblioteca do pacote (/usr/lib64, que não é usado pelo LFS).

Conteúdo

Aplicativos Instalados: efisecdb e efivar
Bibliotecas Instaladas: libefiboot.so, libefisec.so e libefivar.so
Diretórios Instalados: /usr/include/efivar

Descrições Curtas

efisecdb

é um utilitário para gerenciar listas de assinatura UEFI

efivar

é uma ferramenta para manipular variáveis UEFI

libefiboot.so

é uma biblioteca usada pelo efibootmgr

libefisec.so

é uma biblioteca para gerenciar listas de assinatura UEFI

libefivar.so

é uma biblioteca para a manipulação de variáveis EFI

efibootmgr-18

Introdução ao efibootmgr

O pacote efibootmgr fornece ferramentas e bibliotecas para manipular variáveis EFI.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do efibootmgr

Exigidas

efivar-39 e popt-1.19

Instalação do efibootmgr

Construa o efibootmgr com os seguintes comandos:

make EFIDIR=LFS EFI_LOADER=grubx64.efi

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install EFIDIR=LFS

Explicações do Comando

EFIDIR=LFS: Essa opção especifica o nome do subdiretório da distribuição sob /boot/efi/EFI. O sistema de construção desse pacote precisa que essa seja configurada explicitamente.

EFI_LOADER=grubx64.efi: Essa opção especifica o nome do carregador padrão de inicialização EFI. Ele está configurado para corresponder ao carregador de inicialização EFI fornecido pelo GRUB.

Conteúdo

Aplicativos Instalados: efibootdump e efibootmgr

Descrições Curtas

efibootdump

é uma ferramenta para exibir opções individuais de inicialização UEFI, a partir de um arquivo ou de uma variável UEFI

efibootmgr

é uma ferramenta para manipular o Gerenciador de Inicialização UEFI

GRUB-2.12 para EFI

Introdução ao GRUB

O pacote GRUB fornece o GRand Unified Bootloader. Nesta página, ele será construído com suporte UEFI, que não está habilitado para o GRUB construído no LFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 60c564b1bdc39d8e43b3aab4bc0fb140

  • Tamanho da transferência: 6,4 MB

  • Espaço em disco estimado exigido: 183 MB

  • Tempo de construção estimado: 0,4 UPC (no LFS de 64 bits, usando paralelismo=4)

Transferências Adicionais

Dados opcionais de fonte Unicode para o menu do GRUB

Dependências do GRUB

Recomendadas
Opcionais

FreeType-2.13.3, Fuse-3.16.2 e LVM2-2.03.30

Se você estiver construindo o GRUB para um sistema LFS de 32 bits para inicializá-lo em um firmware UEFI de 64 bits, reconstrua GCC-14.2.0 com a chave --enable-targets=all posposta ao comando ../configure.

Instalação do GRUB

Primeiro, instale os dados da fonte como o(a) usuário(a) root se você os tiver baixado e tiver instalado a dependência opcional FreeType-2.13.3:

mkdir -pv /usr/share/fonts/unifont &&
gunzip -c ../unifont-16.0.01.pcf.gz > /usr/share/fonts/unifont/unifont.pcf

Atenção

Desconfigure quaisquer variáveis de ambiente que possivelmente afetem a construção:

unset {C,CPP,CXX,LD}FLAGS

Não tente ajustar esse pacote com sinalizadores personalizados de compilação: esse pacote é um carregador de inicialização, com operações de baixo nível no código-fonte, as quais provavelmente sejam quebradas por algumas otimizações agressivas.

Adicionar um arquivo ausente proveniente do tarball de lançamento:

echo depends bli part_gpt > grub-core/extra_deps.lst

Construa o GRUB com os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-efiemu     \
            --with-platform=efi  \
            --target=x86_64      \
            --disable-werror     &&
make

Esse pacote não tem uma suíte de teste que forneça resultados significativos.

Agora, se você tiver pulado o pacote GRUB do LFS, como o(a) usuário(a) root, instale o GRUB e pule as instruções restantes nesta seção:

make install &&
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions

Se você não tiver ignorado o pacote GRUB do LFS, como o(a) usuário(a) root, instale somente os componentes não instalados a partir do pacote GRUB do LFS:

make -C grub-core install

Se você tiver instalado os dados opcionais de fonte e FreeType-2.13.3, instale o programa grub-mkfont e os arquivos de dados de fonte (sem os arquivos de dados de fonte, o GRUB ainda pode funcionar normalmente, mas o menu de inicialização será exibido usando uma fonte grosseira ou em uma região menor na tela).

install -vm755 grub-mkfont /usr/bin/ &&
install -vm644 ascii.h widthspec.h *.pf2 /usr/share/grub/

Se Fuse-3.16.2 e LVM2-2.03.30 estiverem instalados, instale também o programa grub-mount:

install -vm755 grub-mount /usr/bin/

Explicações do Comando

--with-platform=efi: Garante a construção do GRUB com EFI habilitado.

--target=x86_64: Garante a construção do GRUB para x86_64, mesmo se construir em um sistema LFS de 32 bits. A maioria do firmware EFI em x86_64 não suporta carregadores de inicialização de 32 bits.

--target=i386: Algumas plataformas x86 de 32 bits tem suporte EFI. E algumas plataformas x86_64 tem uma implementação EFI de 32 bits, mas são muito antigas e raras. Use isso ao invés de --target=x86_64 se você estiver absolutamente seguro(a) de que o LFS está executando em tal sistema.

Configurando o GRUB

Usar o GRUB para tornar o sistema LFS inicializável na plataforma UEFI será discutido em Usando o GRUB para Configurar o Processo de Inicialização com UEFI.

Conteúdo

Uma lista dos arquivos instalados, juntamente com descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3/chapter08/grub.html#contents-gRUB.

Listados abaixo estão os programas recém-instalados, juntamente com descrições curtas.

Aplicativos Instalados: grub-mkfont e grub-mount (opcional)
Diretórios Instalados: /usr/lib/grub/x86_64-efi

Descrições Curtas

grub-mkfont

converte formatos de arquivo de fontes comuns em PF2

grub-mount

é uma ferramenta de depuração para controlador de sistema de arquivos

Usando o GRUB para Configurar o Processo de Inicialização com UEFI

Desligar a Inicialização Segura

O BLFS não tem os pacotes essenciais para suportar a Inicialização Segura. Para configurar o processo de inicialização com GRUB e UEFI no BLFS, a Inicialização Segura precisa ser desligada a partir interface de configuração do firmware. Leia a documentação fornecida pelo(a) fabricante do seu sistema para descobrir como.

Configuração do Núcleo para Suporte a UEFI

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

Processor type and features --->
  [*] EFI runtime service support                                          [EFI]
  [*]   EFI stub support                                              [EFI_STUB]

-*- Enable the block layer --->                                          [BLOCK]
  Partition Types --->
    [ /*] Advanced partition selection                      [PARTITION_ADVANCED]
    [*]     EFI GUID Partition support                           [EFI_PARTITION]

File systems --->
  DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> VFAT (Windows-95) fs support                                 [VFAT_FS]
  Pseudo filesystems --->
    <*/M> EFI Variable filesystem                                    [EFIVAR_FS]
  -*- Native language support --->                                         [NLS]
    <*/M> Codepage 437 (United States, Canada)                [NLS_CODEPAGE_437]
    <*/M> NLS ISO 8859-1  (Latin 1; Western European Languages)  [NLS_ISO8859_1]

O significado das opções de configuração:

CONFIG_PARTITION_ADVANCED

Se não estiver habilitado, CONFIG_EFI_PARTITION será habilitado automaticamente. Mas quando estiver habilitado, você precisa configurar CONFIG_EFI_PARTITION como habilitado também.

Criar um Disco de Inicialização de Emergência

Garanta que um disco de inicialização de emergência esteja pronto para resgatar o sistema no caso do sistema se tornar não inicializável. Para produzir um disco de inicialização de emergência com o GRUB para um sistema baseado em EFI, encontre uma unidade flash USB sobressalente e crie um sistema de arquivos vfat nela. Instale o dosfstools-4.2 primeiro, então, como o(a) usuário(a) root:

Atenção

O comando a seguir apagará todos os diretórios e arquivos na partição. Certifique-se de que sua unidade flash USB não contém dados que serão necessários e mude sdx1 para o nó de dispositivo correspondente à primeira partição da unidade flash USB. Seja cuidado(a) para não sobrescrever sua unidade rígida com um erro de digitação!

mkfs.vfat /dev/sdx1

Ainda como o(a) usuário(a) root, use o utilitário fdisk para configurar a primeira partição da unidade flash USB para ser uma partição do sistema EFI (mude sdx para o nó de dispositivo correspondente à sua unidade flash USB):

fdisk /dev/sdx

Welcome to fdisk (util-linux 2.39.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t
Partition number (1-9, default 9): 1
Partition type or alias (type L to list all): uefi
Changed type of partition 'Linux filesystem' to 'EFI System'.

Command (m for help): w
The partition table has been altered.
Syncing disks.

Ainda como o(a) usuário(a) root, crie um ponto de montagem para a partição EFI na unidade flash USB e monte-o:

mount --mkdir -v -t vfat /dev/sdx1 -o codepage=437,iocharset=iso8859-1 \
      /mnt/rescue

Instale o GRUB para EFI na partição:

grub-install --target=x86_64-efi --removable \
             --efi-directory=/mnt/rescue --boot-directory=/mnt/rescue

Desmonte a partição:

umount /mnt/rescue

Agora a unidade flash USB pode ser usada como um disco de inicialização de emergência em qualquer plataforma UEFI x86-64. Para saber como selecionar essa unidade flash como o dispositivo de inicialização, leia o manual da tua placa-mãe ou laptop. Ele inicializará o sistema e mostrará o shell do GRUB. Em seguida, você pode digitar comandos para inicializar teu sistema operacional a partir da unidade rígida.

Encontrar ou Criar a Partição do Sistema EFI

Em sistemas baseados em EFI, os carregadores de inicialização são instalados em uma partição especial FAT32 chamada EFI System Partition (ESP). Se o seu sistema suportar EFI e uma versão recente de alguma distribuição Linux ou Windows estiver pré-instalada, [então] é provável que o ESP já tenha sido criada. Como o(a) usuário(a) root, liste todas as partições em sua unidade rígida (substitua sda pelo dispositivo correspondente à unidade rígida apropriada):

fdisk -l /dev/sda

A coluna Type da ESP deveria ser EFI System.

Se o sistema ou a unidade rígida for novo(a) ou essa for a primeira instalação de um Sistema Operacional inicializado por UEFI no sistema, a ESP possivelmente não exista. Nesse caso, instale dosfstools-4.2 primeiro. Em seguida, crie uma nova partição, produza um sistema de arquivos vfat nela e configure o tipo de partição como EFI system. Vejam-se as instruções para o dispositivo de inicialização de emergência acima como uma referência.

Atenção

Algumas (antigas) implementações UEFI possivelmente exijam que a ESP seja a primeira partição no disco.

Agora, como o(a) usuário(a) root, crie o ponto de montagem para a ESP e monte-a (substitua sda1 pelo nó de dispositivo correspondente à ESP):

mount --mkdir -v -t vfat /dev/sda1 -o codepage=437,iocharset=iso8859-1 \
      /boot/efi

Se você quiser montar a ESP automaticamente durante a inicialização do sistema, como o(a) usuário(a) root, adicione uma entrada para a ESP em /etc/fstab:

cat >> /etc/fstab << EOF
/dev/sda1 /boot/efi vfat codepage=437,iocharset=iso8859-1 0 1
EOF

Configuração Mínima de Inicialização com GRUB e EFI

Em sistemas baseados em UEFI, o GRUB funciona instalando um aplicativo EFI (um tipo especial de executável) na ESP. O firmware EFI pesquisará carregadores de inicialização em aplicativos EFI a partir de entradas de inicialização registradas em variáveis EFI e, adicionalmente, um caminho rigidamente codificado, EFI/BOOT/BOOTX64.EFI. Normalmente, um carregador de inicialização deveria ser instalado em um caminho personalizado e o caminho deveria ser registrado nas variáveis EFI. O uso do caminho codificado rigidamente deveria ser evitado, se possível. No entanto, em alguns casos, temos que usar o caminho codificado rigidamente:

  • O sistema não foi inicializado com EFI ainda, tornando as variáveis EFI inacessíveis.

  • O firmware EFI é de 64 bits, mas o sistema LFS é de 32 bits, tornando as variáveis EFI inacessíveis porque o núcleo não consegue invocar serviços de tempo de execução EFI com um comprimento diferente de endereço virtual.

  • O LFS é construído para um Live USB, de forma que não podemos confiar nas variáveis EFI, as quais são armazenadas em NVRAM ou em EEPROM na máquina local.

  • Você não consegue ou não quer instalar o efibootmgr para manipular entradas de inicialização em variáveis EFI.

Nesses casos, siga estas instruções para instalar o aplicativo EFI do GRUB no caminho codificado rigidamente e faça uma configuração mínima de inicialização. Caso contrário, é melhor pular à frente e definir a configuração de inicialização normalmente.

Para instalar o GRUB com o aplicativo EFI no caminho rigidamente codificado EFI/BOOT/BOOTX64.EFI, primeiro certifique-se de que a partição de inicialização esteja montada em /boot e de que a ESP esteja montada em /boot/efi. Então, como o(a) usuário(a) root, execute o comando:

Nota

Este comando sobrescreverá /boot/efi/EFI/BOOT/BOOTX64.EFI. Ele possivelmente quebre um carregador de inicialização já instalado lá. Produza uma cópia de segurança dele se não tiver certeza.

grub-install --target=x86_64-efi --removable

Esse comando instalará o aplicativo EFI do GRUB no caminho rigidamente codificado /boot/efi/EFI/BOOT/BOOTX64.EFI, de forma que o firmware EFI consiga achá-lo e carregá-lo. Os arquivos restantes do GRUB são instalados no diretório /boot/grub e serão carregados pelo BOOTX64.EFI durante a inicialização do sistema.

Nota

O firmware EFI geralmente prefere os aplicativos EFI com um caminho armazenado em variáveis EFI ao aplicativo EFI no caminho codificado rigidamente. Portanto, você possivelmente precise invocar o menu de seleção de inicialização ou a interface de configuração de firmware para selecionar manualmente o GRUB recém-instalado na próxima inicialização. Leia-se o manual da sua placa-mãe ou laptop para aprender como.

Se você tiver seguido as instruções nesta seção e configurou uma configuração mínima de inicialização, agora pule à frente para Criando o Arquivo de Configuração do GRUB.

Montar o Sistema de Arquivos de Variáveis EFI

A instalação do GRUB em uma plataforma UEFI exige que o sistema de arquivos de Variáveis EFI, efivarfs, esteja montado. Como o(a) usuário(a) root, monte-o se já não estiver montado:

mountpoint /sys/firmware/efi/efivars || mount -v -t efivarfs efivarfs /sys/firmware/efi/efivars

Agora adicione uma entrada para o efivarfs em /etc/fstab, de forma que seja montado automaticamente durante a inicialização do sistema:

cat >> /etc/fstab << EOF
efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0
EOF

Atenção

Se o sistema não for inicializado com UEFI, [então] o diretório /sys/firmware/efi estará ausente. Nesse caso, você deveria inicializar o sistema no modo UEFI com o disco de inicialização de emergência ou usando uma configuração mínima de inicialização criada como acima, então montar o efivarfs e continuar.

Finalizando a Configuração

Em sistemas baseados em UEFI, o GRUB funciona instalando um aplicativo EFI (um tipo especial de executável) em /boot/efi/EFI/[id]/grubx64.efi, onde /boot/efi é o ponto de montagem da ESP e [id] é substituído por um identificador especificado na linha de comando do grub-install. O GRUB criará uma entrada nas variáveis EFI contendo o caminho EFI/[id]/grubx64.efi, de forma que o firmware EFI consiga encontrar o grubx64.efi e carregá-lo.

O grubx64.efi é muito leve (136 KB com o GRUB-2.06), de forma que não usará muito espaço na ESP. Um tamanho típico da ESP é de 100 MB (para o gerenciador de inicialização do Windows, que usa cerca de 50 MB na ESP). Assim que o grubx64.efi tenha sido carregado pelo firmware, ele carregará os módulos do GRUB a partir da partição de inicialização. O local padrão é /boot/grub.

Como o(a) usuário(a) root, instale os arquivos do GRUB em /boot/efi/EFI/LFS/grubx64.efi e em /boot/grub. Em seguida, configure a entrada de inicialização nas variáveis EFI:

grub-install --bootloader-id=LFS --recheck

Se a instalação for bem-sucedida, [então a saída gerada deveria ser:

Installing for x86_64-efi platform.
Installation finished. No error reported.

Emita o comando efibootmgr | cut -f 1 para verificar novamente a configuração de inicialização EFI. Um exemplo da saída gerada é:

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0005,0000,0002,0001,0003,0004
Boot0000* ARCH
Boot0001* UEFI:CD/DVD Drive
Boot0002* Windows Boot Manager
Boot0003* UEFI:Removable Device
Boot0004* UEFI:Network Device
Boot0005* LFS

Observe que 0005 é o primeiro no BootOrder e Boot0005 é LFS. Isso significa que, na próxima inicialização, a versão do GRUB instalada pelo LFS será usada para inicializar o sistema.

Criando o Arquivo de Configuração do GRUB

Gere o /boot/grub/grub.cfg para configurar o menu de inicialização do GRUB:


cat > /boot/grub/grub.cfg << EOF
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5

insmod part_gpt
insmod ext2
set root=(hd0,2)

insmod efi_gop
insmod efi_uga
if loadfont /boot/grub/fonts/unicode.pf2; then
  terminal_output gfxterm
fi

menuentry "GNU/Linux, Linux 6.13.2-lfs-12.3" {
  linux   /boot/vmlinuz-6.13.2-lfs-12.3 root=/dev/sda2 ro
}

menuentry "Firmware Setup" {
  fwsetup
}
EOF

Consulte-se o livro LFS para o conhecimento básico acerca do arquivo grub.cfg. (hd0,2), sda2 e 6.13.2-lfs-12.3 precisam corresponderem à tua configuração.

As diretivas insmod efi_gop e insmod efi_uga carregam dois módulos para suporte de vídeo baseado em EFI. Na maioria dos sistemas, o módulo efi_gop é suficiente. O módulo efi_uga é útil somente para sistemas legados, mas é inofensivo carregá-lo de qualquer maneira. O suporte de vídeo é necessário para a diretiva terminal_output gfxterm realmente funcionar.

A diretiva terminal_output gfxterm muda a resolução da tela do menu do GRUB para corresponder ao teu dispositivo de exibição. Isso quebrará a renderização se o arquivo de dados da fonte unicode.pf2 não estiver carregado, de forma que ele é protegido por uma diretiva if.

Nota

Da perspectiva do GRUB, os arquivos são relativos às partições usadas. Se você usou uma partição /boot separada, [então] remova /boot dos caminhos acima (para o núcleo e para unicode.pf2). Você também precisará mudar a linha "set root" para apontar para a partição de inicialização.

A entrada Firmware Setup pode ser usada para entrar na interface de configuração fornecida pelo firmware (às vezes chamada de Configuração do BIOS).

Inicialização Dupla com o Windows

Adicione uma entrada de menu para o Windows no grub.cfg:

cat >> /boot/grub/grub.cfg << EOF
# Início da adição do Windows

menuentry "Windows 11" {
  insmod fat
  insmod chain
  set root=(hd0,1)
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF

(hd0,1) deveria ser substituído pelo nome designado pelo GRUB para a ESP. A diretiva chainloader pode ser usada para dizer ao GRUB para executar outro executável EFI, nesse caso o Windows Boot Manager. Você pode colocar mais ferramentas utilizáveis no formato de executável EFI (por exemplo, um shell EFI) na ESP e, também, criar entradas do GRUB para elas.

Capítulo 6. Editores de Texto

Este capítulo é referenciado no livro LFS para aqueles(as) que desejam usar outros editores no sistema LFS deles(as). Você também verá como alguns aplicativos instalados do LFS se beneficiam de serem recompilados depois que bibliotecas GUI tenham sido instaladas.

Bluefish-2.2.16

Introdução ao Bluefish

O Bluefish é um editor de texto GTK+ voltado para programadores(as) e projetistas web, com muitas opções para escrever sítios web, scripts e códigos de programação. O Bluefish suporta muitas linguagens de programação e de marcação e se concentra na edição de sítios da web dinâmicos e interativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Bluefish

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

enchant-2.8.2 (para verificação ortográfica), Gucharmap-16.0.2 e Jing

Instalação do Bluefish

Primeiro, desabilite um plugin que requer funções removidas na libxml-2.13.0 ou posterior:

sed '/infbrowser/d' -i src/Makefile.am &&
autoreconf

Instale Bluefish executando os seguintes comandos:

./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.16 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso da memória atualizando /usr/share/icons/hicolor/icon-theme.cache e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -t -f --include-image-data /usr/share/icons/hicolor &&
update-desktop-database

Conteúdo

Aplicativo Instalado: bluefish
Bibliotecas Instaladas: várias, sob /usr/lib/bluefish/
Diretórios Instalados: /usr/lib/bluefish, /usr/share/bluefish, /usr/share/doc/bluefish-2.2.16 e /usr/share/xml/bluefish

Descrições Curtas

bluefish

é um editor de texto GTK+ para marcação e programação

Ed-1.21

Introdução ao Ed

Ed é um editor de texto orientado a linhas. Ele é usado para criar, exibir, modificar e manipular arquivos de texto, tanto interativamente quanto por meio de scripts de shell. Ed não é algo que muitas pessoas usam. Ele é descrito aqui porque pode ser usado pelo aplicativo "patch" se você encontrar um arquivo de remendo baseado em ed. Isso acontece raramente porque os remendos baseados em diferenças são os preferidos atualmente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/ed/ed-1.21.tar.lz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a68c643733b7123ddad15f7395cb8c61

  • Tamanho da transferência: 68 KB

  • Espaço em disco estimado exigido: 1,0 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Ed

Exigido para descomprimir o tarball

libarchive-3.7.7 (para bsdtar)

Instalação do Ed

Instale Ed executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: ed e red
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ed

é um editor de texto orientado a linhas

red

é um ed restrito—somente pode editar arquivos no diretório atual e não consegue executar comandos do shell

Emacs-30.1

Introdução ao Emacs

O pacote Emacs contém um editor extensível, personalizável, auto documentado e de exibição em tempo real.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/emacs/emacs-30.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 88d665794fdecba7769c11ab1ccea6e4

  • Tamanho da transferência: 52 MB

  • Espaço em disco estimado exigido: 558 MB

  • Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4)

Dependências do Emacs

Recomendadas
Opcionais

um ambiente gráfico, alsa-lib-1.2.13, Cairo-1.18.2, dbus-1.16.0, GLib-2.82.5 (com GObject Introspection), gsettings-desktop-schemas-47.1, GPM-1.20.7, GTK-3.24.48, ImageMagick-7.1.1-43, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46, librsvg-2.59.2, libseccomp-2.6.0, libwebp-1.5.0, libxml2-2.13.6, MIT Kerberos V5-1.21.3, SQLite-3.49.1, Valgrind-3.24.0, intlfonts, libungif, libotf e m17n-lib - para exibir corretamente tais conjuntos complexos de comandos sequenciais, tais como Índico e Khmer, e também para conjuntos de comandos sequenciais que exigem suporte para formato Árabe (Árabe e Farsi), mailutils e libXaw3d

Instalação do Emacs

Instale Emacs executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste. Se o "make" for bem-sucedido, [então] você consegue testar o resultado executando src/emacs -Q, que é o aplicativo que será instalado, com os arquivos auxiliares dele. Isso deveria iniciar e exibir a tela de abertura do aplicativo.

Agora, como o(a) usuário(a) root:

make install &&
chown -v -R root:root /usr/share/emacs/30.1 &&
rm -vf /usr/lib/systemd/user/emacs.service

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado e emitir o seguinte comando como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor

Explicações do Comando

--with-imagemagick: Use isso se você tiver instalado o ImageMagick-7.1.1-43 e desejar vincular a ele.

--with-gif=no: Use isso se você não tiver instalado giflib-5.2.2 ou libungif.

--with-tiff=no: Use isso se você não tiver instalado libtiff-4.7.0.

--with-gnutls=no: Use isso se você não tiver instalado GnuTLS-3.8.9.

--without-harfbuzz: Use isso se você não tiver instalado o harfBuzz-10.4.0.

--with-json=no: Use isso se você não tiver instalado jansson-2.14.

Conteúdo

Aplicativos Instalados: ctags, ebrowse, emacs (link simbólico), emacs-30.1, emacsclient e etags
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/libexec/emacs e /usr/share/emacs

Descrições Curtas

ctags

cria arquivos de base de dados arquivo de marca de referência cruzada para código-fonte

ebrowse

permite navegar pelas hierarquias de classe C++ a partir de dentro do emacs

emacs

é um editor

emacsclient

anexa uma sessão do emacs a uma instância do emacsserver já em execução

etags

é outro aplicativo para gerar arquivos de marca de referência cruzada de código-fonte

Gedit-48.1

Introdução ao Gedit

O pacote Gedit contém um editor UTF-8 leve de texto para a área de trabalho GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gedit/48/gedit-48.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1aa72a59d51be4597490220af3ad0421

  • Tamanho da transferência: 2,8 MB

  • Espaço em disco estimado exigido: 48 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4; com testes)

Transferências Adicionais

Dependências do Gedit

Exigidas

gsettings-desktop-schemas-47.1, itstool-2.0.7, libgedit-amtk-5.9.0, libgeditsourceview-299.4.0, libhandy-1.8.3 e libpeas-1.36.0

Recomendadas
Opcionais

GTK-Doc-1.34.0, Vala-0.56.17 e zeitgeist

Instalação do Gedit

Primeiro, construa a biblioteca gfls:

tar -xf ../libgedit-gfls-0.2.1.tar.bz2 &&
pushd libgedit-gfls-0.2.1             &&

mkdir gfls-build &&
cd    gfls-build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            ..                  &&
ninja

Para testar os resultados, execute: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Mude de volta para o diretório superior de construção:

popd

Segundo, construa a biblioteca tepl:

tar -xf ../libgedit-tepl-6.12.0.tar.bz2 &&
pushd libgedit-tepl-6.12.0             &&

mkdir tepl-build &&
cd    tepl-build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            ..                  &&
ninja

Para testar os resultados, execute: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Novamente, mude de volta para o diretório superior de construção:

popd

Finalmente, instale Gedit executando os seguintes comandos:

mkdir gedit-build &&
cd    gedit-build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

-D gtk_doc=false: Essa chave desabilita a geração da documentação da API. Omita essa chave se você tiver GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativo Instalado: gedit
Bibliotecas Instaladas: libgedit-gfls-1.so, libgedit-tepl-6.so e libgedit-48.so
Diretórios Instalados: /usr/include/libgedit-gfls-1, /usr/include/libgedit-tepl-6, /usr/include/gedit-48 e /usr/{lib,share,share/help/*}/gedit

Descrições Curtas

gedit

é um editor de texto leve integrado com a área de trabalho GNOME

JOE-4.6

Introdução ao "JOE"

JOE (Joe's Own Editor) é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "JOE"

Instale JOE executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/joe-4.6 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

install -vm 755 joe/util/{stringify,termidx,uniproc} /usr/bin

Configurando o "JOE"

Arquivos de Configuração

/etc/joe/jmacsrc, /etc/joe/joerc, /etc/joe/jpicorc, /etc/joe/jstarrc, /etc/joe/rjoerc e ~/.joerc

Conteúdo

Aplicativos Instalados: jmacs, joe, jpico, jstar, rjoe, stringify, termidx e uniproc
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/joe, /usr/share/joe e /usr/share/doc/joe-4.6

Descrições Curtas

jmacs

é um link simbólico para joe usado para iniciar o modo de emulação Emacs

joe

é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs

jpico

é um link simbólico para joe usado para iniciar o modo de emulação Pico

jstar

é um link simbólico para joe usado para iniciar o modo de emulação do WordStar

rjoe

é um link simbólico para joe que restringe o JOE a editar somente os arquivos que estejam especificados na linha de comando

stringify

é um aplicativo usado pelo joe para converter arquivos rc e .jsf em um arquivo C (veja-se /usr/share/doc/joe-4.6/util/README)

termidx

é um aplicativo usado pelo joe para gerar o arquivo de índice termcap (veja-se /usr/share/doc/joe-4.6/util/README)

uniproc

é um aplicativo usado pelo joe para gerar o arquivo de base de dados Unicode de joe "unicat.c" a partir de Blocks.txt, CaseFolding.txt, EastAsianWidth.txt e UnicodeData.txt (encontre-os em /usr/share/doc/joe-4.6/util; veja-se usr/share/doc/joe-4.6/util/README)

kate-24.12.2

Introdução ao Kate

O pacote Kate contém um editor gráfico avançado de texto baseado em KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Kate

Exigidas

KDE Frameworks-6.11.0

Instalação do Kate

Instale Kate executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX  \
      -D CMAKE_BUILD_TYPE=Release          \
      -D BUILD_TESTING=OFF                 \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kate e kwrite
Bibliotecas Instaladas: Diversos plugins sob $KF6_PREFIX/lib/plugins
Diretórios Instalados: $KF6_PREFIX/lib/plugins/ktexteditor, $KF6_PREFIX/lib/plugins/plasma/dataengine, $KF6_PREFIX/share/doc/HTML/*/{kate,katepart,kwrite}, $KF6_PREFIX/share/{kateproject,katexmltools} e $KF6_PREFIX/share/plasma/plasmoids/org.kde.plasma.katesessions

Descrições Curtas

kate

é um editor avançado de texto para o KDE

kwrite

é um editor de texto para o KDE, que é uma versão leve do kate

Mousepad-0.6.3

Introdução ao Mousepad

Mousepad é um editor simples de texto GTK+ 3 para o ambiente de área de trabalho Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Mousepad

Exigidas

gtksourceview4-4.8.4 e libxfce4ui-4.20.0

Recomendadas
Opcionais

DConf-0.40.0 (tempo de execução) e dbus-glib-0.112

Instalação do Mousepad

Instale Mousepad executando os seguintes comandos:

./configure --prefix=/usr           \
            --enable-gtksourceview4 \
            --enable-keyfile-settings &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-keyfile-settings: Use a estrutura de retaguarda do arquivo de chaves GSettings em vez do padrão DConf-0.40.0.

--disable-plugin-gspell: Use essa opção para desabilitar construir o plugin gspell-1.14.0 se você não tiver instalado o gspell.

Conteúdo

Aplicativo Instalado: mousepad
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

mousepad

é um editor simples GTK+ 3 de texto

Nano-8.3

Introdução ao Nano

O pacote Nano contém um pequeno e simples editor de texto que pretende substituir o Pico, o editor padrão no pacote Pine.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.nano-editor.org/dist/v8/nano-8.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e64276780e23efb273480c4279050f74

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 24 MB

  • Tempo de construção estimado: 0,2 UPC

Instalação do Nano

Instale Nano executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --enable-utf8     \
            --docdir=/usr/share/doc/nano-8.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 doc/{nano.html,sample.nanorc} /usr/share/doc/nano-8.3

Explicações do Comando

--enable-utf8: Essa chave habilita o suporte Unicode no Nano.

Configurando nano

Arquivos de Configuração

/etc/nanorc e ~/.nanorc

Informação de Configuração

Configuração de exemplo (crie como um arquivo /etc/nanorc de todo o sistema ou como um arquivo pessoal ~/.nanorc)

set autoindent
set constantshow
set fill 72
set historylog
set multibuffer
set nohelp
set positionlog
set quickblank
set regexp

Verifique o arquivo sample.nanorc no diretório instalado da documentação. Inclui configurações de cores e tem alguma documentação incluída nos comentários.

O realce de sintaxe é fornecido para vários tipos de arquivo, no diretório /usr/share/nano/. Por exemplo, para scripts do shell, você pode inserir include /usr/share/nano/sh.nanorc no arquivo de configuração pessoal ou no global. Se você deseja realçar todos os arquivos suportados, [então] use include /usr/share/nano/*.nanorc. Essa inclusão não desce para o diretório extra. Mova os arquivos exigidos um nível acima.

Conteúdo

Aplicativos Instalados: nano e rnano (link simbólico)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/nano e /usr/share/doc/nano-8.3

Descrições Curtas

nano

é um pequeno e simples editor de texto que pretende substituir o Pico, o editor padrão no pacote Pine

rnano

é um modo restrito para o nano

Vim-9.1.1166

Introdução ao Vim

O pacote Vim, que é uma abreviação de VI IMproved, contém um clone do vi com recursos extras em comparação com o vi original.

As instruções padrão do LFS instalam o vim como parte do sistema básico. Se você preferisse vincular o vim ao X, [então] deveria recompilar o vim para habilitar o modo GUI. Não existe necessidade de instruções especiais, pois o suporte X é detectado automaticamente.

Nota

A versão do vim muda diariamente. Para obter a versão mais recente, acesse https://github.com/vim/vim/releases.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/vim/vim/archive/v9.1.1166/vim-9.1.1166.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 718d43ce957ab7c81071793de176c2eb

  • Tamanho da transferência: 18 MB

  • Espaço em disco estimado exigido: 139 MB (adicionar 75 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicionar 14 UPC para testes)

Dependências do Vim

Recomendadas
Opcionais

cURL-8.12.1 (ou Wget-1.25.0, exigido por alguns testes), GPM-1.20.7, Lua-5.4.7, Ruby-3.4.2 e rsync-3.4.1

Instalação do Vim

Nota

Se recompilar o Vim para se vincular ao X e suas bibliotecas X não estiverem na partição raiz, [então] você não mais terá um editor para uso em emergências. Você pode optar por instalar um editor adicional; não vincular o Vim ao X; ou mover o atual executável vim para o diretório /bin sob um nome diferente, tal como vi.

Instale Vim executando os seguintes comandos:

Nota

Se você pretende executar os testes e não instalou o Xorg em /usr, [então] anexe LDFLAGS='-L$XORG_PREFIX/lib' à linha de configuração abaixo.

echo '#define SYS_VIMRC_FILE  "/etc/vimrc"' >>  src/feature.h &&
echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h &&

./configure --prefix=/usr       \
            --with-features=huge \
            --enable-gui=gtk3    \
            --with-tlib=ncursesw &&
make

Nota

Se o arquivo global de configuração /etc/vimrc referenciar a variável de ambiente VIMRUNTIME, alguns testes possivelmente reclamem a respeito de estarem inaptos para encontrarem o diretório correspondente e aguardem por entrada gerada do(a) usuário(a). Se esse for o caso, esse arquivo deveria ser salvo e removido antes de executar os testes. Ou se bubblewrap-0.11.0 estiver instalado, também é possível criar um ambiente leve de contêiner onde esse arquivo fique oculto e executar os testes no contêiner.

Para testar os resultados, emita: make -j1 test. Falhas de teste, se existirem, produzirão o arquivo test.log em src/testdir. Os testes restantes ainda serão executados. Se tudo correr bem, o registro informará ALL DONE. Alguns testes rotulados como escamosos possivelmente falhem ocasionalmente e podem ser ignorados. Os testes são conhecidos por falharem se a saída gerada for redirecionada para um arquivo e também se forem executados em uma sessão do 'screen'.

Nota

Se executar os testes com bubblewrap-0.11.0 e /etc/vimrc ocultos, use bwrap --dev-bind / / --dev-bind /dev/null /etc/vimrc make -j1 test.

Nota

Alguns testes de cores esperam ser executados sob o emulador de terminal xterm.

Agora, como o(a) usuário(a) root:

make install

Por padrão, a documentação do Vim é instalada em /usr/share/vim. O link simbólico a seguir permite que a documentação seja acessada via /usr/share/doc/vim-9.1.1166, tornando-o consistente com o local da documentação para outros pacotes:

ln -snfv ../vim/vim91/doc /usr/share/doc/vim-9.1.1166

Se você desejar atualizar os arquivos de tempo de execução, emita o seguinte comando (exige rsync-3.4.1) para baixá-los:

rsync -avzcP --exclude="/dos/" --exclude="/spell/" \
    ftp.nluug.nl::Vim/runtime/ ./runtime/

E, então, instalar os arquivos atualizados de tempo de execução e gerar novamente o arquivo tags, como o(a) usuário(a) root, emita:

make -C src installruntime &&
vim -c ":helptags /usr/share/doc/vim-9.1.1166" -c ":q"

Explicações do Comando

--with-features=huge: Essa chave habilita todos os recursos adicionais disponíveis no Vim, incluindo suporte para caracteres múltiplos bytes.

--with-tlib=ncursesw: Essa chave força o Vim a vincular-se à biblioteca libncursesw.

--enable-gui=no: Isso impedirá a compilação da GUI. O Vim ainda se vinculará ao X, de modo que alguns recursos, tais como o modelo cliente-servidor ou a seleção x11 (área de transferência), ainda estejam disponíveis.

--without-x: Se você preferir não vincular o Vim ao X, [então] use essa chave.

--enable-luainterp, --enable-perlinterp, --enable-python3interp=dynamic, --enable-tclinterp --with-tclsh=tclsh, --enable-rubyinterp: Essas opções incluem os interpretadores Lua, Perl, Python3, Tcl ou Ruby que permitem usar código de outro aplicativo em conjuntos de comandos sequenciais do vim. Todas as opções --enable-* conseguem aceitar =dynamic para carregar dinamicamente o interpretador quando necessário. Isso é exigido para Python 3 para evitar falhas de segmentação. Para tcl, é necessário indicar o nome do executável tclsh, pois configure somente pesquisa nomes versionados com versões antigas.

Configurando Vim

Arquivos de Configuração

/etc/vimrc e ~/.vimrc

Informação de Configuração

O Vim tem um verificador ortográfico integrado que você consegue habilitar emitindo o seguinte em uma janela do vim:

:setlocal spell spelllang=ru

Essa configuração habilitará a verificação ortográfica para o idioma russo para a sessão atual.

Por padrão, o Vim somente instala arquivos ortográficos para o idioma inglês. Se um arquivo ortográfico não estiver disponível para um idioma, [então] o Vim chamará o plug-in $VIMRUNTIME/plugin/spellfile.vim e tentará obter o *.spl e opcionalmente *.sug a partir do servidor FTP do vim, usando o plug-in $VIMRUNTIME/plugin/netrwPlugin.vim.

Alternativamente, você consegue baixar manualmente os arquivos *.spl e *.sug a partir de: ftp://ftp.vim.org/pub/vim/runtime/spell/ e salvá-los em ~/.vim/spell ou em /usr/share/vim/vim91/spell/.

Para saber o que há de novo no Vim-9.1.1166 emita o seguinte comando:

:help version-9.1.1166

Para informação adicional a respeito do como configurar os arquivos de configuração do Vim, veja-se Os Arquivos vimrc e https://vim.fandom.com/wiki/Example_vimrc.

Conteúdo

Uma lista dos arquivos reinstalados, juntamente com as descrições curtas deles, pode ser encontrada nas Instruções de Instalação do Vim do LFS.

Aplicativos Instalados: gview, gvim, gvimdiff, gvimtutor, rgview e rgvim
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/vim

Descrições Curtas

gview

inicia o gvim no modo somente leitura

gvim

é o editor que executa sob o X e inclui uma GUI

gvimdiff

edita duas ou três versões de um arquivo com gvim e mostra as diferenças

gvimtutor

ensina as teclas e comandos básicas do gvim

rgview

é uma versão restrita do gview

rgvim

é uma versão restrita do gvim

Capítulo 7. Shells

Estamos todos familiarizados com o Bourne Again SHell, mas existem duas outras interfaces de usuário(a) que são consideradas shells modernos úteis – o shell Berkeley Unix C e o shell Korn. Este capítulo instala pacotes compatíveis com esses tipos adicionais de shell.

Dash-0.5.12

Introdução ao Dash

Dash é um shell compatível com POSIX. Ele pode ser instalado como /bin/sh ou como o shell padrão para root ou um(a) segundo(a) usuário(a) com um ID de usuário(a) zero (0). Depende de menos bibliotecas que o shell Bash e, portanto, é menos provável que seja afetado por um problema de atualização ou falha de disco. Dash também é útil para verificar se um script é totalmente compatível com a sintaxe POSIX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Dash

Opcionais

libedit (biblioteca do editor de linha de comando)

Instalação do Dash

Instale Dash executando os seguintes comandos:

./configure --bindir=/bin --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você gostaria de tornar dash o sh padrão, [então] recrie o link simbólico /bin/sh como o(a) usuário(a) root:

Nota

Se criar o link simbólico do dash para sh, [então] você precisará reconfigurar o link para bash para construir o LFS.

ln -svf dash /bin/sh

Explicações do Comando

--bindir=/bin: Esse parâmetro coloca o binário dash no sistema de arquivos raiz.

--with-libedit: Para compilar Dash com suporte a libedit.

Configurando Dash

Arquivos de Configuração

Dash carrega /etc/profile e ~/.profile

Informação de Configuração

Atualize /etc/shells para incluir o shell Dash emitindo o seguinte comando como o(a) usuário(a) root:

cat >> /etc/shells << "EOF"
/bin/dash
EOF

Conteúdo

Aplicativo Instalado: dash
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

dash

é um shell compatível com POSIX

Tcsh-6.24.15

Introdução ao Tcsh

O pacote Tcsh contém uma versão aprimorada, mas completamente compatível, do shell C do Unix da Berkeley (csh). Isso é útil como um shell alternativo para aqueles que preferem a sintaxe C a aquela do shell bash e também porque alguns aplicativos exigem o shell C para a finalidade de realizar tarefas de instalação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://astron.com/pub/tcsh/tcsh-6.24.15.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7a6c216fca177279ee2fb93fd3f9ccd4

  • Tamanho da transferência: 940 KB

  • Espaço em disco estimado exigido: 11 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Instalação do Tcsh

Instale Tcsh executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install install.man &&

ln -v -sf tcsh  /bin/csh &&
ln -v -sf tcsh.1 /usr/share/man/man1/csh.1

Explicações do Comando

ln -v -sf tcsh /bin/csh: O FHS afirma que, se existir um shell C instalado, [então] deveria existir um link simbólico a partir de /bin/csh para ele. Isso cria esse link simbólico.

Configurando Tcsh

Arquivos de Configuração

Existem numerosos arquivos de configuração para o shell C. Exemplos desses são /etc/csh.cshrc, /etc/csh.login, /etc/csh.logout, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.cshdirs, ~/.login e ~/.logout. Mais informação a respeito desses arquivos pode ser encontrada na página de manual tcsh(1).

Informação de Configuração

Atualize /etc/shells para incluir os nomes do aplicativo shell C (como o(a) usuário(a) root):

cat >> /etc/shells << "EOF"
/bin/tcsh
/bin/csh
EOF

O seguinte ~/.cshrc fornece dois prompts de cores alternativas e saída gerada ls colorida. Se você preferir uma modificação global, [então] emita o comando como o(a) usuário(a) root, substituindo ~/.cshrc por /etc/csh.cshrc.

cat > ~/.cshrc << "EOF"
# Original em:
# https://www.cs.umd.edu/~srhuang/teaching/code_snippets/prompt_color.tcsh.html

# Modificado pela Equipe de Desenvolvimento do BLFS.

# Adicione estas linhas ao seu ~/.cshrc (ou ao /etc/csh.cshrc).

# Cores!
set     red="%{\033[1;31m%}"
set   green="%{\033[0;32m%}"
set  yellow="%{\033[1;33m%}"
set    blue="%{\033[1;34m%}"
set magenta="%{\033[1;35m%}"
set    cyan="%{\033[1;36m%}"
set   white="%{\033[0;37m%}"
set     end="%{\033[0m%}" # Isso é necessário no final ...

# Configurando prompt atual. Duas versões para você tentar; escolha
# qual você gosta mais e mude as cores que quiser.
# Apenas não mexa com o cara ${end} em qualquer linha ... Comente ou
# delete o prompt que não usar.

set prompt="${green}%n${blue}@%m ${white}%~ ${green}%%${end} "
set prompt="[${green}%n${blue}@%m ${white}%~ ]${end} "

# Isto não estava na URL original acima
# Fornece ls colorido
alias ls ls --color=always

# Limpar depois de nós mesmos ...
unset red green yellow blue magenta cyan yellow white end
EOF

Conteúdo

Aplicativo Instalado: tcsh
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

tcsh

é uma versão aprimorada, mas completamente compatível, do shell C do Unix da Berkeley, csh. É utilizável como um shell interativo e como um processador de script

zsh-5.9

Introdução ao zsh

O pacote zsh contém um interpretador de comandos (shell) utilizável como um shell de login interativo e como um processador de comando de script de shell. Dos shells padrão, o zsh é o que mais se assemelha ao ksh, mas inclui muitos aprimoramentos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.zsh.org/pub/zsh-5.9.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 182e37ca3fe3fa6a44f69ad462c5c30e

  • Tamanho da transferência: 3,2 MB

  • Espaço em disco estimado exigido: 48 MB (inclui documentação e testes)

  • Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; inclui documentação e testes)

Nota

Quando existe um lançamento novo do zsh, os arquivos antigos mostrados acima são movidos para um novo diretório do servidor: https://www.zsh.org/pub/old/ .

Dependências do zsh

Opcionais

Valgrind-3.24.0 e yodl

Instalação do zsh

Adapte o sistema de construção de documentação para texinfo-7.0 ou posterior:

sed -e 's/set_from_init_file/texinfo_&/' \
    -i Doc/Makefile.in

Alguns programas fornecidos no sistema de construção para detectar recursos do sistema usam sintaxe pré-C99 rejeitada pelo GCC-14.1 ou posterior. Corrija-os porque o Zsh será configurado incorretamente e falhará caso contrário:

sed -e 's/^main/int &/'      \
    -e 's/exit(/return(/'    \
    -i aczsh.m4 configure.ac &&

sed -e 's/test = /&(char**)/' \
    -i configure.ac           &&

autoconf

Os arquivos de documentação contém referências aos arquivos de configuração do zsh em /etc, mas nós usaremos /etc/zsh para armazenar esses arquivos de configuração em vez disso. O sistema de construção atualizará essas referências se o pacote yodl estiver disponível, mas ele está fora do escopo do BLFS. Como resultado, nós precisamos corrigir as referências manualmente:

sed -e 's|/etc/z|/etc/zsh/z|g' \
    -i Doc/*.*

Instale zsh executando os seguintes comandos:

./configure --prefix=/usr            \
            --sysconfdir=/etc/zsh    \
            --enable-etcdir=/etc/zsh \
            --enable-cap             \
            --enable-gdbm                      &&
make                                           &&

makeinfo  Doc/zsh.texi --html      -o Doc/html &&
makeinfo  Doc/zsh.texi --plaintext -o zsh.txt  &&
makeinfo  Doc/zsh.texi --html --no-split --no-headers -o zsh.html

Se você tiver texlive-20240312 instalado, poderá construir a documentação no formato PDF emitindo o seguinte comando:

texi2pdf Doc/zsh.texi -o Doc/zsh.pdf

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install                                                    &&
make infodir=/usr/share/info install.info                       &&
make htmldir=/usr/share/doc/zsh-5.9/html install.html           &&
install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-5.9

Se você construiu o formato PDF da documentação, [então] instale-o emitindo o seguinte comando como o(a) usuário(a) root:

install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9

Explicações do Comando

--sysconfdir=/etc/zsh e --enable-etcdir=/etc/zsh: Esses parâmetros são usados para que todos os arquivos de configuração do zsh sejam consolidados no diretório /etc/zsh. Omita esses parâmetros se você desejar manter a compatibilidade histórica tendo todos os arquivos localizados no diretório /etc.

--enable-cap: Essa opção habilita os recursos POSIX.

--enable-gdbm: Essa opção habilita o uso da biblioteca GDBM.

Configurando o zsh

Arquivos de Configuração

Existe toda uma série de arquivos de configuração para o zsh, incluindo /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin e /etc/zsh/zlogout. Você consegue encontrar mais informação a respeito deles na zsh(1) e nas páginas de manual relacionadas.

Na primeira vez que o zsh for executado, você será avisado(a) por mensagens com várias perguntas. As respostas serão usadas para criar um arquivo ~/.zshrc. Se desejar executar essas perguntas novamente, [então] execute zsh /usr/share/zsh/5.9/functions/zsh-newuser-install -f.

Existem vários prompts avançados integrados. No shell zsh, inicie o suporte avançado de prompt com autoload -U promptinit e, em seguida, promptinit. Os nomes disponíveis de prompt são listados com prompt -l. Selecione um em particular com prompt <nome-de-prompt>. Exiba todos os prompts disponíveis com prompt -p. Exceto os comandos list e display acima, você consegue inserir os outros em ~/.zshrc para serem executados automaticamente quando o shell iniciar, com o prompt que escolher.

Informação de Configuração

Atualize /etc/shells para incluir os nomes do aplicativo de shell zsh (como o(a) usuário(a) root):

cat >> /etc/shells << "EOF"
/bin/zsh
EOF

Conteúdo

Aplicativos Instalados: zsh e zsh-5.9 (rigidamente vinculados entre eles)
Bibliotecas Instaladas: Numerosos módulos auxiliares de plugin sob /usr/lib/zsh/5.9/
Diretórios Instalados: /usr/{lib,share}/zsh e /usr/share/doc/zsh-5.9

Descrições Curtas

zsh

é um shell que tem edição de linha de comando, correção ortográfica integrada, completamento programável de comando, funções de shell (com carregamento automático), um mecanismo de histórico e uma série de outros recursos

Capítulo 8. Virtualização

A virtualização permite executar um sistema operacional completo, ou máquina virtual ("VM"), dentro de outro ambiente operacional, como uma tarefa. Existem vários ambientes comerciais e de código aberto que, ou emulam outro processador, ou utilizam os recursos de virtualização de hardware do processador anfitrião.

qemu-9.2.2

Introdução ao qemu

qemu é uma solução completa de virtualização para Linux em hardware x86 contendo extensões de virtualização (Intel VT ou AMD-V).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.qemu.org/qemu-9.2.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 417dc130a89238ba5347ced224497ee1

  • Tamanho da transferência: 129 MB

  • Espaço em disco estimado exigido: 2,3 GB (475 MB instalado)

  • Tempo de construção estimado: 1,1 UPC (adicionar 0,5 UPC para testes, ambos usando paralelismo=4)

Dependências do Qemu

Exigidas

GLib-2.82.5 e Pixman-0.44.2

Recomendadas

Nota

Se dtc-1.7.2 não estiver instalado, o sistema de construção tentará baixar uma cópia do código-fonte do dtc a partir da Internet.

Opcionais

pipewire-1.2.7 ou PulseAudio-17.0 (pode ser usado em vez de alsa-lib), BlueZ-5.79, cURL-8.12.1, Cyrus SASL-2.1.28, Fuse-3.16.2, GnuTLS-3.8.9, GTK-3.24.48, keyutils-1.6.3, libaio-0.3.113, libusb-1.0.27, libgcrypt-1.11.0, libjpeg-turbo-3.0.1, libseccomp-2.6.0, libssh2-1.11.1, libpng-1.6.46, libtasn1-4.20.0, Linux-PAM-1.7.0, LZO-2.10, Nettle-3.10.1, Mesa-24.3.4, VTE-0.78.4, capstone, ceph, daxctl, JACK, glusterfs, libbpf, libcacard, libcap-ng, libdw, libiscsi, libnfs, libpmem, libssh, libu2f-emu, lzfse, netmap, numactl, rdma-core, SELinux, snappy, spice, usbredir e VDE

Opcionais (Tempo de execução)

elogind-255.17

Opcional (para construir a documentação)

sphinx_rtd_theme-3.0.2

Nota

Esta lista de dependências opcionais não está completa. Veja-se a saída gerada de ./configure --help para uma lista mais completa.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/qemu

Prerrequisitos KVM

Antes de construir o qemu, verifique para ver se o seu processador suporta a tecnologia de virtualização ("VT"):

grep -E '^flags.*(vmx|svm)' /proc/cpuinfo

Se obtiver alguma saída gerada, [então] você tem a tecnologia "VT" ("vmx" para processadores Intel e "svm" para processadores AMD). Você, então, precisa entrar no BIOS do seu sistema e garantir que ela esteja habilitada. Depois de habilitar, reinicialize de volta para sua instância LFS.

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

[*] Virtualization --->                                         [VIRTUALIZATION]
  <*/M>   Kernel-based Virtual Machine (KVM) support                       [KVM]
  # Enable the option for your CPU:
  < /*/M>   KVM for Intel (and compatible) processors support        [KVM_INTEL]
  < /*/M>   KVM for AMD processors support                             [KVM_AMD]

As configurações Intel ou AMD não são ambas exigidas, mas a que corresponder ao processador do seu sistema é exigida.

Para usar o dispositivo de rede de comunicação bridge, conforme explicado abaixo, verifique se bridge-utils-1.7.1 está instalado e se as seguintes opções na configuração do núcleo estão habilitadas:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Universal TUN/TAP device driver support                        [TUN]

Instalação do qemu

A regra de udev do LFS permite somente que o(a) usuário(a) root, os(as) usuários(as) proprietários(as) de uma sessão local de login suportada pela dependência opcional de tempo de execução elogind-255.17 ou os(as) usuários(as) no grupo kvm usem o dispositivo KVM. Como o(a) usuário(a) root, adicione quaisquer usuários(as) não root que poderiam usar o dispositivo KVM, mesmo sem o elogind-255.17 instalado ou remotamente (por meio de uma conexão SSH), ao grupo kvm:

usermod -a -G kvm <nome_de_usuário(a)>

Instale o qemu executando os seguintes comandos:

Nota

O qemu é capaz de executar muitos alvos. O processo de construção também é capaz de construir vários alvos de uma vez em uma lista delimitada por vírgulas atribuída a --target-list. Execute ./configure --help para obter uma lista completa dos alvos disponíveis.

if [ $(uname -m) = i686 ]; then
   QEMU_ARCH=i386-softmmu
else
   QEMU_ARCH=x86_64-softmmu
fi


mkdir -vp build &&
cd        build &&

../configure --prefix=/usr               \
             --sysconfdir=/etc           \
             --localstatedir=/var        \
             --target-list=$QEMU_ARCH    \
             --audio-drv-list=alsa       \
             --disable-pa                \
             --enable-slirp              \
             --docdir=/usr/share/doc/qemu-9.2.2 &&

unset QEMU_ARCH &&

make

qemu usa ninja como um subprocesso ao construir. Para executar os testes, emita: ninja test. Um teste, qtest-x86_64/bios-tables-test, é conhecido por falhar em alguns sistemas.

Agora, como o(a) usuário(a) root:

make install

Mude as permissões e a propriedade de um script auxiliar, que é necessário ao usar o dispositivo de rede de comunicação bridge (veja-se abaixo). Novamente, como o(a) usuário(a) root, emita:

Nota

Você precisa adicionar quaisquer usuários(as) que possam usar o dispositivo de rede de intercomunicação bridge ao grupo kvm, mesmo se o elogind-255.17 estiver instalado.

chgrp kvm  /usr/libexec/qemu-bridge-helper &&
chmod 4750 /usr/libexec/qemu-bridge-helper

Nota

Por conveniência, você possivelmente deseje criar um link simbólico para executar o aplicativo instalado. Por exemplo (como o(a) usuário(a) root):

ln -sv qemu-system-`uname -m` /usr/bin/qemu

Explicações do Comando

--audio-drv-list=alsa: Essa chave configura o controlador de áudio para o ALSA. Veja-se abaixo para habilitar outros controladores de áudio.

--disable-pa: mesmo se pa não estiver na lista --audio-drv-list, o controlador pulseaudio é construído, a menos que desabilitado por esse parâmetro.

--enable-slurp: Essa chave força o sistema de construção a verificar libslirp-4.9.0. Remova-a se você não precisar do suporte -netdev user.

--audio-drv-list=pa --disable-alsa: Essa chave configura o controlador de áudio para o pulseaudio. Para outros controladores, vejam-se as opções da --audio-drv-list na saída gerada de ./configure --help. O controlador padrão de áudio é o OSS. Para habilitar o suporte para ambos, ALSA e pulseaudio, use --audio-drv-list=alsa,pa.

Usando o Qemu

Como usar o qemu significa usar um computador virtual, as etapas para configurar a máquina virtual estão em estreita analogia com aquelas para configurar um computador real. Você precisará tomar decisões a respeito de CPU, memória, disco, dispositivos USB, placa(s) de rede de intercomunicação, tamanho da tela, etc. Assim que o hardware estiver decidido, você terá, por exemplo, de escolher como conectar a máquina à internet e(ou) instalar um sistema operacional. Na seção seguinte, nós mostramos maneiras básicas de realizar essas etapas. Porém, o qemu é muito mais poderoso que isso, e é fortemente aconselhado ler-se a documentação do qemu em /usr/share/doc/qemu-9.2.2/qemu-doc.html.

Nota

É uma prática padrão nomear o computador executando qemu como anfitrião e a máquina emulada executando sob qemu como convidada. Nós usaremos essas notações no texto seguinte.

Nota

As instruções seguintes assumem que o link simbólico opcional, qemu, tenha sido criado. Além disso, o qemu deveria ser executado em um ambiente gráfico. Também é possível usar-se o qemu sem uma parte superior ou via SSH. Veja-se a documentação para as várias possibilidades.

Disco

Um disco virtual pode ser configurado da seguinte maneira:

VDISK_SIZE=50G
VDISK_FILENAME=vdisk.img
qemu-img create -f qcow2 $VDISK_FILENAME $VDISK_SIZE

O tamanho do disco virtual e o nome do arquivo deveriam ser ajustados conforme desejado. O tamanho atual do arquivo estará menor que o especificado, mas será expandido conforme necessário, de forma que é seguro colocar um valor alto.

Operating System

Para instalar um sistema operacional, baixe uma imagem ISO a partir da sua distribuição preferida Linux. Para os propósitos deste exemplo, usaremos Fedora-16-x86_64-Live-LXDE.iso no diretório atual. Execute o seguinte:

qemu -enable-kvm                           \
     -drive file=$VDISK_FILENAME           \
     -cdrom Fedora-16-x86_64-Live-LXDE.iso \
     -boot d                               \
     -m 1G

Siga os procedimentos normais de instalação para a distribuição escolhida. A opção -boot especifica a ordem de inicialização das unidades como uma sequência de caracteres de letras de unidades. As letras de unidade válidas são: a, b (disquete 1 e 2), c (primeiro disco rígido), e d (primeiro CD-ROM). A opção -m é a quantidade de memória a usar-se para a máquina virtual. A escolha depende da carga do anfitrião. As distribuições modernas deveriam estar confortáveis com 4 GB. A opção -enable-kvm permite a aceleração de hardware. Sem essa chave, a emulação é muito mais lenta.

Definindo o hardware virtual

O hardware da máquina virtual é definido pela linha de comando do qemu. Um exemplo de comando é dado abaixo:

qemu -enable-kvm                     \
     -smp 4                          \
     -cpu host                       \
     -m 1G                           \
     -drive file=$VDISK_FILENAME     \
     -cdrom grub-img.iso             \
     -boot order=c,once=d,menu=on    \
     -net nic,netdev=net0            \
     -netdev user,id=net0            \
     -device ac97                    \
     -vga std                        \
     -serial mon:stdio               \
     -name "fedora-16"

Significado das opções da linha de comando

-enable-kvm: habilita o suporte completo à virtualização KVM. Em alguns hardwares, possivelmente seja necessário adicionar a opção não documentada -machine smm=off para a finalidade de habilitar o KVM.

-smp <N>: habilita o multiprocessamento simétrico com <N> CPUs.

-cpu <model>: simula a CPU <model>. A lista dos modelos suportados pode ser obtida com -cpu help.

-drive file=<nome_do_arquivo>: define um disco virtual cuja imagem está armazenada em <nome_de_arquivo>.

-cdrom grub-img.iso: define um arquivo em formato ISO para usar-se como um CDROM. Aqui nós usamos um disco de resgate do GRUB, que possivelmente seja útil se algo der errado em tempo de inicialização.

-boot order=c,once=d,menu=on: define a ordem da inicialização para o BIOS virtual.

-net nic,netdev=<netid>: define uma placa de rede de comunicação conectada ao dispositivo de rede de comunicação com id <netid>.

-netdev user,id=<netid>: define o dispositivo do(a) usuário(a) da rede de comunicação. Essa é uma rede de comunicação local virtual com endereços 10.0.2.0/24, onde o anfitrião tem o endereço 10.0.2.2 e atua como um gateway para a Internet; e com um servidor de nomes no endereço 10.0.2.3 e um servidor SMB no endereço 10.0.2.4 . Um servidor DHCP integrado consegue alocar endereços entre 10.0.2.15 e 10.0.2.31.

-soundhw <modelo>: define o modelo da placa de som. A lista pode ser obtida com -soundhw help.

-vga <tipo>: define o tipo de placa VGA a emular. Para -vga std, se você estiver construindo um núcleo Linux para o convidado, é recomendado habilitar CONFIG_DRM_BOCHS (como parte do núcleo ou um módulo do núcleo) para controlar todos os recursos da placa VGA emulada e CONFIG_FB para exibir o console do Linux nela. Os outros valores <tipo> não estão testados pelos(as) editores(as) e possivelmente exijam dependências adicionais.

-serial mon:stdio: envia a porta serial do convidado (/dev/ttyS0 em convidados Linux), multiplexada com o monitor do qemu, para a entrada e saída padrão do processo do qemu.

-name <nome>: configura o nome do convidado. Esse nome é exibido na legenda da janela do convidado. Possivelmente seja útil se você executar vários convidados ao mesmo tempo.

-drive if=pflash,format=raw,readonly=on,file=/usr/share/qemu/edk2-x86_64-code.fd: Carrega um firmware EDK2 UEFI pré construído, em vez do BIOS padrão do PC. Use essa opção se você quiser inicializar o Sistema Operacional convidado com UEFI.

-drive file=<nome_do_arquivo>,if=virtio: fornece uma interface Virtio para o núcleo do convidado para acessar a imagem do disco, em vez de simular um hardware real de disco. Isso pode melhorar o desempenho de Entrada/Saída do disco, mas exige um controlador Virtio no núcleo do convidado. Use-o em vez de um -drive simples se o núcleo do convidado suportar Virtio. Para construir um núcleo Linux com suporte Virtio para o convidado, use make defconfig && make kvm_guest.config para criar uma configuração inicial do núcleo com as unidades Virtio habilitadas, então faça tua personalização. E, se o núcleo do convidado for Linux, os discos virtuais usando a interface Virtio serão nomeados vdx no devtmpfs, em vez de sdx.

-net nic,netdev=net0,model=virtio-net-pci: fornece uma interface Virtio para o núcleo do convidado para acessar a interface de rede de intercomunicação, em vez de simular uma placa real de interface de rede de intercomunicação. Isso pode melhorar o desempenho de Entrada/Saída da rede de intercomunicação, mas exige um controlador Virtio no núcleo do convidado. Use-o em vez de um -net simples se o núcleo do convidado suportar Virtio.

Controlando a Tela Emulada

Para configurar a resolução da tela emulada para um servidor Xorg executando no sistema Linux convidado, leia-se “Configurações de Ajuste Fino de Exibição”.

Rede de comunicação

A solução acima para rede de intercomunicação permite que o convidado acesse a rede local de intercomunicação por meio do anfitrião (e possivelmente acesse a Internet por meio de roteadores locais), mas o inverso não é verdadeiro. Nem mesmo o anfitrião consegue acessar o convidado, a menos que o encaminhamento de porta esteja habilitado. E, no caso de vários convidados estarem executando, eles não conseguirão se comunicarem uns com os outros. Outros dispositivos de rede de intercomunicação podem ser usados para esse propósito. Por exemplo, existe o dispositivo socket, que permite que vários convidados compartilhem uma rede virtual de intercomunicação comum. Na seção seguinte, nós descrevemos em mais detalhes como configurar o dispositivo bridge, que permite que os convidados apareçam como se estivessem conectados à rede local de intercomunicação. Todos os comandos abaixo deveriam ser executados como o(a) usuário(a) root.

Configure a ponte com o bridge-utils-1.7.1. Somente a(s) interface(s) física(s) deveria(m) ser configurada(s) na inicialização. A(s) interface(s) virtual(is) será(ão) adicionada(s) conforme necessária(s) quando o qemu for iniciado.

Apronte um arquivo exigido de configuração:

install -vdm 755 /etc/qemu &&
echo allow br0 > /etc/qemu/bridge.conf

Na linha de comando do qemu acima, substitua a chave -netdev user,... por -netdev bridge,....

Conteúdo

Aplicativos Instalados: elf2dmp, qemu (link simbólico), qemu-edid, qemu-ga, qemu-img, qemu-io, qemu-keymap, qemu-nbd, qemu-pr-helper, qemu-storage-daemon, qemu-system-<arch> e qemu-vmsr-helper
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/qemu e /usr/share/doc/qemu-9.2.2 (opcional)

Descrições Curtas

elf2dmp

converte arquivos do formato elf para dmp

qemu-edid

é uma ferramenta de teste para o gerador EDID do qemu

qemu-ga

implementa suporte para comandos e eventos QMP (QEMU Monitor Protocol) que terminam e se originam, respectivamente, dentro do convidado usando um agente construído como parte do QEMU

qemu-img

fornece comandos para gerenciar imagens de disco do QEMU

qemu-io

é um aplicativo de diagnóstico e de manipulação para mídia (virtual) de memória. Ainda está em um estágio inicial de desenvolvimento

qemu-keymap

gera mapas de teclado reverso do qemu a partir de mapas de teclado do xkb, que podem ser usados com a chave de linha de comando "-k" do qemu

qemu-nbd

exporta imagens de disco do Qemu usando o protocolo QEMU Disk Network Block Device (NBD)

qemu-pr-helper

implementa o auxiliar persistente de reserva para QEMU

qemu-storage-daemon

permite que um(a) usuário(a) modifique imagens de disco usando o QEMU Monitor Protocol (QMP) sem executar uma MV

qemu-system-x86_64

é o emulador PC System do QEMU

qemu-vmsr-helper

é um auxiliar virtual RAPL MSR para qemu

Parte III. Bibliotecas e Utilitários Gerais

Capítulo 9. Bibliotecas Gerais

As bibliotecas contém código que geralmente é exigido por mais que um aplicativo. Isso tem a vantagem de que cada aplicativo não precisa duplicar código (e arriscar-se a introduzir defeitos); apenas tem de chamar funções a partir das bibliotecas instaladas no sistema. O exemplo mais óbvio de um conjunto de bibliotecas é a Glibc que é instalado durante o livro LFS. Essa contém todas as funções da biblioteca C que os aplicativos usam.

Existem dois tipos de bibliotecas: estáticas e compartilhadas. As bibliotecas compartilhadas (geralmente libXXX.so) são carregadas na memória a partir da cópia compartilhada em tempo de execução (daí o nome). As bibliotecas estáticas (libXXX.a) são na verdade vinculadas ao próprio arquivo executável do aplicativo, dessa forma tornando o arquivo do aplicativo maior. Muitas vezes, você encontrará cópias estáticas e compartilhadas da mesma biblioteca em seu sistema.

Geralmente, você somente precisa instalar as bibliotecas quando estiver instalando o software que precisa da funcionalidade que elas fornecem. No livro BLFS, cada pacote é apresentado com uma lista de dependências (conhecidas). Assim, você consegue descobrir quais bibliotecas precisa ter antes de instalar esse aplicativo. Se você estiver instalando algo sem usar as instruções do BLFS, geralmente o arquivo README ou o INSTALL conterá detalhes dos requisitos do aplicativo.

Existem certas bibliotecas que quase todos(as) precisarão em algum ponto. Neste capítulo, essas e algumas outras estão listadas e é explicado por que você possivelmente queira instalá-las.

Abseil-cpp-20250127.0

Introdução ao Abseil-cpp

O pacote Abseil-cpp contém uma série de bibliotecas projetadas para aumentar a biblioteca padrão C++.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Abseil-cpp

Exigidas

CMake-3.31.5

Instalação do Abseil-cpp

Instale Abseil-cpp executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D ABSL_PROPAGATE_CXX_STD=ON \
      -D BUILD_SHARED_LIBS=ON      \
      -G Ninja ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D ABSL_PROPAGATE_CXX_STD=ON: Esse parâmetro habilita propagar recursos C++ para alvos que linquem para as bibliotecas desse pacote.

-D BUILD_SHARED_LIBS=ON: Esse parâmetro constrói versões compartilhadas das bibliotecas fornecidas por esse pacote em vez de bibliotecas estáticas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libabsl_bad_any_cast_impl.so, libabsl_bad_optional_access.so, libabsl_bad_variant_access.so, libabsl_base.so, libabsl_city.so, libabsl_civil_time.so, libabsl_cord_internal.so, libabsl_cord.so, libabsl_cordz_functions.so, libabsl_cordz_handle.so, libabsl_cordz_info.so, libabsl_cordz_sample_token.so, libabsl_crc32c.so, libabsl_crc_cord_state.so, libabsl_crc_cpu_detect.so, libabsl_crc_internal.so, libabsl_debugging_internal.so, libabsl_decode_rust_punycode.so, libabsl_demangle_internal.so, libabsl_demangle_rust.so, libabsl_die_if_null.so, libabsl_examine_stack.so, libabsl_exponential_biased.so, libabsl_failure_signal_handler.so, libabsl_flags_commandlineflag_internal.so, libabsl_flags_commandlineflag.so, libabsl_flags_config.so, libabsl_flags_internal.so, libabsl_flags_marshalling.so, libabsl_flags_parse.so, libabsl_flags_private_handle_accessor.so, libabsl_flags_program_name.so, libabsl_flags_reflection.so, libabsl_flags_usage_internal.so, libabsl_flags_usage.so, libabsl_graphcycles_internal.so, libabsl_hash.so, libabsl_hashtablez_sampler.so, libabsl_int128.so, libabsl_kernel_timeout_internal.so, libabsl_leak_check.so, libabsl_log_entry.so, libabsl_log_flags.so, libabsl_log_globals.so, libabsl_log_initalize.so, libabsl_log_internal_check_op.so, libabsl_log_internal_conditions.so, libabsl_log_internal_fnmatch.so, libabsl_log_internal_format.so, libabsl_log_internal_globals.so, libabsl_log_internal_log_sink_set.so, libabsl_log_internal_message.so, libabsl_log_internal_nullguard.so, libabsl_log_internal_proto.so, libabsl_log_severity.so, libabsl_log_sink.so, libabsl_low_level_hash.so, libabsl_malloc_internal.so, libabsl_periodic_sampler.so, libabsl_poison.so, libabsl_random_distributions.so, libabsl_random_internal_distribution_test_util.so, libabsl_random_internal_platform.so, libabsl_random_internal_pool_urbg.so, libabsl_random_internal_randen_hwaes_impl.so, libabsl_random_internal_randen_hwaes.so, libabsl_random_internal_randen_slow.so, libabsl_random_internal_randen.so, libabsl_random_internal_seed_material.so, libabsl_random_seed_gen_exception.so, libabsl_random_seed_sequences.so, libabsl_raw_hash_set.so, libabsl_raw_logging_internal.so, libabsl_scoped_set_env.so, libabsl_spinlock_wait.so, libabsl_stacktrace.so, libabsl_statusor.so, libabsl_status.so, libabsl_strerror.so, libabsl_str_format_internal.so, libabsl_strings_internal.so, libabsl_strings.so, libabsl_string_view.so, libabsl_symbolize.so, libabsl_synchronization.so, libabsl_throw_delegate.so, libabsl_time.so, libabsl_time_zone.so, libabsl_utf8_for_code_point.so e libabsl_vlog_config_internal.so
Diretórios Instalados: /usr/include/absl, /usr/lib/cmake/absl

AppStream-1.0.4

Introdução ao AppStream

O pacote AppStream contém uma biblioteca e uma ferramenta que é útil para recuperar metadados de software e torná-los facilmente acessíveis para programas que precisam deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do AppStream

Exigidas

cURL-8.12.1, elogind-255.17, itstool-2.0.7, libxml2-2.13.6, libxmlb-0.3.21 e libyaml-0.2.5

Opcionais

Gi-DocGen-2025.3, Qt-6.8.2, DAPS e libstemmer

Instalação do AppStream

Instale AppStream executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D apidocs=false    \
            -D stemming=false   .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&
mv -v /usr/share/doc/appstream{,-1.0.4}

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D apidocs=false: Essa chave desabilita construir a documentação da API. Remova-a se você tiver Gi-DocGen-2025.3 instalado e desejar regerar a documentação da API. Quando a documentação da API não for regerada, uma cópia pré construída será instalada de qualquer maneira.

-D stemming=false: Essa chave desabilita o suporte de lematização. Remova essa chave se você tiver libstemmer instalado e quiser pesquisas mais rápidas.

-D qt=true: Use essa opção se você tiver Qt-6.8.2 instalado e quiser construir suporte para aplicativos Qt6 nesse pacote.

Configurando AppStream

Arquivos de Configuração

/usr/share/metainfo/org.linuxfromscratch.lfs.xml

Informação de Configuração

AppStream espera um arquivo de meta informações do sistema operacional que descreva a distribuição GNU/Linux. Como o(a) usuário(a) root, crie o arquivo descrevendo o LFS:

install -vdm755 /usr/share/metainfo &&
cat > /usr/share/metainfo/org.linuxfromscratch.lfs.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<component type="operating-system">
  <id>org.linuxfromscratch.lfs</id>
  <name>Linux From Scratch</name>
  <summary>A customized Linux system built entirely from source</summary>
  <description>
    <p>
      Linux From Scratch (LFS) is a project that provides you with
      step-by-step instructions for building your own customized Linux
      system entirely from source.
    </p>
  </description>
  <url type="homepage">https://www.linuxfromscratch.org/lfs/</url>
  <metadata_license>MIT</metadata_license>
  <developer id='linuxfromscratch.org'>
    <name>The Linux From Scratch Editors</name>
  </developer>

  <releases>
    <release version="12.3" type="release" date="2025-03-05">
      <description>
        <p>The development snapshot of the next LFS version.</p>
      </description>
    </release>

    <release version="12.2" type="stable" date="2024-09-01">
      <description>
        <p>Now contains Binutils 2.43.1, GCC-14.2.0, Glibc-2.40,
        and Linux kernel 6.10.</p>
      </description>
    </release>
  </releases>
</component>
EOF

Conteúdo

Aplicativos Instalados: appstreamcli
Bibliotecas Instaladas: libappstream.so
Diretórios Instalados: /usr/include/appstream, /usr/share/doc/appstream-1.0.4 e /usr/share/installed-tests/appstream

Descrições Curtas

appstreamcli

consulta informações a partir dos metadados do AppStream e a partir do índice de componente do AppStream

libappstream.so

contém funções que lidam com consultas de metadados do AppStream e solicitam informações a partir do índice de componente do AppStream

appstream-glib-0.8.3

Introdução ao appstream-glib

O appstream-glib fornece GObjects e métodos auxiliares para facilitar a leitura e a escrita de metadados do AppStream. Ele também fornece uma implementação DOM (Document Object Model) simples que facilita a edição de nós e a conversão de e para a representação XML padronizada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do appstream-glib

Exigidas

cURL-8.12.1, gdk-pixbuf-2.42.12, GTK-3.24.48 e libarchive-3.7.7

Opcionais

docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.34.0, libxslt-1.1.42 e libyaml-0.2.5

Instalação do appstream-glib

Instale appstream-glib executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D rpm=false        &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: appstream-builder, appstream-compose e appstream-util
Bibliotecas Instaladas: libappstream-glib.so
Diretórios Instalados: /usr/include/libappstream-glib, /usr/lib/asb-plugins-5 e /usr/share/installed-tests/appstream-glib

Descrições Curtas

appstream-builder

constrói metadados do AppStream

appdata-compose

gera metadados do AppStream

appstream-util

É uma ferramenta de gerenciamento para appstream-builder

libappstream-glib.so

contém as funções da API

Apr-1.7.5

Introdução à Apr

O Apache Portable Runtime (APR) é uma biblioteca de suporte para o servidor web Apache. Ela fornece um conjunto de interfaces de programação de aplicativos (APIs) que mapeiam para o sistema operacional (SO) subjacente. Onde o sistema operacional não suportar uma função específica, o APR fornecerá uma emulação. Assim, os(as) programadores(as) conseguem usar a APR para tornar um aplicativo portátil em diferentes plataformas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/apr/apr-1.7.5.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8b156d4d0e804cb1f172312ffe087c25

  • Tamanho da transferência: 880 KB

  • Espaço em disco estimado exigido: 11 MB (adicionais 4 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (adicionar 1,7 UPC para testes)

Instalação da APR

Instale Apr executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --with-installbuilddir=/usr/share/apr-1/build &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: apr-1-config
Biblioteca Instalada: libapr-1.so
Diretórios Instalados: /usr/include/apr-1 e /usr/share/apr-1

Descrições Curtas

apr-1-config

é um script de shell usado para recuperar informação a respeito da biblioteca APR no sistema. É normalmente usado para compilar e vincular à biblioteca

libapr-1.so

é a biblioteca Apache Portable Runtime

Apr-Util-1.6.3

Introdução à Apr Util

A Apache Portable Runtime Utility Library fornece uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente. Essa interface de programação de aplicativo garante comportamento previsível, se não idêntico, independentemente de quais bibliotecas estão disponíveis em uma determinada plataforma.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b6e8c9b31d938fe5797ceb0d1ff2eb69

  • Tamanho da transferência: 423 KB

  • Espaço em disco estimado exigido: 7,6 MB (adicionar 1,4 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,3 UPC para testes)

Dependências da Apr Util

Exigidas

Apr-1.7.5

Opcionais

FreeTDS, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, unixODBC-2.3.12 e Berkeley DB (obsoleto)

Instalação da Apr Util

Instale a Apr Util executando os seguintes comandos:

./configure --prefix=/usr       \
            --with-apr=/usr     \
            --with-gdbm=/usr    \
            --with-openssl=/usr \
            --with-crypto &&
make

Para testar os resultados, emita: make -j1 test. Um teste, "testdbm", é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-gdbm=/usr: Essa chave habilita o plugin apr_dbm_gdbm-1.so.

--with-openssl=/usr --with-crypto: Essas chaves habilitam o plugin apr_crypto_openssl-1.so.

--with-berkeley-db=/usr: Se você tiver instalado Berkeley DB (obsoleto), use essa chave para compilar o plugin apr_dbm_db-1.so.

--with-ldap: se você tiver instalado OpenLDAP-2.6.9, [então] use essa chave para compilar o plugin apr_ldap.so.

Conteúdo

Aplicativo Instalado: apu-1-config
Biblioteca Instalada: libaprutil-1.so
Diretório Instalado: /usr/lib/apr-util-1

Descrições Curtas

apu-1-config

é um script APR-util projetado para permitir acesso fácil, via linha de comando, aos parâmetros de configuração do APR-util

libaprutil-1.so

contém funções que fornecem uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente

Aspell-0.60.8.1

Introdução ao Aspell

O pacote Aspell contém um aplicativo interativo de verificação ortográfica e as bibliotecas Aspell. Aspell pode, ou ser usado como uma biblioteca, ou como um verificador ortográfico independente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 187bd142f522ada555c7aa6b9cbf56e6

  • Tamanho da transferência: 3,4 MB

  • Espaço em disco estimado exigido: 41 MB (8 MB adicionais para dicionário inglês)

  • Tempo de construção estimado: 0,4 UPC

Transferências Adicionais

Você precisará baixar pelo menos um dicionário. O dicionário do inglês é fornecido como um exemplo abaixo. Dicionários em muitos outros idiomas podem ser encontrados em https://ftp.gnu.org/gnu/aspell/dict.

Dependências de Aspell

Exigidas

Which-2.23 (para os dicionários)

Instalação do Aspell

Instale Aspell executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
ln -svfn aspell-0.60 /usr/lib/aspell &&

install -v -m755 -d /usr/share/doc/aspell-0.60.8.1/aspell{,-dev}.html &&

install -v -m644 manual/aspell.html/* \
    /usr/share/doc/aspell-0.60.8.1/aspell.html &&

install -v -m644 manual/aspell-dev.html/* \
    /usr/share/doc/aspell-0.60.8.1/aspell-dev.html

Se você não planeja instalar Ispell, então copie o script amarrador ispell:

install -v -m 755 scripts/ispell /usr/bin/

Se você não planeja instalar Spell, então copie o script amarrador spell:

install -v -m 755 scripts/spell /usr/bin/

Explicações do Comando

ln -svfn aspell-0.60 /usr/lib/aspell: Esse comando é útil para configuração de outros aplicativos, como enchant-2.8.2.

Configurando Aspell

Informação de Configuração

Depois que Aspell estiver instalado, você precisa configurar pelo menos um dicionário. Instale o dicionário do inglês executando os seguintes comandos:

tar xf ../aspell6-en-2020.12.07-0.tar.bz2 &&
cd aspell6-en-2020.12.07-0                &&

./configure &&
make

Agora, como o(a) usuário(a) root:

make install

Outros dicionários podem ser instalados com as mesmas instruções.

Conteúdo

Aplicativos Instalados: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config, run-with-aspell, word-list-compress e, opcionalmente, ispell e spell.
Bibliotecas Instaladas: libaspell.so e libpspell.so
Diretórios Instalados: /usr/include/pspell e /usr/lib/aspell-0.60

Descrições Curtas

aspell

é um utilitário que consegue funcionar como substituto do ispell -a, como um verificador ortográfico independente, como um utilitário de teste para testar os recursos do Aspell e como um utilitário para gerenciar dicionários

ispell

é um amarrador em torno de aspell para invocá-lo no modo compatível com ispell

spell

é um amarrador em torno de aspell para invocá-lo no modo compatível com spell

aspell-import

importa dicionários pessoais antigos para Aspell

precat

descomprime um arquivo prezip para a saída gerada padrão

preunzip

descomprime um arquivo prezip

prezip

é um compressor de prefixo delta, usado para comprimir listas de palavras classificadas ou outros arquivos de texto semelhantes

prezip-bin

é chamado pelos vários scripts amarradores para realizar a atual compressão e descompressão

pspell-config

exibe informação a respeito da instalação do libpspell, principalmente para uso em scripts de construção

run-with-aspell

é um script para ajudar a usar Aspell como substituto de ispell

word-list-compress

comprime ou descomprime listas de palavras classificadas para uso com o verificador ortográfico Aspell

libaspell.so

contém funções da API de verificação ortográfica

libpspell.so

é uma interface para a biblioteca libaspell. Toda a funcionalidade de verificação ortográfica agora está em libaspell, mas essa biblioteca está incluída para compatibilidade com versões anteriores

boost-1.87.0

Introdução ao Boost

O Boost fornece um conjunto de bibliotecas gratuitas de fonte C++ portáteis revisadas por pares. Inclui bibliotecas para álgebra linear, geração de números pseudo-aleatórios, multi encadeamento, processamento de imagens, expressões regulares e testes de unidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

Esse pacote extrairá para o diretório boost-1.87.0/.

Informação do Pacote

Dependências de Boost

Recomendadas
Opcionais

ICU-76.1, NumPy-2.2.3 e Open MPI

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/boost

Instalação do Boost

Primeiro, corrija um problema de construção que ocorre na biblioteca stacktrace. Esse problema é específico para sistemas i686.

case $(uname -m) in
   i?86)
      sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \
          -i ./libs/stacktrace/src/exception_headers.h ;;
esac

Esse pacote pode ser construído com várias tarefas executando em paralelo. Nas instruções abaixo, todos os núcleos lógicos disponíveis são usados. Substitua $(nproc) pelo número de núcleos lógicos que você deseja usar se não quiser usar todos. Instale Boost executando os seguintes comandos:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j$(nproc) threading=multi link=shared

Para executar os testes de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd.

Para executar os testes de regressão de cada biblioteca, emita pushd status; ../b2 -j$(nproc); popd. Alguns testes possivelmente falhem. Eles levam um tempo muito longo (mais de 119 UPC em -j4) e usam uma quantidade muito grande de espaço em disco (46 GB).

Nota

O Boost instala muitos diretórios versionados em /usr/lib/cmake. Se uma nova versão do Boost for instalada sobre uma versão anterior, [então] os diretórios do cmake mais antigos precisam ser explicitamente removidos. Para fazer isso, execute como o(a) usuário(a) root:

rm -rf /usr/lib/cmake/[Bb]oost*

antes de instalar a nova versão.

Agora, como o(a) usuário(a) root:

./b2 install threading=multi link=shared

Explicações do Comando

threading=multi: Esse parâmetro garante que Boost seja construído com suporte a multi encadeamento.

link=shared: Esse parâmetro garante que somente bibliotecas compartilhadas sejam criadas, exceto "libboost_exception" e "libboost_test_exec_monitor" que são criadas como estáticas. A maioria das pessoas não precisará das bibliotecas estáticas, e a maioria dos aplicativos que usam o Boost usa somente os cabeçalhos. Omita esse parâmetro se precisar das bibliotecas estáticas.

--with-python=python3: Essa chave garante que o "Python3" seja usado se o "Python2" estiver instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libboost_atomic.so, libboost_charconv.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy313.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python313.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_url.so, libboost_wave.so e libboost_wserialization.so
Diretório Instalado: /usr/include/boost

Descrições Curtas

libboost_*.so

contém bibliotecas que fornecem uma variedade de funções, incluindo envolucradores para NumPy, álgebra linear, geração de números pseudoaleatórios, multi camadeamento, processamento de imagens, expressões regulares, testes de unidade, localidades, JSON, registro, gráficos e depuração

brotli-1.1.0

Introdução ao Brotli

Brotli fornece um algoritmo de compressão sem perdas de propósito geral que comprime dados usando uma combinação de uma variante moderna do algoritmo LZ77, codificação Huffman e modelagem de contexto de segunda ordem. As bibliotecas dele são usadas principalmente para fontes WOFF2 em páginas da web.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/google/brotli/archive/v1.1.0/brotli-1.1.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3a6a3dba82a3604792d3cb0bd41bca60

  • Tamanho da transferência: 500 KB

  • Espaço em disco estimado exigido: 33 MB (com ligações python3)

  • Tempo de construção estimado: 0,3 UPC (com ligações python3; paralelismo=4)

Dependências do Brotli

Exigidas

CMake-3.31.5

Opcionais

pytest-8.3.4 (para testagem de ligações Python3)

Instalação do Brotli

Instale o brotli executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..  &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Se desejado, construa as ligações Python3:

cd .. &&
sed "/c\/.*\.[ch]'/d;\
     /include_dirs=\[/\
     i libraries=['brotlicommon','brotlidec','brotlienc']," \
    -i setup.py &&
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Instale as ligações Python3 como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user Brotli

Para testar a ligação Python3, emita: pytest.

Explicações do Comando

sed ... -i setup.py: Impede que setup.py reconstrua o pacote inteiro novamente; use as bibliotecas já instaladas para a ligação Python3 em vez disso.

Conteúdo

Aplicativos Instalados: brotli
Bibliotecas Instaladas: libbrotlicommon.so, libbrotlidec.so e libbrotlienc.so
Diretórios Instalados: /usr/include/brotli e /usr/lib/python3.13/site-packages/Brotli-1.1.0.dist-info (se você construiu e instalou as ligações Python3)

Descrições Curtas

brotli

consegue comprimir ou descomprimir arquivos ou testar a integridade de arquivos comprimidos

libbrotlicommon{-static.a,.so}

é a biblioteca de dicionário comum Brotli

libbrotlidec{-static.a,.so}

é a biblioteca do decodificador Brotli

libbrotlienc{-static.a,.so}

é a biblioteca do codificador comum Brotli

CLucene-2.3.3.4

Introdução ao CLucene

CLucene é uma versão C++ do Lucene, um mecanismo de pesquisa de texto de alto desempenho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências de CLucene

Exigidas

CMake-3.31.5

Recomendadas

Instalação do CLucene

Instale CLucene executando os seguintes comandos:

patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch &&

sed -i '/Misc.h/a #include <ctime>' src/core/CLucene/document/DateTools.cpp &&

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_CONTRIBS_LIB=ON .. &&
make

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D BUILD_CONTRIBS_LIB=ON: Essa variável cmake habilita construir a biblioteca contribs do CLucene necessária para executar aplicativos que usam analisadores específicos de texto de idioma como o LibreOffice, por exemplo.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libclucene-contribs-lib.so, libclucene-core.so e libclucene-shared.so
Diretórios Instalados: /usr/include/CLucene e /usr/lib/CLuceneConfig.cmake

dbus-glib-0.112

Introdução à GLib do D-Bus

O pacote D-Bus GLib contém interfaces GLib para a API D-Bus.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências da GLib do D-Bus

Exigidas

dbus-1.16.0 e GLib-2.82.5

Opcionais

GTK-Doc-1.34.0

Instalação da GLib do D-Bus

Instale D-Bus GLib executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static &&
make

Para testar os resultados, emita: make check. Observe que testes mais abrangentes podem ser executados seguindo o mesmo método usado nas instruções do D-Bus, o que exige construir o pacote duas vezes.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: dbus-binding-tool
Biblioteca Instalada: libdbus-glib-1.so
Diretórios Instalados: /usr/share/gtk-doc/html/dbus-glib

Descrições Curtas

dbus-binding-tool

é uma ferramenta usada para interagir com a API do D-Bus

libdbus-glib-1.so

contém funções de interface GLib para a API do D-Bus

Double-conversion-3.3.1

Introdução ao Double-conversion

O pacote Double-conversion contém uma biblioteca que facilita as rotinas binário-para-decimal e decimal-para-binário para duplos IEEE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Double-conversion

Exigidas

CMake-3.31.5

Instalação do Double-conversion

Instale Double-conversion executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_SHARED_LIBS=ON      \
      -D BUILD_TESTING=ON          \
      ..                          &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D BUILD_SHARED_LIBS=ON: Essa chave força o cmake a construir uma versão compartilhada da biblioteca em vez da versão estática.

-D BUILD_TESTING=ON: Essa chave constrói os aplicativos de teste.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libdouble-conversion.so
Diretórios Instalados: /usr/include/double-conversion

Descrições Curtas

libdouble-conversion.so

fornece rotinas binário-para-decimal e decimal-para-binário para duplos IEEE

duktape-2.7.0

Introdução ao duktape

duktape é um mecanismo embutível Javascript, com foco em portabilidade e pegada compacta.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://duktape.org/duktape-2.7.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b3200b02ab80125b694bae887d7c1ca6

  • Tamanho da transferência: 1003 KB

  • Espaço em disco estimado exigido: 25 MB

  • Tempo de construção estimado: 0,3 UPC

Instalação do duktape

Instale duktape executando os seguintes comandos:

sed -i 's/-Os/-O2/' Makefile.sharedlibrary
make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr

Agora, como o(a) usuário(a) root:

make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libduktape.so e libduktaped.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libduktape.so

é um mecanismo embutível Javascript

libduktaped.so

é uma versão de depuração de libduktape.so

enchant-2.8.2

Introdução ao enchant

O pacote enchant fornece uma interface genérica para várias bibliotecas existentes de verificação ortográfica.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de enchant

Exigidas

GLib-2.82.5

Recomendadas
Opcionais

dbus-glib-0.112, Doxygen-1.13.2, Hspell, Hunspell, Nuspell, Voikko e unittest-cpp (exigido para os testes)

Instalação do enchant

Instale enchant executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/enchant-2.8.2 &&
make

Para executar os testes, unittest-cpp precisa ser instalado e a opção --enable-relocatable passada para o "configure" acima. Se essas condições estiverem presentes, [então] os testes podem ser executados com make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Configurando enchant

Arquivos de Configuração

~/.enchant e /usr/share/enchant/enchant.ordering

Informação de Configuração

Você consegue testar sua instalação e configuração criando um arquivo de teste e executando os seguintes comandos (você pode substituir o dicionário en_GB por qualquer outro baixado ao instalar Aspell-0.60.8.1):

cat > /tmp/test-enchant.txt << "EOF"
Tel me more abot linux
Ther ar so many commads
EOF

enchant-2 -d en_GB -l /tmp/test-enchant.txt &&
enchant-2 -d en_GB -a /tmp/test-enchant.txt

Você verá uma lista de palavras com erros ortográficos seguida por uma lista de alternativas para elas.

Veja mais detalhes na página de manual do "enchant".

Conteúdo

Aplicativos Instalados: enchant-2 e enchant-lsmod-2
Bibliotecas Instaladas: libenchant-2.so
Diretórios Instalados: /usr/include/enchant-2, /usr/lib/enchant-2, /usr/share/enchant e /usr/share/doc/enchant-2.8.2

Descrições Curtas

enchant-2

é um verificador ortográfico

enchant-lsmod-2

lista estruturas de retaguarda, idiomas e dicionários disponíveis

libenchant-2.so

contém funções da API da interface de verificação ortográfica

Exempi-2.6.5

Introdução ao Exempi

Exempi é uma implementação do XMP (Extensible Metadata Platform da Adobe).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://libopenraw.freedesktop.org/download/exempi-2.6.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 51fe14c2a5fa44816ba8187c6ad87d78

  • Tamanho da transferência: 2,7 MB

  • Espaço em disco estimado exigido: 289 MB (adicionar 236 MB para testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 0,6 UPC para testes; ambos usando paralelismo=4)

Dependências de Exempi

Exigidas

Boost-1.87.0

Opcionais

Valgrind-3.24.0

Instalação do Exempi

Se você pretende executar os testes de regressão, primeiro remova um teste que depende de um SDK proprietário da Adobe:

sed -i -r '/^\s?testadobesdk/d' exempi/Makefile.am &&
autoreconf -fiv

Instale Exempi executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: exempi
Biblioteca Instalada: libexempi.so
Diretório Instalado: /usr/include/exempi-2.0

Descrições Curtas

exempi

é uma ferramenta de linha de comando para manipular metadados XMP

libexempi.so

é uma biblioteca usada para analisar os metadados XMP

fftw-3.3.10

Introdução ao fftw

FFTW é uma biblioteca de sub-rotina C para calcular a transformada discreta de Fourier (DFT) em uma ou mais dimensões, de tamanho arbitrário de entrada gerada e de dados reais e complexos (bem como de dados pares/ímpares, ou seja, as transformações discretas de cosseno/seno ou DCT/DST).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.fftw.org/fftw-3.3.10.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8ccbf6a5ea78a16dbc3e1306e234cc5c

  • Tamanho da transferência: 4,0 MB

  • Espaço em disco estimado exigido: 59 MB

  • Tempo de construção estimado: 1,6 UPC (adicionar 3,4 UPC para testes, ambos usando paralelismo=4)

Instalação da fftw

Nota

Construímos a fftw três vezes para diferentes bibliotecas em diferentes precisões numéricas: o ponto flutuante de precisão dupla padrão, a versão mais antiga de 32 bits (precisão única) chamada "float", que sacrifica a precisão pela velocidade, e o duplo longo, que oferece maior precisão ao custo de execução mais lenta.

A primeira construção é para aritmética de precisão dupla. Instale a fftw executando os seguintes comandos:

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    &&
make

Para testar os resultados, emita: make check. Em sistemas de 32 bits, os testes podem tomar substancialmente mais tempo que tomaria em máquinas de 64 bits.

Agora, como o(a) usuário(a) root:

make install

Agora construa precisão única:

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    \
            --enable-float   &&
make

Como o(a) usuário(a) root:

make install

Finalmente, construa precisão dupla longa:

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-long-double &&
make

Como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-shared --disable-static: Use bibliotecas compartilhadas em vez de bibliotecas estáticas.

--enable-threads: Isso habilita libfftw3_threads.so para ser compilada. Ela é usada, por exemplo, pelo plugin gimp proveniente de G'MIC.

--enable-{sse2,avx,avx2}: Essas habilitam construir as rotinas otimizadas usando instruções SSE2, AVX e AVX2. O FFTW verificará se essas rotinas podem realmente ser usadas na CPU atual quando a biblioteca FFTW for carregada, de forma que uma construção da FFTW com essas rotinas habilitadas ainda possa ser executada em uma CPU sem SSE2, AVX ou AVX2. Essas opções não são compatíveis com --enable-long-double.

--enable-float: Isso habilita construir a biblioteca que usa aritmética de ponto flutuante de precisão simples. É mais rápido, mas menos preciso que a biblioteca padrão de precisão dupla. A biblioteca será chamada libfftw3f.so necessária para PulseAudio-17.0.

--enable-long-double: Isso habilita construir a biblioteca que usa aritmética de ponto flutuante longa-dupla de maior precisão. A biblioteca será chamada libfftw3l.so.

--enable-avx512: Isso habilita construir as rotinas otimizadas usando instruções AVX512F. O FFTW verificará se essas rotinas podem realmente ser usadas na CPU atual quando a biblioteca FFTW for carregada, de forma que uma construção da FFTW com essas rotinas habilitadas ainda possa executar em uma CPU sem o AVX512F. Use essa opção se a construção da FFTW será usada em uma CPU com AVX512F. Essa opção não é compatível com --enable-long-double.

Conteúdo

Aplicativos Instalados: fftw-wisdom e fftw-wisdom-to-conf
Bibliotecas Instaladas: libfftw3.so, libfftw3_threads.so, libfftw3f.so, libfftw3f_threads.so, libfftw3l.so e libfftw3l_threads.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

fftw-wisdom

é um utilitário para gerar arquivos de sabedoria FFTW, que contém informação salva a respeito do como otimizadamente calcular transformações (Fourier) de vários tamanhos

fftw-wisdom-to-conf

é um utilitário para gerar rotinas de configuração C a partir de arquivos de sabedoria FFTW, onde os últimos contém informação salva a respeito do como otimizadamente calcular transformações (Fourier) de vários tamanhos

libfftw3.so

é a biblioteca Fast Fourier Transform

libfftw3_threads.so

é a biblioteca encadeada Fast Fourier Transform

libfftw3f.so

é a biblioteca Fast Fourier Transform de precisão simples, descrita como float por razões históricas

libfftw3f_threads.so

é a biblioteca encadeada de precisão simples Fast Fourier Transform

libfftw3l.so

é a biblioteca longa dupla Fast Fourier Transform

libfftw3l_threads.so

é a biblioteca encadeada longa dupla Fast Fourier Transform

fmt-11.1.4

Introdução ao fmt

O pacote fmt é uma biblioteca de formatação de fonte aberto que fornece uma alternativa rápida e segura ao stdio do C e ao iostreams do C++.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/fmtlib/fmt/archive/11.1.4/fmt-11.1.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 10c2ae163accd3b82e6b8b4dff877645

  • Tamanho da transferência: 688 KB

  • Espaço em disco estimado exigido: 44 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes)

Instalação do fmt

Instale fmt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_INSTALL_LIBDIR=/usr/lib \
      -D BUILD_SHARED_LIBS=ON          \
      -D FMT_TEST=OFF                  \
      -G Ninja ..                      &&
ninja

Se você tiver habilitado testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D FMT_TEST=OFF: Essa chave inicializa os testes do pacote. Configure para ON se você desejar executar testes.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libfmt.so
Diretórios Instalados: /usr/include/fmt e /usr/lib/cmake/fmt

GLib-2.82.5

Introdução ao GLib

O pacote GLib contém bibliotecas de baixo nível úteis para fornecer manipulação de estrutura de dados para C, amarradores de portabilidade e interfaces para funcionalidades em tempo de execução, como um loop de eventos, camadas, carregamento dinâmico e um sistema de objetos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/glib/2.82/glib-2.82.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 87c7641e80b23a05b8ab506d52c970e3

  • Tamanho da transferência: 5,3 MB

  • Espaço em disco estimado exigido: 229 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: 0,7 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4)

Transferências Adicionais

GObject Introspection (Recomendado)

Remendo para Seleção de Nível de Registro (Opcional)

Dependências de GLib

Recomendadas
Opcionais

Cairo-1.18.2 (para alguns testes do GObject Introspection), dbus-1.16.0 (para alguns testes), Fuse-3.16.2 e bindfs (ambos necessários para um teste), GDB-16.2 (para ligações), Gjs-1.82.1 (para alguns testes do GObject Introspection), GTK-Doc-1.34.0 (para documentação do GObject Introspection), docbook-xml-4.5, docbook-xsl-nons-1.79.2, Gi-DocGen-2025.3 (para construir documentação de API), glib-networking-2.80.1 (para alguns testes, mas isso é uma dependência circular), Mako-1.3.9 e Markdown-3.7 (ambos para g-ir-doc-tool) e sysprof

Dependências Adicionais de Tempo de Execução

Instalação do GLib

Se desejado, aplique o remendo opcional. Em muitos casos, os aplicativos que usam essa biblioteca, direta ou indiretamente, por meio de outras bibliotecas, tais como GTK-3.24.48, emitem numerosos avisos quando executados a partir da linha de comando. Esse remendo habilita o uso de uma variável de ambiente, GLIB_LOG_LEVEL, que suprime mensagens indesejadas. O valor da variável é um dígito que corresponde a:

1 Alerta
2 Crítico
3 Erro
4 Aviso
5 Informe

Por exemplo, export GLIB_LOG_LEVEL=4 pulará a saída gerada de mensagens Warning e Notice (e mensagens de Informação/Depuração se estiverem ativadas). Se GLIB_LOG_LEVEL não estiver definida, a saída gerada normal de mensagem não será afetada.

patch -Np1 -i ../glib-skip_warnings-1.patch

Atenção

Se uma versão anterior da glib estiver instalada, [então] mova os cabeçalhos para fora do caminho, de modo que os pacotes posteriores não encontrem conflitos:

if [ -e /usr/include/glib-2.0 ]; then
    rm -rf /usr/include/glib-2.0.old &&
    mv -vf /usr/include/glib-2.0{,.old}
fi

Instale GLib executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                  \
      --prefix=/usr             \
      --buildtype=release       \
      -D introspection=disabled \
      -D glib_debug=disabled    \
      -D man-pages=enabled      \
      -D sysprof=disabled       &&
ninja

A suíte de teste da GLib exige desktop-file-utils para alguns testes. No entanto, desktop-file-utils exige a GLib para a finalidade de compilar; portanto, você precisa primeiro instalar a GLib e então executar a suíte de teste.

Como o(a) usuário(a) root, instale esse pacote pela primeira vez para permitir construir o GObject Introspection:

ninja install

Construa GObject Introspection:

tar xf ../../gobject-introspection-1.82.0.tar.xz &&

meson setup gobject-introspection-1.82.0 gi-build \
            --prefix=/usr --buildtype=release     &&
ninja -C gi-build

Para testar os resultados do GObject Introspection, emita: ninja -C gi-build test.

Como o(a) usuário(a) root, instale o GObject Introspection para gerar os dados de introspecção das bibliotecas GLib (requeridos por vários pacotes usantes do Glib, especialmente alguns pacotes do GNOME):

ninja -C gi-build install

Agora gere os dados de introspecção:

meson configure -D introspection=enabled &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s|$| / 'glib-' + meson.project_version()|" \
    -i ../docs/reference/meson.build                        &&
meson configure -D documentation=true                       &&
ninja

Como o(a) usuário(a) root, instale esse pacote novamente para os dados de introspecção (e, opcionalmente, a documentação):

ninja install

Você deveria agora instalar desktop-file-utils-0.28 e shared-mime-info-2.4 e proceder à execução da suíte de teste.

Atenção

Não execute a suíte de teste como root ou alguns testes falharão inesperadamente e deixarão alguns diretórios não compatíveis com FHS na hierarquia /usr.

Para testar os resultados, depois de ter instalado os pacotes, emita: LC_ALL=C ninja test como um(a) usuário(a) não-root.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D man-pages=enabled: Essa chave faz com que a construção crie e instale as páginas de manual do pacote.

-D glib_debug=disabled: Essa chave faz com que a construção não inclua algumas verificações caras para depuração nos programas e bibliotecas construídos.

-D sysprof=disabled: Essa chave desabilita o suporte de rastreamento para sysprof. Remova essa opção se você quiser o suporte de rastreamento. Observe que se o sysprof não estiver instalado, remover essa opção fará com que o sistema de construção baixe uma cópia do sysprof a partir da Internet.

Conteúdo

Conteúdo do GLib

Aplicativos Instalados: gapplication, gdbus, gdbus-codegen, gi-compile-repository, gi-decompile-typelib, gi-inspect-typelib gio, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester e gtester-report
Bibliotecas Instaladas: libgio-2.0.so, libgirepository-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so e libgthread-2.0.so
Diretórios Instalados: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/gio, /usr/lib/glib-2.0, /usr/share/glib-2.0 e /usr/share/doc/glib-2.82.5 (opcional)

Conteúdo do GObject Introspection

Aplicativo Instalado: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool (opcional), g-ir-generate, g-ir-inspect e g-ir-scanner
Bibliotecas Instaladas: libgirepository-1.0.so e _giscanner.cpython-313-<arch>-linux-gnu.so
Diretórios Instalados: /usr/include/gobject-introspection-1.0, /usr/lib/girepository-1.0, /usr/lib/gobject-introspection, /usr/share/gir-1.0 e /usr/share/gobject-introspection-1.0

Descrições Curtas

gapplication

pode ser usado para iniciar aplicativos e para enviar mensagens para instâncias já em execução de outros aplicativos

gdbus

é uma ferramenta simples usada para trabalhar com objetos D-Bus

gdbus-codegen

é usado para gerar código e (ou) documentação para uma ou mais interfaces D-Bus

gi-compile-repository

converte um ou mais arquivos GIR em um ou mais arquivos typelib

gi-decompile-typelib

é um descompilador GIR que usa a API do repositório

gi-inspect-typelib

é um utilitário que fornece informações acerca de um typelib do GI

gio

é um utilitário que torna muitos recursos do GIO disponíveis a partir da linha de comando

gio-querymodules

é usado para criar um arquivo giomodule.cache nos diretórios listados. Esse arquivo lista os pontos implementados de extensão para cada módulo que tenha sido encontrado

glib-compile-resources

é usado para ler a descrição do recurso a partir de um arquivo e os arquivos aos quais ele referencia para criar um pacote binário de recurso que seja adequado para uso com a API GResource

glib-compile-schemas

é usado para compilar todos os arquivos de esquema XML do GSettings em um diretório para um arquivo binário com o nome gschemas.compiled que pode ser usado pelo GSettings

glib-genmarshal

é um utilitário de geração de código marechal C para encerramentos GLib

glib-gettextize

é uma variante do utilitário de internacionalização gettext

glib-mkenums

é um utilitário de geração de descrição de enumeração em linguagem C

gobject-query

é um pequeno utilitário que desenha uma árvore de tipos

gresource

oferece uma interface simples de linha de comando para GResource

gsettings

oferece uma interface simples de linha de comando para GSettings

gtester

é um utilitário de execução de teste

gtester-report

é um utilitário de formatação de informe de teste

libgio-2.0.so

é uma biblioteca que fornece classes úteis para E/S de uso geral, rede de intercomunicação, IPC, configurações e outras funcionalidades de aplicativos de alto nível

libgirepository-2.0.so

é uma biblioteca que fornece acesso a typelibs e dados de introspecção que descrevem APIs da C

libglib-2.0.so

é uma biblioteca de utilitários portável de uso geral, que fornece muitos tipos úteis de dados, macros, conversões de tipo, utilitários de sequências de caracteres, utilitários de arquivo, uma abstração de mainloop e assim por diante

libgmodule-2.0.so

fornece API portável para carregar dinamicamente módulos

libgobject-2.0.so

fornece o sistema de tipo base do GLib e a classe de objeto

libgthread-2.0.so

é uma biblioteca básica para retro compatibilidade; costumava ser a biblioteca de camadas do GLib, mas as funcionalidades foram mescladas na libglib-2.0

g-ir-annotation-tool

cria ou extrai dados de anotação a partir de typelibs do GI

g-ir-compiler

é uma contraparte de gi-compile-repository para a antiga API libgirepository-1.0

g-ir-doc-tool

gera arquivos Mallard que podem ser visualizados com yelp ou renderizados para HTML com yelp-build originários das ferramentas yelp

g-ir-inspect

é uma contraparte de gi-inspect-typelib para a antiga API libgirepository-1.0

g-ir-generate

é uma contraparte de gi-decompile-typelib para a antiga API libgirepository-1.0

g-ir-scanner

é uma ferramenta que gera arquivos XML GIR analisando cabeçalhos e introspectando bibliotecas baseadas em GObject

libgirepository-1.0.so

é uma contraparte de libgirepository-2.0 com a antiga API 1.0

GLibmm-2.66.7

Introdução ao GLibmm

O pacote GLibmm é um conjunto de ligações C++ para a GLib.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/glibmm/2.66/glibmm-2.66.7.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c6edf4cc986adec2a6d21e7423bad7d1

  • Tamanho da transferência: 8,4 MB

  • Espaço em disco estimado exigido: 83 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com testes)

Dependências do GLibmm

Exigidas

GLib-2.82.5 e libsigc++-2.12.1

Opcionais

Doxygen-1.13.2, glib-networking-2.80.1 (para testes), GnuTLS-3.8.9 (para testes), libxslt-1.1.42 e mm-common

Instalação do GLibmm

Instale GLibmm executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgiomm-2.4.so, libglibmm-2.4.so e libglibmm_generate_extra_defs-2.4.so
Diretórios Instalados: /usr/lib/g{io,lib}mm-2.4 e /usr/include/g{io,lib}mm-2.4

Descrições Curtas

libgiomm-2.4.so

contém as classes da API do GIO

libglibmm-2.4.so

contém as classes da API do GLib

GLibmm-2.82.0

Introdução ao GLibmm

O pacote GLibmm é um conjunto de ligações C++ para GLib. Essa versão é parte de uma nova API para suporte ao gtkmm-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/glibmm/2.82/glibmm-2.82.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b24b3ee3e7943c779f1193cce6dda34e

  • Tamanho da transferência: 9,1 MB

  • Espaço em disco estimado exigido: 95 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes)

Dependências de GLibmm

Exigidas

GLib-2.82.5 e libsigc++-3.6.0

Opcionais

Doxygen-1.13.2, glib-networking-2.80.1 (para testes), GnuTLS-3.8.9 (para testes), libxslt-1.1.42 e mm-common

Instalação do GLibmm

Instale GLibmm executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgiomm-2.68.so, libglibmm-2.68.so e libglibmm_generate_extra_defs-2.68.so
Diretórios Instalados: /usr/lib/g{io,lib}mm-2.68 e /usr/include/g{io,lib}mm-2.68

Descrições Curtas

libgiomm-2.68.so

contém as classes da API do GIO

libglibmm-2.68.so

contém as classes da API do GLib

GMime-3.2.7

Introdução ao GMime

O pacote GMime contém um conjunto de utilitários para analisar e criar mensagens usando o Multipurpose Internet Mail Extension (MIME), conforme definido pelos RFCs aplicáveis. Veja-se o website do GMime para os RFCs fornecidos. Isso é útil, pois fornece uma API que adere à especificação MIME o mais próximo possível, além de fornecer a programadores(as) uma interface extremamente fácil de usar para as funções da API.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gmime/3.2/gmime-3.2.7.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7ecd9aa75e0cd2e8668206b1d53df874

  • Tamanho da transferência: 2,1 MB

  • Espaço em disco estimado exigido: 25 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (com testes)

Dependências de GMime

Exigidas

GLib-2.82.5 (GObject Introspection recomendado) e libgpg-error-1.51

Opcionais

DocBook-utils-0.6.14, GPGME-1.24.2, GTK-Doc-1.34.0, libnsl-2.0.1, Vala-0.56.17 e Gtk# (exige Mono)

Instalação do GMime

Instale GMime executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgmime-3.0.so
Diretórios Instalados: /usr/include/gmime-3.0 e /usr/share/gtk-doc/html/gmime-3.0

Descrições Curtas

libgmime-3.0.so

contém funções de API usadas por aplicativos que precisam obedecer aos padrões MIME

gmmlib-22.5.5

Introdução ao gmmlib

O pacote gmmlib contém a biblioteca Graphics Memory Management da Intel, que fornece memória específica do dispositivo e funções de gerenciamento de buffer para o Intel Media Driver para VAAPI e para o Intel Graphics Computer Runtime para OpenCL (TM).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia).

Dependências do gmmlib

Exigidas

CMake-3.31.5

Instalação do gmmlib

Instale gmmlib executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_TYPE=Release        \
      -G Ninja                     \
      -W no-dev ..                 &&
ninja

A suíte de teste normalmente é executada por ninja, a menos que -D RUN_TEST_SUITE=NO seja passado para cmake.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libigdgmm.so
Diretórios Instalados: /usr/include/igdgmm

Descrições Curtas

libigdgmm.so

contém funções que fornecem funções de gerenciamento de memória para controladores Intel de gráficos

gsl-2.8

Introdução ao Gsl

A GNU Scientific Library (GSL) é uma biblioteca numérica para programadores(as) C e C++. Ela fornece uma ampla gama de rotinas matemáticas, tais como geradores de números aleatórios, funções especiais e ajuste de mínimos quadrados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/gsl/gsl-2.8.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 182ec03204f164e67238c9116591a37d

  • Tamanho da transferência: 8,6 MB

  • Espaço em disco estimado exigido: 223 MB (com testes, sem documentos)

  • Tempo de construção estimado: 1,0 UPC (Usando paralelismo=4; com testes, sem documentos)

Dependências do Gsl

Opcionais

sphinx_rtd_theme-3.0.2

Instalação do Gsl

Instale Gsl executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver sphinx_rtd_theme-3.0.2 instalado, [então] construa a documentação com:

make html

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, [então] instale-a (como root) com:

mkdir                   /usr/share/doc/gsl-2.8 &&
cp -R doc/_build/html/* /usr/share/doc/gsl-2.8

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: gsl-config, gsl-histogram e gsl-randist
Bibliotecas Instaladas: libgslcblas.so e libgsl.so
Diretório Instalado: /usr/include/gsl e /usr/share/doc/gsl-2.8

Descrições Curtas

gsl-config

é um script de shell para obter o número da versão e sinalizadores do compilador da biblioteca Gsl instalada

gsl-histogram

é um aplicativo de demonstração para a GNU Scientific Library que calcula um histograma a partir de dados obtidos a partir do stdin

gsl-randist

é um aplicativo de demonstração para a GNU Scientific Library que gera amostras aleatórias a partir de várias distribuições

libgslcblas.so

contém funções que implementam uma interface C para subaplicativos básicos de álgebra linear

libgsl.so

contém funções que fornecem uma coleção de rotinas numéricas para computação científica

gspell-1.14.0

Introdução ao gspell

O pacote gspell fornece uma API flexível para adicionar verificação ortográfica a um aplicativo GTK+.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do gspell

Exigidas

enchant-2.8.2, ICU-76.1 e GTK-3.24.48

Opcionais

GLib-2.82.5 (com GObject Introspection), GTK-Doc-1.34.0, Vala-0.56.17, Valgrind-3.24.0 e Hunspell (para testes)

Instalação do gspell

Instale gspell executando os seguintes comandos:

mkdir gspell-build &&
cd    gspell-build &&

meson setup --prefix=/usr --buildtype=release -D gtk_doc=false .. &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados em uma sessão do X. Um teste, test-checker, é conhecido por falhar se o pacote externo Hunspell não estiver instalado.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D gtk_doc=false: Impede construir a documentação. Remova isso se você tiver GTK-Doc instalado e desejar construir a documentação.

Conteúdo

Aplicativos Instalados: gspell-app1
Bibliotecas Instaladas: libgspell-1.so
Diretórios Instalados: /usr/include/gspell-1 e /usr/share/gtk-doc/html/gspell-1.0

Descrições Curtas

gspell-app1

verifica a ortografia de um texto inserido em uma janela

libgspell-1.so

é a biblioteca da API do gspell

highway-1.2.0

Introdução ao highway

O pacote highway contém uma biblioteca C++ que fornece intrínsecos SIMD/vetoriais portáveis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do highway

Exigidas

CMake-3.31.5

Instalação do highway

Instale highway executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_TESTING=OFF         \
      -D BUILD_SHARED_LIBS=ON      \
      -G Ninja ..                  &&
ninja

Esse pacote vem com uma suíte de teste, porém ela exige gtest, que não está no BLFS.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D BUILD_TESTING=OFF: Esse parâmetro desabilita a suíte de teste de ser construída porque gtest não faz parte do BLFS. Sem esse parâmetro, CMake baixará esse pacote durante o processo de configuração. Se você desejar executar os testes, instale gtest e, então,remova esse parâmetro.

-D BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas em vez das versões estáticas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libhwy.so, libhwy_contrib.so e libhwy_test.so
Diretórios Instalados: /usr/include/hwy e /usr/lib/cmake/hwy

Descrições Curtas

libhwy.so

contém funções que fornecem intrínsecos SIMD/vetoriais portáveis

libhwy_contrib.so

contém várias adições ao Highway, incluindo uma série de rotinas de produto escalar, imagem, matemática e ordenação

libhwy_test.so

contém auxiliares de teste para Highway

icu-76.1

Introdução ao ICU

O pacote International Components for Unicode (ICU) é um conjunto maduro e amplamente usado de bibliotecas C/C++ que fornece suporte Unicode e Globalização para aplicativos de software. ICU é amplamente portável e dá aos aplicativos os mesmos resultados em todas as plataformas.

Atenção

Atualizar esse pacote para uma nova versão principal (por exemplo, da 72.1 para a 76.1) exigirá a reconstrução de muitos outros pacotes. Se alguns pacotes que usam as bibliotecas construídas por icu4c-76 forem reconstruídos, eles usarão as novas bibliotecas enquanto os pacotes atuais usarão as bibliotecas anteriores. Se o carregador de aplicativos do Linux (/usr/lib/ld-linux-x86-64.so.2) determinar que as bibliotecas antiga e nova são necessárias, e um símbolo (nome do dado ou função) existir em ambas as versões da biblioteca, todas as referências ao símbolo serão resolvidas para a versão que aparece anteriormente na sequência em largura do gráfico de dependência. Isso pode resultar na falha do aplicativo se a definição dos dados ou o comportamento da função referida pelo símbolo diferir entre duas versões. Para evitar o problema, os(as) usuários(as) precisarão reconstruir todos os pacotes vinculados a uma biblioteca do ICU o mais rápido possível, assim que o ICU for atualizado para uma nova versão principal.

Para determinar quais bibliotecas externas são necessárias (direta ou indiretamente) por um aplicativo ou biblioteca, execute:

ldd <aplicativo ou biblioteca> 

ou para ver somente programas e bibliotecas que diretamente usem uma biblioteca:

readelf -d <aplicativo ou biblioteca> | grep NEEDED

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ICU

Opcionais

Doxygen-1.13.2 (para documentação)

Instalação do ICU

Nota

Esse pacote se expande para o diretório icu.

Instale ICU executando os seguintes comandos:

cd source                 &&

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: derb, escapesrc, genbrk, genccode, gencfu, gencmn, gencnval, gendict, gennorm2, genrb, gensprep, icu-config, icuexportdata, icuinfo, icupkg, makeconv, pkgdata e uconv
Bibliotecas Instaladas: libicudata.so, libicui18n.so, libicuio.so, libicutest.so, libicutu.so e libicuuc.so
Diretórios Instalados: /usr/include/unicode, /usr/lib/icu e /usr/share/icu

Descrições Curtas

derb

desmonta um pacote de recursos

escapesrc

converte caracteres escapados \u em caracteres Unicode

genbrk

compila arquivos-fonte do ICU de regras de iteração de quebra em arquivos de dados binários

genccode

gera C ou código de montagem específico da plataforma a partir de um arquivo de dados do ICU

gencfu

lê em Unicode definições confundíveis de caracteres e escreve os dados binários

gencmn

gera um arquivo de dados do ICU mapeável em memória

gencnval

compila o arquivo de apelidos do conversor

gendict

compila listas de palavras em dicionários de tentativas de sequências de caracteres do ICU

gennorm2

constrói arquivos de dados binários com dados de normalização Unicode

genrb

compila um pacote de recursos

gensprep

compila dados StringPrep a partir de arquivos filtrados RFC 3454

icu-config

gera saída das opções de construção do ICU

icuinfo

gera saída da informação de configuração relativa ao ICU atual

icupkg

extrai ou modifica um arquivamento ".dat" do ICU

makeconv

compila uma tabela de conversor

pkgdata

empacota dados para uso pelo ICU

uconv

converte dados a partir de um codificador para outro

libicudata.so

é a biblioteca de dados

libicui18n.so

é a biblioteca de internacionalização ("i18n")

libicuio.so

é a biblioteca de Entrada/Saída do ICU ("stdio" Unicode)

libicutest.so

é a biblioteca de teste

libicutu.so

é a biblioteca do utilitário da ferramenta

libicuuc.so

é a biblioteca comum

inih-58

Introdução ao inih

Esse pacote é um analisador simples de arquivo ".INI" escrito em C.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/benhoyt/inih/archive/r58/inih-r58.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5c9725320ad2c79e0b1f76568bd0ff24

  • Tamanho da transferência: 20 KB

  • Espaço em disco estimado exigido: 724 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do inih

Instale o inih executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libinih.so e libINIReader.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libinih.so

é a biblioteca principal do inih

libINIReader.so

é a biblioteca do analisador inih

Jansson-2.14

Introdução ao Jansson

O pacote Jansson contém uma biblioteca usada para codificar, decodificar e manipular dados JSON.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Jansson

Primeiro corrija um dos testes:

sed -e "/DT/s;| sort;| sed 's/@@libjansson.*//' &;" \
    -i test/suites/api/check-exports

Instale jansson executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libjansson.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libjansson.so

contém uma API para codificação, decodificação e manipulação de dados JSON

JSON-C-0.18

Introdução ao JSON-C

O JSON-C implementa um modelo de objeto de contagem de referência que permite construir facilmente objetos JSON em C, produzi-los como sequências de caracteres formatadas JSON e analisar sequências de caracteres formatadas JSON de volta na representação C de objetos JSON.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do JSON-C

Exigidas

CMake-3.31.5

Opcionais (para documentação)

Doxygen-1.13.2 e Graphviz-12.2.1 (para ferramenta dot)

Instalação do JSON-C

Instale JSON-C executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_STATIC_LIBS=OFF     \
      .. &&
make

Se tiver instalado Doxygen-1.13.2 e Graphviz-12.2.1, você consegue construir a documentação executando o seguinte comando:

doxygen doc/Doxyfile

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -d -vm755 /usr/share/doc/json-c-0.18 &&
install -v -m644 doc/html/* /usr/share/doc/json-c-0.18

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libjson-c.so
Diretórios Instalados: /usr/include/json-c

Descrições Curtas

libjson-c.so

contém as funções da API JSON-C

JSON-GLib-1.10.6

Introdução ao JSON GLib

O pacote JSON GLib é uma biblioteca que oferece suporte à serialização e desserialização para o formato JavaScript Object Notation (JSON) descrito pela RFC 4627.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do JSON-GLib

Exigidas

GLib-2.82.5 (GObject Introspection exigido se construir GNOME)

Opcionais

GTK-Doc-1.34.0

Instalação do JSON GLib

Instale o JSON GLib executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Um teste, node, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=disabled: Adicione essa opção se você tiver GTK-Doc-1.34.0 instalado e não desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: json-glib-format e json-glib-validate
Biblioteca Instalada: libjson-glib-1.0.so
Diretórios Instalados: /usr/{include,libexec,share{,/installed-tests}/json-glib-1.0} e /usr/share/gtk-doc/html/json-glib

Descrições Curtas

json-glib-format

é uma interface de linha de comando simples para formatar dados JSON

json-glib-validate

é uma interface de linha de comando simples para validar dados JSON

libjson-glib-1.0.so

contém as funções da API da JSON GLib

keyutils-1.6.3

Introdução ao keyutils

Keyutils é um conjunto de utilitários para gerenciar o recurso de retenção de chave no núcleo, que pode ser usado por sistemas de arquivos, dispositivos de bloco e muito mais para obter e reter as chaves de autorização e de encriptação exigidas para realizar operações seguras.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Keyutils

Opcionais

lsb-tools-0.12 (referido pela suíte de teste)

Configuração do Núcleo

Se executar a suíte de teste, alguns testes precisarão dos seguintes recursos do núcleo habilitados:

Security options --->
  [*] Enable access key retention support                                 [KEYS]
  [*]   Large payload keys                                            [BIG_KEYS]
  [*]   Diffie-Hellman operations on retained keys           [KEY_DH_OPERATIONS]

-*- Cryptographic API --->                                              [CRYPTO]
  Public-key cryptography --->
    <*/M> RSA (Rivest-Shamir-Adleman)                               [CRYPTO_RSA]
  Hashes, digests, and MACs --->
    <*/M> SHA-1                                                    [CRYPTO_SHA1]
  [*] Asymmetric (public-key cryptographic) key type --->  [ASYMMETRIC_KEY_TYPE]
    <*> Asymmetric public-key crypto algorithm subtype
                                            ...  [ASYMMETRIC_PUBLIC_KEY_SUBTYPE]
    # If not built into the kernel, [SYSTEM_TRUSTED_KEYRING] won't show up;
    # building as a module won't work:
    <*>   X.509 certificate parser                     [X509_CERTIFICATE_PARSER]
  Certificates for signature checking --->
    [*] Provide system-wide ring of trusted keys        [SYSTEM_TRUSTED_KEYRING]
    [*]   Provide a keyring to which extra trustable keys may be added
                                                ...  [SECONDARY_TRUSTED_KEYRING]
    [*] Provide system-wide ring of blacklisted keys  [SYSTEM_BLACKLIST_KEYRING]

Library routines --->
  Crypto library routines --->
    # If not built into the kernel, [BIG_KEYS] won't show up;
    # building as a module won't work:
    <*> ChaCha20-Poly1305 AEAD support (8-byte nonce library version)
                                              ...  [CRYPTO_LIB_CHACHA20POLY1305]

Instalação do keyutils

Instale keyutils executando os seguintes comandos:

make

Agora, como o(a) usuário(a) root:

make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install

A suíte de teste só pode executar depois de instalar-se esse pacote. Para testar os resultados, emita, como o(a) usuário(a) root:

make -k test

Se lsb-tools-0.12 não estiver instalado, a suíte de teste produzirá algumas linhas reclamando que o comando lsb_release não está disponível, mas não afetará o resultado do teste.

Explicações do Comando

NO_ARLIB=1: Esse sinalizador do "make" desabilita a instalação da biblioteca estática.

Configurando keyutils

Arquivos de Configuração

/etc/request-key.conf e /etc/request-key.d/*

Conteúdo

Aplicativos Instalados: keyctl, key.dns_resolver e request-key
Biblioteca Instalada: libkeyutils.so
Diretório Instalado: /etc/keyutils, /etc/request-key.d e /usr/share/keyutils

Descrições Curtas

keyctl

controla o recurso de gerenciamento de chave com uma variedade de subcomandos

key.dns_resolver

é invocado por request-key em nome do núcleo quando os serviços do núcleo (como NFS, CIFS e AFS) precisam realizar uma pesquisa de nome de dispositivo e o núcleo não tem a chave armazenada em cache. Não é destinado, ordinariamente, a ser chamado diretamente

request-key

é invocado pelo núcleo quando o núcleo é solicitado por uma chave que não tem imediatamente disponível. O núcleo cria uma chave temporária e, em seguida, chama esse aplicativo para instanciá-lo. Não é destinado a ser chamado diretamente

libkeyutils.so

contém a instanciação da API da biblioteca "keyutils"

libaio-0.3.113

Introdução ao libaio

O pacote libaio é um recurso assíncrono de Entrada/Saída ("Entrada/Saída assíncrona" ou "aio") que possui uma API e um conjunto de recursos mais ricos que o recurso simples de Entrada/Saída assíncrona POSIX. Essa biblioteca, "libaio", fornece a API nativa do Linux para Entrada/Saída assíncrona. O recurso de Entrada/Saída assíncrona POSIX exige essa biblioteca para a finalidade de fornecer recursos de Entrada/Saída assíncronas acelerados pelo núcleo, assim como os aplicativos que exigem a API de Entrada/Saída assíncrona nativa do Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do libaio

Primeiro, desabilite a instalação da biblioteca estática:

sed -i '/install.*libaio.a/s/^/#/' src/Makefile

Construa a libaio executando o seguinte comando:

make

Para testar os resultados, emita: make partcheck.

Agora, instale o pacote como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libaio.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libaio.so

é a biblioteca "libaio"

libarchive-3.7.7

Introdução ao libarchive

A biblioteca libarchive fornece interface única para leitura/gravação de vários formatos de compressão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libarchive

Opcionais

libxml2-2.13.6, LZO-2.10, Nettle-3.10.1 e pcre2-10.45

Instalação do libarchive

Instale o libarchive executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Ainda como o(a) usuário(a) root, crie um link simbólico de forma que nós consigamos usar bsdunzip como unzip, em vez de depender do pacote Unzip não mantido:

ln -sfv bsdunzip /usr/bin/unzip

Nota

Conforme discutido em Codificação Errada do Nome do Arquivo, se o arquivamento Zip a ser extraído contiver qualquer arquivo com um nome contendo caracteres não latinos, você precisará especificar manualmente a codificação desses caracteres ou eles serão transformados em sequências ilegíveis no nome do arquivo extraído. Por exemplo, se um arquivamento Zip criado com o WinZip, archive.zip, contiver um arquivo nomeado com caracteres chineses simplificados, a codificação deverá ser CP936 e a opção -I cp936 deverá ser usada. Ou seja, o comando para se extrair o arquivamento deverá ser unzip -I cp936 archive.zip.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--without-xml2: Essa chave configura "expat" para suporte ao formato de arquivamento "xar" em vez do preferido "libxml2" se ambos os pacotes estiverem instalados.

--with-nettle: Essa chave configura Nettle para suporte a criptografia em vez do OpenSSL.

Conteúdo

Aplicativos Instalados: bsdcat, bsdcpio, bsdtar e bsdunzip
Bibliotecas Instaladas: libarchive.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

bsdcat

expande arquivos para a saída gerada padrão

bsdcpio

é uma ferramenta similar a cpio

bsdtar

é uma ferramenta similar à GNU tar

bsdunzip

é uma ferramenta similar a unzip do Info-ZIP

libarchive.so

é uma biblioteca que consegue criar e ler vários formatos de arquivamento de fluxo

libassuan-3.0.2

Introdução ao libassuan

O pacote libassuan contém uma biblioteca de comunicação entre processos usada por alguns dos outros pacotes relacionados ao GnuPG. O principal uso da libassuan é o de permitir que um cliente interaja com um servidor não persistente. A libassuan não é, entretanto, limitada ao uso com servidores e clientes do GnuPG. Ela foi projetado para ser flexível o suficiente para atender às demandas de muitos ambientes baseados em transações com servidores não persistentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c6f1bf4bd2aaa79cd1635dcc070ba51a

  • Tamanho da transferência: 580 KB

  • Espaço em disco estimado exigido: 6,5 MB (com testes; adicionar 3,4 MB para documentação PDF)

  • Tempo de construção estimado: 0,1 UPC (com testes e documentação HTML)

Dependências do libassuan

Exigidas

libgpg-error-1.51

Opcionais

texlive-20240312 (ou install-tl-unx)

Instalação do libassuan

Instale libassuan executando os seguintes comandos:

./configure --prefix=/usr &&
make                   &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi &&
makeinfo --plaintext       -o doc/assuan.txt           doc/assuan.texi

Os comandos acima constroem a documentação nos formatos html e texto simples. Se você deseja construir formatos alternativos da documentação, [então] você precisa ter texlive-20240312 instalado e emitir os seguintes comandos:

make -C doc pdf ps

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&

install -v -dm755 /usr/share/doc/libassuan-3.0.2/html &&
install -v -m644 doc/assuan.html/* \
                    /usr/share/doc/libassuan-3.0.2/html &&
install -v -m644 doc/assuan_nochunks.html \
                    /usr/share/doc/libassuan-3.0.2      &&
install -v -m644 doc/assuan.{txt,texi} \
                    /usr/share/doc/libassuan-3.0.2

Se você construiu formatos alternativos da documentação, [então] instale-os executando os seguintes comandos como o(a) usuário(a) root:

install -v -m644 doc/assuan.{pdf,ps,dvi} \
                  /usr/share/doc/libassuan-3.0.2

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libassuan.so
Diretório Instalado: /usr/share/doc/libassuan-3.0.2

Descrições Curtas

libassuan.so

é uma biblioteca de comunicação entre processos que implementa o protocolo "Assuan"

libatasmart-0.19

Introdução ao libatasmart

O pacote libatasmart é uma biblioteca de informe de disco. Ela suporta somente um subconjunto da funcionalidade S.M.A.R.T. do ATA.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://0pointer.de/public/libatasmart-0.19.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 53afe2b155c36f658e121fe6def33e77

  • Tamanho da transferência: 248 KB

  • Espaço em disco estimado exigido: 3 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/libatasmart

Instalação do libatasmart

Instale libatasmart executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/libatasmart-0.19 install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: skdump e sktest
Biblioteca Instalada: libatasmart.so
Diretório Instalado: /usr/share/doc/libatasmart-0.19

Descrições Curtas

skdump

é um utilitário que informa a situação do disco

sktest

é um utilitário para emitir testes de disco

libatasmart.so

contém as funções da API S.M.A.R.T do ATA

libatomic_ops-7.8.2

Introdução ao libatomic_ops

libatomic_ops fornece implementações para operações atômicas de atualização de memória em várias arquiteturas. Isso permite o uso direto delas em código razoavelmente portátil. Ao contrário de pacotes semelhantes anteriores, esse considera explicitamente a semântica de barreira de memória e permite a construção de código que envolve sobrecarga mínima ao longo de uma variedade de arquiteturas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do libatomic_ops

Instale libatomic_ops executando os seguintes comandos:

./configure --prefix=/usr  \
            --enable-shared  \
            --disable-static \
            --docdir=/usr/share/doc/libatomic_ops-7.8.2 &&
make

Para verificar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-shared: Essa chave habilita construir as bibliotecas compartilhadas libatomic_ops.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libatomic_ops.so e libatomic_ops_gpl.so
Diretório Instalado: /usr/include/libatomic_ops e /usr/share/doc/libatomic_ops-7.8.2

Descrições Curtas

libatomic_ops.so

contém funções para operações atômicas de memória

libblockdev-3.3.0

Introdução ao libblockdev

libblockdev é uma biblioteca C que suporta GObject Introspection para manipulação de dispositivos de bloco. Ela tem uma arquitetura baseada em plug-in onde cada tecnologia (como LVM, Btrfs, MD RAID, Swap,...) é implementada em um plug-in separado, possivelmente com várias implementações (por exemplo, usando CLI do LVM ou a nova API DBus do LVM).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libblockdev

Exigidas

GLib-2.82.5 (GObject Introspection exigido para GNOME)

Recomendadas
Opcionais

btrfs-progs-6.13, GTK-Doc-1.34.0, JSON-GLib-1.10.6, mdadm-4.3, parted-3.6, smartmontools-7.4, volume_key, ndctl e targetcli (para testes)

Instalação do libblockdev

Instale o libblockdev executando os seguintes comandos:

./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --with-python3     \
            --without-escrow   \
            --without-gtk-doc  \
            --without-lvm      \
            --without-lvm_dbus \
            --without-nvdimm   \
            --without-tools    &&
make

A suíte de teste exige targetcli, que não é parte do BLFS.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--without-escrow: Essa chave permite construir libblockdev sem volume_key instalado.

--without-lvm --without-lvm_dbus --without-tools: A combinação dessas chaves permite construir libblockdev sem parted-3.6 instalado. Remova-as se você tiver instalado parted-3.6 e desejar construir os utilitários lvm-cache-stats ou vfat-resize, ou desejar que libblockdev suporte volumes lógicos.

--without-btrfs --without-mdraid --without-tools: A combinação dessas chaves permite construir libblockdev sem libbytesize-2.11 instalado. A opção --without-mdraid quebrará UDisks-2.10.1, de forma que não a use, a menos que você realmente saiba o que está fazendo.

--without-crypto: Essa chave permite construir libblockdev sem cryptsetup-2.7.5 ou keyutils-1.6.3 instalado. Essa chave quebrará UDisks-2.10.1, de forma que não a use, a menos que você realmente saiba o que está fazendo.

--without-dm --without-lvm --without-lvm_dbus --without-mpath: A combinação dessas chaves permite construir libblockdev sem LVM2-2.03.30 instalado. As opções --without-dm e --without-mpath não estão nas instruções fornecidas pelo livro, porque LVM2-2.03.30 é exigido para cryptsetup-2.7.5 e cryptsetup-2.7.5 é uma dependência recomendada de libblockdev de qualquer maneira.

--without-nvme: Essa chave permite construir libblockdev sem libnvme-1.11.1 instalado. Essa chave quebrará UDisks-2.10.1, de forma que não a use, a menos que você realmente saiba o que está fazendo.

Conteúdo

Aplicativos Instalados: lvm-cache-stats e vfat-resize (ambos opcionais)
Bibliotecas Instaladas: libbd_btrfs.so, libbd_crypto.so, libbd_dm.so, libbd_fs.so, libbd_loop.so, libbd_lvm.so (opcional), libbd_lvm-dbus.so (opcional), libbd_mdraid.so, libbd_mpath.so, libbd_nvme.so, libbd_part.so, libbd_swap.so, libbd_utils.so e libblockdev.so
Diretórios Instalados: /etc/libblockdev, /usr/include/blockdev e /usr/share/gtk-doc/html/libblockdev (opcional)

Descrições Curtas

lvm-cache-stats

imprime estatísticas relativas a caches relativos a Volumes Lógicos do LVM

vfat-resize

redimensiona sistemas de arquivos vfat

libbytesize-2.11

Introdução ao libbytesize

O pacote libbytesize é uma biblioteca que facilita as operações comuns com tamanhos em bytes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libbytesize

Exigidas

pcre2-10.45 e Pygments-2.19.1

Opcionais

GTK-Doc-1.34.0, pocketlint (módulo Python para um teste) e polib (módulo Python para um teste)

Instalação do libbytesize

Instale libbytesize executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você tiver os módulos opcionais Python instalados, [então] os testes de regressão podem ser executados com: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: bscalc
Biblioteca Instalada: libbytesize.so
Diretórios Instalados: /usr/include/bytesize e /usr/lib/python3.13/site-packages/bytesize

Descrições Curtas

bscalc

converte de uma unidade maior, como MB ou TB, de volta para um valor em bytes

libbytesize.so

contém funções usadas para lidar com operações comuns de leitura/gravação com tamanhos em bytes

libclc-19.1.7

Introdução ao libclc

O pacote libclc contém uma implementação dos requisitos da biblioteca da linguagem de programação C do OpenCL, conforme especificado pela Especificação OpenCL 1.1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de libclc

Exigidas

SPIRV-LLVM-Translator-19.1.4

Instalação do libclc

Instale libclc executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -G Ninja ..                  &&
ninja

Para testar os resultados, emita: ninja test. Dois testes, external-calls-clspv--.bc e external-calls-clspv64--.bc, são conhecidos por falharem devido à sintaxe inválida.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/clc e /usr/share/clc

libcloudproviders-0.3.6

Introdução ao libcloudproviders

O pacote libcloudproviders contém uma biblioteca que fornece uma API DBus que permite que clientes de sincronização de armazenamento em nuvem exponham os serviços deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libcloudproviders

Exigidas

GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17

Opcionais

GTK-Doc-1.34.0

Instalação do libcloudproviders

Instale libcloudproviders executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D enable-gtk-doc: Use essa chave se você tiver GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libcloudproviders.so
Diretórios Instalados: /usr/include/cloudproviders

Descrições Curtas

libcloudproviders.so

contém funções que fornecem uma API DBus para permitir que clientes de sincronização de armazenamento em nuvem exponham os serviços deles

libdaemon-0.14

Introdução ao libdaemon

O pacote libdaemon é uma biblioteca C leve que facilita a escrita de processos de segundo plano UNIX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libdaemon

Opcionais

Doxygen-1.13.2 e Lynx-2.9.2

Instalação do libdaemon

Instale libdaemon executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver Doxygen instalado e desejar construir a documentação da API, [então] emita o seguinte comando:

make -C doc doxygen

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/libdaemon-0.14 install

Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/html/* /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/man/man3/* /usr/share/man/man3

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdaemon.so
Diretórios Instalados: /usr/include/libdaemon e /usr/share/doc/libdaemon-0.14

Descrições Curtas

libdaemon.so

contém as funções da API libdaemon

libdisplay-info-0.2.0

Introdução ao libdisplay-info

O pacote libdisplay-info fornece um conjunto de funções de alto e baixo nível para acessar informações detalhadas de Extended Display Identification Data (EDID).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de libdisplay-info

Exigidas

hwdata-0.392

Instalação do libdisplay-info

Instale libdisplay-info executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, execute ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdisplay-info.so
Diretórios Instalados: /usr/include/libdisplay-info

libgcrypt-1.11.0

Introdução ao libgcrypt

O pacote libgcrypt contém uma biblioteca criptográfica de uso geral baseada no código usado no GnuPG. A biblioteca fornece uma interface de alto nível para blocos de construção criptográficos usando uma API extensível e flexível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 321c4975cfd6a496f0530b65a673f9a4

  • Tamanho da transferência: 4,0 MB

  • Espaço em disco estimado exigido: 146 MB (com testes)

  • Tempo de construção estimado: 0,6 UPC (com documentação; adicionar 0,4 UPC para testes)

Dependências do libgcrypt

Exigidas

libgpg-error-1.51

Opcionais

texlive-20240312 (ou install-tl-unx)

Instalação do libgcrypt

Instale libgcrypt executando os seguintes comandos:

./configure --prefix=/usr &&
make                      &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext     -o doc/gcrypt.txt           doc/gcrypt.texi

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -dm755  /usr/share/doc/libgcrypt-1.11.0 &&
install -v -m644    README doc/{README.apichanges,fips*,libgcrypt*} \
                    /usr/share/doc/libgcrypt-1.11.0 &&

install -v -dm755   /usr/share/doc/libgcrypt-1.11.0/html &&
install -v -m644 doc/gcrypt.html/* \
                    /usr/share/doc/libgcrypt-1.11.0/html &&
install -v -m644 doc/gcrypt_nochunks.html \
                    /usr/share/doc/libgcrypt-1.11.0      &&
install -v -m644 doc/gcrypt.{txt,texi} \
                    /usr/share/doc/libgcrypt-1.11.0

Explicações do Comando

--with-capabilities: Essa opção habilita o suporte a "libcap2". Observe que isso quebra o cryptsetup-2.7.5

Conteúdo

Aplicativos Instalados: dumpsexp, hmac256 e mpicalc
Biblioteca Instalada: libgcrypt.so
Diretório Instalado: /usr/share/doc/libgcrypt-1.11.0

Descrições Curtas

dumpsexp

é uma ferramenta de depuração para expressões "S"

hmac256

é uma implementação autônoma HMAC-SHA-256 usada para calcular um código de autenticação HMAC-SHA-256

mpicalc

é uma calculadora RPN (Reverse Polish Notation)

libgcrypt.so

contém as funções criptográficas da API

libgpg-error-1.51

Introdução ao libgpg-error

O pacote libgpg-error contém uma biblioteca que define valores comuns de erro para todos os componentes do GnuPG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do libgpg-error

Instale libgpg-error executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 -D README /usr/share/doc/libgpg-error-1.51/README

Conteúdo

Aplicativos Instalados: gpg-error, gpgrt-config e yat2m
Biblioteca Instalada: libgpg-error.so
Diretórios Instalados: /usr/share/common-lisp/source/gpg-error, /usr/share/libgpg-error e /usr/share/doc/libgpg-error-1.51

Descrições Curtas

gpg-error

é usado para determinar códigos de erro da libgpg-error

gpgrt-config

é uma ferramenta ao estilo pkg-config para consultar as informações relacionadas à versão instalada da libgpg-error

yat2m

extrai páginas de manual a partir de um fonte Texinfo

libgpg-error.so

contém as funções da API da libgpg-error

libgsf-1.14.53

Introdução ao libgsf

O pacote libgsf contém uma biblioteca usada para fornecer uma camada extensível de abstração de entrada/saída para formatos estruturados de arquivo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgsf

Exigidas

GLib-2.82.5 e libxml2-2.13.6

Recomendadas
Opcionais

7zip-24.09 (para testes), GTK-Doc-1.34.0, Valgrind-3.24.0 (para testes) e unzip (para testes)

Instalação do libgsf

Instale libgsf executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check. Dois testes relacionados ao Valgrind-3.24.0 são conhecidos por falharem.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: gsf, gsf-office-thumbnailer e gsf-vba-dump
Biblioteca Instalada: libgsf-1.so
Diretórios Instalados: /usr/include/libgsf-1, /usr/share/gtk-doc/html/gsf e /usr/share/thumbnailers

Descrições Curtas

gsf

é um utilitário simples de arquivamento, um pouco semelhante ao tar(1)

gsf-office-thumbnailer

é usado internamente por aplicativos GNOME, como Nautilus, para gerar miniaturas de vários tipos de arquivos de aplicativos de escritório

gsf-vba-dump

é usado para extrair macros do Visual Basic for Applications a partir de arquivos

libgsf-1.so

contém as funções da API libgsf

libgudev-238

Introdução ao libgudev

O pacote libgudev contém ligações GObject para a libudev.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Exigidas

GLib-2.82.5 (GObject Introspection exigido para GNOME)

Opcionais

GTK-Doc-1.34.0 e umockdev-0.19.1 (para testagem)

Instalação do libgudev

Instale libgudev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use essa opção se o GTK-Doc estiver instalado e você desejar construir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libgudev-1.0.so
Diretórios Instalados: /usr/include/gudev-1.0 e /usr/share/gtk-doc/html/gudev

Descrições Curtas

libgudev-1.0.so

é uma biblioteca amarradora baseada em GObject para a libudev

libgusb-0.4.9

Introdução ao libgusb

O pacote libgusb contém os amarradores GObject para a libusb-1.0 que tornam fácil fazer controle assíncrono, transferências em massa e de interrupções com cancelamento adequado e integração em um loop principal.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgusb

Exigidas

JSON-GLib-1.10.6 e libusb-1.0.27

Recomendadas
Opcionais

Gi-DocGen-2025.3 e umockdev-0.19.1 (para cobertura completa de teste)

Instalação do libgusb

Instale libgusb executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D docs=false       &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -E "/output|install_dir/s/('libgusb)'/\1-0.4.9'/" \
    -i ../docs/meson.build                            &&
meson configure -D docs=true                          &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D docs=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativos Instalados: gusbcmd
Biblioteca Instalada: libgusb.so
Diretórios Instalados: /usr/include/gusb-1 e /usr/share/doc/libgusb-0.4.9 (se "gi-docgen" for usado)

Descrições Curtas

gusbcmd

é uma ferramenta de depuração para a biblioteca "libgusb"

libgusb.so

contém as funções da API da libgusb

libical-3.0.19

Introdução ao libical

O pacote libical contém uma implementação dos protocolos e formatos de dados "iCalendar".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libical

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

Doxygen-1.13.2 (para a documentação da API), Graphviz-12.2.1 (para a documentação da API), GTK-Doc-1.34.0 (para a documentação da API), ICU-76.1, PyGObject-3.50.0 (para alguns testes) e Berkeley DB (obsoleto)

Instalação do libical

Instale libical executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr  \
      -D CMAKE_BUILD_TYPE=Release   \
      -D SHARED_ONLY=yes            \
      -D ICAL_BUILD_DOCS=false      \
      -D ICAL_BUILD_EXAMPLES=false  \
      -D GOBJECT_INTROSPECTION=true \
      -D ICAL_GLIB_VAPI=true        \
      .. &&
make

Se tiver Doxygen-1.13.2, Graphviz-12.2.1 e GTK-Doc-1.34.0 instalados e desejar construir a documentação da API, você deveria remover a chave -D ICAL_BUILD_DOCS=false e emitir:

make docs

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação da API, [então] instale emitindo, como usuário(a) root:

install -vdm755 /usr/share/doc/libical-3.0.19/html &&
cp -vr apidocs/html/* /usr/share/doc/libical-3.0.19/html

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-D SHARED_ONLY=yes: Essa chave é usada para a finalidade de construir somente as bibliotecas compartilhadas.

-D ICAL_BUILD_DOCS=false: Essa chave evita construir a documentação do GTK. Remova se você desejar construir a documentação.

-D ICAL_BUILD_EXAMPLES=false: Essa chave impede construir exemplos. Remova se você quiser construí-los.

-D GOBJECT_INTROSPECTION=true: Essa chave é usada para gerar ligações de meta dados do GObject.

-D ICAL_GLIB_VAPI=true: Essa chave é usada para a finalidade de construir ligações para Vala-0.56.17.

-D USE_BUILTIN_TZDATA=yes: Essa chave é usada para a finalidade de construir usando teus próprios dados de fuso horário.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so e libicalvcal.so
Diretório Instalado: /usr/include/libical, /usr/include/libical-glib, /usr/lib/cmake/LibIcal, /usr/libexec/libical, /usr/share/gtk-doc/html/libical-glib (opcional) e /usr/share/doc/libical-3.0.19/html

Descrições Curtas

libical.so

contém as funções da API da libical

libical_cxx.so

contém as ligações C++ da libical

libical-glib.so

contém as ligações "glib" da libical

libicalss.so

é uma biblioteca que te permite armazenar os dados do componente "iCal" no disco em uma variedade de maneiras

libicalss_cxx.so

contém as ligações C++ da libicalss

libicalvcal.so

é uma interface C de "vCard"/"vCalendar"

libidn-1.42

Introdução ao libidn

libidn é um pacote projetado para manuseio de sequência internacionalizada de caracteres baseado nas especificações Stringprep, Punycode e IDNA definidas pelo grupo de trabalho "Internationalized Domain Names" (IDN) da Internet Engineering Task Force (IETF), usado para nomes de domínio internacionalizados. Isso é útil para converter dados originários da representação nativa do sistema em UTF-8; para transformar sequências de caracteres Unicode em sequências de caracteres ASCII; para permitir que os aplicativos usem certos rótulos de nome ASCII (começando com um prefixo especial) para representar rótulos de nome não ASCII; e para converter nomes inteiros de domínio para e de formulário "ASCII Compatible Encoding" (ACE).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libidn/libidn-1.42.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fe061a95ae23979150a692d102dce4ad

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 19 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Dependências do libidn

Opcionais

Emacs-30.1, GTK-Doc-1.34.0, OpenJDK-23.0.2, Valgrind-3.24.0 e Mono

Instalação do libidn

Instale libidn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, execute:

pushd tests &&
  make check &&
popd 

Agora, como o(a) usuário(a) root:

make install &&

find doc -name "Makefile*" -delete           &&
rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} &&
mkdir -v       /usr/share/doc/libidn-1.42     &&
cp -r -v doc/* /usr/share/doc/libidn-1.42

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--enable-java: Use essa chave para habilitar a construção da implementação Java da libidn. Observe que o OpenJDK-23.0.2 precisa estar instalado para usar essa opção.

Conteúdo

Aplicativo Instalado: idn
Biblioteca Instalada: libidn.so
Diretórios Instalados: /usr/share/doc/libidn-1.42 e /usr/share/gtk-doc/html/libidn

Descrições Curtas

idn

é uma interface de linha de comando para a biblioteca de nomes internacionalizados de domínio

libidn.so

contém uma implementação genérica "Stringprep" que faz normalização Unicode 3.2 NFKC, mapeamento e proibição de caracteres e manuseio bidirecional de caracteres. Perfis para "Nameprep", "iSCSI", "SASL" e "XMPP" estão incluídos, bem como suporte para "Punycode" e "ASCII Compatible Encoding" (ACE) via IDNA. Um mecanismo para definir tabelas de validação específicas de "Top-Level Domain" (TLD) e para comparar sequências de caracteres com essas tabelas; bem como tabelas padrão para alguns TLDs estão inclusas

libidn2-2.3.7

Introdução ao libidn2

libidn2 é um pacote projetado para manuseio de sequências internacionalizadas de caracteres baseado em padrões originários do grupo de trabalho "IDN" da Internet Engineering Task Force (IETF), projetado para nomes internacionalizados de domínio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libidn/libidn2-2.3.7.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: de2818c7dea718a4f264f463f595596b

  • Tamanho da transferência: 2,1 MB

  • Espaço em disco estimado exigido: 21 MB (adicionar 3 MB para testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,6 UPC para testes)

Dependências do libidn2

Recomendadas
Opcionais

git-2.48.1 e GTK-Doc-1.34.0

Instalação do libidn2

Instale libidn2 executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: idn2
Biblioteca Instalada: libidn2.so
Diretório Instalado: /usr/share/gtk-doc/html/libidn2

Descrições Curtas

idn2

é uma interface de linha de comando para a biblioteca internacionalizada de domínio

libidn2.so

contém uma implementação genérica "Stringprep" usada para manuseio de sequência internacionalizada de caracteres

libksba-1.6.7

Introdução ao Libksba

O pacote Libksba contém uma biblioteca usada para criar certificados "X.509", bem como tornar a Cryptographic Message Syntax (CMS) facilmente acessível por outros aplicativos. Ambas as especificações são blocos de construção de "S/MIME" e "TLS". A biblioteca não depende de outra biblioteca criptográfica, mas fornece ganchos para fácil integração com a Libgcrypt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7e736de467b67c7ea88de746c31ea12f

  • Tamanho da transferência: 692 KB

  • Espaço em disco estimado exigido: 9,4 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes)

Dependências do Libksba

Exigidas

libgpg-error-1.51

Opcionais

Valgrind-3.24.0

Instalação do Libksba

Instale Libksba executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libksba.so
Diretório Instalado: Nenhum(a)

Descrições Curtas

libksba.so

contém as funções criptográficas da API

liblinear-248

Introdução ao liblinear

Esse pacote fornece uma biblioteca para aprender classificadores lineares para aplicações de larga escala. Ele suporta "Support Vector Machines" (SVM) com perda L2 e L1, regressão logística, classificação multi classe e também "Máquinas Lineares de Programação" (SVMs de L1 regularizada). A complexidade computacional dele aumenta linearmente com o número de exemplos de treinamento, tornando-o um dos solucionadores SVM mais rápidos do mercado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

Depois de atualizar esse pacote a partir de liblinear-247 ou anterior, você precisa reinstalar o Nmap-7.95, para a finalidade de vincular à nova biblioteca.

Informação do Pacote

Instalação do liblinear

Instale liblinear executando os seguintes comandos:

make lib

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -vm644 linear.h /usr/include &&
install -vm755 liblinear.so.6 /usr/lib &&
ln -sfv liblinear.so.6 /usr/lib/liblinear.so

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: liblinear.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

liblinear.so

é uma grande biblioteca de classificação linear

libmbim-1.26.4

Introdução ao libmbim

O pacote libmbim contém uma biblioteca baseada em "GLib" para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libmbim

Recomendadas
Opcionais

GTK-Doc-1.34.0 e help2man

Instalação do libmbim

Instale libmbim executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: mbimcli e mbim-network
Bibliotecas Instaladas: libmbim-glib.so
Diretórios Instalados: /usr/include/libmbim-glib e /usr/share/gtk-doc/html/libmbim-glib

Descrições Curtas

mbimcli

é um utilitário usado para controlar dispositivos "MBIM"

mbim-network

é um utilitário usado para gerenciamento simples de rede dos dispositivos "MBIM"

libmbim-glib.so

contém funções API para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM)

libnvme-1.11.1

Introdução ao libnvme

O pacote libnvme é uma biblioteca que fornece definições de tipo para estruturas de especificação NVMe, enumerações e campos de bits, funções auxiliares para construir, despachar e decodificar comandos e cargas úteis e utilitários para conectar, escanear e gerenciar dispositivos NVMe em um sistema Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libnvme

Opcionais

dbus-1.16.0, JSON-C-0.18, keyutils-1.6.3 e SWIG-4.3.0

Instalação do libnvme

Instale o libnvme executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D libdbus=auto .. &&
ninja

Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libnvme.so e libnvme-mi.so
Diretórios Instalados: /usr/include/nvme

Descrições Curtas

libnvme.so

contém funções usadas para lidar com operações relacionadas a dispositivos NVMe.

libpaper-2.2.6

Introdução ao libpaper

Esse pacote destina-se a fornecer uma maneira simples para os aplicativos executarem ações baseadas em um sistema ou tamanho de papel especificado pelo(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do libpaper

Instale o libpaper executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-static     \
            --docdir=/usr/share/doc/libpaper-2.2.6 &&
make

A suíte de teste desse pacote não funciona com uma configuração usando o local padrão de instalação.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Configurando o libpaper

Informação de Configuração

O tamanho do papel é determinado automaticamente a partir da localidade do sistema; veja-se LC_PAPER em locale(7). Se você quiser substituí-lo, crie um arquivo papersize no diretório de configuração do(a) usuário(a). Por exemplo:

mkdir -pv ~/.config &&
echo "a4" > ~/.config/papersize

Se você quiser substituir o tamanho do papel globalmente (para todos(as) os(as) usuários(as)), configure a variável de ambiente PAPERSIZE. Por exemplo:

echo "PAPERSIZE=a4" > /etc/profile.d/libpaper.sh

Você pode usar um tamanho diferente de papel, como letter.

Conteúdo

Aplicativos Instalados: paper e paperconf
Biblioteca Instalada: libpaper.so
Diretórios Instalados: /usr/share/doc/libpaper-2.2.6

Descrições Curtas

paper

imprime informação de configuração de papel

paperconf

imprime informação de configuração de papel em um modo de compatibilidade

libpaper.so

contém funções para interrogar a biblioteca de papéis

libportal-0.9.1

Introdução ao libportal

O pacote libportal fornece uma biblioteca que contém APIs assíncronas estilo GIO para a maioria dos portais Flatpak.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libportal

Exigidas

GLib-2.82.5 (com GObject Introspection)

Recomendadas
Recomendadas (tempo de execução)

Para tornar esse pacote realmente útil, instale xdg-desktop-portal-1.20.0, xdg-desktop-portal-gtk-1.15.2, xdg-desktop-portal-gnome-47.3 (se executar um ambiente de área de trabalho GNOME) e xdg-desktop-portal-lxqt-1.1.0 (se executar um ambiente de área de trabalho LXQt). Eles não são necessários se usar esse pacote somente para satisfazer uma dependência de construção.

Opcionais

Gi-DocGen-2025.3 (para documentação), dbusmock-0.34.3 e pytest-8.3.4 (para testagem), Qt-6.8.2 e Vala-0.56.17

Instalação do libportal

Atenção

Se uma versão anterior do "libportal" estiver instalada, [então] mova os cabeçalhos para fora do caminho, de forma que os pacotes posteriores não encontrem conflitos (como o(a) usuário(a) root):

if [ -e /usr/include/libportal ]; then
   rm -rf /usr/include/libportal.old &&
   mv -vf /usr/include/libportal{,.old}
fi

Instale libportal executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D docs=false .. &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -i "/output/s/-1/-0.9.1/" ../doc/meson.build &&
meson configure -D docs=true                     &&
ninja

Para testar os resultados, emita: ninja test. Observe que processos adicionais dbus-daemon possivelmente precisem ser eliminados depois que os testes forem executados.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D docs=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libportal.so, libportal-gtk3.so, libportal-gtk4.so e libportal-qt6.so
Diretórios Instalados: /usr/include/libportal e /usr/share/gtk-doc/html/libportal

Descrições Curtas

libportal.so

fornece APIs assíncronas no estilo GIO para a maioria dos portais Flatpak

libportal-gtk3.so

fornece funções específicas do GTK+-3 para interagir com portais Flatpak

libportal-gtk4.so

fornece funções específicas do GTK-4 para interagir com portais Flatpak

libportal-qt6.so

fornece funções específicas do Qt6 para interagir com portais Flatpak

libptytty-2.0

Introdução ao libptytty

O pacote libptytty fornece uma biblioteca que permite o manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://dist.schmorp.de/libptytty/libptytty-2.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2a7f3f3c0d3ef71902da745dc7959529

  • Tamanho da transferência: 48 KB

  • Espaço em disco estimado exigido: 1,4 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do libptytty

Exigidas

CMake-3.31.5

Instalação do libptytty

Instale libptytty executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_BUILD_TYPE=Release      \
      -D PT_UTMP_FILE:STRING=/run/utmp \
      .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libptytty.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libptytty.so

fornece manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog

libqalculate-5.5.1

Introdução ao libqalculate

O pacote libqalculate contém uma biblioteca que fornece funções para uma calculadora multi propósito.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libqalculate

Exigidas

cURL-8.12.1, ICU-76.1 e libxml2-2.13.6

Opcionais

Doxygen-1.13.2 e gnuplot

Instalação do libqalculate

Instale libqalculate executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libqalculate-5.5.1 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

O arquivo de arquivamento da libtool oriundo desse pacote está se referindo às bibliotecas provenientes do ICU-76.1. Tal referência possivelmente cause pacotes dependentes desse pacote serem vinculados desnecessariamente às bibliotecas do ICU e aumentar a carga de reconstrução dos pacotes se o ICU for atualizado para uma nova versão principal. Como nós explicamos em Arquivos de arquivamento do Libtool (.la), esses arquivos de arquivamento da libtool são desnecessários de qualquer maneira. Portanto, como o(a) usuário(a) root, remova o arquivo de arquivamento da libtool agora:

rm -v /usr/lib/libqalculate.la

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: qalc
Biblioteca Instalada: libqalculate.so
Diretórios Instalados: /usr/include/libqalculate, /usr/share/doc/libqalculate-5.5.1 e /usr/share/qalculate

Descrições Curtas

qalc

é uma calculadora de linha de comando poderosa e fácil de usar

libqalculate.so

contém as funções da API da libqalculate

libqmi-1.30.8

Introdução ao libqmi

O pacote libqmi contém uma biblioteca baseada em GLib para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.freedesktop.org/software/libqmi/libqmi-1.30.8.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5ec8838914f80e1dfa4d2fa8cc2f186d

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 151 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)

Dependências do libqmi

Exigidas

GLib-2.82.5 (GObject Introspection recomendado) e libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.34.0, help2man e libqrtr-glib

Instalação do libqmi

Instale libqmi executando os seguintes comandos:

PYTHON=python3 ./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--disable-mbim-qmux: Essa chave desabilita o suporte para usar um dispositivo de controle MBIM para mensagens QMI. Use essa chave se você não instalou o libmbim.

Conteúdo

Aplicativos Instalados: qmicli, qmi-firmware-update e qmi-network
Bibliotecas Instaladas: libqmi-glib.so
Diretórios Instalados: /usr/include/libqmi-glib e /usr/share/gtk-doc/html/libqmi-glib

Descrições Curtas

qmicli

é um utilitário usado para controlar dispositivos QMI

qmi-firmware-update

é um utilitário usado para realizar atualizações de firmware em dispositivos QMI

qmi-network

é um utilitário usado para gerenciamento simples de rede de comunicação de dispositivos QMI

libqmi-glib.so

contém funções de API para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI)

libseccomp-2.6.0

Introdução ao libseccomp

O pacote libseccomp fornece uma interface fácil de usar e independente de plataforma para o mecanismo de filtragem "syscall" do núcleo Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libseccomp

Opcionais

Which-2.23 (necessário para testes), Valgrind-3.24.0, cython-3.0.12 (para ligações python) e LCOV

Instalação do libseccomp

Instale libseccomp executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-python: essa chave é necessária para construir ligações python se cython-3.0.12 estiver instalado. A opção --disable-static não deve ser fornecida se essa opção for usada.

Conteúdo

Aplicativo Instalado: scmp_sys_resolver
Biblioteca Instalada: libseccomp.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

scmp_sys_resolver

é usado para resolver chamadas de sistema para aplicativos

libseccomp.so

contém funções de API para traduzir chamadas de sistema

libsigc++-2.12.1

Introdução ao libsigc++

O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libsigc++

Recomendadas
Opcionais

DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.13.2, fop-2.10 e mm-common

Instalação do libsigc++

Instale libsigc++ executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D build-documentation=true: Use essa chave se Doxygen-1.13.2 estiver instalado e você desejar construir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libsigc-2.0.so
Diretórios Instalados: /usr/{include,lib}/sigc++-2.0 e /usr/share/{devhelp/books,doc}/libsigc++-2.0 (se a documentação estiver habilitada)

Descrições Curtas

libsigc-2.0.so

fornece um sistema de retorno de chamada seguro para C++ padrão

libsigc++-3.6.0

Introdução ao libsigc++

O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão. Essa versão é parte de uma nova API para suporte ao gtkmm-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de libsigc++

Recomendadas
Opcionais

DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.13.2, fop-2.10 e mm-common

Instalação do libsigc++

Instale libsigc++ executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D build-documentation=true: Use essa chave se Doxygen-1.13.2 estiver instalado e você desejar construir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libsigc-3.0.so
Diretórios Instalados: /usr/{include,lib}/sigc++-3.0 e /usr/share/{devhelp/books,doc}/libsigc++-3.0 (se a documentação estiver habilitada)

Descrições Curtas

libsigc-3.0.so

fornece um sistema de retorno de chamada seguro para C++ padrão

libsigsegv-2.14

Introdução ao libsigsegv

"libsigsegv" é uma biblioteca para lidar com falhas de página no modo de usuário(a). Uma falha de página ocorre quando um aplicativo tenta acessar uma região da memória que não está disponível atualmente. Capturar e manusear uma falha de página é uma técnica útil para implementar memória virtual paginável, acesso mapeado em memória a bases de dados persistentes, coletores geracionais de lixo, manuseadores de estouro de pilha e memória compartilhada distribuída.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 63a2b35f11b2fbccc3d82f9e6c6afd58

  • Tamanho da transferência: 456 KB

  • Espaço em disco estimado exigido: 3,6 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Instalação do libsigsegv

Instale libsigsegv executando os seguintes comandos:

./configure --prefix=/usr  \
            --enable-shared \
            --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-shared: Essa chave garante que as bibliotecas compartilhadas sejam compiladas.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libsigsegv.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libsigsegv.so

é uma biblioteca para lidar com falhas de página no modo de usuário(a)

libssh2-1.11.1

Introdução ao libssh2

O pacote Libssh2 é uma biblioteca C do lado do cliente que implementa o protocolo "SSH2".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libssh2.org/download/libssh2-1.11.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 38857d10b5c5deb198d6989dacace2e6

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 15 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Dependências do libssh2

Opcionais

CMake-3.31.5 (pode ser usado em vez do conjunto de comandos sequenciais configure), libgcrypt-1.11.0 (pode ser usado em vez do OpenSSL), OpenSSH-9.9p2 (para alguns testes) e Docker (para alguns testes)

Instalação do libssh2

Instale libssh2 executando os seguintes comandos:

./configure --prefix=/usr          \
            --disable-docker-tests \
            --disable-static       &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-docker-tests: Desabilita os testes que exigem Docker, o qual está além do escopo do BLFS. Remova essa chave se você tiver instalado o Docker e desejar executar a suíte de teste.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libssh2.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libssh2.so

contém funções para usar o protocolo "SSH2"

libstatgrab-0.92.1

Introdução ao libstatgrab

Essa é uma biblioteca que fornece acesso multiplataforma a estatísticas relativas ao sistema no qual é executada. Ela está escrita em C e apresenta uma seleção de interfaces úteis que podem ser usadas para acessar estatísticas chave do sistema. A lista atual de estatísticas inclui uso de CPU, utilização de memória, uso de disco, contagem de processos, tráfego de rede de comunicação, Entrada/Saída de disco e mais.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências da libstatgrab

Opcionais

log4cplus-2.1.2

Instalação do libstatgrab

Instale libstatgrab executando os seguintes comandos:

./configure --prefix=/usr  \
            --disable-static \
            --docdir=/usr/share/doc/libstatgrab-0.92.1 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: saidar, statgrab, statgrab-make-mrtg-config e statgrab-make-mrtg-index
Biblioteca Instalada: libstatgrab.so
Diretórios Instalados: /usr/share/doc/libstatgrab-0.92.1

Descrições Curtas

saidar

é uma ferramenta baseada em "curses" para visualizar estatísticas do sistema

statgrab

é uma interface estilo "sysctl" para estatísticas do sistema

statgrab-make-mrtg-config

gera configuração MRTG

statgrab-make-mrtg-index

gera uma página de índice XHTML a partir de arquivos de configuração MRTG ou da entrada gerada padrão

libstatgrab.so

contém as funções da API da libstatgrab

libtasn1-4.20.0

Introdução ao libtasn1

libtasn1 é uma biblioteca C altamente portável que codifica e decodifica dados DER/BER seguindo um esquema ASN.1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 930f71d788cf37505a0327c1b84741be

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 16 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (com testes)

Dependências do libtasn1

Opcionais

GTK-Doc-1.34.0 e Valgrind-3.24.0

Instalação do libtasn1

Instale libtasn1 executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se não passou o parâmetro --enable-gtk-doc para o script configure, [então] você consegue instalar a documentação da API usando o seguinte comando como o(a) usuário(a) root:

make -C doc/reference install-data-local

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Esse parâmetro normalmente é usado se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Ele está quebrado para esse pacote devido ao uso de um aplicativo gtk-doc há muito obsoleto que não mais está disponível.

Conteúdo

Aplicativos Instalados: asn1Coding, asn1Decoding e asn1Parser
Biblioteca Instalada: libtasn1.so
Diretório Instalado: /usr/share/gtk-doc/html/libtasn1

Descrições Curtas

asn1Coding

é um codificador de DER ASN.1

asn1Decoding

é um decodificador de DER ASN.1

asn1Parser

é um gerador de árvore de sintaxe ASN.1 para a libtasn1

libtasn1.so

é uma biblioteca para manipulação de Abstract Syntax Notation One (ASN.1) e de Distinguish Encoding Rules (DER)

libunistring-1.3

Introdução ao libunistring

libunistring é uma biblioteca que fornece funções para manipular sequências de caracteres Unicode e para manipular sequências de caracteres C de acordo com o padrão Unicode.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 57dfd9e4eba93913a564aa14eab8052e

  • Tamanho da transferência: 2,6 MB

  • Espaço em disco estimado exigido: 58 MB (adicionar 46 MB para os testes)

  • Tempo de construção estimado: 0,6 UPC (adicionar 0,3 UPC para testes; ambos usando paralelismo=4)

Dependências do libunistring

Opcionais

texlive-20240312 (ou install-tl-unx) (para reconstruir a documentação)

Instalação do libunistring

Instale libunistring executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libunistring-1.3 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libunistring.so
Diretório Instalado: /usr/include/unistring e /usr/share/doc/libunistring-1.3

Descrições Curtas

libunistring.so

fornece a API da biblioteca de sequências de caracteres Unicode

libunwind-1.8.1

Introdução ao libunwind

O pacote libunwind contém uma interface de programação C portável e eficiente (API) para determinar a cadeia de chamadas de um aplicativo. A API fornece adicionalmente os meios para manipular o estado preservado (salvo pelo chamado) de cada quadro de chamada e para retomar a execução em qualquer ponto da cadeia de chamadas ("goto" não local). A API suporta operação local (mesmo processo) e remota (entre processos).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libunwind

Opcionais

texlive-20240312 (para "latex2man")

Instalação do libunwind

Instale libunwind executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libunwind.so, libunwind-coredump.so, libunwind-generic.so (link simbólico para libunwind-x86_64.so), libunwind-ptrace.so, libunwind-setjmp.so e libunwind-x86_64.so (libunwind-x86.so em i686)
Diretórios Instalados: /usr/libexec/libunwind

liburcu-0.15.1

Introdução ao liburcu

O pacote userspace-rcu fornece um conjunto de bibliotecas RCU (read-copy-update) do espaço de usuário(a). Essas bibliotecas de sincronização de dados fornecem acesso de leitura que escala linearmente com o número de núcleos. Ela faz isso permitindo que várias cópias de uma dada estrutura de dados vivam ao mesmo tempo e monitorando os acessos à estrutura de dados para detectar períodos de carência depois dos quais a recuperação de memória é possível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://lttng.org/files/urcu/userspace-rcu-0.15.1.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5a6a892f0eea86728b4eb6dea07ed190

  • Tamanho da transferência: 668 KB

  • Espaço em disco estimado exigido: 26 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Instalação do liburcu

Instale liburcu executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/liburcu-0.15.1 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: liburcu.so, liburcu-bp.so, liburcu-cds.so, liburcu-common.so, liburcu-mb.so, liburcu-memb.so, liburcu-qsbr.so e liburcu-signal.so
Diretórios Instalados: /usr/include/urcu e /usr/share/doc/liburcu-0.15.1

libusb-1.0.27

Introdução ao libusb

O pacote libusb contém uma biblioteca usada por alguns aplicativos para acesso a dispositivos USB.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libusb

Opcionais

Doxygen-1.13.2

Configurando Libusb

Para acessar dispositivos brutos USB (aqueles não tratados como um disco pelo controlador de armazenamento em massa), o suporte apropriado precisa estar disponível no núcleo. Verifique a configuração do seu núcleo:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M>   Support for Host-side USB                                      [USB]
    [*]     PCI based USB host interface                               [USB_PCI]
    # These are most common USB controller drivers for PC-like systems.
    # For modern systems often [USB_XHCI_HCD] is the only one needed
    # even if the system has USB 2.0 ports:
    < /*/M> xHCI HCD (USB 3.0) support                            [USB_XHCI_HCD]
    < /*/M> EHCI HCD (USB 2.0) support                            [USB_EHCI_HCD]
    < /*/M> OHCI HCD (USB 1.1) support                            [USB_OHCI_HCD]

Para mais detalhes a respeito do como configurar dispositivos USB, veja-se “Consequências do Dispositivo USB”.

Instalação do libusb

Instale libusb executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se o Doxygen estiver instalado e você desejar construir a documentação da API, [então] emita os seguintes comandos:

pushd doc               &&
  doxygen -u doxygen.cfg &&
  make docs              &&
popd

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/libusb-1.0.27/apidocs &&
install -v -m644   doc/api-1.0/* \
                    /usr/share/doc/libusb-1.0.27/apidocs

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libusb-1.0.so
Diretórios Instalados: /usr/include/libusb-1.0 e /usr/share/doc/libusb-1.0.27

Descrições Curtas

libusb-1.0.so

contém funções de API usadas para acessar hardware USB

libuv-1.50.0

Introdução ao libuv

O pacote libuv é uma biblioteca de suporte multiplataforma com foco em Entrada/Saída assíncrona.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://dist.libuv.org/dist/v1.50.0/libuv-v1.50.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d346e03fe1ca89d877f9d1431ef97cec

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 31 MB (com testes e página de manual)

  • Tempo de construção estimado: 0,5 UPC (com testes e página de manual)

Dependências do libuv

Opcionais

sphinx-8.2.1

Instalação do libuv

Instale libuv executando os seguintes comandos:

Cuidado

O comando sh autogen.sh abaixo falha se a variável de ambiente "ACLOCAL" estiver configurada conforme especificado em Xorg-7. Se for usado, [então] "ACLOCAL" precisa ser desconfigurada para esse pacote e, em seguida, reconfigurada para outros pacotes.

sh autogen.sh                             &&
./configure --prefix=/usr --disable-static &&
make 

Se você instalou o módulo opcional sphinx-8.2.1 do Python, crie a página de manual:

make man -C docs

Se você deseja executar os testes, [então] execute: make check como um(a) usuário(a) não root.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a página de manual, instale-a como o(a) usuário(a) root:

install -Dm644 docs/build/man/libuv.1 /usr/share/man/man1

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libuv.so
Diretório Instalado: /usr/include/uv

Descrições Curtas

libuv.so

contém funções de API para operações assíncronas de Entrada/Saída

libxkbcommon-1.8.0

Introdução ao libxkbcommon

libxkbcommon é um compilador de mapa de teclas e biblioteca de suporte que processa um subconjunto reduzido de mapas de teclas conforme definido pela especificação XKB.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia).

Dependências do libxkbcommon

Exigidas

xkeyboard-config-2.44 (tempo de execução)

Recomendadas
Opcionais

Doxygen-1.13.2 (para gerar a documentação) e Xvfb (oriundo do Xorg-Server-21.1.16 ou Xwayland-24.1.6)

Instalação do libxkbcommon

Instale libxkbcommon executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D enable-docs=false &&
ninja

Para testar os resultados, garanta que Xvfb e xkeyboard-config-2.44 estão disponíveis, então emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D enable-docs=true: Essa chave habilita a geração de documentação. O Doxygen-1.13.2 é exigido.

mv -v /usr/share/doc/libxkbcommon{,-1.8.0}: se você construiu a documentação, use esse comando para instalá-la em um diretório versionado.

Conteúdo

Aplicativos Instalados: xkbcli
Bibliotecas Instaladas: libxkbcommon.so, libxkbcommon-x11.so e libxkbregistry.so
Diretórios Instalados: /usr/include/xkbcommon, /usr/libexec/xkbcommon e /usr/share/doc/libxkbcommon-1.8.0

Descrições Curtas

xkbcli

fornece um depurador e compilador para mapas de teclas "XKB"

libxkbcommon.so

contém as funções da API da libxkbcommon

libxkbcommon-x11.so

contém as funções específicas X11 da API da libxkbcommon

libxkbregistry.so

contém uma lista de modelos disponíveis, esquemas e variantes "XKB" para um dado conjunto de regras

libxml2-2.13.6

Introdução ao libxml2

O pacote libxml2 contém bibliotecas e utilitários usados para analisar arquivos "XML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 85dffa2387ff756bdf8b3b247594914a

  • Tamanho da transferência: 2,3 MB

  • Espaço em disco estimado exigido: 113 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes)

Transferências Adicionais

Dependências do libxml2

Recomendadas
Opcionais

Valgrind-3.24.0 (possivelmente seja usado nos testes)

Instalação do libxml2

Instale libxml2 executando os seguintes comandos:

./configure --prefix=/usr           \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-history          \
            --with-icu              \
            PYTHON=/usr/bin/python3 \
            --docdir=/usr/share/doc/libxml2-2.13.6 &&
make

Se você baixou a suíte de teste, [então] emita o seguinte comando:

tar xf ../xmlts20130923.tar.gz

Para testar os resultados, emita: make check > check.log. Esse comando imprimirá várias linhas de mensagens de erro como Failed to parse xstc/... porque alguns arquivos de teste estão ausentes e essas mensagens podem ser seguramente ignoradas. Um sumário dos resultados pode ser obtido com grep -E '^Total|expected|Ran' check.log. Se Valgrind-3.24.0 estiver instalado e você desejar verificar vazamentos de memória, substitua check por check-valgrind.

Nota

Os testes usam http://localhost/ para testar a análise de entidades externas. Se a máquina onde você executar os testes servir como um sítio da Web, [então] os testes possivelmente travem, dependendo do conteúdo do arquivo servido. Portanto, é recomendado desligar o servidor durante os testes; como o(a) usuário(a) root:

/etc/init.d/httpd stop

Agora, como o(a) usuário(a) root:

make install

Finalmente, evite que alguns pacotes desnecessariamente se vinculem ao ICU usando os seguintes comandos como o(a) usuário(a) root:

rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-history: Essa chave habilita o suporte Readline ao executar xmlcatalog ou xmllint no modo shell.

--with-icu: Essa chave habilita suporte para ICU, o qual fornece suporte adicional Unicode. Isso é necessário para alguns pacotes no BLFS, como para QtWebEngine.

PYTHON=/usr/bin/python3: Permite construir o módulo "libxml2" com "Python3" em vez de "Python2".

Conteúdo

Aplicativos Instalados: xml2-config, xmlcatalog e xmllint
Bibliotecas Instaladas: libxml2.so
Diretórios Instalados: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.13.6 e /usr/share/gtk-doc/html/libxml2

Descrições Curtas

xml2-config

determina os sinalizadores de compilação e vinculador que deveriam ser usados para compilar e vincular aplicativos que usam a libxml2

xmlcatalog

é usado para monitorar e manipular catálogos "XML" e "SGML"

xmllint

analisa arquivos "XML" e gera informes (baseados nas opções) para detectar erros na codificação "XML"

libxml2.so

fornece funções para aplicativos para analisar arquivos que usam o formato "XML"

libxmlb-0.3.21

Introdução ao libxmlb

O pacote libxmlb contém uma biblioteca e uma ferramenta que ajuda a criar e consultar blobs XML binários.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libxmlb

Exigidas

GLib-2.82.5 (GObject Introspection recomendado)

Opcionais

GTK-Doc-1.34.0 e libstemmer

Instalação do libxmlb

Instale libxmlb executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D gtkdoc=false .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtkdoc=false: Essa chave desabilita construir a documentação da API. Remova-a se você tiver GTK-Doc-1.34.0 instalado e desejar construir a documentação da API.

-D introspection=false: Use essa chave se você não tiver construído GLib-2.82.5 com GObject Introspection.

-D stemmer=true: Use essa chave se você tiver libstemmer instalado e desejar construir suporte para lematizador.

Conteúdo

Aplicativos Instalados: xb-tool
Bibliotecas Instaladas: libxmlb.so
Diretórios Instalados: /usr/include/libxmlb-2, /usr/libexec/installed-tests/libxmlb e /usr/share/gtk-doc/html/libxmlb (se gtk-doc foi habilitado)

Descrições Curtas

xb-tool

é uma ferramenta usada para criar, despejar ou consultar um blob XML binário

libxmlb.so

contém funções que permitem criar e consultar blobs XML binários

libxslt-1.1.42

Introdução ao libxslt

O pacote libxslt contém bibliotecas "XSLT" usadas para estender as bibliotecas libxml2 para suportar arquivos "XSLT".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libxslt

Exigidas

libxml2-2.13.6

Recomendadas (em tempo de execução)

Nota

Embora não seja uma dependência direta, muitos aplicativos que usam a libxslt esperam que docbook-xml-4.5 e docbook-xsl-nons-1.79.2 estejam presentes.

Opcionais

libgcrypt-1.11.0

Instalação do libxslt

Instale libxslt executando os seguintes comandos:

./configure --prefix=/usr                          \
            --disable-static                       \
            --docdir=/usr/share/doc/libxslt-1.1.42 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: xslt-config e xsltproc
Bibliotecas Instaladas: libexslt.so, libxslt.so e opcionalmente, o módulo Python libxsltmod.so
Diretórios Instalados: /usr/include/libexslt, /usr/include/libxslt, /usr/lib/cmake/libxslt, /usr/lib/libxslt-plugins, /usr/share/gtk-doc/lib{xslt,exslt}, /usr/share/doc/libxslt-1.1.42 e /usr/share/doc/libxslt-python-1.1.42

Descrições Curtas

xslt-config

é usado para descobrir o pré-processador, ligando e compilando sinalizadores necessários para usar as bibliotecas libxslt em aplicativos de terceiros

xsltproc

é usado para aplicar folhas de estilo "XSLT" a documentos "XML"

libexslt.so

é usado para fornecer extensões para funções "XSLT"

libxslt.so

fornece extensões para as bibliotecas libxml2 para analisar arquivos que usam o formato "XSLT"

libwacom-2.14.0

Introdução ao libwacom

O pacote libwacom contém uma biblioteca usada para identificar tablets gráficos oriundos da Wacom ou de vários outros fornecedores e os recursos deles específicos do modelo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libwacom

Exigidas

libevdev-1.13.3 e libgudev-238

Recomendadas
Opcionais

Doxygen-1.13.2, git-2.48.1, librsvg-2.59.2, Valgrind-3.24.0 (opcional para alguns testes), pytest-8.3.4 com python-libevdev e pyudev

Instalação do libwacom

Instale libwacom executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D tests=disabled    &&
ninja

Para testar os resultados, emita: ninja test. Para executar testes adicionais, instale pytest-8.3.4, python-libevdev e pyudev e, então, remova a opção "-D tests=disabled" da linha meson acima.

Se atualizar a partir de uma versão anterior da libwacom, remova a instalação antiga da base de dados de dispositivos para evitar uma possível correspondência duplicada de dispositivos caso alguns arquivos antigos da base de dados não forem sobrescritos:

rm -rf /usr/share/libwacom

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D tests=disabled: Esse parâmetro desabilita alguns dos testes mais avançados porque eles exigem pytest-8.3.4 e outros dois módulos Python além do escopo do BLFS para funcionar adequadamente.

Conteúdo

Aplicativos Instalados: libwacom-list-devices, libwacom-list-local-devices, libwacom-show-stylus e libwacom-update-db
Bibliotecas Instaladas: libwacom.so
Diretórios Instalados: /usr/include/libwacom-1.0 e /usr/share/libwacom

Descrições Curtas

libwacom-list-devices

lista todos os dispositivos tablet que sejam suportados pela "libwacom"

libwacom-list-local-devices

lista dispositivos tablet que estejam conectados ao sistema

libwacom-show-stylus

lista os IDs da caneta do tablet

libwacom-update-db

atualiza o sistema de acordo com o conjunto atual de arquivos de dados do tablet

libwacom.so

contém funções usadas para acessar informações da "Wacom"

libyaml-0.2.5

Introdução ao libyaml

O pacote yaml contém uma biblioteca C para analisar e emitir "YAML" ("YAML Ain't Markup Language").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libyaml

Opcionais

Doxygen-1.13.2

Instalação do libyaml

Instale libyaml executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libyaml.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libyaml.so

contém funções de API para analisar e emitir código "YAML"

log4cplus-2.1.2

Introdução ao log4cplus

log4cplus é uma API de registro C++20 fácil de usar, que fornece controle de camada segura, flexível e arbitrariamente granular sobre gerenciamento e configuração de registro. Ela é modelada depois da API log4j do Java.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do log4cplus

Construa o log4cplus executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, instale o pacote como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: log4cplus.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

log4cplus.so

é a biblioteca log4cplus

LZO-2.10

Introdução ao LZO

LZO é uma biblioteca de compressão de dados adequada para descompressão e compressão de dados em tempo real. Isso significa que ela favorece a velocidade sobre a taxa de compressão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do LZO

Instale LZO executando os seguintes comandos:

./configure --prefix=/usr                   \
            --enable-shared                  \
            --disable-static                 \
            --docdir=/usr/share/doc/lzo-2.10 &&
make

Para testar os resultados, emita: make check. Todas as verificações deveriam passar. Agora emita make test para executar a suíte completa de testes.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: liblzo2.so
Diretórios Instalados: /usr/include/lzo e /usr/share/doc/lzo

Descrições Curtas

liblzo2.so

é uma biblioteca de compressão e descompressão de dados

mtdev-1.1.7

Introdução ao mtdev

O pacote mtdev contém a biblioteca de tradução do protocolo multitoque que é usada para transformar todas as variantes de eventos "MT" (multitoque) do núcleo para o protocolo fendido tipo B.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://bitmath.org/code/mtdev/mtdev-1.1.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 483ed7fdf7c1e7b7375c05a62848cce7

  • Tamanho da transferência: 296 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do mtdev

Instale mtdev executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: mtdev-test
Biblioteca Instalada: libmtdev.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

mtdev-test

é uma ferramenta para testar a libmtdev

libmtdev.so

contém funções da API de tradução do protocolo multitoque

Node.js-22.14.0

Introdução ao Node.js

Node.js é um tempo de execução JavaScript construído sobre o mecanismo "JavaScript V8" do Chrome.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://nodejs.org/dist/v22.14.0/node-v22.14.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 46fbebddd5da0ded77ec54ebb5134b3e

  • Tamanho da transferência: 46 MB

  • Espaço em disco estimado exigido: 1,3 GB (adicionar 45 MB para os testes)

  • Tempo de construção estimado: 17 UPC (adicionar 2,8 UPC para testes: ambos usando paralelismo=8 e 8 CPUs online; partes dos testes usarão todas as CPUs online)

Dependências do Node.js

Exigidas

Which-2.23

Recomendadas
Opcionais

http-parser e npm (uma cópia interna do npm será instalada se não presente)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do Node.js

Construa Node.js executando os seguintes comandos:

./configure --prefix=/usr          \
            --shared-brotli        \
            --shared-cares         \
            --shared-libuv         \
            --shared-openssl       \
            --shared-nghttp2       \
            --shared-zlib          \
            --with-intl=system-icu &&
make

Para testar os resultados, emita: make test-only. Dos 4.200 testes, 5 na suíte 'paralela' de teste são conhecidos por falharem.

Agora, como o(a) usuário(a) root:

make install &&
ln -sf node /usr/share/doc/node-22.14.0

Explicações do Comando

--with-intl=system-icu: use a versão do sistema do icu. Outros valores são full-icu (para construir uma biblioteca completa local icu) e small-icu (para construir uma biblioteca mínima local icu).

--shared-{brotli,cares,libuv,nghttp2,openssl,zlib}: use as bibliotecas instadas do sistema em vez das cópias locais.

--without-npm: não construa npm (use se você gostaria de construir um npm separado posteriormente).

--shared-http-parser: use a biblioteca instalada do sistema em vez de uma cópia local.

Conteúdo

Aplicativos Instalados: corepack, node, npm e npx
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-22.14.0} e /usr/share/systemtap/tapset

Descrições Curtas

corepack

é uma ferramenta experimental para ajudar com o gerenciamento de versões de gerenciadores de pacotes.

node

é o tempo de execução do JavaScript do lado do servidor

npm

é o gerenciador de pacotes Node.js

/usr/lib/node_modules/npm/

é a raiz de instalação para executáveis e bibliotecas "Node.js"

npth-1.8

Introdução ao NPth

O pacote NPth contém uma biblioteca muito portável baseada em POSIX/ANSI-C para plataformas Unix que fornece agendamento não preemptivo baseado em prioridade para múltiplas camadas de execução ("multithreading") dentro de aplicativos orientados a eventos. Todas as camadas executam no mesmo espaço de endereço do aplicativo servidor, porém cada camada tem o próprio contador individual dela de aplicativo, pilha de tempo de execução, máscara de sinal e variável "errno".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/npth/npth-1.8.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cb4fc0402be5ba67544e499cb2c1a74d

  • Tamanho da transferência: 312 KB

  • Espaço em disco estimado exigido: 2,9 MB (com verificações)

  • Tempo de construção estimado: menos que 0,1 UPC (com as verificações)

Instalação do NPth

Instale NPth executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: npth-config
Biblioteca Instalada: libnpth.so
Diretório Instalado: Nenhum(a)

Descrições Curtas

npth-config

é um utilitário usado para configurar e construir aplicativos baseados na biblioteca "npth". Ele pode ser usado para consultar os sinalizadores do compilador C e do vinculador que sejam exigidos para compilar e vincular corretamente o aplicativo à biblioteca "npth"

libnpth.so

contém as funções de API usadas pela biblioteca "New Portable Threads"

NSPR-4.36

Introdução ao NSPR

O Netscape Portable Runtime (NSPR) fornece uma API neutra de plataforma para funções semelhantes às de nível de sistema e "libc".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do NSPR

Instale NSPR executando os seguintes comandos:

cd nspr &&

sed -i '/^RELEASE/s|^|#|' pr/src/misc/Makefile.in &&
sed -i 's|$(LIBRARY) ||'  config/rules.mk         &&

./configure --prefix=/usr   \
            --with-mozilla  \
            --with-pthreads \
            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make

A suíte de teste está projetada para testar mudanças no nss ou nspr e não é particularmente útil para verificar uma versão lançada (por exemplo, ela precisa ser executada sobre uma construção não otimizada com ambos os diretórios nss e nspr existentes lado a lado). Para maiores detalhes, vejam-se as Notas de Editor(a) para nss em https://wiki.linuxfromscratch.org/blfs/wiki/nss

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in: Esse "sed" desabilita a instalação de dois scripts desnecessários.

sed -i 's#$(LIBRARY) ##' config/rules.mk: Esse "sed" desabilita a instalação das bibliotecas estáticas.

--with-mozilla: Esse parâmetro adiciona suporte Mozilla às bibliotecas (exigido se você quiser construir quaisquer outros produtos Mozilla e vinculá-los a essas bibliotecas).

--with-pthreads: Esse parâmetro força o uso da biblioteca "pthread" do sistema.

--enable-64bit: O parâmetro --enable-64bit é exigido em um sistema x86_64 para evitar falha do configure com uma alegação de que esse é um sistema sem suporte a pthread. O teste [ $(uname -m) = x86_64 ] assegura que ele não tenha efeito em um sistema de 32 de bits.

Conteúdo

Aplicativos Instalados: nspr-config
Bibliotecas Instaladas: libnspr4.so, libplc4.so e libplds4.so
Diretórios Instalados: /usr/include/nspr

Descrições Curtas

nspr-config

fornece opções de compilador e vinculador para outros pacotes que usem a NSPR

libnspr4.so

contém funções que fornecem independência de plataforma para recursos do sistema operacional não "GUI", como encadeamentos, sincronização de encadeamento, Entrada/Saída normal de arquivo e rede de comunicação, tempo de intervalo e data de calendário, gerenciamento básico de memória e vinculação de biblioteca compartilhada

libplc4.so

contém funções que implementam muitos dos recursos oferecidos pela "libnspr4"

libplds4.so

contém funções que fornecem estruturas de dados

PCRE2-10.45

Introdução ao PCRE2

O pacote PCRE2 contém uma nova geração das bibliotecas Perl Compatible Regular Expression. Elas são úteis para implementar correspondência de padrão de expressão regular usando a mesma sintaxe e semântica da Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do PCRE2

Opcionais

Valgrind-3.24.0 e libedit

Instalação do PCRE2

Instale PCRE2 executando os seguintes comandos:

./configure --prefix=/usr                      \
            --docdir=/usr/share/doc/pcre2-10.45 \
            --enable-unicode                    \
            --enable-jit                        \
            --enable-pcre2-16                   \
            --enable-pcre2-32                   \
            --enable-pcre2grep-libz             \
            --enable-pcre2grep-libbz2           \
            --enable-pcre2test-libreadline      \
            --disable-static                    &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-unicode: Essa chave habilita o suporte a Unicode e inclui as funções para lidar com cadeias de caracteres UTF-8/16/32 na biblioteca.

--enable-pcre2-16: Essa chave habilita o suporte a caracteres de 16 bits.

--enable-pcre2-32: Essa chave habilita o suporte a caracteres de 32 bits.

--enable-pcre2grep-libz: Essa chave adiciona suporte para leitura de arquivos comprimidos .gz para o pcre2grep.

--enable-pcre2grep-libbz2: Essa chave adiciona suporte para leitura de arquivos comprimidos .bz2 para o pcre2grep.

--enable-pcre2test-libreadline: Essa chave adiciona edição de linha e recursos de histórico ao aplicativo pcre2test.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-jit: essa opção habilita a compilação "bem na hora", que consegue acelerar bastante a correspondência de padrões.

Conteúdo

Aplicativos Instalados: pcre2-config, pcre2grep e pcre2test.
Bibliotecas Instaladas: libpcre2-8.so, libpcre2-16.so, libpcre2-32.so e libpcre2-posix.so
Diretório Instalado: /usr/share/doc/pcre2-10.45

Descrições Curtas

pcre2grep

é uma versão do grep que compreende expressões regulares compatíveis com Perl.

pcre2test

consegue testar uma expressão regular compatível com Perl.

pcre2-config

gera informações de compilação para programas vinculados às bibliotecas PCRE2

Popt-1.19

Introdução ao Popt

O pacote popt contém as bibliotecas popt que são usadas por alguns aplicativos para analisar opções de linha de comando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: eaa2135fddb6eb03f2c87ee1823e5a78

  • Tamanho da transferência: 584 KB

  • Espaço em disco estimado exigido: 6,9 MB (inclui instalar documentação e os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do popt

Opcionais

Doxygen-1.13.2 (para gerar documentação)

Instalação do Popt

Instale popt executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver Doxygen-1.13.2 instalado e desejar construir a documentação da API, [então] emita:

sed -i 's@\./@src/@' Doxyfile &&
doxygen

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos emitidos pelo(a) usuário(a) root:

install -v -m755 -d /usr/share/doc/popt-1.19 &&
install -v -m644 doxygen/html/* /usr/share/doc/popt-1.19

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libpopt.so
Diretórios Instalados: /usr/share/doc/popt-1.19

Descrições Curtas

libpopt.so

é usado para analisar opções de linha de comando

Protobuf-29.3

Introdução ao Protobuf

O pacote Protobuf contém utilitários e bibliotecas para usar dados no formato de intercâmbio de dados do Google.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Protobuf

Exigidas

Abseil-cpp-20250127.0 e CMake-3.31.5

Opcionais

gtest (para testes)

Instalação do Protobuf

Instale Protobuf executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr      \
      -D CMAKE_BUILD_TYPE=Release       \
      -D CMAKE_SKIP_INSTALL_RPATH=ON    \
      -D protobuf_BUILD_TESTS=OFF       \
      -D protobuf_ABSL_PROVIDER=package \
      -D protobuf_BUILD_LIBUPB=OFF      \
      -D protobuf_BUILD_SHARED_LIBS=ON  \
      -G Ninja ..                       &&
ninja

Esse pacote vem com uma suíte de teste, mas ela exige gtest, que não é parte do BLFS.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D protobuf_BUILD_TESTS=OFF: Esse parâmetro impede os testes de serem construídos porque gtest não faz parte do BLFS.

-D protobuf_ABSL_PROVIDER=package: Esse parâmetro permite que o sistema de construção use a cópia instalada do sistema de Abseil-cpp-20250127.0.

-D protobuf_BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas fornecidas por esse pacote em vez das versões estáticas.

Conteúdo

Aplicativos Instalados: protoc-29.3.0 e protoc (um link simbólico para protoc-29.3.0)
Bibliotecas Instaladas: libprotobuf.so, libprotobuf-lite.so, libprotoc.so, libutf8_range.so e libutf8_validity.so
Diretórios Instalados: /usr/include/google, /usr/include/java, /usr/include/upb_generator, /usr/lib/cmake/protobuf e /usr/lib/cmake/utf8_range

Descrições Curtas

protoc

analisa arquivos de buffer de protocolo e gera saída para diversas linguagens de programação e formatos

libprotobuf.so

contém funções para utilizar dados no formato de intercâmbio de dados do Google

libprotobuf-lite.so

contém uma versão mais simples das funções para utilizar dados no formato de intercâmbio de dados do Google

libprotoc.so

contém funções usadas pelo protoc em tempo de execução para saída de dados para diversas linguagens de programação e formatos

libutf8_range.so

contém funções que permitem que um programa determine se uma sequência de caracteres é uma sequência válida UTF-8

libutf8_validity.so

contém funções que permitem que um programa determine se uma sequência de bytes é uma sequência UTF-8 válida e descubra qual é o maior prefixo válido da sequência

Protobuf-c-1.5.1

Introdução ao Protobuf-c

O pacote Protobuf-c contém uma implementação do formato de serialização de dados Google Protocol Buffers em C.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Protobuf-c

Exigidas

Protobuf-29.3

Opcionais

Doxygen-1.13.2

Instalação do Protobuf-c

Instale Protobuf-c executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: protoc-gen-c e protoc-c (lincado simbolicamente a protoc-gen-c)
Bibliotecas Instaladas: libprotobuf-c.so
Diretórios Instalados: /usr/include/google e /usr/include/protobuf-c

Descrições Curtas

protoc-c

gera código descritor C a partir de um arquivo .proto

libprotobuf-c.so

contém uma implementação C do formato de serialização de dados do Google Protocol Buffers

Qca-2.3.9

Introdução ao Qca

O Qca visa a fornecer uma API criptográfica direta e multiplataforma, usando tipos de dados e convenções Qt. Qca separa a API da implementação, usando "plugins" conhecidos como "Providers".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/qca/2.3.9/qca-2.3.9.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d8aaa46356a322464f65b04d00d2bac6

  • Tamanho da transferência: 748 KB

  • Espaço em disco estimado exigido: 57 MB (com testes)

  • Tempo de construção estimado: 1,0UPC (usando paralelismo = 4; com os testes)

Dependências do Qca

Exigidas

make-ca-1.15, CMake-3.31.5, Qt-6.8.2 e Which-2.23

Opcionais

Cyrus SASL-2.1.28, GnuPG-2.4.7, libgcrypt-1.11.0, libgpg-error-1.51, nss-3.108, NSPR-4.36, p11-kit-0.25.5, Doxygen-1.13.2 e Botan

Instalação do Qca

Corrija o local dos certificados de AC:

sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt

Instale Qca executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR            \
      -D CMAKE_BUILD_TYPE=Release                \
      -D QT6=ON                                  \
      -D QCA_INSTALL_IN_QT_PREFIX=ON             \
      -D QCA_MAN_INSTALL_DIR:PATH=/usr/share/man \
      .. &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-D QT6=ON: Assegura que os pacotes sejam construídos com Qt-6.8.2.

-D QCA_MAN_INSTALL_DIR:PATH=/usr/share/man: Instala a página de manual do qca no local normal.

Conteúdo

Aplicativos Instalados: mozcerts-qt6 e qcatool-qt6
Bibliotecas Instaladas: libqca-qt6.so, libqca-cyrus-sasl.so, libqca-gcrypt.so, libqca-gnupg.so, libqca-logger.so, libqca-nss.so, libqca-ossl.so e libqca-softstore.so
Diretórios Instalados: $QT6DIR/include/Qca-qt6, $QT6DIR/lib/cmake/Qca-qt6 e $QT6DIR/lib/qca-qt6

Descrições Curtas

mozcerts-qt6

é uma ferramenta de linha de comando para converter "certdata.txt" em arquivos "arquivo_saida_gerada.pem"

qcatool-qt6

é uma ferramenta de linha de comando para realizar várias operações criptográficas com o "Qca"

libqca-qt6.so

é a biblioteca "Qt Cryptography Architecture" (Qca)

qcoro-0.11.0

Introdução ao qcoro

Esse pacote fornece um conjunto de ferramentas para fazer uso de corrotinas C++20 com Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/danvratil/qcoro/archive/v0.11.0/qcoro-0.11.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 085318ce2efd7fc2b4df2b5d9603b763

  • Tamanho da transferência: 156 KB

  • Espaço em disco estimado exigido: 9,0 MB (Adicionar 19 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,6 UPC para testes)

Dependências de qcoro

Exigidas

Qt-6.8.2

Instalação do qcoro

Instale qcoro executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR \
      -D CMAKE_BUILD_TYPE=Release     \
      -D BUILD_TESTING=OFF            \
      -D QCORO_BUILD_EXAMPLES=OFF     \
      -D BUILD_SHARED_LIBS=ON         \
       ..                             &&
make

Para testar esse pacote, remova o parâmetro 'BUILD_TESTING=OFF' acima e execute:

make test

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libQCoro6Core.so, libQCoro6DBus.so, libQCoro6Network.so, libQCoro6Qml.so, libQCoro6Quick.so e libQCoro6WebSockets.so
Diretórios Instalados: Nove diretórios em $QT6DIR/lib/cmake/ e $QT6DIR/include/qcoro6

SpiderMonkey oriundo de firefox-128.7.0

Introdução ao SpiderMonkey

SpiderMonkey é o mecanismo JavaScript e WebAssembly da Mozilla, escrito em C++ e Rust. No BLFS, o código-fonte do SpiderMonkey é retirado do Firefox.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/firefox/releases/128.7.0esr/source/firefox-128.7.0esr.source.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: aab1f335242b809813d1d4b754d10c0b

  • Tamanho da transferência: 543 MB

  • Espaço em disco estimado exigido: 3,6 GB (40 MB instalado depois de remover 36 MB de bibliotecas estáticas; adicionar 34 MB para os testes principais e 37 MB para os testes jit)

  • Tempo de construção estimado: 1,9 UPC (com paralelismo=4; adicionar 1,1 UPC para testes principais e 3,7 UPC para os testes jit)

Dependências do SpiderMonkey

Exigidas

Cbindgen-0.28.0, ICU-76.1, Which-2.23

Recomendadas

Importante

Se você estiver construindo esse pacote em um sistema de 32 bits e o Clang não estiver instalado ou você estiver substituindo a opção padrão do compilador com a variável de ambiente CXX, por favor, leia primeiro a seção Explicações do Comando.

Instalação do SpiderMonkey

Nota

Ao contrário da maioria dos outros pacotes no BLFS, as instruções abaixo exigem que você desempacote firefox-128.7.0esr.tar.xz e mude para o diretório firefox-128.7.0.

Extrair o tarball reconfigurará as permissões do diretório atual para 0755, se você tiver permissão para fazer isso. Se você fizer isso em um diretório onde o bit sticky estiver configurado, como /tmp, ela terminará com mensagens de erro:

tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors

Isso finaliza com situação diferente de zero, mas NÃO significa que existe um problema real. Não desempacote como o(a) usuário(a) root em um diretório onde o bit sticky estiver configurado - isso irá desconfigurá-lo.

Se você estiver usando ICU-76.1 ou posterior, adapte o sistema de construção para usar a biblioteca correta:

sed -i 's/icu-i18n/icu-uc &/' js/moz.configure

Instale SpiderMonkey executando os seguintes comandos:

Nota

Se você estiver compilando esse pacote em chroot, você precisa assegurar que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Como o(a) usuário(a) root, execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Compilar o código C++ respeita $MAKEFLAGS e o padrão é 'j1'; o código do rust usará todos os processadores.

mkdir obj &&
cd    obj &&

../js/src/configure --prefix=/usr            \
                    --disable-debug-symbols  \
                    --disable-jemalloc       \
                    --enable-readline        \
                    --enable-rust-simd       \
                    --with-intl-api          \
                    --with-system-icu        \
                    --with-system-zlib       &&
make

Se você desejar executar a suíte de teste, adapte-a para ser compatível com Python 3.13.0 ou mais recente:

sed 's/pipes/shlex/' -i ../js/src/tests/lib/results.py

Para executar a suíte de teste SpiderMonkey, emita:

make -C js/src check-jstests \
     JSTESTS_EXTRA_ARGS="--timeout 300 --wpt=disabled" | tee jstest.log

Como nós estamos construindo com o ICU do sistema, 155 testes (de um total de mais de 50.000) são conhecidos por falharem. A lista de testes falhos pode ser extraída via grep 'UNEXPECTED-FAIL' jstest.log. Passe a opção -c para grep se você quiser somente o número total de testes falhos.

A suíte de teste é executada com todos os núcleos de CPU disponíveis: mesmo em um cgroup com menos núcleos atribuídos, ela ainda tenta gerar tantas tarefas de teste quanto o número de todos os núcleos no sistema; felizmente, o núcleo ainda não executará essas tarefas em núcleos não atribuídos ao cgroup, de forma que o uso da CPU ainda é controlado.

Para executar a suíte de teste JIT, emita o comando a seguir. Observe que 6 testes na suíte 'timezone.js' são conhecidos por falharem devido ao ICU-76.

make -C js/src check-jit-test

Assim como a suíte de teste do SpiderMonkey, o número de tarefas de teste é o mesmo que o número de todos os núcleos de CPU no sistema, mesmo se um cgroup for usado. Para piorar as coisas, alguns casos de teste podem usar até 4 GB de memória do sistema, de forma que o pico de uso de memória possivelmente seja muito grande se tua CPU tiver vários núcleos. Executar a suíte de teste JIT sem memória suficiente possivelmente invoque o OOM killer do núcleo e cause problemas de estabilidade. Se você não tiver memória de sistema suficiente disponível, posponha JITTEST_EXTRA_ARGS=-jN ao comando e substitua N pelo número de tarefas de teste que tua memória de sistema disponível consiga conter. Por exemplo, se você tiver 15 GB de memória de sistema disponível e 4 núcleos de CPU, posponha JITTEST_EXTRA_ARGS=-j3 para executar a suíte de teste com 3 tarefas paralelas de forma que o uso de memória não exceda 12 GB.

Cuidado

Um problema no processo de instalação faz com que qualquer programa em execução que se vincule à biblioteca compartilhada do SpiderMonkey (por exemplo, GNOME Shell) trave se o SpiderMonkey for reinstalado, atualizado ou rebaixado sem uma mudança do número da versão principal (128 em 128.7.0). Para contornar esse problema, remova a versão antiga da biblioteca compartilhada do SpiderMonkey antes da instalação:

rm -fv /usr/lib/libmozjs-128.so

Agora, como o(a) usuário(a) root:

make install &&
rm -v /usr/lib/libjs_static.ajs &&
sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config

Explicações do Comando

--disable-debug-symbols: Não gere símbolos de depuração, pois eles são muito grandes e a maioria dos(as) usuários(as) não precisará deles. Remova-o se você quiser depurar o SpiderMonkey.

--disable-jemalloc: Essa chave desabilita o alocador de memória interna usado no SpiderMonkey. jemalloc destina-se somente para o ambiente do navegador Firefox. Para outros aplicativos que usam o SpiderMonkey, o aplicativo pode travar à medida que os itens alocados no alocador jemalloc forem liberados no alocador do sistema (glibc).

--enable-readline: Essa chave habilita suporte Readline na interface de linha de comando do SpiderMonkey.

--enable-rust-simd: Essa chave habilita otimização do SIMD na caixa encoding_rs enviada.

--with-intl-api: Isso habilita as funções de internacionalização exigidas pelo Gjs.

--with-system-*: Esses parâmetros permitem que o sistema de construção use versões de sistema das bibliotecas acima. Eles são necessários para estabilidade.

rm -v /usr/lib/libjs_static.ajs: Remove uma grande biblioteca estática que não é usada por nenhum pacote do BLFS.

sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config: Impede que js128-config use CFLAGS defeituosas.

CC=gcc CXX=g++: O BLFS costumava preferir usar gcc e g++ em vez dos padrões do fluxo de desenvolvimento dos programas clang. Com o lançamento do gcc-12 a construção demora mais tempo com gcc e g++, principalmente por causa de avisos extras, e é maior. Passe essas variáveis de ambiente para o conjunto de comandos sequenciais de configuração se você desejar continuar a usar gcc, g++ (exportando-as e desconfigurando-as depois da instalação ou simplesmente acrescentando-as antes do comando ../js/src/configure). Se você estiver construindo em um sistema de 32 bits, veja também abaixo.

CXXFLAGS="-msse2 -mfpmath=sse": Use SSE2 em vez de 387 para operações de ponto flutuante de precisão dupla. É necessário ao GCC para satisfazer as expectativas dos(as) desenvolvedores(as) do fluxo de desenvolvimento (Mozilla) com aritmética de ponto flutuante. Use-o se você estiver construindo esse pacote em um sistema de 32 bits com GCC (se o Clang não estiver instalado ou o GCC for especificado explicitamente). Observe que isso fará com que o SpiderMonkey trave em um processador sem capacidade SSE2. Se você estiver executando o sistema em um processador tão antigo, o Clang será estritamente necessário. Essa configuração não é necessária em sistemas de 64 bits porque todos os processadores x86 de 64 bits suportam SSE2 e os compiladores de 64 bits (ambos, Clang e GCC) usam SSE2 por padrão.

Conteúdo

Aplicativos Instalados: js128 e js128-config
Bibliotecas Instaladas: libmozjs-128.so
Diretórios Instalados: /usr/include/mozjs-128

Descrições Curtas

js128

fornece uma interface de linha de comando para o mecanismo do JavaScript

js128-config

é usado para encontrar o compilador SpiderMonkey e os sinalizadores do vinculador

libmozjs-128.so

contém as funções da API de JavaScript da Mozilla

SPIRV-Headers-1.4.304.1

Introdução ao SPIRV-Headers

O pacote SPIRV-Headers contém cabeçalhos que permitem que aplicações usem a linguagem e conjunto de instruções SPIR-V com Vulkan. SPIR-V é uma linguagem intermediária binária para representar estágios gráficos de sombreadores e núcleos de computação para várias APIs Khronos, incluindo OpenGL e Vulkan.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do SPIRV-Headers

Exigidas

CMake-3.31.5

Instalação do SPIRV-Headers

Instale SPIRV-Headers executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/spirv e /usr/share/cmake/SPIRV-Headers

SPIRV-Tools-1.4.304.1

Introdução ao SPIRV-Tools

O pacote SPIRV-Tools contém bibliotecas e utilitários para processar módulos SPIR-V.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do SPIRV-Tools

Exigidas

CMake-3.31.5 e SPIRV-Headers-1.4.304.1

Instalação do SPIRV-Tools

Instale SPIRV-Tools executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_BUILD_TYPE=Release      \
      -D SPIRV_WERROR=OFF              \
      -D BUILD_SHARED_LIBS=ON          \
      -D SPIRV_TOOLS_BUILD_STATIC=OFF  \
      -D SPIRV-Headers_SOURCE_DIR=/usr \
      -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D SPIRV_WERROR=OFF: Essa chave impede que o sistema de construção trate avisos como erros.

-D BUILD_SHARED_LIBS=ON: Essa chave força o sistema de construção a instalar bibliotecas compartilhadas em vez de bibliotecas estáticas.

-D SPIRV_TOOLS_BUILD_STATIC=OFF: Essa chave desabilita construir versões estáticas das bibliotecas.

-D SPIRV-Headers_SOURCE_DIR: Essa chave informa ao sistema de construção que SPIRV-Headers-1.4.304.1 está instalado em /usr. Isso é necessário porque o sistema de construção tenta usar uma cópia em external/spirv-headers no diretório do fonte por padrão e a cópia não é enviada (ou seja, você precisa extrair manualmente SPIRV-Headers-1.4.304.1 para lá se quiser construir com a cópia).

Conteúdo

Aplicativos Instalados: spirv-as, spirv-cfg, spirv-dis, spirv-lesspipe.sh, spirv-link, spirv-lint, spirv-objdump, spirv-opt, spirv-reduce e spirv-val
Bibliotecas Instaladas: libSPIRV-Tools-diff.so, libSPIRV-Tools-link.so, libSPIRV-Tools-lint.so, libSPIRV-Tools-opt.so, libSPIRV-Tools-reduce.so, libSPIRV-Tools-shared.so e libSPIRV-Tools.so
Diretórios Instalados: /usr/include/spirv-tools e /usr/lib/cmake/SPIRV-Tools

Descrições Curtas

spirv-as

cria um módulo binário SPIR-V a partir de texto de montagem do SPIR-V

spirv-cfg

mostra o gráfico do fluxo de controle no formato "dot"

spirv-dis

desmonta um módulo binário SPIR-V

spirv-lesspipe.sh

desmonta automaticamente um arquivo .SPV para 'less'

spirv-link

vincula arquivos binários SPIR-V

spirv-lint

verifica um módulo binário SPIR-V para erros

spirv-objdump

despeja informações a partir de um binário SPIR-V

spirv-opt

realiza otimizações em arquivos binários SPIR-V

spirv-reduce

reduz um arquivo binário SPIR-V

spirv-val

valida um arquivo binário SPIR-V

libSPIRV-Tools.so

contém funções para processamento de módulos SPIR-V

SPIRV-LLVM-Translator-19.1.4

Introdução ao SPIRV-LLVM-Translator

O pacote SPIRV-LLVM-Translator contém uma biblioteca e um utilitário para conversão entre código IR e SPIR-V do LLVM. Esse pacote, atualmente, suporta somente a versão OpenCL/Compute do SPIR-V.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de SPIRV-LLVM-Translator

Exigidas

libxml2-2.13.6, LLVM-19.1.7 e SPIRV-Tools-1.4.304.1

Instalação do SPIRV-LLVM-Translator

Instale SPIRV-LLVM-Translator executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr                   \
      -D CMAKE_BUILD_TYPE=Release                    \
      -D BUILD_SHARED_LIBS=ON                        \
      -D CMAKE_SKIP_INSTALL_RPATH=ON                 \
      -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \
      -G Ninja ..                                    &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D BUILD_SHARED_LIBS=ON: Esse parâmetro força construir versões compartilhadas das bibliotecas.

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr: Esse parâmetro permite que o sistema de construção use a versão do SPIRV-Headers que deveria ter sido instalada como uma dependência do SPIRV-Tools, em vez de baixar novamente uma cópia desnecessária dos cabeçalhos.

Conteúdo

Aplicativos Instalados: llvm-spirv
Bibliotecas Instaladas: libLLVMSPIRVLib.so
Diretórios Instalados: /usr/include/LLVMSPIRVLib

Descrições Curtas

llvm-spirv

converte entre código IR e SPIR-V do LLVM

libLLVMSPIRVLib.so

contém funções que convertem entre código IR e SPIR-V do LLVM

Talloc-2.4.3

Introdução ao Talloc

Talloc fornece um sistema hierárquico de agrupamento de memória contada por referência com destruidores. É o alocador de memória usado no Samba.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.samba.org/ftp/talloc/talloc-2.4.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a51e4220fda52f4ae39413ed7e281f38

  • Tamanho da transferência: 672 KB

  • Espaço em disco estimado exigido: 10 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (com testes)

Dependências do Talloc

Opcionais

docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (para gerar páginas de manual), GDB-16.2, git-2.48.1, libnsl-2.0.1, libtirpc-1.3.6, Valgrind-3.24.0 e xfsprogs-6.13.0

Instalação do Talloc

Instale Talloc executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para verificar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libpytalloc-util.cpython-313-<arch>-linux-gnu.so, libtalloc.so e talloc.cpython-313-<arch>-linux-gnu.so (Módulo Python 3)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libtalloc.so

contém um substituto para a função "malloc" da Glibc

Uchardet-0.0.8

Introdução ao Uchardet

O pacote Uchardet contém uma biblioteca de detecção de codificação que recebe uma sequência de bytes em uma codificação de caracteres desconhecida e tenta determinar a codificação do texto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Uchardet

Exigidas

CMake-3.31.5

Instalação do Uchardet

Instale Uchardet executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_STATIC=OFF          \
      -W no-dev ..                 &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D BUILD_STATIC=OFF: Essa chave desabilita a construção da versão estática da biblioteca.

Conteúdo

Aplicativos Instalados: uchardet
Bibliotecas Instaladas: libuchardet.so
Diretórios Instalados: /usr/include/uchardet

Descrições Curtas

uchardet

detecta qual conjunto de caracteres é usado dentro de um arquivo

libuchardet.so

fornece uma API para detectar a codificação de texto em um arquivo

Umockdev-0.19.1

Introdução ao Umockdev

O pacote Umockdev contém uma estrutura que permite que um(a) desenvolvedor(a) simule dispositivos para uso em testes de unidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Umockdev

Exigidas

libgudev-238, libpcap-1.10.5 e Vala-0.56.17

Opcionais

GTK-Doc-1.34.0, Valgrind-3.24.0 (para testes) e libgphoto2 (para testes)

Instalação do Umockdev

Instale Umockdev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita como o(a) usuário(a) root: ninja test. Um teste precisa ser executado em uma sessão do X.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D gtk_doc=true: Use essa chave se você tiver GTK-Doc-1.34.0 instalado e desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: umockdev-record, umockdev-run e umockdev-wrapper
Bibliotecas Instaladas: libumockdev-preload.so e libumockdev.so
Diretórios Instalados: /usr/include/umockdev-1.0

Descrições Curtas

umockdev-record

registra dispositivos Linux e os ancestrais deles a partir de sysfs/udev ou registra ioctls para um dispositivo

umockdev-run

executa um aplicativo sob um equipamento do umockdev usado para testar novas máquinas

umockdev-wrapper

agrupa um aplicativo em torno de libumockdev-preload.so.0 por meio de LD_PRELOAD

libumockdev.so

fornece funções de API que permitem simular dispositivos de hardware para teste de unidade

utfcpp-4.0.6

Introdução ao utfcpp

O pacote utfcpp contém um conjunto de arquivos de inclusão para fornecer UTF-8 com C++ de maneira portável.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do utfcpp

Exigidas

CMake-3.31.5

Instalação do utfcpp

Instale utfcpp executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr ..

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/utfcpp e /usr/share/utfcpp

Wayland-1.23.0

Introdução ao Wayland

Wayland é um projeto para definir um protocolo para um compositor falar com os clientes dele, bem como uma biblioteca de implementação do protocolo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Wayland

Exigidas

libxml2-2.13.6

Opcionais

Doxygen-1.13.2, Graphviz-12.2.1 e xmlto-0.0.29 (para construir a documentação da API) e docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (para construir as páginas de manual)

Instalação do Wayland

Instale Wayland executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D documentation=false &&
ninja

Para testar os resultados, emita: env -u XDG_RUNTIME_DIR ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D documentation=false: Essa chave é usada para desabilitar a construção da documentação da API. Remova-a se tiver instalado as dependências opcionais.

Conteúdo

Aplicativos Instalados: wayland-scanner
Bibliotecas Instaladas: libwayland-client.so, libwayland-cursor.so, libwayland-egl.so e libwayland-server.so
Diretórios Instalados: /usr/share/wayland

Descrições Curtas

wayland-scanner

é uma ferramenta para gerar métodos de proxy em wayland-client-protocol.h e wayland-server-protocol.h

libwayland-client.so

contém funções de API para escrever aplicativos Wayland

libwayland-cursor.so

contém funções de API para gerenciar cursores em aplicativos Wayland

libwayland-egl.so

contém funções de API para lidar com chamadas OpenGL em aplicativos Wayland

libwayland-server.so

contém funções de API para escrever compositores Wayland

Wayland-Protocols-1.40

Introdução ao Wayland-Protocols

O pacote Wayland-Protocols contém protocolos adicionais do Wayland que adicionam funcionalidade fora dos protocolos já no núcleo do Wayland.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de Wayland-protocols

Exigidas

Wayland-1.23.0

Instalação do Wayland-protocols

Instale Wayland-protocols executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/wayland-protocols

wv-1.2.9

Introdução ao wv

O pacote wv contém ferramentas para ler informação a partir de um documento do MS Word.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de wv

Exigidas

libgsf-1.14.53 e libpng-1.6.46

Opcionais

libwmf

Instalação do wv

Instale wv executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: wvSummary e vários outros aplicativos wv* que foram substituídos pelo abiword: veja-se https://wvware.sourceforge.net/
Biblioteca Instalada: libwv-1.2.so
Diretório Instalado: /usr/share/wv

Descrições Curtas

wvSummary

exibe a informação resumida a partir de um documento do MS Word

libwv-1.2.so

fornece funções para acessar documentos do MS Word

Xapian-1.4.27

Introdução ao xapian

Xapian é uma biblioteca de mecanismo de pesquisa de fonte aberto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://oligarchy.co.uk/xapian/1.4.27/xapian-core-1.4.27.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1b72c939a283c1e61ff6743e7d859041

  • Tamanho da transferência: 3,1 MB

  • Espaço em disco estimado exigido: 146 MB (adicionar 168 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 9,1 UPC para testes; ambos usando paralelismo=4)

Dependências de Xapian

Opcionais

Valgrind-3.24.0 (para os testes)

Instalação do Xapian

Instale Xapian executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/xapian-core-1.4.27 &&
make

Para executar a suíte de teste, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: copydatabase, quest, simpleexpand, simpleindex, simplesearch, xapian-check, xapian-compact, xapian-config, xapian-delve, xapian-metadata, xapian-pos, xapian-progsrv, xapian-replicate, xapian-replicate-server e xapian-tcpsrv
Bibliotecas Instaladas: libxapian.so
Diretórios Instalados: /usr/include/xapian, /usr/lib/cmake/xapian, /usr/share/doc/xapian-core-1.4.27 e /usr/share/xapian-core

Descrições Curtas

copydatabase

realiza uma cópia documento a documento de uma ou mais bases de dados Xapian

quest

é uma ferramenta de linha de comando para pesquisar ao longo de uma base de dados

simpleexpand

é um aplicativo simples de exemplo que demonstra a expansão da consulta

simpleindex

indexa cada parágrafo de um arquivo de texto como um documento Xapian

simplesearch

é um utilitário simples de pesquisa de linha de comando

xapian-check

verifica a consistência de uma base de dados ou de uma tabela

xapian-compact

compacta uma base de dados ou mescla e compacta várias bases de dados

xapian-config

relata informação a respeito da versão instalada do xapian

xapian-delve

inspeciona o conteúdo de uma base de dados Xapian

xapian-metadata

lê e grava metadados de usuário(a)

xapian-pos

inspeciona o conteúdo de uma tabela de pederneira para desenvolvimento ou depuração

xapian-progsrv

é um servidor remoto para uso com ProgClient

xapian-replicate

replica uma base de dados a partir de um servidor mestre para uma cópia local

xapian-replicate-server

atende a solicitações de replicação de base de dados originárias de clientes

xapian-tcpsrv

é o processo de segundo plano do TCP para uso com a estrutura remota de retaguarda do Xapian

Capítulo 10. Bibliotecas de Gráficos e de Fontes

Dependendo de como seu sistema será usado, você pode ou não precisar das bibliotecas de gráficos e de fontes. A maioria das máquinas de área de trabalho as desejará para uso com aplicativos gráficos. A maioria dos servidores, por outro lado, não as exigirá.

AAlib-1.4rc5

Introdução ao AAlib

AAlib é uma biblioteca para renderizar qualquer gráfico em arte ASCII.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do AAlib

Opcionais

Bibliotecas do Xorg, Fontes do Xorg (tempo de execução), slang-2.3.3 e GPM-1.20.7

Instalação do AAlib

Corrija um pequeno problema com o arquivo "m4" incluído:

sed -i -e '/AM_PATH_AALIB,/s/AM_PATH_AALIB/[&]/' aalib.m4

Mude a fonte padrão do X11 de Fontes Legadas do Xorg para Fontes do Xorg:

sed -e 's/8x13bold/-*-luxi mono-bold-r-normal--13-120-*-*-m-*-*-*/' \
    -i src/aax.c

Corrija o uso excessivo de algumas estruturas internas de dados do ncurses para permitir construir esse pacote com ncurses-6.5 ou posterior:

sed 's/stdscr->_max\([xy]\) + 1/getmax\1(stdscr)/' \
    -i src/aacurses.c

Para permitir construir esse pacote com GCC-14 ou posterior, adicione algumas diretivas #include ausentes e corrija uma instrução return incorreta para tornar o código compatível com C99. Em seguida, gere novamente o conjunto de comandos sequenciais configure para garantir que o código C para avaliar o sistema também seja compatível com C99:

sed -i '1i#include <stdlib.h>'                            \
    src/aa{fire,info,lib,linuxkbd,savefont,test,regist}.c &&
sed -i '1i#include <string.h>'                            \
    src/aa{kbdreg,moureg,test,regist}.c                   &&
sed -i '/X11_KBDDRIVER/a#include <X11/Xutil.h>'           \
    src/aaxkbd.c                                          &&
sed -i '/rawmode_init/,/^}/s/return;/return 0;/'          \
    src/aalinuxkbd.c                                      &&
autoconf

Instale AAlib executando os seguintes comandos:

./configure --prefix=/usr            \
            --infodir=/usr/share/info \
            --mandir=/usr/share/man   \
            --with-ncurses=/usr       \
            --disable-static          &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: aafire, aainfo, aalib-config, aasavefont e aatest
Biblioteca Instalada: libaa.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

aafire

é uma demonstração do AAlib, renderizando um fogo animado em arte ASCII

aainfo

fornece informações para suas configurações atuais relacionadas a AAlib

aalib-config

fornece informações de configuração para AAlib

aasavefont

salva uma fonte em um arquivo

aatest

mostra as habilidades de AAlib em um pequeno teste

libaa.so

é uma coleção de rotinas para renderizar qualquer entrada gerada gráfica em formato portável para arte ASCII. Ela pode ser usada por vários aplicativos e tem uma API muito bem documentada, de forma que você consiga colocá-la facilmente em seus próprios programas

babl-0.1.110

Introdução ao Babl

O pacote Babl é uma biblioteca dinâmica de tradução em formato de pixel, de qualquer para qualquer.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/babl/0.1/babl-0.1.110.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 647708858d0c217579dec462b5f202a2

  • Tamanho da transferência: 312 KB

  • Espaço em disco estimado exigido: 14 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)

Dependências do Babl

Recomendadas
Opcionais

Little CMS-2.17 e w3m

Instalação do Babl

Instale Babl executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja 

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&

install -v -m755 -d                        /usr/share/gtk-doc/html/babl/graphics &&
install -v -m644 docs/*.{css,html}          /usr/share/gtk-doc/html/babl          &&
install -v -m644 docs/graphics/*.{html,svg} /usr/share/gtk-doc/html/babl/graphics

Explicações do Comando

install -v -m755 -d /usr/share/gtk-doc/html/babl/graphics: Esse e os comandos subsequentes instalam a documentação html da biblioteca sob /usr /share/gtk-doc/html onde outros pacotes gtk colocam a documentação orientada para o(a) programador(a).

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libbabl-0.1.so e bibliotecas em /usr/lib/babl-0.1
Diretórios Instalados: /usr/{include,lib}/babl-0.1 e /usr/share/gtk-doc/html/babl

Descrições Curtas

libbabl-0.1.so

contém funções para acessar "BablFishes" para converter entre formatos

Exiv2-0.28.5

Introdução ao Exiv2

Exiv2 contém uma biblioteca C++ e um utilitário de linha de comando para gerenciar metadados de imagem e de vídeo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/Exiv2/exiv2/archive/v0.28.5/exiv2-0.28.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f8de9495e03f06be5152ecae3a82815c

  • Tamanho da transferência: 45 MB

  • Espaço em disco estimado exigido: 134 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4, com testes)

Dependências do Exiv2

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

libssh

Opcionais para documentação

Doxygen-1.13.2, Graphviz-12.2.1 e libxslt-1.1.42

Instalação do Exiv2

Instale Exiv2 executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr   \
      -D CMAKE_BUILD_TYPE=Release    \
      -D EXIV2_ENABLE_VIDEO=yes      \
      -D EXIV2_ENABLE_WEBREADY=yes   \
      -D EXIV2_ENABLE_CURL=yes       \
      -D EXIV2_BUILD_SAMPLES=no      \
      -D CMAKE_SKIP_INSTALL_RPATH=ON \
      -G Ninja ..                    &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D EXIV2_ENABLE_VIDEO=yes: Essa chave habilita o gerenciamento de metadados de vídeo.

-D EXIV2_ENABLE_WEBREADY=yes: Essa chave habilita o gerenciamento de metadados de imagem da web.

-D EXIV2_BUILD_SAMPLES=no: Essa chave é necessária para suprimir a construção e instalação de aplicativos de amostra. Se os aplicativos de amostra forem compilados, 34 aplicativos adicionais serão instalados em /usr/bin.

-D EXIV2_ENABLE_CURL=yes: Essa chave é necessária para habilitar os recursos de rede de comunicação/http.

-D EXIV2_ENABLE_INIH=no: Use essa chave se você não tiver instalado inih-58.

-D EXIV2_ENABLE_BROTLI=no: Use essa chave se você não tiver instalado Brotli-1.1.0.

Conteúdo

Aplicativo Instalado: exiv2
Biblioteca Instalada: libexiv2.so
Diretórios Instalados: /usr/include/exiv2 e /usr/lib/cmake/exiv2

Descrições Curtas

exiv2

é um utilitário usado para despejar dados "Exif"

FreeType-2.13.3

Introdução ao FreeType2

O pacote FreeType2 contém uma biblioteca que permite que os aplicativos renderizem corretamente as fontes TrueType.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f3b4432c4212064c00500e1ad63fbc64

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 33 MB (com documentação adicional)

  • Tempo de construção estimado: 0,2 UPC (com documentação adicional)

Transferências Adicionais

Documentação Adicional

Dependências do FreeType2

Recomendadas
Opcionais

Brotli-1.1.0 e librsvg-2.59.2

Opcionais (para documentação)

docwriter

Instalação do FreeType2

Se você baixou a documentação adicional, [então] desempacote-a na árvore do fonte usando o seguinte comando:

tar -xf ../freetype-doc-2.13.3.tar.xz --strip-components=2 -C docs

Instale FreeType2 executando os seguintes comandos:

sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg &&

sed -r "s:.*(#.*SUBPIXEL_RENDERING) .*:\1:" \
   -i include/freetype/config/ftoption.h  &&

./configure --prefix=/usr --enable-freetype-config --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você baixou a documentação opcional, [então] instale-a como o(a) usuário(a) root:

cp -v -R docs -T /usr/share/doc/freetype-2.13.3 &&
rm -v /usr/share/doc/freetype-2.13.3/freetype-config.1

Explicações do Comando

sed -ri ...: O primeiro comando habilita a validação da tabela "GX/AAT" e "OpenType" e o segundo comando habilita a renderização de sub pixel. Observe que a renderização de sub pixel possivelmente tenha problemas de patente. Certifique-se de ler a parte 'Outros problemas de patentes' de https://freetype.org/patents.html antes de habilitar essa opção.

--enable-freetype-config: Essa chave garante que a página de manual para "freetype-config" seja instalada.

--without-harfbuzz: se harfbuzz for instalado antes de freetype sem suporte a freetype, [então] use essa chave para evitar uma falha de construção.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: freetype-config
Biblioteca Instalada: libfreetype.so
Diretórios Instalados: /usr/include/freetype2 e /usr/share/doc/freetype-2.13.3

Descrições Curtas

freetype-config

é usado para obter informações da compilação e da vinculação do FreeType

libfreetype.so

contém funções para renderizar vários tipos de fonte, como "TrueType" e "Type1"

Fontconfig-2.16.0

Introdução ao Fontconfig

O pacote Fontconfig contém uma biblioteca e aplicativos de suporte usados para configurar e personalizar o acesso à fonte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Fontconfig

Exigidas

FreeType-2.13.3

Opcionais

bubblewrap-0.11.0 (usado por alguns testes), cURL-8.12.1 e libarchive-3.7.7 (ambos usados por alguns testes para baixar e extrair arquivos de teste), JSON-C-0.18, DocBook-utils-0.6.14 e libxml2-2.13.6, texlive-20240312 (ou install-tl-unx)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Nota

Se tiver DocBook Utils instalado e remover o parâmetro --disable-docs do comando configure abaixo, você precisa também ter SGMLSpm-1.1 e texlive-20240312 instalados, ou a construção do Fontconfig falhará.

Instalação do Fontconfig

Instale Fontconfig executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-docs       \
            --docdir=/usr/share/doc/fontconfig-2.16.0 &&
make

Para testar os resultados, emita: make check. Um teste é conhecido por falhar se o núcleo não suportar espaços de nomes de usuário(a). Alguns testes transferirão alguns arquivos de fonte via Internet.

Agora, como o(a) usuário(a) root:

make install

Se não removeu o parâmetro --disable-docs do comando configure, [então] você consegue instalar a documentação pré-gerada usando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 \
        /usr/share/{man/man{1,3,5},doc/fontconfig-2.16.0} &&
install -v -m644 fc-*/*.1         /usr/share/man/man1 &&
install -v -m644 doc/*.3          /usr/share/man/man3 &&
install -v -m644 doc/fonts-conf.5 /usr/share/man/man5 &&
install -v -m644 doc/*.{pdf,sgml,txt,html} \
                                  /usr/share/doc/fontconfig-2.16.0

Explicações do Comando

--disable-docs: Essa chave evita construir a documentação (o tarball de lançamento inclui a documentação pré-gerada).

Configurando Fontconfig

Arquivos de Configuração

/etc/fonts/*, /etc/fonts/conf.d/* e /usr/share/fontconfig/conf.avail/*

Informação de Configuração

O arquivo principal de configuração para Fontconfig é /etc/fonts/fonts.conf. Geralmente você não deseja editar esse arquivo. Ele também lerá /etc/fonts/local.conf e quaisquer arquivos em /etc/fonts/conf.d. Para colocar um novo diretório de fontes na configuração, crie (ou atualize) o arquivo /etc/fonts/local.conf com suas informações locais ou adicione um novo arquivo em /etc/fonts/conf.d. O local padrão das fontes em Fontconfig é:

  • /usr/share/fonts

  • ~/.local/share/fonts

  • ~/.fonts (isso agora está obsoleto, mas, no momento, ainda funciona)

Fontconfig também envia muitos arquivos de configuração de exemplo no diretório /usr/share/fontconfig/conf.avail. Criar links simbólicos para arquivos específicos para /etc/fonts/conf.d irá habilitá-los. A configuração padrão geralmente é boa o suficiente para a maioria dos(as) usuários(as). Veja-se /etc/fonts/conf.d/README para uma descrição dos arquivos de configuração.

Mais informações a respeito de configurar o Fontconfig podem ser encontradas no manual do(a) usuário(a) em file:///usr/share/doc/fontconfig-2.16.0/fontconfig-user.html.

Conteúdo

Aplicativos Instalados: fc-cache, fc-cat, fc-conflist, fc-list, fc-match, fc-pattern, fc-query, fc-scan e fc-validate
Biblioteca Instalada: libfontconfig.so
Diretórios Instalados: /etc/fonts, /usr/include/fontconfig, /usr/share/doc/fontconfig-2.16.0, /usr/share/fontconfig, /usr/share/xml/fontconfig e /var/cache/fontconfig

Descrições Curtas

fc-cache

é usado para criar caches de informações de fonte

fc-cat

é usado para ler caches de informações de fonte

fc-conflist

mostra as informações dos arquivos do conjunto de regras no sistema

fc-list

é usado para criar listas de fontes

fc-match

é usado para corresponder às fontes disponíveis ou encontrar fontes que correspondam a um determinado padrão

fc-pattern

é usado para analisar amostra (modelo vazio por padrão) e mostrar o resultado analisado

fc-query

é usado para consultar arquivos de fontes e imprimir padrões resultantes

fc-scan

é usado para escanear arquivos e diretórios de fontes e imprimir padrões resultantes

fc-validate

é usado para validar arquivos de fontes

libfontconfig.so

contém funções usadas pelos aplicativos Fontconfig e também por outros aplicativos para configurar ou personalizar o acesso à fonte

FriBidi-1.0.16

Introdução ao FriBidi

O pacote FriBidi é uma implementação do Algoritmo Bidirecional Unicode (BIDI). Isso é útil para suportar os alfabetos árabe e hebraico em outros pacotes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do FriBidi

Opcionais

c2man (para construir páginas de manual)

Instalação do FriBidi

Instale FriBidi executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: fribidi
Biblioteca Instalada: libfribidi.so
Diretório Instalado: /usr/include/fribidi

Descrições Curtas

fribidi

é uma interface de linha de comando para a biblioteca libfribidi e pode ser usada para converter uma sequência lógica de caracteres para saída gerada visual

libfribidi.so

contém funções usadas para implementar o Algoritmo Bidirecional Unicode

gegl-0.4.54

Introdução ao gegl

Esse pacote fornece a "Generic Graphics Library", que é um formato de processamento de imagens baseado em gráficos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/gegl/0.4/gegl-0.4.54.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e739f5c59b18d3813b7b4ae77372f53d

  • Tamanho da transferência: 5,7 MB

  • Espaço em disco estimado exigido: 124 MB (Adicionar 4 MB para testes)

  • Tempo de construção estimado: 0,7 UPC (adicionar 0,1 UPC para testes, ambos com paralelismo=4)

Dependências do gegl

Exigidas

babl-0.1.110 e JSON-GLib-1.10.6

Recomendadas
Opcionais

asciidoc-10.2.1, Cairo-1.18.2, FFmpeg-7.1 (atualmente quebrado), gdk-pixbuf-2.42.12, gexiv2-0.14.3, GTK-Doc-1.34.0, jasper-4.2.4, Little CMS-2.17, libraw-0.21.3, librsvg-2.59.2, libspiro-20220722, libtiff-4.7.0, libwebp-1.5.0, luajit-20250212, Pango-1.56.1, Poppler-25.02.0, Ruby-3.4.2, SDL2-2.30.11, v4l-utils-1.28.1, Vala-0.56.17, lensfun, libnsgif, libumfpack, maxflow, MRG, OpenCL, OpenEXR, poly2tri-c, source-highlight e w3m

Instalação do gegl

Se você estiver instalando sobre uma versão anterior do gegl, um dos módulos precisará ser removido. Como o(a) usuário(a) root, execute o seguinte comando para removê-lo:

rm -f /usr/lib/gegl-0.4/vector-fill.so

Instale gegl executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D docs=true: Use essa chave para construir e instalar a documentação (exige GTK-Doc-1.34.0).

Conteúdo

Aplicativos Instalados: gegl e gegl-imgcmp
Bibliotecas Instaladas: libgegl-0.4.so, libgegl-npd-0.4.so e módulos em /usr/lib/gegl-0.4
Diretórios Instalados: /usr/lib/gegl-0.4 e /usr/include/gegl-0.4

Descrições Curtas

gegl

é uma ferramenta de linha de comando para interfacear com a biblioteca gegl

gegl-imgcmp

é uma ferramenta simples de detecção de diferença de imagem para uso em testes de regressão

libgegl-0.4.so

fornece infraestrutura para fazer edição de imagem não destrutiva em cache baseada em demanda em "buffers" maiores que a RAM

libgegl-npd-0.4.so

é a biblioteca "GEGL" de deformação de imagem de N pontos

giflib-5.2.2

Introdução ao giflib

O pacote giflib contém bibliotecas para ler e escrever "GIFs", bem como aplicativos para converter e trabalhar com arquivos "GIF".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://sourceforge.net/projects/giflib/files/giflib-5.2.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 913dd251492134e235ee3c9a91987a4d

  • Tamanho da transferência: 440 KB

  • Espaço em disco estimado exigido: 4,0 MB (com documentação)

  • Tempo de construção estimado: menos que 0,1 UPC (com a documentação)

Transferências Adicionais

Dependências do giflib

Exigidas

xmlto-0.0.29

Instalação do giflib

Primeiro, evite que o processo de construção instale arquivos XML em vez de páginas de manual:

patch -Np1 -i ../giflib-5.2.2-upstream_fixes-1.patch

Em seguida, remova uma dependência desnecessária de ImageMagick-7.1.1-43 movendo um arquivo para um local esperado:

cp pic/gifgrid.gif doc/giflib-logo.gif

Instale giflib executando os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr install &&

rm -fv /usr/lib/libgif.a &&

find doc \( -name Makefile\* -o -name \*.1 \
        -o -name \*.xml \) -exec rm -v {} \; &&

install -v -dm755 /usr/share/doc/giflib-5.2.2 &&
cp -v -R doc/* /usr/share/doc/giflib-5.2.2

Explicações do Comando

rm -fv /usr/lib/libgif.a: Esse comando remove uma biblioteca estática que não é usada por nenhum pacote do BLFS.

find doc ... -exec rm -v {} \;: Esse comando remove os arquivos Makefiles, man e xml do diretório de documentação que, de outra forma, seriam instalados pelos comandos a seguir.

Conteúdo

Aplicativos Instalados: gif2rgb, gifbuild, gifclrmp, giffix, giftext e giftool
Biblioteca Instalada: libgif.so
Diretório Instalado: /usr/share/doc/giflib-5.2.2

Descrições Curtas

gif2rgb

converte imagens salvas como "GIF" em imagens "RGB" de 24 bits

gifbuild

despeja dados "GIF" em um formato textual ou os entulha em um "GIF"

gifclrmp

modifica mapas de cores de imagens "GIF"

giffix

tenta desajeitadamente corrigir imagens truncadas "GIF"

giftext

imprime (somente texto) informações gerais a respeito de um arquivo "GIF"

giftool

é uma ferramenta de transformação "GIF"

libgif.so

contém funções de API exigidas pelos aplicativos giflib e quaisquer outros aplicativos necessitando de funcionalidade de biblioteca para ler, escrever e manipular imagens "GIF"

Glad-2.0.8

Introdução ao Glad

O pacote Glad contém um gerador para carregar contextos do Vulkan, OpenGL, EGL, GLES e GLX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Glad

Opcionais (exigidas para executar os testes)

pytest-8.3.4, rustc-1.85.0, Bibliotecas do Xorg, glfw e WINE

Instalação do Glad

Instale Glad executando os seguintes comandos:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote vem com uma suíte de teste, mas ela não pode ser executada sem instalar-se as dependências externas listadas acima.

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user glad2

Conteúdo

Aplicativos Instalados: glad
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/glad e /usr/lib/python3.13/site-packages/glad2-2.0.8.dist-info

Descrições Curtas

glad

gera carregadores para contextos do Vulkan, OpenGL, EGL, GLES e GLX

GLM-1.0.1

Introdução ao GLM

"OpenGL Mathematics" (GLM) é uma biblioteca matemática C++ somente de cabeçalho para software gráfico baseada nas especificações "OpenGL Shading Language" (GLSL). Um sistema de extensão fornece recursos estendidos, tais como transformações de matrizes e "quaternions".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/g-truc/glm/archive/1.0.1/glm-1.0.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f824ac50e16310a95279032f82cbd341

  • Tamanho da transferência: 4,4 MB

  • Espaço em disco estimado exigido: 44 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do GLM

Nota

Esse pacote é incomum, pois inclui a funcionalidade dele em arquivos de cabeçalho. Nós apenas os copiamos para a posição.

Como o(a) usuário(a) root:

cp -r glm /usr/include/ &&
cp -r doc /usr/share/doc/glm-1.0.1

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/include/glm e /usr/share/doc/glm-1.0.1

Graphite2-1.3.14

Introdução ao Graphite2

Graphite2 é um mecanismo de renderização para fontes de grafite. Essas são fontes "TrueType" com tabelas adicionais contendo informações de renderização inteligente e foram originalmente desenvolvidas para suportar sistemas complexos de escrita não romanos. Elas possivelmente contenham regras para, por exemplo, ligaduras, substituição de glifos, "kerning", justificação - isso pode torná-las úteis mesmo em textos escritos em sistemas de escrita romanos, como o inglês. Observe que o firefox por padrão fornece uma cópia interna do mecanismo de grafite e não pode usar uma versão do sistema (embora agora possa ser remendado para usá-lo), mas também ele deveria se beneficiar da disponibilidade de fontes de grafite.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Graphite2

Exigidas

CMake-3.31.5

Opcionais

FreeType-2.13.3, silgraphite para construir a ferramenta de teste e avaliação comparativa comparerender e, se isso estiver presente, e harfBuzz-10.4.0 para adicionar mais funcionalidade para ele (essa é uma dependência circular; você precisaria primeiro construir graphite2 sem harfbuzz).

Para construir a documentação: asciidoc-10.2.1, Doxygen-1.13.2, texlive-20240312 (ou install-tl-unx) e dblatex (para documentos "PDF")

Para executar a suíte de teste, você precisará de FontTools (módulo Python 3), caso contrário, os testes "cmp" falham.

Opcional (em tempo de execução)

Você precisará de pelo menos uma fonte grafite adequada para que o pacote seja útil.

Instalação do Graphite2

Alguns testes falham se o FontTools (módulo Python 3) não estiver instalado. Esses testes podem ser removidos com:

sed -i '/cmptest/d' tests/CMakeLists.txt

Instale Graphite2 executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr .. &&
make

Se você deseja construir a documentação, emita:

make docs

Para testar os resultados, emita: make test. Um teste chamado nametabletest é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, [então] instale, como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/graphite2-1.3.14 &&

cp     -v -f    doc/{GTF,manual}.html \
                    /usr/share/doc/graphite2-1.3.14 &&
cp      -v -f    doc/{GTF,manual}.pdf \
                    /usr/share/doc/graphite2-1.3.14

Explicações do Comando

-D CMAKE_VERBOSE_MAKEFILE=ON: Essa chave liga o modo detalhado de construção.

Conteúdo

Aplicativos Instalados: gr2fonttest e, opcionalmente, comparerender
Bibliotecas Instaladas: libgraphite2.so
Diretórios Instalados: /usr/{include,share}/graphite2 e, opcionalmente, /usr/share/doc/graphite2-1.3.14

Descrições Curtas

comparerender

é uma ferramenta de teste e avaliação comparativa

gr2fonttest

é uma ferramenta de console de diagnóstico para fontes de grafite

libgraphite2.so

é um mecanismo de renderização para fontes de grafite

harfBuzz-10.4.0

Introdução ao Harfbuzz

O pacote HarfBuzz contém um mecanismo de modelagem de texto "OpenType".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do HarfBuzz

Recomendadas
Opcionais

Cairo-1.18.2 (circular: construa cairo e todas as dependências recomendadas dele, incluindo harfbuzz, primeiro, então reconstrua harfbuzz se a infraestrutura de retaguarda cairo for necessária), git-2.48.1, GTK-Doc-1.34.0, FontTools (módulo Python 3, para a suíte de teste), ragel e wasm-micro-runtime

Atenção

As dependências recomendadas não são estritamente necessárias para construir o pacote. No entanto, você pode não obter os resultados esperados no tempo de execução se não os instalar. Por favor, não informe defeitos com esse pacote se você não tiver instalado as dependências recomendadas.

Instalação do HarfBuzz

Instale HarfBuzz executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D graphite2=enabled &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D graphite2=enabled: Essa chave habilita o suporte Graphite2, que é exigido para construir texlive-20240312 ou o LibreOffice-25.2.1.2 com harfbuzz do sistema.

-D docs=disabled: Se GTK-Doc-1.34.0 estiver instalado, a documentação será construída e instalada. Essa chave impede isso.

Conteúdo

Aplicativos Instalados: hb-info, hb-ot-shape-closure, hb-shape, hb-subset e hb-view (somente se "Cairo" estiver instalado)
Bibliotecas Instaladas: libharfbuzz.so, libharfbuzz-cairo.so (somente se "Cairo" estiver instalado), libharfbuzz-gobject.so, libharfbuzz-icu.so e libharfbuzz-subset.so
Diretórios Instalados: /usr/include/harbuzz, /usr/lib/cmake/harfbuzz e /usr/share/gtk-doc/html/harfbuzz (opcional)

Descrições Curtas

hb-info

é usado para coletar informações a respeito das fontes instaladas no sistema

hb-ot-shape-closure

fornece o conjunto de caracteres contidos em uma sequência de caracteres, representados como caracteres únicos e(ou) nomes únicos de caracteres. Exemplo: hb-ot-shape-closure /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World."

hb-shape

é usado para a conversão de sequências de caracteres de texto em glifos posicionados

hb-subset

é usado para criar subconjuntos de fontes e exibir texto usando-os

hb-view

exibe uma visualização gráfica de uma forma de sequência de caracteres usando uma fonte específica como um conjunto de glifos. O formato da saída gerada é definido automaticamente pela extensão do arquivo, sendo as suportadas ansi/png/svg/pdf/ps/eps. Por exemplo: hb-view --output-file=hello.png /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World."

libharfbuzz.so

é a biblioteca de modelagem de texto "HarfBuzz"

libharfbuzz-cairo.so

fornece integração "Cairo" para a biblioteca de modelagem de texto "Harfbuzz"

libharfbuzz-gobject.so

fornece integração "GObject" para a biblioteca de modelagem de texto "HarfBuzz"

libharfbuzz-icu.so

fornece integração "ICU" para a biblioteca de modelagem de texto "HarfBuzz"

libharfbuzz-subset.so

fornece funções de API para realizar operações de subconjunto em arquivos de fonte

jasper-4.2.4

Introdução ao jasper

O Projeto jasper é uma iniciativa de fonte aberto para fornecer uma implementação de referência baseada em software livre do codec JPEG-2000.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do jasper

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

Freeglut-3.6.0 (necessário para jiv), Doxygen-1.13.2 (necessário para gerar documentação html) e texlive-20240312 ( necessário para regerar a documentação em pdf)

Instalação do jasper

Instale jasper executando os seguintes comandos:

mkdir BUILD &&
cd    BUILD &&

cmake -D CMAKE_INSTALL_PREFIX=/usr    \
      -D CMAKE_BUILD_TYPE=Release     \
      -D CMAKE_SKIP_INSTALL_RPATH=ON  \
      -D JAS_ENABLE_DOC=NO            \
      -D ALLOW_IN_SOURCE_BUILD=YES    \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-4.2.4 \
      ..  &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D JAS_ENABLE_DOC=NO: Essa opção desabilita a reconstrução da documentação em PDF se texlive-20240312 estiver instalado.

-D ALLOW_IN_SOURCE_BUILD=YES: Essa chave permite construir a partir da árvore do fonte. No nosso caso, isso é necessário para nos permitir construir dentro do diretório BUILD em vez de precisar criar outro diretório fora da árvore do fonte.

Conteúdo

Aplicativos Instalados: imgcmp, imginfo, jasper e jiv
Biblioteca Instalada: libjasper.so
Diretórios Instalados: /usr/include/jasper e /usr/share/doc/jasper-4.2.4

Descrições Curtas

imgcmp

compara duas imagens da mesma geometria

imginfo

exibe informações a respeito de uma imagem

jasper

converte imagens entre formatos (BMP, JPS, JPC, JPG, PGX, PNM, MIF e RAS)

jiv

exibe imagens

libjasper.so

é uma biblioteca usada por aplicativos para ler e gravar arquivos no formato "JPEG2000"

Little CMS-2.17

Introdução ao Little CMS2

O "Little Color Management System" é um mecanismo de gerenciamento de cores compacto, com foco especial em precisão e desempenho. Ele usa o padrão "International Color Consortium" (ICC), que é o padrão moderno para gerenciamento de cores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Little CMS2

Opcionais

libjpeg-turbo-3.0.1 e libtiff-4.7.0

Instalação do Little CMS2

Instale Little CMS2 executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: jpgicc, linkicc, psicc, tificc e transicc
Biblioteca Instalada: liblcms2.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

jpgicc

é o aplicador de perfil "ICC" do "Little CMS" para "JPEG"

linkicc

é o gerador de ligação de dispositivo "ICC" do "Little CMS"

psicc

é o gerador de "ICC PostScript" do "Little CMS"

tificc

é o gerador de "ICC tiff" do "Little CMS"

transicc

é a calculadora de conversão "ColorSpace" do "Little CMS"

liblcms2.so

contém funções que implementam a API do "lcms2"

libavif-1.2.0

Introdução ao libavif

O pacote libavif contém uma biblioteca usada para codificar e decodificar arquivos AVIF.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libavif

Exigidas

libaom-3.12.0

Recomendadas
Opcionais

gtest, libdav1d, libyuv, rav1e e svt-av1

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do libavif

Instale o libavif executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D AVIF_CODEC_AOM=SYSTEM     \
      -D AVIF_BUILD_GDK_PIXBUF=ON  \
      -D AVIF_LIBYUV=OFF           \
      -G Ninja .. &&
ninja

Para testar o pacote (observe que isso fará com que o sistema de construção baixe uma cópia do gtest e construa a suíte de teste com a cópia), emita:

cmake .. -D AVIF_GTEST=LOCAL -D AVIF_BUILD_TESTS=ON &&
ninja && ninja test

Agora, como o(a) usuário(a) root:

ninja install

O formato AV1 precisa ser adicionado ao cache dos carregadores. Como o(a) usuário(a) root:

gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

-D AVIF_CODEC_AOM=ON: Essa chave habilita usar o codificador AOM. Esse pacote é inútil sem pelo menos um codificador integrado.

-D AVIF_BUILD_GDK_PIXBUF=ON: Essa chave constrói o carregador AVIF para aplicativos que usam gdk-pixbuf. Remova-a se você não tiver instalado o gdk-pixbuf-2.42.12.

-D AVIF_LIBYUV=OFF: Use essa chave se você não tiver instalado libyuv.

-D AVIF_CODEC_DAV1D=SYSTEM: Use essa chave se você tiver instalado libdav1d e desejar usá-lo como um codificador.

-D AVIF_CODEC_RAV1E=SYSTEM: Use essa chave se você tiver instalado rav1e e desejar usá-lo como um codificador.

-D AVIF_CODEC_SVT=SYSTEM: Use essa chave se você tiver instalado svt-av1 e desejar usá-lo como um codificador.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libavif.so e libpixbbufloader-avif.so (em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders)
Diretórios Instalados: /usr/include/avif e /usr/lib/cmake/libavif

Descrições Curtas

libavif.so

contém funções que fornecem uma implementação C portável do formato de imagem AV1

libpixbufloader-avif.so

permite que aplicativos que usam gdk-pixbuf leiam imagens AVIF

libexif-0.6.25

Introdução ao "libexif"

O pacote libexif contém uma biblioteca para analisar, editar e salvar dados "EXIF". A maioria das câmeras digitais produz arquivos "EXIF", que são arquivos "JPEG" com etiquetas extras que contém informações a respeito da imagem. Todas as etiquetas "EXIF" descritas no padrão "EXIF 2.1" são suportadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libexif"

Opcionais (para construir a documentação)

Doxygen-1.13.2 e Graphviz-12.2.1

Instalação do "libexif"

Instale libexif executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --with-doc-dir=/usr/share/doc/libexif-0.6.25 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

A documentação foi construída e instalada se você tiver as dependências mostradas acima instaladas. Se você não tiver as dependências instaladas, [então] existe um "tarball" comprimido no diretório doc da árvore do fonte que pode ser desempacotado em /usr/share/doc/libexif-0.6.25.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libexif.so
Diretórios Instalados: /usr/include/libexif e /usr/share/doc/libexif-0.6.25

Descrições Curtas

libexif.so

contém funções usadas para analisar, editar e salvar dados "EXIF"

libgxps-0.3.2

Introdução ao libgxps

O pacote libgxps fornece uma interface para manipular documentos "XPS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Libgxps

Exigidas

GTK-3.24.48, Little CMS-2.17, libarchive-3.7.7, libjpeg-turbo-3.0.1, libtiff-4.7.0 e libxslt-1.1.42

Opcionais

git-2.48.1 e GTK-Doc-1.34.0

Instalação do Libgxps

Instale Libgxps executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: xpstojpeg, xpstopdf, xpstopng, xpstops e xpstosvg
Biblioteca Instalada: libgxps.so
Diretórios Instalados: /usr/include/libgxps

Descrições Curtas

xpstojpeg

converte documentos "XPS" em uma imagem "JPEG"

xpstopdf

converte documentos "XPS" para o formato "PDF"

xpstopng

converte documentos "XPS" em uma imagem "PNG"

xpstops

converte documentos "XPS" em "PostScript"

xpstosvg

converte documentos "XPS" em imagens "SVG"

libgxps.so

contém funções de API para manipular documentos "XPS"

libjpeg-turbo-3.0.1

Introdução ao libjpeg-turbo

libjpeg-turbo é uma bifurcação do libjpeg "IJG" original que usa "SIMD" para acelerar a compressão e descompressão "JPEG" da linha de base. libjpeg é uma biblioteca que implementa codificação, decodificação e transcodificação de imagens "JPEG".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libjpeg-turbo

Exigidas

CMake-3.31.5

Recomendadas

Instalação do libjpeg-turbo

Instale libjpeg-turbo executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=RELEASE         \
      -D ENABLE_STATIC=FALSE              \
      -D CMAKE_INSTALL_DEFAULT_LIBDIR=lib \
      -D CMAKE_SKIP_INSTALL_RPATH=ON      \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-3.0.1 \
      .. &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D WITH_JPEG8=ON: Essa chave habilita a compatibilidade com libjpeg versão 8.

Conteúdo

Aplicativos Instalados: cjpeg, djpeg, jpegtran, rdjpgcom, tjbench e wrjpgcom
Bibliotecas Instaladas: libjpeg.so e libturbojpeg.so
Diretórios Instalados: /usr/share/doc/libjpeg-turbo-3.0.1

Descrições Curtas

cjpeg

comprime arquivos de imagem para produzir um arquivo "JPEG/JFIF" na saída gerada padrão. Os formatos de arquivo de entrada atualmente suportados são: "PPM" (formato de cor "PBMPLUS"), "PGM" (formato de escala de cinza "PBMPLUS"), "BMP" e "Targa"

djpeg

descomprime arquivos de imagem do formato "JPEG/JFIF" para ou "PPM" (formato de cores "PBMPLUS"), "PGM" (formato de escala de cinza "PBMPLUS"), "BMP" ou formato "Targa"

jpegtran

é usado para transformação sem perdas de arquivos "JPEG"

rdjpgcom

exibe comentários de texto a partir de um arquivo "JPEG"

tjbench

é usado para avaliar comparativamente o desempenho da "libjpeg-turbo"

wrjpgcom

insere comentários de texto em um arquivo "JPEG"

libjpeg.so

contém funções usadas para ler e gravar imagens "JPEG"

libjxl-0.11.1

Introdução ao libjxl

O pacote libjxl contém a implementação de referência do formato de imagem JPEG XL.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de libjxl

Exigidas

Brotli-1.1.0, CMake-3.31.5, giflib-5.2.2, highway-1.2.0, Little CMS-2.17, libjpeg-turbo-3.0.1 e libpng-1.6.46

Recomendadas
Opcionais

asciidoc-10.2.1 (para páginas de manual), Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação), Java-23.0.2 (para o JAR), libavif-1.2.0, libwebp-1.5.0, gtest, OpenEXR, sjpeg e skcms

Instalação do libjxl

Instale libjxl executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr             \
      -D CMAKE_BUILD_TYPE=Release              \
      -D BUILD_TESTING=OFF                     \
      -D BUILD_SHARED_LIBS=ON                  \
      -D JPEGXL_ENABLE_SKCMS=OFF               \
      -D JPEGXL_ENABLE_SJPEG=OFF               \
      -D JPEGXL_ENABLE_PLUGINS=ON              \
      -D JPEGXL_INSTALL_JARDIR=/usr/share/java \
      -G Ninja ..                              &&
ninja

Esse pacote vem com uma suíte de teste, porém ela exige gtest, que não está no BLFS.

Agora, como o(a) usuário(a) root:

ninja install &&
gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

gdk-pixbuf-query-loaders --update-cache: Esse comando regenera o cache do carregador do GDK Pixbuf, de forma que ele esteja ciente do carregador JPEG-XL.

-D BUILD_TESTING=OFF: Esse parâmetro desabilita os testes porque eles exigem gtest, que não está no BLFS. Se você deseja executar os testes e ter o gtest instalado, remova esse parâmetro.

-D BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas em vez das estáticas.

-D JPEGXL_ENABLE_SKCMS=OFF: Esse parâmetro desabilita construir suporte para skcms do Skia, pois não é necessário para fins de BLFS e exige skcms.

-D JPEGXL_ENABLE_SJPEG=OFF: Esse parâmetro desabilita o suporte para SimpleJPEG, pois não é necessário para fins de BLFS e exige sjpeg.

-D JPEGXL_ENABLE_PLUGINS=ON: Esse parâmetro habilita o suporte de Plugin, que cria plug-ins para gdk-pixbuf-2.42.12 se o pacote estiver instalado.

-D JPEGXL_INSTALL_JARDIR=/usr/share/java: Esse parâmetro coloca o arquivo JAR para suporte JPEG XL no diretório correto se Java-23.0.2 estiver instalado.

Conteúdo

Aplicativos Instalados: benchmark_xl, cjxl, djxl e jxlinfo
Bibliotecas Instaladas: libjxl.so, libjxl_cms.so, libjxl_extras_codec.so, libjxl_jni.so, libjxl_threads.so e libpixbufloader-jxl.so (em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders)
Diretórios Instalados: /usr/include/jxl

Descrições Curtas

benchmark_xl

executa avaliações de desempenho em relação à libjxl

cjxl

comprime imagens no formato JPEG XL

djxl

descomprime imagens do formato JPEG XL para outros formatos

jxlinfo

exibe informações acerca de imagens JPEG XL

libjxl.so

contém a implementação de referência do padrão JPEG XL

libjxl_cms.so

contém suporte para Little CMS na libjxl

libjxl_extras_codec.so

contém suporte adicional de codificador/decodificador para imagens JPEG XL

libjxl_jni.so

contém uma interface Java para suportar JPEG XL em sistemas onde Java-23.0.2 foi instalado ao tempo da construção

libjxl_threads.so

contém funções de camada para JPEG XL

libpixbufloader-jxl.so

contém um carregador para gdk-pixbuf para permiti-lo carregar imagens JPEG XL

libmng-2.0.3

Introdução ao libmng

As bibliotecas libmng são usadas por aplicativos querendo ler e gravar arquivos "Multiple-image Network Graphics" ("MNG"), que são os equivalentes de animação aos arquivos "PNG".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libmng

Exigidas

libjpeg-turbo-3.0.1 e Little CMS-2.17

Instalação do libmng

Instale libmng executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d       /usr/share/doc/libmng-2.0.3 &&
install -v -m644 doc/*.txt /usr/share/doc/libmng-2.0.3

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmng.so
Diretório Instalado: /usr/share/doc/libmng-2.0.3

Descrições Curtas

libmng.so

fornece funções para aplicativos desejando ler e gravar arquivos "MNG" que são arquivos de animação sem os problemas de patente associados com certos outros formatos

libmypaint-1.6.1

Introdução ao libmypaint

O pacote libmypaint, também conhecido como "brushlib", é uma biblioteca para fazer pinceladas que é usada pelo "MyPaint" e outros projetos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libmypaint

Exigidas

JSON-C-0.18

Recomendadas
Opcionais

Doxygen-1.13.2 (para criar documentos "XML"), gegl (somente versões 0.3) e gperftools

Instalação do libmypaint

Instale libmypaint executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum.
Bibliotecas Instaladas: libmypaint.so (e, opcionalmente, "libmypaint-gegl.so", que não é usada por nenhum pacote neste livro).
Diretório Instalado: /usr/include/libmypaint

Descrições Curtas

libmypaint.so

contém funções para fazer pinceladas

libpng-1.6.46

Introdução ao libpng

O pacote libpng contém bibliotecas usadas por outros aplicativos para ler e gravar arquivos "PNG". O formato "PNG" foi projetado como um substituto para o "GIF" e, em menor grau, o "TIFF", com muitas melhorias e extensões e ausência de problemas de patente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libpng/libpng-1.6.46.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2ba00adb5d5c76d512486559a3e77be7

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 14 UPC (com testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,3 UPC para testes)

Transferências Adicionais

Instalação do libpng

Se você deseja remendar a "libpng" para suportar arquivos "apng", [então] aplique-o aqui:

gzip -cd ../libpng-1.6.46-apng.patch.gz | patch -p1

Instale libpng executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
mkdir -v /usr/share/doc/libpng-1.6.46 &&
cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.46

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: libpng-config (link simbólico), libpng16-config, pngfix e png-fix-itxt
Bibliotecas Instaladas: libpng.so
Diretórios Instalados: /usr/include/libpng16 e /usr/share/doc/libpng-1.6.46

Descrições Curtas

pngfix

testa, otimiza e, opcionalmente, corrige o cabeçalho "zlib" em arquivos "PNG". Opcionalmente, ao corrigir, retira pedaços auxiliares do arquivo

png-fix-itxt

corrige arquivos "PNG" que tem um campo incorreto de comprimento nos blocos "iTXt"

libpng-config

é um script de shell que fornece informações de configuração para aplicativos querendo usar a libpng

libpng.so

contém rotinas usadas para criar e manipular arquivos gráficos no formato "PNG"

libraw-0.21.3

Introdução ao libraw

Libraw é uma biblioteca para leitura de arquivos BRUTOS obtidos a partir de câmeras digitais (CRW/CR2, NEF, RAF, DNG e outros).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libraw.org/data/LibRaw-0.21.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b9d2b96a8e30ed76ff5b0da19f3fbe81

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 27 MB

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)

Dependências do libraw

Recomendadas

Instalação do libraw

Instale libraw executando os seguintes comandos:

./configure --prefix=/usr    \
            --enable-jpeg    \
            --enable-jasper  \
            --enable-lcms    \
            --disable-static \
            --docdir=/usr/share/doc/libraw-0.21.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-jpeg: Essa chave habilita o suporte para imagens JPEG. Remova-a se você não tiver libjpeg-turbo-3.0.1 instalado.

--enable-jasper: Essa chave habilita o suporte para imagens JPEG2000. Remova-a se você não tiver jasper-4.2.4 instalado.

--enable-lcms: Essa chave habilita o suporte para gerenciamento de cores. Remova-a se você não tiver Little CMS-2.17 instalado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Nota

Todos os programas instalados são exemplos de uso da libraw.

Aplicativos Instalados: 4channels, dcraw_emu, dcraw_half, half_mt, mem_image, multirender_test, postprocessing_benchmark, raw-identify, simple_dcraw e unprocessed_raw
Biblioteca Instalada: libraw.so e libraw_r.so
Diretórios Instalados: /usr/include/libraw e /usr/share/doc/libraw-0.21.3

Descrições Curtas

4channels

gera quatro arquivos TIFF a partir de dados BRUTOS, com um arquivo por canal

dcraw_half

emula executar "dcraw -h" (veja-se a página de manual do DCRAW)

mem_image

emula executar "dcraw [-4] [-6] [-e]" (veja-se a página de manual do DCRAW)

postprocessing_benchmark

cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos

simple_dcraw

emula executar "dcraw [-D] [-T] [-v] [-e] [-4]" (veja-se a página de manual do DCRAW)

dcraw_emu

é um emulador "dcraw" quase completo (veja-se a página de manual do DCRAW)

half_mt

emula executar "dcraw -h [-w] [-a] [-v]" (veja-se a página de manual do DCRAW)

multirender_test

cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos

raw-identify

emula executar "dcraw -i [-v]" (veja-se a página de manual do DCRAW)

unprocessed_raw

gera uma imagem bruta não processada (com pixeis mascarados e sem subtração de preto)

libraw.so

contém funções usadas para analisar, editar e salvar dados BRUTOS de imagem.

librsvg-2.59.2

Introdução ao librsvg

O pacote librsvg contém uma biblioteca e ferramentas usadas para manipular, converter e visualizar imagens "Scalable Vector Graphic" ("SVG").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/librsvg/2.59/librsvg-2.59.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6d495c8bb2ee0cb0a62856c790a67298

  • Tamanho da transferência: 6,3 MB

  • Espaço em disco estimado exigido: 1,2 GB (17 MB instalado), adicionar 492 MB para testes

  • Tempo de construção estimado: 0,6 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4)

Dependências do librsvg

Exigidas

Cairo-1.18.2, cargo-c-0.10.11, gdk-pixbuf-2.42.12, Pango-1.56.1 e rustc-1.85.0

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Recomendadas
Opcionais

docutils-0.21.2 (para páginas de manual), Gi-DocGen-2025.3 (para documentação) e Fontes do Xorg (para testes)

Instalação do librsvg

Primeiro, corrija o caminho de instalação da documentação da API:

sed -e "/OUTDIR/s|,| / 'librsvg-2.59.2', '--no-namespace-dir',|" \
    -e '/output/s|Rsvg-2.0|librsvg-2.59.2|'                      \
    -i doc/meson.build

Instale librsvg executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita:

ninja test

Um teste, Rust tests (rsvg), é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: rsvg-convert
Biblioteca Instalada: librsvg-2.so e libpixbufloader-svg.so (instalada em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders)
Diretórios Instalados: /usr/include/librsvg-2.0 e /usr/share/doc/librsvg-2.59.2

Descrições Curtas

rsvg-convert

é usado para converter imagens em "PNG", "PDF", "PS", "SVG" e outros formatos

librsvg-2.so

fornece as funções para renderizar Gráficos Escaláveis Vetoriais

libpixbufloader-svg.so

é o plug-in Gdk Pixbuf que permite que aplicativos GTK+ renderizem imagens de Gráficos Escaláveis Vetoriais

Libspiro-20220722

Introdução ao libspiro

Libspiro pegará uma matriz de pontos de controle "spiro" e os converterá em uma série de "splines bezier" que podem então ser usados em uma miríade de maneiras que o mundo passou a usar "beziers".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do libspiro

Instale libspiro executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libspiro.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libspiro.so

é uma biblioteca compartilhável que pode ser usada por aplicativos para fazer os cálculos do "Spiro" para você

libtiff-4.7.0

Introdução ao libtiff

O pacote libtiff contém as bibliotecas "TIFF" e utilitários associados. As bibliotecas são usadas por muitos aplicativos para ler e gravar arquivos "TIFF" e os utilitários são usados para trabalhos gerais com arquivos "TIFF".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3a0fa4a270a4a192b08913f88d0cfbdd

  • Tamanho da transferência: 3,7 MB

  • Espaço em disco estimado exigido: 60 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Dependências do libtiff

Recomendadas
Opcionais

Freeglut-3.6.0 (exigido para tiffgt), libjpeg-turbo-3.0.1, sphinx-8.2.1, libwebp-1.5.0, JBIG-KIT e LERC

Instalação do libtiff

Instale libtiff executando os seguintes comandos:

mkdir -p libtiff-build &&
cd       libtiff-build &&

cmake -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libtiff-4.7.0 \
      -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: fax2ps, fax2tiff, pal2rgb, ppm2tiff, raw2tiff, tiff2bw, tiff2pdf, tiff2ps, tiff2rgba, tiffcmp, tiffcp, tiffcrop, tiffdither, tiffdump, tiffgt, tiffinfo, tiffmedian, tiffset e tiffsplit
Bibliotecas Instaladas: libtiff.so e libtiffxx.so
Diretório Instalado: /usr/lib/cmake/tiff e /usr/share/doc/tiff-4.7.0

Descrições Curtas

fax2ps

converte um fac-símile "TIFF" em arquivo comprimido "PostScript"

fax2tiff

cria um arquivo de fax "TIFF" Classe F a partir de dados brutos de fax

pal2rgb

converte uma imagem "TIFF" colorida da paleta em uma imagem completa colorida

ppm2tiff

cria um arquivo "TIFF" a partir de um arquivo de imagem "PPM"

raw2tiff

converte uma sequência bruta de bytes em "TIFF"

tiff2bw

converte uma imagem colorida "TIFF" em tons de cinza

tiff2pdf

converte uma imagem "TIFF" em um documento "PDF"

tiff2ps

converte uma imagem "TIFF" em um arquivo "PostScript"

tiff2rgba

converte uma ampla variedade de imagens "TIFF" em uma imagem "RGBA TIFF"

tiffcmp

compara dois arquivos "TIFF"

tiffcp

copia (e possivelmente converte) um arquivo "TIFF"

tiffcrop

seleciona, copia, recorta, converte, extrai e(ou) processa um ou mais arquivos "TIFF"

tiffdither

converte uma imagem em tons de cinza em dois níveis usando pontilhamento

tiffdump

imprime informações literais a respeito de arquivos "TIFF"

tiffgt

exibe uma imagem armazenada em um arquivo "TIFF"

tiffinfo

imprime informações relativas a arquivos "TIFF"

tiffmedian

aplica o algoritmo de corte mediano aos dados em um arquivo "TIFF"

tiffset

configura o valor de um cabeçalho "TIFF" para um valor especificado

tiffsplit

divide um "TIFF" de várias imagens em arquivos "TIFF" de imagem única

libtiff.so

contém as funções de API usadas pelos aplicativos libtiff assim como outros aplicativos para ler e gravar arquivos "TIFF"

libtiffxx.so

contém as funções da API C++ usadas pelos aplicativos para ler e gravar arquivos "TIFF"

libwebp-1.5.0

Introdução ao libwebp

O pacote libwebp contém uma biblioteca e aplicativos de suporte para codificar e decodificar imagens no formato "WebP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libwebp

Recomendadas
Opcionais

Freeglut-3.6.0 e giflib-5.2.2

Instalação do libwebp

Instale libwebp executando os seguintes comandos:

./configure --prefix=/usr          \
            --enable-libwebpmux     \
            --enable-libwebpdemux   \
            --enable-libwebpdecoder \
            --enable-libwebpextras  \
            --enable-swap-16bit-csp \
            --disable-static        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-swap-16bit-csp: Essa chave habilita a troca de bytes para espaços de cores de 16 bits.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: cwebp, dwebp, gif2webp, img2webp, vwebp, webpinfo e webpmux
Biblioteca Instalada: libsharpyuv.so, libwebpdecoder.so, libwebpdemux.so, libwebpmux.so e libwebp.so
Diretório Instalado: /usr/include/webp

Descrições Curtas

cwebp

comprime uma imagem usando o formato "WebP"

dwebp

descomprime arquivos "WebP" em imagens "PNG", "PAM", "PPM" ou "PGM"

gif2webp

converte uma imagem "GIF" em uma imagem "WebP"

img2webp

cria um arquivo animado "WebP" a partir de uma sequência de imagens de entrada

vwebp

descomprime um arquivo "WebP" e o exibe em uma janela

webpinfo

imprime a estrutura de nível "cunk" dos arquivos "WebP" junto com a realização de verificações básicas de integridade

webpmux

cria arquivos animados "WebP" a partir de imagens não animadas "WebP", extrai quadros a partir de imagens animadas "WebP" e gerencia metadados "XMP"/"EXIF" e o perfil "ICC"

libwebp.so

contém as funções de API para codificação e decodificação "WebP"

mypaint-brushes-1.3.1

Introdução ao mypaint-brushes

O pacote mypaint-brushes contém pincéis usados por pacotes que usam a "libmypaint".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do mypaint-brushes

Exigidas em tempo de execução

libmypaint-1.6.1

Instalação do mypaint-brushes

Instale mypaint-brushes executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a).
Bibliotecas Instaladas: Nenhum(a).
Diretórios Instalados: /usr/share/mypaint-data.

newt-0.52.24

Introdução ao newt

Newt é uma biblioteca de programação para modo de texto colorido, interfaces de usuário(a) baseadas em pequenas engenhocas. Ela pode ser usada para adicionar janelas empilhadas, pequenas engenhocas de entrada, caixas de seleção, botões de opção, rótulos, campos de texto simples, barras de rolagem, etc., a interfaces de usuário(a) em modo texto. Newt é baseado na biblioteca "S-Lang".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://releases.pagure.org/newt/newt-0.52.24.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9a0630e2f59eaa3037aec94989c36c4a

  • Tamanho da transferência: 176 KB

  • Espaço em disco estimado exigido: 3,0 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Newt

Exigidas

popt-1.19 e slang-2.3.3

Recomendadas

Instalação do newt

Instale newt executando o seguinte comando:

sed -e '/install -m 644 $(LIBNEWT)/ s/^/#/' \
    -e '/$(LIBNEWT):/,/rv/ s/^/#/'         \
    -e 's/$(LIBNEWT)/$(LIBNEWTSH)/g'        \
    -i Makefile.in                          &&

./configure --prefix=/usr           \
            --with-gpm-support      \
            --with-python=python3.13 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -e ... -i Makefile.in: Desabilita a instalação de uma biblioteca estática.

--with-gpm-support: Essa chave habilita o suporte de mouse para aplicativos "newt" por meio do "GPM".

--with-python=python3.13: Ao fornecer explicitamente o nome do diretório onde residem os módulos Python, essa chave impede a construção do módulo "python2".

Conteúdo

Aplicativos Instalados: whiptail
Biblioteca Instalada: libnewt.so, whiptcl.so e /usr/lib/python3.13/site-packages/_snack.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

whiptail

exibe caixas de diálogo a partir de scripts de shell

libnewt.so

é a biblioteca para modo de texto colorido, interfaces de usuário(a) baseadas em pequenas engenhocas

opencv-4.11.0

Introdução ao opencv

O pacote opencv contém bibliotecas gráficas voltadas principalmente para visão computacional em tempo real.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/opencv/opencv/archive/4.11.0/opencv-4.11.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f35fbd46350cc677af13e198805b58f7

  • Tamanho da transferência: 91 MB

  • Espaço em disco estimado exigido: 832 MB (com opencv-contrib)

  • Tempo de construção estimado: 3,6 UPC (usando paralelismo = 8)

Transferências Adicionais

Nota

Um arquivo adicional que começa com "ippicv" (primitivas de desempenho integrado) será baixado automaticamente durante a parte "cmake" do procedimento de construção. Essa transferência é específica para a arquitetura do sistema.

Dependências do opencv

Exigidas

CMake-3.31.5 e libarchive-3.7.7

Recomendadas
Opcionais

apache-ant-1.10.15, Doxygen-1.13.2, Java-23.0.2, NumPy-2.2.3, Protobuf-29.3, ATLAS, blas, Cuda, Eigen, OpenEXR, GDAL, lapack, libdc1394, Threading Building Blocks (TBB) e VTK - The Visualization Toolkit,

Instalação do opencv

Se você baixou os módulos opcionais, [então] desempacote-os agora:

tar -xf ../opencv_contrib-4.11.0.tar.gz

Instale opencv executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr      \
      -D CMAKE_BUILD_TYPE=Release       \
      -D ENABLE_CXX11=ON                \
      -D BUILD_PERF_TESTS=OFF           \
      -D WITH_XINE=ON                   \
      -D BUILD_TESTS=OFF                \
      -D ENABLE_PRECOMPILED_HEADERS=OFF \
      -D CMAKE_SKIP_INSTALL_RPATH=ON    \
      -D BUILD_WITH_DEBUG_INFO=OFF      \
      -D OPENCV_GENERATE_PKGCONFIG=ON   \
      -W no-dev  ..                     &&
make

O pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D WITH_XINE=ON: Essa chave instrui o procedimento make a usar xine-lib-1.2.13.

-D ENABLE_PRECOMPILED_HEADERS=OFF: Essa chave é necessária para compatibilidade com gcc-6.1 e posteriores.

-D OPENCV_GENERATE_PKGCONFIG=ON: Essa chave informa ao sistema de construção para gerar um arquivo pkg-config para outros pacotes detectarem e se vincularem às bibliotecas instaladas por este pacote.

-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.11.0/modules: instrui o sistema de construção a construir módulos adicionais. Alguns pacotes no BLFS (como gst-plugins-bad-1.24.12) precisam desses módulos para construir componentes que usam OpenCV.

Conteúdo

Aplicativos Instalados: opencv_annotation, opencv_interactive-calibration, opencv_model_diagnostics, opencv_version, opencv_visualisation e setup_vars_opencv4.sh
Bibliotecas Instaladas: libopencv_calib3d.so, libopencv_core.so, libopencv_dnn.so, libopencv_features2d.so, libopencv_flann.so, libopencv_gapi.so, libopencv_highgui.so, libopencv_imgcodecs.so, libopencv_imgproc.so, libopencv_ml.so, libopencv_objdetect.so, libopencv_photo.so, libopencv_stitching.so, libopencv_video.so e libopencv_videoio.so
Diretórios Instalados: /usr/include/opencv4, /usr/lib/cmake/opencv4, /usr/lib/python3.13/site-packages/cv2, /usr/share/licenses/opencv4, /usr/share/opencv4 e /usr/share/java/opencv4

OpenJPEG-2.5.3

Introdução ao OpenJPEG

OpenJPEG é uma implementação de fonte aberto do padrão "JPEG-2000". O OpenJPEG respeita totalmente as especificações "JPEG-2000" e consegue comprimir/descomprimir imagens de 16 bits sem perdas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/uclouvain/openjpeg/archive/v2.5.3/openjpeg-2.5.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 12ae257cb21738c41b5f6ca977d01081

  • Tamanho da transferência: 2,1 MB

  • Espaço em disco estimado exigido: 17 MB (adicionar 1,7 GB para os testes)

  • Tempo de construção estimado: 0,2 UPC (adicionar 1,0 UPC para testes)

Dependências do OpenJPEG

Exigidas

CMake-3.31.5

Opcionais

git-2.48.1 (para testes), Little CMS-2.17, libpng-1.6.46, libtiff-4.7.0 e Doxygen-1.13.2 (para construir a documentação da API)

Instalação do OpenJPEG

Instale OpenJPEG executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_STATIC_LIBS=OFF ..  &&
make

Se você desejar executar os testes, alguns arquivos adicionais serão necessários. Baixe esses arquivos e execute os testes usando os seguintes comandos, mas observe que oito (8) testes são conhecidos por falharem:

git clone https://github.com/uclouvain/openjpeg-data.git --depth 1 &&
OPJ_DATA_ROOT=$PWD/openjpeg-data cmake -D BUILD_TESTING=ON ..      &&
make                                                               &&
make test

Agora, como o(a) usuário(a) root:

make install &&
cp -rv ../doc/man -T /usr/share/man

Conteúdo

Aplicativos Instalados: opj_compress, opj_decompress e opj_dump
Bibliotecas Instaladas: libopenjp2.so
Diretórios Instalados: /usr/include/openjpeg-2.5 e /usr/lib/openjpeg-2.5

Descrições Curtas

opj_compress

converte vários formatos de imagem para o formato "jpeg2000"

opj_decompress

converte imagens "jpeg2000" para outros tipos de imagem

opj_dump

lê uma imagem "jpeg2000" e despeja o conteúdo para a saída gerada padrão

Pixman-0.44.2

Introdução ao Pixman

O pacote Pixman contém uma biblioteca que fornece recursos de manipulação de pixel de baixo nível, como composição de imagem e rasterização trapezoidal.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/pixman-0.44.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0825cd6bfc488d5177f2f013a06ef240

  • Tamanho da transferência: 796 KB

  • Espaço em disco estimado exigido: 29 MB (Com testes)

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; com testes)

Dependências do Pixman

Opcionais

libpng-1.6.46 e GTK-3.24.48 (para testes e demonstrações)

Instalação do Pixman

Instale Pixman executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libpixman-1.so
Diretório Instalado: /usr/include/pixman-1

Descrições Curtas

libpixman-1.so

contém funções que fornecem recursos de baixo nível de manipulação de pixel

Poppler-25.02.0

Introdução ao Poppler

O pacote Poppler contém uma biblioteca de renderização de PDF e ferramentas de linha de comando usadas para manipular arquivos PDF. Isso é útil para fornecer funcionalidade de renderização de PDF como uma biblioteca compartilhada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://poppler.freedesktop.org/poppler-25.02.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: feae5e0715ed7738fcb4220730a3ff4c

  • Tamanho da transferência: 1,9 MB

  • Espaço em disco estimado exigido: 77 MB (com biblioteca Qt6 e testes)

  • Tempo de construção estimado: 1,0 UPC (com paralelismo=4, testes e biblioteca Qt6)

Transferências Adicionais

Dados de Codificação Poppler

O pacote adicional consiste de arquivos de codificação para uso com Poppler. Os arquivos de codificação são opcionais e o Poppler os lerá automaticamente se estiverem presentes. Quando instalados, eles habilitam Poppler a renderizar "CJK" e cirílico corretamente.

Dependências do Poppler

Exigidas

CMake-3.31.5, Fontconfig-2.16.0 e GLib-2.82.5 (com GObject Introspection)

Recomendadas
Opcionais

cURL-8.12.1, gdk-pixbuf-2.42.12, git-2.48.1 (para baixar arquivos de teste), GTK-Doc-1.34.0 e GTK-3.24.48

Instalação do Poppler

Agora, Instale Poppler executando os seguintes comandos:

mkdir build                         &&
cd    build                         &&

cmake -D CMAKE_BUILD_TYPE=Release   \
      -D CMAKE_INSTALL_PREFIX=/usr  \
      -D TESTDATADIR=$PWD/testfiles \
      -D ENABLE_QT5=OFF             \
      -D ENABLE_UNSTABLE_API_ABI_HEADERS=ON \
      -G Ninja ..                   &&
ninja

Para a finalidade de executar a suíte de teste, alguns casos de teste são necessários e podem ser obtidos somente a partir de um repositório git. O comando para baixá-los é: git clone --depth 1 https://gitlab.freedesktop.org/poppler/test.git testfiles. Em seguida, emita: LC_ALL=en_US.UTF-8 ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Para instalar a documentação, execute os seguintes comandos como root:

install -v -m755 -d          /usr/share/doc/poppler-25.02.0 &&
cp -vr ../glib/reference/html /usr/share/doc/poppler-25.02.0

Dados Poppler

Se você baixou o pacote adicional de dados de codificação, [então] instale-o emitindo os seguintes comandos:

tar -xf ../../poppler-data-0.4.12.tar.gz &&
cd poppler-data-0.4.12

Agora, como o(a) usuário(a) root:

make prefix=/usr install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-D TESTDATADIR=$PWD/testfiles: Informa aos aplicativos de teste onde os arquivos auxiliares estão localizados.

-D ENABLE_QT5=OFF: Essa chave é necessária para evitar um erro quando o Qt5 não estiver instalado.

-D ENABLE_UNSTABLE_API_ABI_HEADERS=ON: Instala alguns cabeçalhos antigos do Xpdf exigidos por certos aplicativos.

-D ENABLE_GTK_DOC=ON: Use esse parâmetro se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

-D ENABLE_QT6=OFF: Use esse parâmetro se Qt-6.8.2 não estiver instalado.

-D ENABLE_BOOST=OFF: Use esse parâmetro se você não tiver instalado o boost (a estrutura de retaguarda Splash para Qt6 recomenda o boost).

-D ENABLE_NSS3=OFF: Use esse parâmetro se você não tiver instalado nss.

-D ENABLE_GPGME=OFF: Use esse parâmetro se você não tiver instalado gpgme.

-D ENABLE_LIBTIFF=OFF: Use esse parâmetro se você não tiver instalado libtiff.

LC_ALL=en_US.UTF-8 ninja test: Executa a suíte de teste. A variável de ambiente "LC_ALL=en_US.UTF-8" só é necessária se a localidade padrão não incluir UTF-8.

Conteúdo

Aplicativos Instalados: pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate, pdfsig, pdftocairo, pdftohtml, pdftoppm, pdftops, pdftotext e pdfunite
Bibliotecas Instaladas: libpoppler.so, libpoppler-cpp.so, libpoppler-glib.so e (opcionalmente) libpoppler-qt6.so
Diretórios Instalados: /usr/include/poppler, /usr/share/poppler e /usr/share/doc/poppler-25.02.0

Descrições Curtas

pdfattach

adiciona um novo arquivo incorporado a um arquivo "PDF" existente

pdfdetach

lista ou extrai arquivos incorporados a partir de arquivos "PDF"

pdffonts

lista as fontes usadas em um arquivo "PDF" junto com várias informações para cada fonte

pdfimages

salva imagens a partir de um arquivo "PDF" como arquivos "PPM", "PBM" ou "JPEG"

pdfinfo

imprime o conteúdo do dicionário 'Info' (mais algumas outras informações úteis) a partir de um arquivo "PDF"

pdfseparate

extrai páginas únicas a partir de um arquivo "PDF"

pdfsig

verifica as assinaturas digitais em um documento "PDF"

pdftocairo

converte um arquivo "PDF" em um dos vários formatos ("PNG", "JPEG", "PDF", "PS", "EPS", "SVG") usando o dispositivo de saída "cairo" da biblioteca "poppler"

pdftohtml

converte um arquivo "PDF" para "HTML"

pdftoppm

converte arquivos "PDF" para os formatos "PBM", "PGM" e "PPM"

pdftops

converte arquivos "PDF" para o formato "Postscript"

pdftotext

converte arquivos "PDF" em texto plano

pdfunite

mescla vários arquivos "PDF", na ordem da ocorrência deles na linha de comando, em um arquivo de saída "PDF"

libpoppler.so

contém as funções da "API" para renderizar arquivos "PDF"

libpoppler-cpp.so

é uma estrutura de retaguarda "C++" para renderizar arquivos "PDF"

libpoppler-glib.so

é uma biblioteca invólucro usada para interfacear as funções de renderização de "PDF" com GTK+

libpoppler-qt6.so

é uma biblioteca invólucro usada para interfacear as funções de renderização de PDF com Qt6

Potrace-1.16

Introdução ao Potrace

Potrace™ é uma ferramenta para transformar um bitmap (formato PBM, PGM, PPM ou BMP) em um dos vários formatos de arquivo vetorial.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/potrace/potrace-1.16.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5f0bd87ddd9a620b0c4e65652ef93d69

  • Tamanho da transferência: 644 KB

  • Espaço em disco estimado exigido: 7,1 MB (incluindo os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (incluindo testes)

Dependências do Potrace

Recomendadas

Instalação do Potrace

Instale Potrace executando os seguintes comandos:

./configure --prefix=/usr                       \
            --disable-static                     \
            --docdir=/usr/share/doc/potrace-1.16 \
            --enable-a4                          \
            --enable-metric                      \
            --with-libpotrace                    &&
make

Para executar a suíte de teste, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-a4: Use "A4" como tamanho padrão de papel.

--enable-metric: Use unidades métricas (centímetros) como padrão

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-libpotrace: Instale a biblioteca e os cabeçalhos.

Conteúdo

Aplicativos Instalados: mkbitmap, potrace
Bibliotecas Instaladas: libpotrace.so
Diretórios Instalados: /usr/share/doc/potrace-1.16

Descrições Curtas

mkbitmap

transforma imagens em "bitmaps" com escala e filtragem

potrace

transforma "bitmaps" em gráficos vetoriais

libpotrace.so

é uma biblioteca para transformar "bitmaps" em gráficos vetoriais

Qpdf-11.10.1

Introdução ao Qpdf

O pacote Qpdf contém aplicativos de linha de comando e uma biblioteca que faz transformações estruturais, preservando conteúdo, sobre arquivos "PDF".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/qpdf/qpdf/releases/download/v11.10.1/qpdf-11.10.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1ff2340ee610bd8d1e1296d3523c79c9

  • Tamanho da transferência: 19 MB

  • Espaço em disco estimado exigido: 313 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 0,4 UPC para testes)

Dependências do Qpdf

Exigidas

libjpeg-turbo-3.0.1

Opcionais

ghostscript-10.04.0, GnuTLS-3.8.9, libtiff-4.7.0, sphinx-8.2.1, com sphinx_rtd_theme-3.0.2, e texlive-20240312 ou install-tl-unx

Instalação do Qpdf

Instale Qpdf executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_STATIC_LIBS=OFF     \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/qpdf-11.10.1 \
      .. &&
make

Para testar os resultados, emita: ctest.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: fix-qdf, qpdf e zlib-flate
Biblioteca Instalada: libqpdf.so
Diretórios Instalados: /usr/lib/cmake/qpdf, /usr/include/qpdf e /usr/share/doc/qpdf-11.10.1

Descrições Curtas

fix-qdf

é usado para reparar arquivos "PDF" no formato "QDF" após a edição

qpdf

é usado para converter um arquivo "PDF" para outro arquivo "PDF" equivalente

zlib-flate

é um aplicativo de compressão bruta "zlib"

libqpdf.so

contém as funções da "API" Qpdf

qrencode-4.1.1

Introdução ao qrencode

Qrencode é uma biblioteca rápida e compacta para codificação de dados em um símbolo "QR Code", uma simbologia "2D" que pode ser escaneada por terminais portáteis, como um telefone móvel com um sensor "CCD".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://fukuchi.org/works/qrencode/qrencode-4.1.1.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: de7185bcab635a34730e1b73d4efa705

  • Tamanho da transferência: 451 KB

  • Espaço em disco estimado exigido: 5,0 MB (com a documentação, adicionar 5 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC; adicionar 0,1 UPC para testes

Dependências do Qrencode

Recomendadas
Opcionais

Doxygen-1.13.2 para gerar documentação e SDL2-2.30.11 para os testes

Instalação do qrencode

Instale libqrencode executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se instalou Doxygen-1.13.2, [então] você consegue construir a documentação emitindo:

doxygen

Os testes precisam ser executados depois de instalar o pacote.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação opcional, [então] instale-a como o(a) usuário(a) root:

install -vdm 755 /usr/share/doc/qrencode-4.1.1 &&
mv html/* /usr/share/doc/qrencode-4.1.1

Para testar os resultados, se você tiver passado a opção --with-tests para configure, emita: make check.

Explicações do Comando

--with-tests: Essa opção permite construir os aplicativos de teste. Exige SDL2-2.30.11.

--without-tools: Essa opção evita construir o executável qrencode, removendo a necessidade da libpng-1.6.46.

Conteúdo

Aplicativo Instalado: qrencode
Biblioteca Instalada: libqrencode.so
Diretório Instalado: /usr/share/doc/qrencode-4.1.1 (opcional)

Descrições Curtas

qrencode

codifica os dados de entrada em um "QR Code" e os salva como uma imagem "PNG" ou "EPS"

libqrencode.so

contém funções para codificar dados em um símbolo de código "QR"

sassc-3.6.2

Introdução ao sassc

SassC é um invólucro em torno da "libsass", uma linguagem de pré-processador "CSS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Instalação do sassc

Primeiro, construa a biblioteca:

tar -xf ../libsass-3.6.6.tar.gz &&
pushd libsass-3.6.6 &&

autoreconf -fi &&

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Construa o invólucro da linha de comando:

popd &&
autoreconf -fi &&

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: sassc
Bibliotecas Instaladas: libsass.so
Diretórios Instalados: /usr/include/sass

Descrições Curtas

sassc

fornece uma interface de linha de comando para a biblioteca "libsass"

webp-pixbuf-loader-0.2.7

Introdução ao webp-pixbuf-loader

O pacote webp-pixbuf-loader contém uma biblioteca que permite ao gdk-pixbuf carregar e processar imagens webp.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do webp-pixbuf-loader

Exigidas

gdk-pixbuf-2.42.12 e libwebp-1.5.0

Instalação do webp-pixbuf-loader

Instale o webp-pixbuf-loader executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

O formato webp precisa ser adicionado ao cache dos carregadores:

gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

gdk-pixbuf-query-loaders --update-cache: Esse comando atualiza o cache do carregador gdk-pixbuf, de forma que ele saiba que o carregador webp foi instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libpixbufloader-webp.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libpixbufloader-webp.so

contém funções que permitem ao gdk-pixbuf carregar imagens webp

woff2-1.0.2

Introdução ao WOFF2

WOFF2 é uma biblioteca para converter fontes do formato "TTF" para o formato "WOFF 2.0". Ela também permite a descompressão de "WOFF 2.0" para "TTF". O formato "WOFF 2.0" usa o algoritmo de compressão "Brotli" para comprimir fontes adequadas para download nas regras "@font-face" do "CSS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do WOFF2

Exigidas

Brotli-1.1.0 e CMake-3.31.5

Instalação do WOFF2

Instale WOFF2 executando os seguintes comandos:

mkdir out                               &&
cd    out                               &&
cmake -D CMAKE_INSTALL_PREFIX=/usr   \
      -D CMAKE_BUILD_TYPE=Release    \
      -D CMAKE_SKIP_INSTALL_RPATH=ON .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libwoff2common.so, libwoff2dec.so e libwoff2enc.so
Diretório Instalado: /usr/include/woff2

Descrições Curtas

libwoff2common.so

fornece dados compartilhados usados pelas bibliotecas "libwoff2dec" e "libwoff2enc"

libwoff2dec.so

é a biblioteca do decodificador "WOFF2"

libwoff2enc.so

é a biblioteca do codificador "WOFF2"

zxing-cpp-2.3.0

Introdução ao zxing-cpp

O pacote zxing-cpp fornece uma biblioteca de processamento de imagens de código de barras linear/matriz multiformato de código aberto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do zxing-cpp

Exigidas

CMake-3.31.5

Opcionais

googletest

Instalação do zxing-cpp

Instale zxing-cpp executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D ZXING_EXAMPLES=OFF        \
      -W no-dev ..                 &&
make

Testes exigem um pacote externo.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libZXing.so
Diretórios Instalados: /usr/include/ZXing e /usr/lib/cmake/ZXing

Capítulo 11. Utilitários Gerais

Este capítulo contém vários utilitários que não se encaixam convenientemente em outros capítulos. Os aplicativos incluem alguns geradores de documentação, vários utilitários para manipular texto e gráficos, aplicativos para listar arquivos, um aplicativo para inserir números "PIN" e frases senha e um gerenciador de conexões.

Asciidoctor-2.0.23

Introdução ao Asciidoctor

O "Asciidoctor" é um processador de texto de fonte aberto rápido e um conjunto de ferramentas de publicação para converter conteúdo "AsciiDoc" em "HTML5", "DocBook", "PDF" e outros formatos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Asciidoctor

Exigidas

Ruby-3.4.2

Instalação do Asciidoctor

Nota

Quando construir esse pacote, a seguinte mensagem possivelmente apareça:

fatal: not a git repository (or any of the parent directories): .git

. Isso é normal e o pacote continuará sendo construído após esse ponto.

Construa a gema Ruby:

gem build asciidoctor.gemspec

A suíte de teste precisa de muitas gemas Ruby além do escopo do BLFS.

Agora, como o(a) usuário(a) root:

gem install asciidoctor-2.0.23.gem &&
install -vm644 man/asciidoctor.1 /usr/share/man/man1

Conteúdo

Aplicativos Instalados: asciidoctor
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/ruby/gems/3.4.0/gems/asciidoctor-2.0.23 e /usr/lib/ruby/gems/3.4.0/doc/asciidoctor-2.0.23

Descrições Curtas

asciidoctor

converte arquivos fonte "AsciiDoc" em "HTML", "DocBook" e outros formatos

Bogofilter-1.2.5

Introdução ao Bogofilter

O aplicativo Bogofilter é um filtro de mensagens que classifica a mensagem como "spam" ou "ham" (não "spam") por meio de uma análise estatística do cabeçalho e conteúdo (corpo) da mensagem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Bogofilter

Recomendadas
Opcionais

lmdb-0.9.31, xmlto-0.0.29, Berkeley DB (obsoleto), QDBM e TokyoCabinet

Nota

Se você não instalar o pacote gsl-2.8 recomendado, então uma versão enviada estaticamente vinculada será usada.

Instalação do Bogofilter

Nota

Se você planeja mudar a versão de sua biblioteca de base de dados em uma instalação existente ou mudar para uma base de dados diferente, [então] leia o aviso na parte superior do arquivo "RELEASE.NOTES".

Instale Bogofilter executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc/bogofilter \
            --with-database=sqlite3      &&
make

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-database=sqlite3: Essa chave faz com que Bogofilter use SQLite-3.49.1 como a base de dados, em vez de Berkeley DB.

--with-database={lmdb,qdbm,tokyocabinet}: Essa chave também permite usar lmdb, qdbm ou tokyocabinet como a base de dados.

Conteúdo

Aplicativos Instalados: bf_compact, bf_copy, bf_tar, bogofilter, bogolexer, bogotune, bogoupgrade e bogoutil
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/bogofilter

Descrições Curtas

bf_compact

cria um diretório de trabalho do "bogofilter" mais compacto com um ciclo de despejo/carga

bf_copy

copia um diretório de trabalho do "bogofilter" para outro diretório

bf_tar

agrupa um diretório de trabalho do "bogofilter" no formato "tar" e o copia para a saída padrão

bogofilter

é um filtro de "spam" "bayesiano" rápido

bogolexer

é usado para separar mensagens em "tokens" e para testar novas versões do código "lexer.l"

bogotune

tenta encontrar configurações ideais de parâmetros para o "bogofilter"

bogoupgrade

atualiza a base de dados do "bogofilter" para a versão atual

bogoutil

despeja, carrega e mantém arquivos de base de dados do "bogofilter"

Compface-1.5.2

Introdução ao Compface

O Compface fornece utilitários e uma biblioteca para converter de/para o formato "X-Face", um formato "bitmap" 48x48 usado para transportar miniaturas dos(as) autores(as) de mensagens eletrônicas em um cabeçalho de mensagem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Compface

Primeiro, corrija o conjunto de comandos sequenciais configure, de forma que ele seja compatível com C99:

autoreconf

A seguir, corrija uma falha de construção que ocorre com GCC 14:

sed -e '/compface.h/a #include <unistd.h>' \
    -i cmain.c                             \
    -i uncmain.c

Instale Compface executando os seguintes comandos:

./configure --prefix=/usr --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -m755 -v xbm2xface.pl /usr/bin

Conteúdo

Aplicativos Instalados: compface, uncompface e xbm2xface.pl
Biblioteca Instalada: libcompface.a
Diretórios Instalados: Nenhum(a)

Descrições Curtas

compface

é um filtro para gerar representações altamente comprimidas de arquivos de imagem de face 48x48x1

uncompface

é um filtro inverso que realiza uma transformação inversa sem perda de dados

xbm2xface.pl

é um script para gerar "xfaces"

libcompface.a

permite que os algoritmos de compressão e descompressão sejam usados em outros aplicativos, tais como "MTAs"

desktop-file-utils-0.28

Introdução ao "Desktop File Utils"

O pacote Desktop File Utils contém utilitários de linha de comando para trabalhar com entradas de área de trabalho. Esses utilitários são usados por ambientes de área de trabalho e outros aplicativos para manipular as bases de dados de aplicativos de tipo "MIME" e ajudar a aderir à especificação de entrada de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Desktop File Utils"

Exigidas

GLib-2.82.5

Opcionais

Emacs-30.1

Instalação do "Desktop File Utils"

Atenção

Se você estiver atualizando a partir de uma versão anterior do "desktop-file-utils" que usou o método "Autotools" de instalação e configuração do pacote, [então] você precisa remover o link simbólico "desktop-file-edit" usando os seguintes comandos.

rm -fv /usr/bin/desktop-file-edit

Instale Desktop File Utils executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Configurando o "Desktop File Utils"

Informação de Configuração

A especificação XDG Base Directory define os locais padrão para os aplicativos colocarem dados e arquivos de configuração. Esses arquivos podem ser usados, por exemplo, para definir a estrutura do menu e os itens do menu em um ambiente de área de trabalho.

O local padrão para os arquivos de configuração a serem instalados é /etc/xdg; e os locais padrão para arquivos de dados são /usr/local/share e /usr/share. Esses locais podem ser estendidos com as variáveis de ambiente XDG_CONFIG_DIRS e XDG_DATA_DIRS, respectivamente. Os ambientes GNOME, KDE e XFCE respeitam essas configurações.

Quando um pacote instala um arquivo .desktop em um local em um dos diretórios básicos de dados, a base de dados que mapeia tipos "MIME" para aplicativos disponíveis consegue ser atualizado. Por exemplo, o arquivo de cache em /usr/share/applications/mimeinfo.cache pode ser reconstruído executando-se o seguinte comando como o(a) usuário(a) root:

install -vdm755 /usr/share/applications &&
update-desktop-database /usr/share/applications

Conteúdo

Aplicativos Instalados: desktop-file-edit, desktop-file-install, desktop-file-validate e update-desktop-database
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

desktop-file-edit

é usado para modificar uma entrada existente do arquivo da área de trabalho

desktop-file-install

é usado para instalar uma nova entrada do arquivo da área de trabalho. Também é usado para reconstruir ou modificar a base de dados de aplicativos de tipos "MIME"

desktop-file-validate

é usado para verificar a integridade de um arquivo da área de trabalho

update-desktop-database

é usado para atualizar a base de dados de aplicativos de tipos "MIME"

dos2unix-7.5.2

Introdução ao dos2unix

O pacote dos2unix contém um conversor de formato de texto de qualquer para qualquer.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/dos2unix/dos2unix-7.5.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 646272020848c9b673de24c4e8e3422e

  • Tamanho da transferência: 972 KB

  • Espaço em disco estimado exigido: 7,2 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Instalação do dos2unix

Construa dos2unix executando os seguintes comandos:

make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: dos2unix, mac2unix, unix2dos e unix2mac
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/dos2unix-7.5.2

Descrições Curtas

dos2unix

converte arquivos de texto plano no formato "DOS" para o formato "Unix"

mac2unix

converte arquivos de texto plano no formato "Mac" para o formato "Unix"

unix2dos

converte arquivos de texto plano no formato "Unix" para o formato "DOS"

unix2mac

converte arquivos de texto plano no formato "Unix" para o formato "Mac"

glslc originário de shaderc-2024.4

Introdução ao glslc

O programa glslc é o compilador de linha de comando do Google para OpenGL Shading Language/High Level Shading Language (GLSL/HLSL) para Standard Portable Intermediate Representation (SPIR-V).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Glslc

Exigidas

CMake-3.31.5, Glslang-15.1.0 e SPIRV-Tools-1.4.304.1

Instalação do glslc

Primeiro, permita construir com Glslang-15.1.0 e SPIRV-Tools-1.4.304.1 do sistema:

sed '/build-version/d'   -i glslc/CMakeLists.txt            &&
sed '/third_party/d'     -i CMakeLists.txt                  &&
sed 's|SPIRV|glslang/&|' -i libshaderc_util/src/compiler.cc &&

echo '"2024.4"' > glslc/src/build-version.inc

Agora instale glslc executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D SHADERC_SKIP_TESTS=ON     \
      -G Ninja ..
ninja

Agora, como o(a) usuário(a) root:

install -vm755 glslc/glslc /usr/bin

Conteúdo

Aplicativos Instalados: glslc
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

glslc

compila sombreadores OpenGL Shading Language/High Level Shading Language (GLSL/HLSL) para SPIR-V

Graphviz-12.2.1

Introdução ao Graphviz

O pacote Graphviz contém um software de visualização gráfica. A visualização gráfica é uma forma de representar informações estruturais como diagramas de gráficos abstratos e redes de comunicação. O Graphviz tem vários aplicativos principais de esquemas gráficos. Também tem interfaces gráficas web e interativas, ferramentas auxiliares, bibliotecas e ligações de linguagem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Graphviz

Nota

O uso básico do Graphviz não exige quaisquer bibliotecas além das encontradas no livro LFS. O mecanismo central dele de renderização é capaz de gerar vários formatos gráficos, como Postscript, SVG, VML, .fig e Tk. Esses formatos podem ser convertidos para quase qualquer outro formato usando ferramentas provenientes de pacotes como ImageMagick-7.1.1-43. As dependências abaixo adicionam a capacidade para gerar imagens de gráfico em formato de bitmap, para exibir a imagem de gráfico na tela, para editar um gráfico visualizando a imagem resultante diretamente ou para visualizar gráficos grandes. Como o Graphviz é uma dependência de vários pacotes neste livro, é sugerido que você o construa primeiro sem quaisquer dependências e, em seguida, o reconstrua quando tiver construído pacotes suficientes para atender às tuas necessidades.

Opcional, para várias saídas de "bitmap"

Pango-1.56.1, com Cairo-1.18.2, Bibliotecas do Xorg, Fontconfig-2.16.0 e libpng-1.6.46, para gerar imagens nos formatos bitmap SVG, postscript, PNG e PDF ou para exibir a imagem na tela. A saída gerada PNG é exigida para construir gegl-0.4.54

Adicionar GTK+-2 com libjpeg-turbo-3.0.1 adiciona suporte para formatos JPEG, BMP, TIF e ICO e permite exibir a imagem em uma janela GTK+

GD Library pode ser usado em vez de Pango. Ela adiciona a capacidade de gerar imagens nos formatos "GIF", "VRML" e "GD", mas o Pango fornece saídas melhores para os outros formatos e é necessário para exibir imagens

Outros formatos podem ser adicionados com libwebp-1.5.0 (o suporte a "WebP" é considerado experimental), DevIL, libLASi e glitz

Opcional (para carregar gráficos que podem ser exibidos dentro dos nós de um gráfico)

libgs.so originária de ghostscript-10.04.0, librsvg-2.59.2 e Poppler-25.02.0

Opcional (para construir mais ferramentas)

Freeglut-3.6.0 (com GtkGLExt e libGTS para construir o visualizador de gráficos grandes smyrna, o qual é considerado experimental)

Opcional (para construir ligações de idioma)

SWIG-4.3.0 (SWIG precisa estar instalado ou nenhuma ligação será construída), GCC-14.2.0 (para o compilador "go"), Guile-3.0.10, OpenJDK-23.0.2, Lua-5.4.7, PHP-8.4.4, Ruby-3.4.2, Tk-8.6.16, Io, Mono, OCaml e R

Opcional (ferramentas de construção)

Criterion (estrutura essencial de suporte para os testes) e Electric Fence

Opcional (para construir a documentação "PDF")

ghostscript-10.04.0 (para o comando ps2pdf)

Instalação do Graphviz

Instale Graphviz executando os seguintes comandos:

sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac &&

./autogen.sh             &&
./configure --prefix=/usr \
            --docdir=/usr/share/doc/graphviz-12.2.1

Nota

Um aviso é gerado por autogen.sh porque a árvore de construção não é um repositório "git". Como resultado, a data da construção é configurada para zero (0). Para obter uma data significativa na sequência de caracteres da versão, você pode executar:

sed -i "s/0/$(date +%Y%m%d)/" builddate.h

Fixe ou não a data, prossiga para compilar o pacote:

make

Esse pacote não vem com uma suíte de teste que forneça resultados significativos.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ... configure.ac: Esse comando é necessário para evitar instalar arquivos em "/usr/lib64".

--with-javaincludedir="$JAVA_HOME/include -I$JAVA_HOME/include/linux": Se você tiver construído o OpenJDK-23.0.2 em "/opt" e desejar construir as ligações "JAVA", [então] é necessário especificar o local dos arquivos de cabeçalho "JAVA" a configurar. A chave do "configure" é projetado para somente um diretório, mas dois diretórios precisam ser incluídos. Isso é possível, no entanto, usando-se a chave "-I" dentro da variável.

--with-webp: Mesmo se libwebp-1.5.0 estiver instalado, ele não é incluído na construção sem essa opção.

--with-smyrna: Mesmo se as dependências necessárias estiverem instaladas, o visualizador gráfico interativo smyrna não é construído sem essa opção.

Configurando Graphviz

Arquivos de Configuração

/usr/lib/graphviz/config

Informação de Configuração

Não há requisitos específicos de configuração para Graphviz. Você possivelmente considere instalar os "plug-ins" e ferramentas adicionais disponíveis a partir da página de download em https://graphviz.org/download/source/ para recursos adicionais. Se "plug-ins" adicionais estiverem instalados, [então] você pode executar dot -c (como o(a) usuário(a) root) para atualizar o arquivo config em /usr/lib/graphviz.

Conteúdo

Aplicativos Instalados: acyclic, bcomps, ccomps, circo, cluster, dijkstra, dot, dot2gxl, dot_builtins, edgepaint, fdp, gc, gml2gv, graphml2gv, gv2gml, gv2gxl, gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr, gxl2dot, gxl2gv, mm2gv, neato, nop, osage, patchwork, prune, sccmap, sfdp, tred, twopi, unflatten e vimdot
Bibliotecas Instaladas: libcdt.so, libcgraph.so, libgvc.so, libgvpr.so, liblab_gamut.so, libpathplan.so, libxdot.so e vários "plug-ins" em /usr/lib/graphviz. Existem também várias em subdiretórios de /usr/lib/{lua,perl5,php,python3.13,tcl8.6}. Infelizmente, algumas bibliotecas são duplicadas.
Diretórios Instalados: /usr/include/graphviz, /usr/lib/graphviz, /usr/lib/tcl8.6/graphviz, /usr/share/doc/graphviz-12.2.1 e /usr/share/graphviz

Descrições Curtas

acyclic

é um filtro que recebe um gráfico direcionado como entrada e emite uma cópia do gráfico com arestas suficientes invertidas para tornar o gráfico acíclico

bcomps

decompõe gráficos nos componentes bi-conectados deles, imprimindo os componentes na saída padrão

ccomps

decompõe gráficos nos componentes conectados deles, imprimindo os componentes na saída padrão

circo

desenha gráficos usando um esquema circular

cluster

pega um gráfico no formato DOT como entrada, encontra aglomerados de nós e então aumenta o gráfico com essa informação

diffimg

(precisa de GD Library) gera uma imagem onde cada pixel é a diferença entre o pixel correspondente em cada uma das duas imagens de origem

dijkstra

lê um fluxo de gráficos e para cada um calcula a distância de cada nó a partir do nó de origem

dot

desenha gráficos direcionados. Funciona bem em "DAGs" e outros gráficos que possam ser desenhados como hierarquias. Ele lê arquivos atribuídos gráficos e escreve desenhos. Por padrão, o ponto de formato da saída gerada é o arquivo da entrada com coordenadas de esquema anexadas

dot2gxl

converte entre gráficos representados em "GXL" e na linguagem "DOT". A menos que um tipo de conversão seja especificado usando um sinalizador, gxl2dot deduzirá o tipo de conversão a partir do sufixo do arquivo de entrada; um sufixo .dot causa uma conversão de "DOT" para "GXL"; e um sufixo .gxl causa uma conversão de "GXL" para "DOT"

edgepaint

realiza a coloração de arestas para eliminar a ambiguidade dos cruzamentos de arestas

fdp

desenha gráficos não direcionados usando um modelo spring. Baseia-se em uma abordagem dirigida pela força no espírito de "Fruchterman" e "Reingold"

gc

é um gráfico análogo ao wc, pois imprime na saída padrão o número de nós, arestas, componentes conectados ou aglomerados contidos nos arquivos de entrada. Ele também imprime uma contagem total para todos os gráficos, se mais de um gráfico for fornecido

gml2gv

converte um gráfico especificado no formato "GML" em um gráfico no formato "GV" (anteriormente "DOT")

graphml2gv

converte um gráfico especificado no formato "GRAPHML" em um gráfico no formato "GV" (anteriormente "DOT")

gv2gml

converte um gráfico especificado no formato "GV" para um gráfico no formato "GML"

gv2gxl

converte um gráfico especificado no formato "GV" para um gráfico no formato "GXL"

gvcolor

é um filtro que configura as cores dos nós a partir dos valores iniciais de semente. As cores fluem ao longo das bordas a partir da cauda para a cabeça e são calculadas à média (como vetores "HSB") nos nós

gvedit

fornece um editor e visualizador simples de gráficos. Permite que muitos gráficos sejam visualizados ao mesmo tempo. O texto de cada gráfico é exibido na própria janela de texto dele

gvgen

gera uma variedade de gráficos abstratos simples e estruturados regularmente

gvmap

toma como entrada um gráfico no formato "DOT", encontra aglomerados de nós e produz uma renderização do gráfico como um mapa de estilo geográfico, com aglomerados realçados, no formato "xdot"

gvmap.sh

é uma linha tubular para executar o "gvmap"

gvpack

lê um fluxo de gráficos, combina os gráficos em um esquema e produz um gráfico servindo como a união dos gráficos de entrada

gvpr

é um editor de fluxo gráfico inspirado no awk. Ele copia gráficos de entrada para a saída dele, possivelmente transformando a estrutura e atributos deles, criando novos gráficos ou imprimindo informações arbitrárias

gxl2dot

converte entre gráficos representados em "GXL" e na linguagem "DOT". A menos que um tipo de conversão seja especificado usando um sinalizador, gxl2dot deduzirá o tipo de conversão a partir do sufixo do arquivo de entrada; um sufixo .dot causa uma conversão de "DOT" para "GXL"; e um sufixo .gxl causa uma conversão de "GXL" para "DOT"

gxl2gv

converte entre gráficos representados em "GXL" e na linguagem "GV"

mm2gv

converte uma matriz esparsa do formato "Matrix Market" em um gráfico no formato "GV" (anteriormente "DOT")

neato

desenha gráficos não direcionados usando modelos spring. Os arquivos de entrada precisam ser formatados na linguagem gráfica atribuída dot. Por padrão, a saída gerada de neato é o gráfico de entrada com coordenadas de esquema anexadas

nop

lê um fluxo de gráficos e imprime cada um em formato bem estampado (canônico) na saída padrão. Se nenhum arquivo for fornecido, [então] ele lê a partir da entrada padrão

osage

desenha gráficos agrupados. Toma qualquer gráfico no formato "DOT" como entrada

patchwork

desenha gráficos agrupados usando um esquema quadrado de mapa de árvore. Toma qualquer gráfico no formato "DOT" como entrada

prune

lê gráficos direcionados no mesmo formato usado por dot e remove sub-gráficos enraizados em nós especificados na linha de comando por meio de opções

sccmap

decompõe dígrafos em componentes fortemente conectados e um mapa auxiliar do relacionamento entre os componentes. Nesse mapa, cada componente é recolhido em um nó. Os gráficos resultantes são impressos na saída padrão

sfdp

desenha gráficos não direcionados usando o modelo spring, mas usa uma abordagem multi escala para produzir esquemas de gráficos grandes em um tempo razoavelmente curto

tred

calcula a redução transitiva de gráficos direcionados e imprime os gráficos resultantes na saída padrão. Isso remove as arestas implícitas pela transitividade. Nós e sub-gráficos não são afetados de outra forma

twopi

desenha gráficos usando um esquema radial. Basicamente, um nó é escolhido como centro e colocado na origem. Os nós restantes são colocados em uma sequência de círculos concêntricos centrados na origem, cada um a uma distância radial fixa a partir do círculo anterior

unflatten

é um pré-processador para dot que é usado para melhorar a proporção dos gráficos com muitas folhas ou nós desconectados. O esquema usual para tal gráfico geralmente é muito largo ou alto

vimdot

é um script simples que inicia o editor gvim ou o vim junto com uma janela "GUI" mostrando a saída gerada do dot do arquivo editado

libcdt.so

gerencia dicionários em tempo de execução usando tipos padrão de dados de contêiner: conjunto/multiconjunto não ordenado, conjunto/multiconjunto ordenado, lista, pilha e fila

libcgraph.so

suporta programação de gráficos, mantendo os gráficos na memória e lendo e gravando arquivos de gráficos. Os gráficos são compostos de nós, arestas e sub-gráficos aninhados

libgvc.so

fornece um contexto para aplicativos que desejam manipular e renderizar gráficos. Ele fornece interfaces de análise de linha de comando, código de renderização comum e um mecanismo de "plug-in" para renderizadores

libpathplan.so

contém funções para encontrar o caminho mais curto entre dois pontos em um polígono simples

libxdot.so

fornece suporte para analisar e desanalisar operações gráficas especificadas pela linguagem "xdot"

GTK-Doc-1.34.0

Introdução ao GTK-Doc

O pacote GTK-Doc contém um documentador de código. Isso é útil para extrair comentários especialmente formatados a partir do código para criar a documentação da API. Esse pacote é opcional; se não estiver instalado, [então] os pacotes não construirão a documentação. Isso não significa que você não terá nenhuma documentação. Se GTK-Doc não estiver disponível, [então] o processo de instalação copiará qualquer documentação pré-construída para seu sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GTK-Doc

Exigidas

docbook-xml-4.5, docbook-xsl-nons-1.79.2, GLib-2.82.5, itstool-2.0.7, libxslt-1.1.42 e Pygments-2.19.1

Opcionais

Para testes: dblatex ou fop-2.10 (suporte a PDF XML), Which-2.23 e módulos Python lxml-5.3.1, parameterized e yelp-tools

Nota

Os módulos opcionais "Python" acima podem ser facilmente instalados com o comando pip3.

Instalação do GTK-Doc

Instale GTK-Doc executando os seguintes comandos:

mkdir -p build &&
cd       build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

A suíte de teste travará se o pacote (ou uma versão anterior) ainda não estiver instalado.

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: ninja test. Alguns testes falharão dependendo dos pacotes instalados opcionalmente.

Conteúdo

Aplicativos Instalados: gtkdocize, gtkdoc-check, gtkdoc-depscan, gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mkhtml, gtkdoc-mkhtml2, gtkdoc-mkman, gtkdoc-mkpdf, gtkdoc-rebase, gtkdoc-scan e gtkdoc-scangobj
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gtk-doc e /usr/share/cmake/GtkDoc

Descrições Curtas

gtkdoc*

esses são todos shell, ou scripts Python usados pelos scripts do pacote Makefile para gerar documentação para o pacote sendo construído

Highlight-4.15

Introdução ao "Highlight"

Highlight é um utilitário que converte o código-fonte em texto formatado com realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://www.andre-simon.de/zip/highlight-4.15.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fd16041ffc8945ef6c4c07dbf83c541c

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 25 MB (com GUI)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com GUI)

Dependências do "Highlight"

Exigidas

Boost-1.87.0 e Lua-5.4.7

Opcionais

Qt-6.8.2 (para construir a estrutura GUI de retaguarda)

Instalação do "Highlight"

Para consistência, não comprima páginas de manual.

sed -i '/GZIP/s/^/#/' makefile

Para construir Highlight execute o seguinte comando:

make

Para construir a estrutura GUI do qt6, execute o seguinte comando:

make doc_dir=/usr/share/doc/highlight-4.15/ gui

Esse pacote não vem com uma suíte de teste.

Para instalar Highlight, execute o seguinte comando como o(a) usuário(a) root:

make doc_dir=/usr/share/doc/highlight-4.15/ install

Para instalar o aplicativo "GUI", execute o seguinte comando como o(a) usuário(a) root:

make install-gui

Explicações do Comando

doc_dir=/usr/share/doc/highlight-4.15/: instala a documentação do highlight em um diretório versionado. Esse parâmetro também é necessário para make gui, pois o valor dele seria rigidamente codificado no executável GUI. Observe que a / à direita é necessária.

Conteúdo

Aplicativos Instalados: highlight e highlight-gui (opcional)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/highlight, /usr/share/doc/highlight-4.15 e /usr/share/highlight

Descrições Curtas

highlight

é um código-fonte universal para conversor de texto formatado

highlight-gui

é a interface do qt6 para highlight.

ibus-1.5.31

Introdução ao ibus

ibus é um barramento de entrada inteligente. É uma nova estrutura essencial de suporte de entrada para o sistema operacional Linux. Ele fornece uma interface de usuário de método de entrada amigável e com todos os recursos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/ibus/ibus/archive/1.5.31/ibus-1.5.31.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3d685af1010d871bb858dc8a8aabb5c4

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 55 MB (adicionar 1 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,0 UPC para testes)

Transferências Adicionais

Dependências do ibus

Exigidas

ISO Codes-4.17.0 e Vala-0.56.17

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para gerar documentação da API), D-Bus Python-1.3.2 e PyGObject-3.50.0 (ambos para construir a biblioteca de suporte a Python), libxkbcommon-1.8.0, Wayland-1.23.0 (ambos para construir os programas de suporte a Wayland), EmojiOne e libdbusmenu

Instalação do ibus

Primeiro, instale a base de dados de caracteres Unicode como o(a) usuário(a) root:

mkdir -p               /usr/share/unicode/ucd &&
unzip -o ../UCD.zip -d /usr/share/unicode/ucd

Corrija um problema com entradas de esquema obsoletas:

sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \
    -i data/dconf/org.freedesktop.ibus.gschema.xml

Se GTK-Doc-1.34.0 não estiver instalado, remova as referências a ele:

if ! [ -e /usr/bin/gtkdocize ]; then
  sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac
fi

Instale ibus executando os seguintes comandos:

SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh &&

PYTHON=python3                     \
./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --disable-python2      \
            --disable-appindicator \
            --disable-emoji-dict   \
            --disable-gtk2         \
            --disable-systemd-services &&
make

Para testar os resultados, emita: make -k check. O teste chamado ibus-compose falha porque usa algumas localidades não instaladas no LFS. O teste chamado ibus-keypress falhará se executar em uma sessão do Wayland. O teste xkb-latin-layouts também é conhecido por falhar em alguns sistemas.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-appindicator: Essa chave desabilita usar a libdbusmenu. Omita se você instalou a dependência opcional.

--disable-emoji-dict: Essa chave desabilita o uso de dicionários de emoticons. Omita se você instalou o pacote opcional.

--disable-gtk2: Essa chave remove a dependência do GTK+-2.

--disable-gtk4: Essa chave desabilita construir o immodule do GTK 4. Use-a se você não quiser instalar o GTK 4.

--enable-python-library: Essa chave habilita construir a biblioteca de suporte do Python. Use-a se você tiver instalado os módulos opcionais do Python.

--enable-wayland: Essa chave habilita construir os programas de suporte do Wayland. Ela é habilitada automaticamente se libxkbcommon-1.8.0 e Wayland-1.23.0 estiverem instalados.

NOCONFIGURE=1: Impede que autogen.sh execute o conjunto de comandos sequenciais configure gerado. Nós executaremos o conjunto de comandos sequenciais manualmente em vez de depender do autogen.sh para executá-lo, porque autogen.sh configuraria -fsanitize=address -fsanitize=leak em CFLAGS executando configure, mas essas opções do compilador não são adequadas para uso produtivo e também podem causar uma falha da construção.

PYTHON=python3: Essa variável de ambiente faz com que o conjunto de comandos sequenciais configure procure por Python 3. Use-o se quiser construir a biblioteca de suporte do Python 3.

SAVE_DIST_FILES=1: Essa variável de ambiente faz com que o conjunto de comandos sequenciais autogen.sh salve alguns arquivos de cabeçalho pré gerados em vez de sobrescrevê-los quando for executado. Isso evita falhas de construção ao gerar ibusemojigen.h.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Configurando Ibus

Se o GTK+-3 estiver instalado e --disable-gtk3 não for usado, o módulo IM do ibus para GTK+-3 será instalado. Como o(a) usuário(a) root, atualize um arquivo de cache do GTK+-3, de forma que os aplicativos baseados em GTK possam encontrar o módulo IM recém-instalado e usar o ibus como um método de entrada:

gtk-query-immodules-3.0 --update-cache

O comando acima atualiza o arquivo de cache para GTK+-3. O GTK-4 não exige um arquivo de cache para módulos IM.

Conteúdo

Aplicativos Instalados: ibus, ibus-daemon e ibus-setup
Biblioteca Instalada: libibus-1.0.so e im-ibus.so (módulo "IM" GTK+)
Diretórios Instalados: /etc/dconf/db/ibus.d, /usr/include/ibus-1.0, /usr/share/gtk-doc/html/ibus e /usr/share/ibus

Descrições Curtas

ibus-daemon

é o processo de segundo plano de barramento de entrada inteligente

ibus-setup

é o aplicativo GTK+ usado para configurar o ibus-daemon

libibus-1.0.so

contém as funções da "API" ibus

ImageMagick-7.1.1-43

Introdução ao ImageMagick

ImageMagick é uma coleção de ferramentas e bibliotecas para ler, escrever e manipular uma imagem em vários formatos de imagem. As operações de processamento de imagem estão disponíveis a partir da linha de comando. Ligações para "Perl" e "C++" também estão disponíveis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.imagemagick.org/archive/releases/ImageMagick-7.1.1-43.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 007f3006dc48fbd9d6a5da6dbdf3c5c2

  • Tamanho da transferência: 10 MB

  • Espaço em disco estimado exigido: 192 MB, 45 MB instalado (com dependências típicas; adicionar 10 MB para verificações)

  • Tempo de construção estimado: 0,9 UPC (com dependências típicas; adicionar 0,7 UPC para verificações, ambos usando paralelismo=4)

Nota

Os lançamentos de fonte do ImageMagick são atualizados frequentemente e a versão mostrada acima possivelmente não mais esteja disponível a partir dos locais de transferência. Você pode baixar uma versão mais recente e usar as instruções existentes do BLFS para instalá-la. As chances são de que funcione bem, mas isso não foi testado pela equipe do BLFS. Se a versão do pacote mostrada acima não estiver disponível a partir dos locais mostrados acima, você pode baixá-la a partir do servidor de pacotes do BLFS na Oregon State University: https://ftp.osuosl.org/pub/blfs/conglomeration/ImageMagick/.

Dependências do ImageMagick

Recomendadas

As dependências opcionais listadas abaixo deveriam ser instaladas se você precisar de suporte para o formato específico ou da ferramenta de conversão que a dependência fornece. Informações adicionais a respeito das dependências podem ser encontradas no arquivo Install-unix.txt localizado na árvore do fonte, bem como emitir o comando ./configure --help. Um resumo dessas informações, bem como algumas notas adicionais, podem ser visualizadas online em https://imagemagick.org/script/install-source.php.

Utilitários Opcionais do Sistema

7zip-24.09 (LZMA), Clang proveniente de LLVM-19.1.7, Cups-2.4.11, cURL-8.12.1, FFmpeg-7.1, fftw-3.3.10, SANE-1.2.1, Wget-1.25.0, xdg-utils-1.2.1, xterm-397, Dmalloc, Electric Fence e PGP ou GnuPG-2.4.7 (você terá que fazer alguns ajustes para usar GnuPG), Profiles

Bibliotecas Opcionais de Gráficos

jasper-4.2.4, Little CMS-2.17, libgxps-0.3.2, libjpeg-turbo-3.0.1, libjxl-0.11.1, libpng-1.6.46, libraw-0.21.3 (para arquivos dng; precisa da libraw_r de camada segura), librsvg-2.59.2, libtiff-4.7.0, libwebp-1.5.0, OpenJPEG-2.5.3, Pango-1.56.1, DjVuLibre, FlashPIX (libfpx), FLIF, JBIG-KIT, libheif com libde265 (ambos necessários se converter imagens heic do macOS), libraqm, Liquid Rescale, OpenEXR e RALCGM (ou ralcgm)

Utilitários Opcionais Gráficos

Fontes Dejavu, ghostscript-10.04.0, Gimp-3.0.0-RC3, Graphviz-12.2.1, Inkscape-1.4, Blender, corefonts, GhostPCL, Gnuplot, POV-Ray e Radiance

Ferramentas Opcionais de Conversão

Enscript-1.6.6, Potrace-1.16, texlive-20240312 (ou install-tl-unx) AutoTrace, Utilitários de Linha de Comandos GeoExpress, também conhecidos como Utilitários MrSID (pacote binário), hp2xx, libwmf, UniConvertor, e Utah Raster Toolkit (ou URT-3.1b)

Instalação do ImageMagick

Instale ImageMagick executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --enable-hdri     \
            --with-modules    \
            --with-perl       \
            --disable-static  &&
make

Agora, como o(a) usuário(a) root:

make DOCUMENTATION_PATH=/usr/share/doc/imagemagick-7.1.1 install

Para testar a instalação, emita: make check. Observe que os testes EPS, PS e PDF exigem um Ghostscript funcional. Um teste em 'make check' precisa da Helvetica originário de Ghostscript Standard Fonts, que são opcionalmente instaladas em ghostscript-10.04.0 - esse teste, e um outro, pode falhar, mas toda a validação ainda pode passar.

Explicações do Comando

--enable-hdri: Permite construir uma versão de alta faixa dinâmica do "ImageMagick".

--with-modules: Habilita o suporte para módulos carregáveis dinamicamente.

--with-perl: Habilita a construção e instalação do "PerlMagick".

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-fftw: Habilita suporte para a biblioteca compartilhada FFTW.

--with-rsvg: Habilita suporte para a biblioteca librsvg.

--with-autotrace: Habilita suporte para a biblioteca Autotrace.

--with-wmf: Habilita suporte para a biblioteca libwmf.

--with-gvc: Habilita suporte para GraphViz.

--with-security-policy=open|limited|secure|websafe: Se você desejar impor uma política diferente da padrão 'open', veja-se www/security-policy.html no fonte para detalhes.

--with-windows-font-dir= <Algum/Diretório>: Essa opção especifica o diretório onde as fontes centrais do Windows estão instaladas.

--with-dejavu-font-dir= <Algum/Diretório>: Essa opção especifica o diretório onde as fontes "DejaVu" estão instaladas.

As opções e parâmetros listados acima são os únicos que você deveria passar para o script configure para ativar todas as dependências delegadas. Todas as outras dependências serão detectadas e utilizadas automaticamente na construção, se elas estiverem instaladas.

Conteúdo

Aplicativos Instalados: magick, Magick++-config, MagickCore-config e MagickWand-config. (animate, compare, composite, conjure, convert, display, identify, import, magick-script, mogrify, montage e stream são todos links simbólicos para magick)
Bibliotecas Instaladas: libMagickCore-7.Q16HDRI.so, libMagickWand-7.Q16HDRI.so e libMagick++-7.Q16HDRI.so
Diretórios Instalados: /etc/ImageMagick-7, /usr/include/ImageMagick-7, /usr/lib/ImageMagick-7.1.1, /usr/lib/perl5/site_perl/5.40/{,auto}/Image/Magick, /usr/share/doc/ImageMagick-7.1.1 e /usr/share/ImageMagick-7

Descrições Curtas

animate

anima uma sequência de imagens

compare

compara uma imagem com uma imagem reconstruída

composite

compõe várias imagens na imagem base fornecida

conjure

processa um script "MSL" para criar uma imagem

convert

converte imagem(ns) de um formato para outro

display

exibe uma imagem

identify

descreve o formato e as características de um arquivo de imagem

import

captura uma janela do X

magick

converte entre formatos de imagem, bem como redimensiona uma imagem, desfoca, corta, descolore, pontilha, desenha, inverte, junta, reamostra e muito mais

Magick{++,Core,Wand}-config

mostra informações a respeito das versões instaladas das bibliotecas do ImageMagick

mogrify

transforma uma imagem

montage

compõe várias imagens em uma nova imagem

stream

transmite um ou mais componentes de pixel de uma imagem ou parte da imagem para sua escolha de formatos de armazenamento

Image::Magick

permite ler, manipular e escrever um grande número de formatos de arquivo de imagem usando a biblioteca ImageMagick. Execute make no diretório PerlMagick/demo da árvore do fonte do pacote depois do pacote estar instalado para ver uma boa demonstração dos recursos do módulo

libMagickCore-7.Q16HDRI.so

fornece a API C para ImageMagick

libMagickWand-7.Q16HDRI.so

é a API C recomendada para ImageMagick. Ao contrário da API MagickCore, ela usa somente alguns tipos opacos

libMagick++-7.Q16HDRI.so

fornece a API C++ para ImageMagick

ISO Codes-4.17.0

Introdução ao ISO Codes

O pacote ISO Codes contém uma lista de nomes de países, idiomas e moedas e é usado como uma base de dados central para acessar esses dados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do ISO Codes

Instale ISO Codes executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install LN_S='ln -sfn'

Explicações do Comando

LN_S='ln -sfn': Essa substituição garante os links simbólicos instalados recriados corretamente caso nós estejamos atualizando ou reinstalando o pacote. Ela é desnecessária, mas inofensiva, ao instalar o pacote no sistema pela primeira vez.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/iso-codes, /usr/share/xml/iso-codes

lsof-4.99.0

Introdução ao lsof

O pacote lsof é útil para listar arquivos abertos para um dado aplicativo ou processo em execução.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lsof

Exigidas

libtirpc-1.3.6

Opcionais

Nmap-7.95 (com um link simbólico nc apontando para ncat em /usr/bin; usado em testes)

Configuração do Núcleo

Para executar os testes, a seguinte opção deveria estar habilitada na configuração do núcleo:

General setup --->
  [*] POSIX Message Queues                                        [POSIX_MQUEUE]

Instalação do lsof

Instale lsof executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Os testes deveriam ser executados como o(a) usuário(a) root. Eles exigem que as filas de mensagens "POSIX" estejam habilitadas no núcleo e que Nmap-7.95 seja instalado com um link simbólico /usr/bin/nc apontando para ncat.

make check

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: lsof
Bibliotecas Instaladas: liblsof.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lsof

lista arquivos abertos para processos em execução

liblsof.so

contém uma interface para aplicativos listarem arquivos abertos

pinentry-1.3.1

Introdução ao PIN-Entry

O pacote PIN-Entry contém uma coleção de caixas de diálogos simples de entrada de PIN ou frase secreta que utiliza o protocolo Assuan conforme descrito pelo projeto Egito. Os aplicativos PIN-Entry geralmente são invocados pelo processo de segundo plano gpg-agent, mas podem ser executados a partir da linha de comando também. Existem aplicativos para vários ambientes baseados em texto e GUI, incluindo interfaces projetadas para Ncurses (baseadas em texto) e para os kits comuns de ferramentas GTK e Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do PIN-Entry

Exigidas

libassuan-3.0.2 e libgpg-error-1.51

Opcionais

Emacs-30.1, FLTK-1.4.2, Gcr-4.3.1 (ou Gcr-3.41.2), KDE Frameworks-6.11.0, libsecret-0.21.6 e efl

Instalação do PIN-Entry

Primeiro, torne configure consistente com fltk-1.4.1:

sed -i "/FLTK 1/s/3/4/" configure   &&
sed -i '14462 s/1.3/1.4/' configure

Instale PIN-Entry executando os seguintes comandos:

./configure --prefix=/usr          \
            --enable-pinentry-tty  &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-inside-emacs=yes/no: Padrão é "no".

--enable-pinentry-qt=yes/no: Padrão é "yes".

--enable-pinentry-gnome3=yes/no: O padrão é sim. Essa opção usa Gcr-4.3.1 (ou Gcr-3.41.2 se o primeiro não estiver instalado) para a caixa de diálogo do pinentry.

--enable-pinentry-tty: Padrão é "maybe".

Conteúdo

Aplicativos Instalados: pinentry (link simbólico), pinentry-curses, pinentry-emacs, pinentry-fltk, pinentry-gnome3, pinentry-qt e pinentry-tty
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

pinentry

é um link simbólico para o aplicativo padrão PIN-Entry

pinentry-curses

é um aplicativo auxiliar Ncurses do PIN-Entry baseado em texto

pinentry-emacs

é uma versão Emacs do aplicativo auxiliar do PIN-Entry

pinentry-fltk

é um aplicativo auxiliar FLTK do PIN-Entry

pinentry-gnome3

é um aplicativo auxiliar GNOME-3 do PIN-Entry

pinentry-qt

é um aplicativo auxiliar Qt4 ou 5 do PIN-Entry

pinentry-tty

é um aplicativo auxiliar tty do PIN-Entry

Screen-5.0.0

Introdução ao Screen

Screen é um multiplexador de terminal que executa vários processos, normalmente shells interativos, em um terminal físico baseado em caracteres. Cada terminal virtual emula um "DEC VT100" mais várias funções "ANSI X3.64" e "ISO 2022" e também fornece tradução configurável de entrada e saída, suporte a porta serial, registro configurável, suporte multiusuário(a) e muitas codificações de caracteres, incluindo "UTF-8". As sessões do "Screen" podem ser desanexadas e retomadas posteriormente em um terminal diferente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/screen/screen-5.0.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: befc115989242ed4bceeff8d8bfeb4e6

  • Tamanho da transferência: 876 KB

  • Espaço em disco estimado exigido: 7,7 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do Screen

Opcionais

Linux-PAM-1.7.0

Instalação do Screen

Instale Screen executando os seguintes comandos:

./configure --prefix=/usr                        \
            --infodir=/usr/share/info            \
            --mandir=/usr/share/man              \
            --disable-pam                        \
            --enable-socket-dir=/run/screen      \
            --with-pty-group=5                   \
            --with-system_screenrc=/etc/screenrc &&

sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -m 644 etc/etcscreenrc /etc/screenrc

Explicações do Comando

--disable-pam: Essa opção remove uma dependência de construção de Linux-PAM. Remova essa opção se você quiser suporte a PAM.

--enable-socket-dir=/run/screen: Essa opção coloca os soquetes por usuário(a) em um local padrão.

--with-system_screenrc=/etc/screenrc: Essa opção coloca o arquivo global screenrc em /etc.

--with-pty-group=5: Essa opção configura o "GID" para o valor usado pelo LFS.

sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*: Esse comando corrige os arquivos de configuração e documentação para o local que é usado aqui para o arquivo global "screenrc".

Configurando Screen

Arquivos de Configuração

/etc/screenrc e ~/.screenrc

Informação de Configuração

Você possivelmente queira examinar o arquivo de configuração de exemplo que foi instalado e personalizá-lo para suas necessidades.

Conteúdo

Aplicativo Instalado: screen (link simbólico) e screen-5.0.0
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/screen e /run/screen

Descrições Curtas

screen

é um multiplexador de terminal com emulação de terminal "VT100/ANSI"

shared-mime-info-2.4

Introdução ao "Shared Mime Info"

O pacote Shared Mime Info contém uma base de dados "MIME". Isso permite atualizações centrais de informações "MIME" para todos os aplicativos de suporte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Shared Mime Info"

Exigidas

GLib-2.82.5 e libxml2-2.13.6

Opcionais

xmlto-0.0.29

Instalação do "Shared Mime Info"

Instale Shared Mime Info executando os seguintes comandos:

Se deseja executar a suíte de teste, [então] você precisa primeiro extrair o tarball xdgmime no diretório atual e compilá-lo, de forma que meson consiga encontrá-lo:

tar -xf ../xdgmime.tar.xz &&
make -C xdgmime

Agora construa o pacote:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D update-mimedb=true .. &&
ninja

Se você tiver seguido as instruções acima para construir xdgmime, [então], para testar o resultado, emita ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D update-mimedb=true: Esse parâmetro informa ao sistema de construção para executar update-mime-database durante a instalação. Caso contrário, isso precisa ser feito manualmente para a finalidade de poder usar a base de dados MIME.

Conteúdo

Aplicativo Instalado: update-mime-database
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/mime

Descrições Curtas

update-mime-database

auxilia na adição de dados "MIME" à base de dados

Sharutils-4.15.2

Introdução ao Sharutils

O pacote Sharutils contém utilitários que conseguem criar arquivamentos "shell".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/sharutils/sharutils-4.15.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5975ce21da36491d7aa6dc2b0d9788e0

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 22 MB (com a suíte de teste)

  • Tempo de construção estimado: 0,4 UPC (com a suíte de teste)

Instalação do Sharutils

Corrija um estouro de "buffer" de uma coleção desordenada de objetos colocados ao acaso uns sobre os outros e um problema exposto pelo "GCC-10":

sed -i 's/BUFSIZ/rw_base_size/' src/unshar.c &&
sed -i '/program_name/s/^/extern /' src/*opts.h

Instale Sharutils executando os seguintes comandos:

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c       &&
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h &&

./configure --prefix=/usr &&
make

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: shar, unshar, uudecode e uuencode
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

shar

cria "arquivamentos shell" (ou arquivos "shar") que estão em formato de texto e conseguem ser enviados por correio

unshar

desempacota um arquivo "shar"

uudecode

lê um arquivo (ou, por padrão, a entrada gerada padrão) e grava uma versão codificada na saída gerada padrão. A codificação usa somente caracteres de impressão "ASCII"

uuencode

lê um arquivo (ou, por padrão, a entrada gerada padrão) e decodifica a versão "uuencoded" para a saída gerada padrão

tidy-html5-5.8.0

Introdução ao "Tidy HTML5"

O pacote Tidy HTML5 contém uma ferramenta de linha de comando e bibliotecas usadas para ler arquivos "HTML", "XHTML" e "XML" e gravar marcações limpas. Ele detecta e corrige muitos erros comuns de codificação e se esforça para produzir marcação visualmente equivalente que seja compatível com "W3C" e compatível com a maioria dos navegadores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Tidy HTML5"

Exigidas

CMake-3.31.5

Recomendadas

Instalação do "Tidy HTML5"

Instale Tidy HTML5 executando os seguintes comandos:

cd build/cmake &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_TAB2SPACE=ON        \
      ../..    &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
rm -fv /usr/lib/libtidy.a &&
install -v -m755 tab2space /usr/bin

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para construir a biblioteca de lançamento sem qualquer `assertiva` de depuração no código.

-D BUILD_TAB2SPACE=ON: Essa chave é usada para habilitar a construção do utilitário tab2space.

Configurando "Tidy HTML5"

Arquivos de Configuração

O caminho absoluto do arquivo especificado em HTML_TIDY.

Informação de Configuração

As opções padrão de configuração podem ser configuradas no arquivo definido em HTML_TIDY. Opções adicionais de configuração podem ser passadas para tidy via parâmetros de linha de comando ou o parâmetro -config <arquivo>.

Conteúdo

Aplicativos Instalados: tab2space e tidy
Biblioteca Instalada: libtidy.so
Diretório Instalado: /usr/share/doc/tidy-5.8.0

Descrições Curtas

tab2space

é um utilitário para expandir abas e garantir finais de linha consistentes

tidy

valida, corrige e bem imprime arquivos "HTML"

libtidy.so

A biblioteca fornece as funções da "API" Tidy HTML5 para tidy e também pode ser chamada por outros aplicativos

Time-1.9

Introdução ao Time

O utilitário time é um aplicativo que mede muitos dos recursos da "CPU", como tempo e memória, que outros aplicativos usam. A versão "GNU" pode formatar a saída gerada de maneiras arbitrárias usando uma sequência de caracteres de formato no estilo "printf" para incluir várias medições de recursos.

Embora o shell tenha um comando integrado que fornece funcionalidades semelhantes, esse utilitário é exigido pelo "LSB".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/time/time-1.9.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d2356e0fe1c0b85285d83c6b2ad51b5f

  • Tamanho da transferência: 584 KB

  • Espaço em disco estimado exigido: 4,0 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes)

Instalação do "Time"

Instale Time executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: time
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

time

informa várias estatísticas a respeito de um comando executado

tree-2.2.1

Introdução ao "tree"

O aplicativo tree é útil para exibir um conteúdo de árvore de dicionário, incluindo arquivos, diretórios e links.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "tree"

Instale tree executando os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr MANDIR=/usr/share/man install

Conteúdo

Aplicativo Instalado: tree
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

tree

exibe uma árvore de diretórios em um terminal

unixODBC-2.3.12

Introdução ao "unixODBC"

O pacote unixODBC é um subsistema "ODBC" ("Open DataBase Connectivity") de fonte aberto e um "SDK" "ODBC" para Linux, Mac OSX e UNIX. "ODBC" é uma especificação aberta para fornecer para os(as) desenvolvedores(as) de aplicativos uma "API" previsível com a qual acessar fontes de dados. As fontes de dados incluem servidores "SQL" opcionais e qualquer fonte de dados com um controlador "ODBC". unixODBC contém os seguintes componentes usados para auxiliar na manipulação de fontes de dados "ODBC": um gerenciador de controlador; uma biblioteca de instalador e ferramenta de linha de comando; ferramentas de linha de comando para ajudar a instalar um controlador e trabalhar com "SQL"; controladores e bibliotecas de configuração do controlador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "unixODBC"

Opcionais

Mini SQL

Instalação do "unixODBC"

Instale unixODBC executando os seguintes comandos:

./configure --prefix=/usr \
           --sysconfdir=/etc/unixODBC &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

find doc -name "Makefile*" -delete               &&
chmod 644 doc/{lst,ProgrammerManual/Tutorial}/*   &&

install -v -m755 -d /usr/share/doc/unixODBC-2.3.12 &&
cp      -v -R doc/* /usr/share/doc/unixODBC-2.3.12

Explicações do Comando

--enable-drivers: Esse parâmetro habilita construir os controladores que foram instalados por padrão nas versões anteriores.

--enable-drivers-conf: Esse parâmetro habilita construir as bibliotecas de configuração do controlador que foram instaladas por padrão nas versões anteriores.

Configurando "unixODBC"

Arquivos de Configuração

/etc/unixODBC/*

Informação de Configuração

Os arquivos em /etc/unixODBC são destinados a serem configurados pelo(a) administrador(a) do sistema (ou pelo(a) administrador(a) do sítio "ODBC" se os privilégios apropriados forem concedidos a /etc /unixODBC). Esses arquivos não são destinados para serem editados diretamente. A biblioteca do instalador "ODBC" é responsável por ler e gravar os arquivos de configuração unixODBC.

Infelizmente, não existem muitas man, ou quaisquer páginas info para os vários aplicativos disponíveis no pacote unixODBC. Juntamente com as informações nas Descrições Curtas abaixo e a documentação instalada em /usr/share/doc/unixODBC-2.3.12, existem muitos arquivos README em toda a árvore do fonte onde o uso e a funcionalidade dos aplicativos podem ser encontrados. Além disso, você pode usar o parâmetro -? para informações de sintaxe e uso. Por fim, o sítio da "web" do unixODBC em http://www.unixodbc.org/ tem informações muito boas.

Conteúdo

Aplicativos Instalados: dltest, isql, iusql, odbc_config, odbcinst e slencheck
Bibliotecas Instaladas: libodbc.so, libodbccr.so e libodbcinst.so
Diretórios Instalados: /etc/unixODBC e /usr/share/doc/unixODBC-2.3.12

Descrições Curtas

dltest

é um utilitário usado para verificar uma biblioteca compartilhada para ver se ela pode ser carregada e se um dado símbolo existe nela

isql

é um utilitário que pode ser usado para submeter "SQL" para uma fonte de dados e para formatar/suprir resultados. Ele pode ser usado em modo de lote ou interativo

iusql

fornece a mesma funcionalidade que o aplicativo isql

odbc_config

é usado para descobrir detalhes a respeito da instalação do pacote unixODBC

odbcinst

é um utilitário criado para instalar escritores de script/"RPM". É uma interface de linha de comando para funcionalidade chave na biblioteca libodbcinst. Ele não copia nenhum arquivo (ou seja, bibliotecas), mas modificará as informações do sistema "ODBC" para o(a) usuário(a)

slencheck

é um utilitário que tenta verificar se um controlador "ODBC" foi construído com tipos "SQLLEN" de 32 bits ou 64 bits

xdg-dbus-proxy-0.1.6

Introdução ao xdg-dbus-proxy

O pacote xdg-dbus-proxy contém um proxy de filtragem para conexões D-Bus. Isso é útil para encaminhar dados dentro e fora de uma sandbox.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-dbus-proxy

Exigidas

GLib-2.82.5

Instalação do xdg-dbus-proxy

Instale o xdg-dbus-proxy executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: xdg-dbus-proxy
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xdg-dbus-proxy

é um proxy de filtragem para conexões D-Bus

Xdg-user-dirs-0.18

Introdução ao "Xdg-user-dirs"

Xdg-user-dirs é uma ferramenta para ajudar a gerenciar diretórios de usuário(a) bem conhecidos como a pasta "desktop" e a pasta de música. Ele também lida com a localização (ou seja, a tradução) dos nomes dos arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xdg-user-dirs

Opcionais

docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (todos três para construir as páginas de manual)

Instalação do "Xdg-user-dirs"

Instale xdg-user-dirs executando os seguintes comandos:

./configure --prefix=/usr           \
            --sysconfdir=/etc       \
            --disable-documentation &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-documentation: Desabilita a instalação das páginas de manual. Remova essa chave se você tiver instalado as dependências opcionais e desejar instalar as páginas de manual desse pacote.

Configurando "Xdg-user-dirs"

Arquivos de Configuração

~/.config/user-dirs.dirs, /etc/xdg/user-dirs.conf e /etc/xdg/user-dirs.defaults. Esses locais padrão podem ser substituídos por XDG_CONFIG_HOME e XDG_CONFIG_DIRS

Conteúdo

Aplicativos Instalados: xdg-user-dir e xdg-user-dirs-update
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

xdg-user-dir

procura o caminho atual para um dos diretórios "XDG" de usuário(a)

xdg-user-dirs-update

cria versões localizadas dos diretórios de usuário(a)

Capítulo 12. Utilitários de Sistema

Este capítulo contém principalmente utilitários de hardware. Ele também contém alguns aplicativos usados por outros aplicativos no livro para propósitos de instalação ou configuração.

7zip-24.09

Introdução ao 7zip

7zip é um arquivador de arquivos que arquiva com altas taxas de compressão. Ele lida com os formatos 7z, ZIP, GZIP, Brotli, BZIP2, XZ, TAR, APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, Lizard, LZ5, LZFSE, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z e Zstd.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/ip7z/7zip/archive/24.09/7zip-24.09.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 41d0d31a3b0e39a1cbd848c10574fb0b

  • Tamanho da transferência: 2,1 MB

  • Espaço em disco estimado exigido: 39 MB

  • Tempo de construção estimado: 2,3 UPC (com testes)

Dependências do 7zip

Opcionais

UASM

Instalação do 7zip

Instale 7zip executando os seguintes comandos:

for i in Bundles/{Alone,Alone7z,Format7zF,SFXCon} UI/Console; do
    make -C CPP/7zip/$i -f ../../cmpl_gcc.mak
done

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -vDm755 CPP/7zip/Bundles/Alone{/b/g/7za,7z/b/g/7zr} \
                CPP/7zip/Bundles/Format7zF/b/g/7z.so        \
                CPP/7zip/UI/Console/b/g/7z                  \
                -t /usr/lib/7zip/                              &&

install -vm755 CPP/7zip/Bundles/SFXCon/b/g/7zCon \
               /usr/lib/7zip/7zCon.sfx           &&

(for i in 7z 7za 7zr; do
    cat > /usr/bin/$i << EOF || exit
#!/bin/sh
exec /usr/lib/7zip/$i "\$@"
EOF
    chmod 755 /usr/bin/$i || exit
done) &&

cp -rv DOC -T /usr/share/doc/7zip-24.09

Conteúdo

Aplicativos Instalados: 7z, 7za e 7zr
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/lib/7zip e /usr/share/doc/7zip-24.09

Descrições Curtas

7z

é um utilitário arquivador de arquivos

7za

é um executável autônomo que lida com menos formatos de arquivamento que o 7z

7zr

é uma versão mínima do 7za que lida somente com arquivamentos 7z

AccountsService-23.13.9

Introdução ao AccountsService

O pacote AccountsService fornece um conjunto de interfaces D-Bus para consulta e manipulação de informações da conta do(a) usuário(a) e uma implementação dessas interfaces baseada nos comandos usermod(8), useradd(8) e userdel(8).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "AccountsService"

Exigidas

Polkit-126

Recomendadas
Opcionais

GTK-Doc-1.34.0 e xmlto-0.0.29

Opcionais (para testes)

dbusmock-0.34.3 e PyGObject-3.50.0

Instalação do "AccountsService"

Primeiro, renomeie um diretório cuja presença impede o sistema de construção de executar se dbusmock-0.34.3 não estiver instalado:

mv tests/dbusmock{,-tests}

Em seguida, corrija um conjunto de comandos sequenciais de teste, de forma que o novo diretório seja encontrado e adapte-o para Python 3.12.0 ou posterior:

sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \
    -e 's/assertEquals/assertEqual/'                      \
    -i tests/test-libaccountsservice.py

Corrija um teste que falha se a localidade en_IE.UTF-8 não estiver instalada:

sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py

Instale AccountsService executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D admin_group=adm   \
      -D elogind=true      \
      -D systemdsystemunitdir=no

Agora adapte a cópia de mocklibc enviada para permitir construir a suíte de teste com GCC 14 ou posterior:

grep 'print_indent'     ../subprojects/mocklibc-1.0/src/netgroup.c \
     | sed 's/ {/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h &&
sed -i '1i#include <stdio.h>'                                      \
    ../subprojects/mocklibc-1.0/src/netgroup.h

Construa o pacote:

ninja

Para testar o pacote, emita ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D admin_group=adm: Essa chave configura o grupo para contas de administrador(a).

-D docbook=true: Essa chave habilita construir a documentação da API da interface do D-Bus (precisa do xmlto-0.0.29).

-D gtk_doc=true: Essa chave habilita construir a documentação da API da libaccountsservice (precisa do GTK-Doc-1.34.0).

-D vapi=false: Essa chave desabilita construir as ligações vala. Use-a se você não tiver instalado Vala-0.56.17.

Configurando "AccountsService"

Para permitir que os(as) usuários(as) no grupo "adm" sejam listados como Administradores(as), execute os seguintes comandos como o(a) usuário(a) root:

cat > /etc/polkit-1/rules.d/40-adm.rules << "EOF"
polkit.addAdminRule(function(action, subject) {
  return ["unix-group:adm"];
  });
EOF

Conteúdo

Aplicativos Instalados: accounts-daemon (em /usr/libexec)
Bibliotecas Instaladas: libaccountsservice.so
Diretórios Instalados: /usr/include/accountsservice-1.0, /usr/share/accountsservice, /usr/share/gtk-doc/html/libaccountsservice (opcional) e /var/lib/AccountsService

Descrições Curtas

accounts-daemon

é o processo de segundo plano AccountsService

libaccountsservice.so

contém as funções da "API" do AccountsService

acpid-2.0.34

Introdução ao "acpid"

O acpid ("Advanced Configuration and Power Interface" processo de segundo plano de evento) é um processo de segundo plano completamente flexível e totalmente extensível para entrega de eventos "ACPI". Ele escuta na interface "netlink" e, quando ocorre um evento, executa aplicativos para lidar com o evento. Os aplicativos que ele executa são configurados por meio de um conjunto de arquivos de configuração, que podem ser inseridos por pacotes ou pelo(a) usuário(a).

Nota

Alguns outros pacotes também podem lidar com alguns eventos ACPI e possivelmente conflitem com esse pacote. Por exemplo, elogind-255.17 (leia-se a documentação para Handle*= em logind.conf(5) para detalhes) e UPower-1.90.7 (usado por muitos ambientes de área de trabalho como GNOME, KDE e XFCE para lidar com eventos ACPI). Se você tiver instalado tal pacote e ele for suficiente para o teu caso de uso, esse pacote provavelmente não é necessário. Se você realmente precisa desse pacote, você precisa ser cuidadoso(a) ao configurá-lo e aos outros pacotes que manuseiam eventos ACPI para evitar conflitos. Notavelmente, elogind-255.17 lida com alguns eventos ACPI por padrão, de forma que o tratamento desses eventos pelo elogind-255.17 deveria ser desabilitado primeiro se manusear esses eventos com acpid (novamente, leia-se logind.conf(5) para detalhes).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/acpid2/acpid-2.0.34.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 988c2e3fd5ba0ea4492d3ba7273af295

  • Tamanho da transferência: 160 KB

  • Espaço em disco estimado exigido: 1,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do "acpid"

Instale acpid executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/acpid-2.0.34 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install                        &&
install -v -m755 -d /etc/acpi/events &&
cp -r samples /usr/share/doc/acpid-2.0.34

Configurando "acpid"

acpid é configurado por eventos definidos pelo(a) usuário(a). Coloque os arquivos de eventos sob o diretório /etc/acpi/events. Se ocorrer um evento, [então] acpid percorre os arquivos de eventos para a finalidade de ver se a expressão regular definida depois de "event" corresponde. Se corresponder, [então] a ação é executada.

O breve exemplo a seguir suspenderá o sistema quando a tampa do laptop for fechada (exige pm-utils-1.4.1). O exemplo também desabilita o tratamento padrão do evento de fechamento da tampa pelo elogind-255.17 quando o sistema estiver funcionando com bateria e não conectado a nenhum monitor externo, para a finalidade de evitar um conflito:

cat > /etc/acpi/events/lid << "EOF"
event=button/lid
action=/etc/acpi/lid.sh
EOF

cat > /etc/acpi/lid.sh << "EOF"
#!/bin/sh
/bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0
/usr/sbin/pm-suspend
EOF
chmod +x /etc/acpi/lid.sh

mkdir -pv /etc/elogind/logind.conf.d
echo HandleLidSwitch=ignore > /etc/elogind/logind.conf.d/acpi.conf

Infelizmente, nem todos os computadores rotulam os eventos ACPI da mesma maneira (por exemplo, a tampa possivelmente seja reconhecida como LID0 em vez de LID). Para determinar como teus botões são reconhecidos, use a ferramenta acpi_listen. Além disso, procure no diretório samples sob /usr/share/doc/acpid-2.0.34 para mais exemplos.

Script de Inicialização

Para iniciar automaticamente o acpid quando o sistema for reinicializado, instale o script de inicialização /etc/rc.d/init.d/acpid originário do pacote blfs-bootscripts-20250225.

make install-acpid

Conteúdo

Aplicativos Instalados: acpid, acpi_listen e kacpimon
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/acpi e /usr/share/doc/acpid-2.0.34

Descrições Curtas

acpid

é um aplicativo que escuta eventos "ACPI" e executa as regras que correspondem ao evento recebido

acpi_listen

é uma ferramenta simples que se conecta ao acpid e escuta os eventos

kacpimon

é um aplicativo monitor que se conecta a três fontes de eventos "ACPI" (arquivo de eventos; "netlink"; e camada de entrada) e então informa o que vê enquanto está conectado

at-3.2.5

Introdução ao "at"

O pacote at fornece execução diferida de tarefas e processamento em lote. Ele é exigido para conformidade com o Linux Standards Base (LSB).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/at/at_3.2.5.orig.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ca3657a1c90d7c3d252e0bc17feddc6e

  • Tamanho da transferência: 130 KB

  • Espaço em disco estimado exigido: 1,9 MB (incluindo os testes)

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "at"

Exigidas

Um MTA

Opcionais

Linux-PAM-1.7.0

Instalação do "at"

Antes de construir o at, como o(a) usuário(a) root, você deveria criar o grupo e o(a) usuário(a) atd que executarão o processo de segundo plano atd:

groupadd -g 17 atd                                                 &&
useradd -d /dev/null -c "atd daemon" -g atd -s /bin/false -u 17 atd

Instale at com os seguintes comandos:

./configure --with-daemon_username=atd       \
            --with-daemon_groupname=atd       \
            --with-jobdir=/var/spool/atjobs   \
            --with-atspool=/var/spool/atspool \
            SENDMAIL=/usr/sbin/sendmail       &&
make -j1

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install docdir=/usr/share/doc/at-3.2.5 \
            atdocdir=/usr/share/doc/at-3.2.5

Configurando "at"

Arquivos de Configuração

/etc/at.allow e /etc/at.deny determinam quem consegue submeter tarefas via "at" ou "batch".

Configuração do Linux PAM

Se At tiver sido construído com suporte Linux PAM, [então] você precisa criar um arquivo de configuração PAM, para fazê-lo funcionar corretamente com BLFS.

Emita os seguintes comandos como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM:

cat > /etc/pam.d/atd << "EOF"
# Inicia /etc/pam.d/atd

auth     required pam_unix.so
account  required pam_unix.so
password required pam_unix.so
session  required pam_unix.so

# Termina /etc/pam.d/atd
EOF

Conjunto de Comandos Sequenciais de Inicialização

Instale o script de inicialização /etc/init.d/atd a partir do pacote blfs-bootscripts-20250225.

make install-atd

Conteúdo

Aplicativos Instalados: at, atd, atq (link simbólico), atrm (link simbólico), atrun e batch
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/at-3.2.5

Descrições Curtas

at

enfileira, examina ou deleta tarefas para execução posterior

atd

é o processo de segundo plano que executa tarefas enfileiradas para execução posterior

atq

lista as tarefas pendentes do(a) usuário(a), ou todas as tarefas, se superusuário(a)

atrm

deleta tarefas, identificadas pelo número da tarefa delas

atrun

executa tarefas enfileiradas para execução posterior

batch

é um script que executa comandos quando os níveis de carga do sistema permitem

autofs-5.1.9

Introdução ao "Autofs"

Autofs controla a operação dos processos de segundo plano "automount". Os processos de segundo plano "automount" montam automaticamente sistemas de arquivos quando eles são acessados e os desmontam depois de um período de inatividade. Isso é feito baseado em um conjunto de mapas pré-configurados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Autofs"

Exigidas

libtirpc-1.3.6 e rpcsvc-proto-1.4.4

Opcionais

nfs-utils-2.8.2, libnsl-2.0.1, libxml2-2.13.6, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9 (somente o cliente) e Cyrus SASL-2.1.28

Configuração do Núcleo

Verifique se o suporte de núcleo "automounter" foi habilitado:

File systems --->
  <*/M> Kernel automounter support (supports v3, v4 and v5)          [AUTOFS_FS]

Opcionalmente, habilite as seguintes opções na configuração do núcleo:

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> SMB3 and CIFS support (advanced network filesystem)             [CIFS]

Recompile e instale o novo núcleo, se necessário.

Instalação do "Autofs"

Instale Autofs executando os seguintes comandos:

./configure --prefix=/usr             \
            --with-mapdir=/etc/autofs \
            --with-libtirpc           \
            --without-openldap        \
            --mandir=/usr/share/man   &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Cuidado

Se autofs já estiver instalado em seu sistema, [então] certifique-se de produzir cópia de segurança de seus arquivos de configuração. Eles serão sobrescritos pelo seguinte comando.

Instale os arquivos padrão de configuração, ainda como o(a) usuário(a) root:

make install_samples

Explicações do Comando

--with-libtirpc: Essa chave força o pacote a usar "libtirpc" para a funcionalidade "RPC" em vez de depender da implementação originária da "Glibc", que foi removida no LFS 8.1.

--without-openldap: Essa chave desabilita o "openldap" se encontrado. Se o "openldap" for desejado, [então] omita essa chave. Observe que o suporte a "openldap" em "autofs" exige MIT Kerberos V5-1.21.3.

Configurando "Autofs"

Arquivos de Configuração

/etc/sysconfig/autofs.conf, /etc/autofs/auto.master, /etc/autofs/auto.misc e /etc/autofs/auto.net

Informação de Configuração

O processo de instalação cria auto.master, auto.misc, auto.smb e auto.net. Substitua o arquivo auto.master pelos seguintes comandos como o(a) usuário(a) root:

mv /etc/autofs/auto.master /etc/autofs/auto.master.bak &&
cat > /etc/autofs/auto.master << "EOF"
# Início /etc/autofs/auto.master

/media/auto  /etc/autofs/auto.misc  --ghost
#/home        /etc/autofs/auto.home

# Fim /etc/autofs/auto.master
EOF

Esse arquivo cria um novo diretório de mídia, /media/auto que sobreporá qualquer diretório existente com o mesmo nome. Nesse exemplo, o arquivo, /etc/autofs/auto.misc, tem uma linha:

cd  -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

que montará um CDROM como /media/auto/cd se esse diretório for acessado. A opção --ghost diz ao montador automático para criar versões ghost (ou seja, diretórios vazios) de todos os pontos de montagem listados no arquivo de configuração, independentemente se algum dos sistemas de arquivos for realmente montado ou não. Isso é muito conveniente e altamente recomendado, porque mostrará os sistemas de arquivos montáveis automaticamente disponíveis como diretórios existentes, mesmo quando os sistemas de arquivos deles não estiverem montados atualmente. Sem a opção --ghost, você terá que se lembrar dos nomes dos diretórios. Assim que você tentar acessar um deles, o diretório será criado e o sistema de arquivos será montado. Quando o sistema de arquivos for desmontado novamente, o diretório também é destruído, a menos que a opção --ghost tenha sido fornecida.

Nota

Um método alternativo seria especificar outro local de montagem automática, como /var/lib/auto/cdrom, e criar um link simbólico a partir de /media/cdrom para o local de montagem automática.

O arquivo auto.misc precisa ser configurado para seu hardware de trabalho. O arquivo de configuração carregado deveria carregar seu CDROM se /dev/cdrom estiver ativo ou pode ser editado para corresponder à configuração do seu dispositivo. Exemplos para disquetes estão disponíveis no arquivo e são facilmente ativados. A documentação para esse arquivo está disponível usando o comando man 5 autofs.

Na segunda linha, se habilitada, um diretório inicial de usuário(a) seria montado via "NFS" no login. O /etc/home.auto precisaria existir e ter uma entrada semelhante a:

joe exemplo.org:/export/home/joe

onde o diretório /export/home/joe é exportado via "NFS" a partir do sistema "exemplo.org". Os compartilhamentos "NFS" são abordados na próxima página.

Esse pacote também poderia ser usado para montar compartilhamentos SMB, porém esse recurso não está configurado nessas instruções. Para informações adicionais de configuração, vejam-se as páginas de manual para auto.master(5). Existem também recursos da web, tais como este AUTOFS HOWTO, disponíveis.

Conjunto de Comandos Sequenciais de Inicialização

O autofs instala o próprio script de inicialização dele, mas não tem capacidade para registro ou conformidade visual com outros scripts do BLFS. Ele será substituído por uma versão aprimorada.

Instale o script de montagem /etc/init.d/autofs incluído com o pacote blfs-bootscripts-20250225.

make install-autofs

A variável de tempo limite é configurada em /etc/sysconfig/autofs.conf. O arquivo instalado configura um padrão de sessenta (60) segundos de inatividade antes de desmontar o dispositivo. Um tempo muito menor possivelmente seja necessário para proteger a gravação do "buffer" em um disquete se os(as) usuários(as) tendem a remover a mídia antes da configuração de tempo limite.

Conteúdo

Aplicativo Instalado: automount
Bibliotecas Instaladas: libautofs.so, lookup_dir.so, lookup_file.so, lookup_files.so (link simbólico para lookup_file.so), lookup_hosts.so, lookup_ldap.so (opcional), lookup_multi.so, lookup_nis.so (link simbólico para lookup_yp.so), lookup_program.so, lookup_userhome.so, lookup_yp.so, mount_afs.so, mount_autofs.so, mount_bind.so, mount_changer.so, mount_ext2.so, mount_ext3.so (link simbólico para mount_ext2.so), mount_ext4.so (link simbólico para mount_ext2.so), mount_generic.so, mount_nfs.so, mount_nfs4.so (link simbólico para mount_nfs.so), parse_amd.so e parse_sun.so
Diretórios Instalados: /usr/lib/autofs e /etc/autofs

Descrições Curtas

automount

é o processo de segundo plano que realiza a montagem quando uma solicitação é feita para o dispositivo

BlueZ-5.79

Introdução ao "BlueZ"

O pacote BlueZ contém a pilha de protocolos "Bluetooth" para Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/bluez-5.79.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a22d25ca60e89d211ac154dca3a84e61

  • Tamanho da transferência: 2,3 MB

  • Espaço em disco estimado exigido: 170 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo = 4; com os testes)

Dependências do "BlueZ"

Exigidas

dbus-1.16.0, GLib-2.82.5 e libical-3.0.19

Opcionais

docutils-0.21.2 (para gerar páginas de manual)

Configuração do Núcleo

Se você estiver construindo esse pacote para usar dispositivos "bluetooth" (em vez de uma dependência de construção), [então] habilite as seguintes opções na configuração do núcleo, também as opções na seção Cryptographic API se você pretende executar os testes e recompile o núcleo, se necessário:

General setup --->
  # If it is disabled, [TIMERFD] and [EVENTFD] will be hidden and
  # enabled implicitly.  We DO NOT recommend to enable [EXPERT]
  # unless you are really an expert user:
  [ /*] Configure standard kernel features (expert users) --->          [EXPERT]
    [*] Enable timerfd() system call                                   [TIMERFD]
    [*] Enable eventfd() system call                                   [EVENTFD]

[*] Networking support --->                                                [NET]
  <*/M> Bluetooth subsystem support --->                                    [BT]
    [*]   Bluetooth Classic (BR/EDR) features                         [BT_BREDR]
    <*/M>   RFCOMM protocol support                                  [BT_RFCOMM]
    [*]       RFCOMM TTY support                                 [BT_RFCOMM_TTY]
    <*/M>   BNEP protocol support                                      [BT_BNEP]
    [*]       Multicast filter support                       [BT_BNEP_MC_FILTER]
    [*]       Protocol filter support                     [BT_BNEP_PROTO_FILTER]
    <*/M>   HIDP protocol support                                      [BT_HIDP]
    Bluetooth device drivers --->
      # Select the appropriate drivers for your bluetooth hardware.
      # There are more vendor-specific drivers not listed here:
      < /*/M> HCI USB driver                                       [BT_HCIBTUSB]
      < /*/M> HCI SDIO driver                                     [BT_HCIBTSDIO]
      < /*/M> HCI UART driver                                       [BT_HCIUART]
  <*/M> RF switch subsystem support --->                                [RFKILL]

-*- Cryptographic API --->                                              [CRYPTO]
  Crypto core or helper --->
    <*/M> Userspace cryptographic algorithm configuration          [CRYPTO_USER]
  Block ciphers --->
    <*/M> AES (Advanced Encryption Standard)                        [CRYPTO_AES]
  AEAD (authenticated encryption with associated data) ciphers --->
    <*/M> CCM (Counter with Cipher Block Chaining-MAC)              [CRYPTO_CCM]
  Hashes, digests, and MACs --->
    <*/M> CMAC (Cipher-based MAC)                                  [CRYPTO_CMAC]
  Userspace interface --->
    <*/M> Hash algorithms                                 [CRYPTO_USER_API_HASH]
    <*/M> Symmetric key cipher algorithms             [CRYPTO_USER_API_SKCIPHER]
    <*/M> AEAD cipher algorithms                          [CRYPTO_USER_API_AEAD]

Instalação do "BlueZ"

Instale BlueZ executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --enable-library      \
            --disable-manpages    \
            --disable-systemd     &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin

Instale o principal arquivo de configuração como o(a) usuário(a) root:

install -v -dm755 /etc/bluetooth &&
install -v -m644 src/main.conf /etc/bluetooth/main.conf

Se desejado, instale a documentação da API como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/bluez-5.79 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.79

Instale um serviço ausente do D-Bus como o(a) usuário(a) root:

install -m644 ./obexd/src/org.bluez.obex.service /usr/share/dbus-1/services

Explicações do Comando

--disable-manpages: Essa chave desabilita a geração de páginas de manual por causa da dependência de 'rst2man' em "docutils". Remova essa chave se você tiver docutils-0.21.2 instalado e desejar gerar as páginas de manual.

--enable-library: Essa chave habilita construir a biblioteca de compatibilidade BlueZ 4 que é exigida por alguns aplicativos.

--disable-systemd: Essa chave é necessária porque o systemd não é parte do LFS/BLFS. Se você estiver usando o "systemd", [então] remova essa chave.

ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: Esse comando torna o acesso ao processo de segundo plano "bluetooth" mais conveniente.

Configurando o "BlueZ"

Arquivos de Configuração

/etc/bluetooth/main.conf é instalado automaticamente durante a instalação. Além disso, existem três arquivos de configuração suplementares. "/etc/sysconfig/bluetooth" é instalado como parte do script de inicialização abaixo. Além disso, você pode opcionalmente instalar o seguinte, como o(a) usuário(a) root:

cat > /etc/bluetooth/rfcomm.conf << "EOF"
# Início rfcomm.conf
# Configura a configuração "RFCOMM" do subsistema "Bluetooth" no núcleo Linux.
# Usa uma linha por comando
# Veja-se a página de manual do "rfcomm" para opções


# Fim do rfcomm.conf
EOF
cat > /etc/bluetooth/uart.conf << "EOF"
# Início uart.conf
# Anexa dispositivos seriais via "UART HCI" à pilha "BlueZ"
# Usa uma linha por dispositivo
# Veja-se a página de manual do "hciattach" para opções

# Fim do uart.conf
EOF

Script de Inicialização

Para iniciar automaticamente o processo de segundo plano bluetoothd quando o sistema for reinicializado, instale o script de inicialização /etc/rc.d/init.d/bluetooth originário do pacote blfs-bootscripts-20250225.

make install-bluetooth

Conteúdo

Aplicativos Instalados: bluemoon, bluetoothctl, bluetoothd (link simbólico), btattach, btmon, hex2hcd, l2ping, l2test, mpris-proxy e rctest
Biblioteca Instalada: libbluetooth.so
Diretórios Instalados: /etc/bluetooth, /usr/{include,libexec}/bluetooth e /usr/share/doc/bluez-5.79

Descrições Curtas

bluemoon

é um utilitário de configuração do Bluetooth

bluetoothctl

é o aplicativo interativo de controle do "Bluetooth"

bluetoothd

é o processo de segundo plano "Bluetooth"

btmon

fornece acesso à infraestrutura do monitor do subsistema "Bluetooth" para leitura de rastreamentos "HCI"

hex2hcd

é usado para converter um arquivo necessário para dispositivos "Broadcom" para o formato "hcd" ("Broadcom bluetooth firmware")

l2ping

é usado para enviar uma solicitação de eco "L2CAP" para o endereço "MAC" do "Bluetooth" fornecido em notação hexadecimal com pontos

l2test

é um aplicativo de teste "L2CAP"

rctest

é usado para testar as comunicações "RFCOMM" na pilha "Bluetooth"

libbluetooth.so

contém as funções de "API" do BlueZ 4

Bubblewrap-0.11.0

Introdução ao "Bubblewrap"

Bubblewrap é uma implementação "setuid" de espaços de nome de usuário(a), ou ambiente de testagem, que fornece acesso a um subconjunto de recursos do núcleo de espaço de nome de usuário(a). O "Bubblewrap" permite que os processos de propriedade do(a) usuário(a) executem em um ambiente isolado com acesso limitado ao sistema de arquivos subjacente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Bubblewrap"

Opcionais

libxslt-1.1.42 (para gerar páginas de manual), libseccomp-2.6.0 (construído com ligações Python, para testes), bash-completion e SELinux

Configuração do Núcleo

Quando esse pacote começou, o fluxo de desenvolvimento esperava que ele pudesse ser instalado suid-root. Isso foi há muito tempo; suid-root geralmente é considerado uma má ideia. Além dos espaços de nomes padrão, esse pacote exige que o espaço de nome opcional do(a) Usuário(a) esteja habilitado. Se isso ainda não tiver sido habilitado, selecione a seguinte opção na configuração do núcleo e recompile o núcleo:

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]

Instalação do "Bubblewrap"

Instale Bubblewrap executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Em seguida, se você deseja executar a suíte de teste, corrija um problema causado pela configuração mesclada do "/usr" no LFS:

sed 's@symlink usr/lib64@ro-bind-try /lib64@' -i ../tests/libtest.sh

Para testar os resultados, emita (como um(a) usuário(a) diferente do(a) usuário(a) root): ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: bwrap
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

bwrap

gera um ambiente de testagem para um aplicativo executar dentro

Colord-1.4.7

Introdução ao "Colord"

Colord é um serviço de sistema que facilita gerenciar, instalar e a gerar perfis de cores. Ele é usado principalmente pelo GNOME Color Manager para integração do sistema e uso quando nenhum(a) usuário(a) está logado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Colord"

Exigidas

dbus-1.16.0, GLib-2.82.5 (GObject Introspection recomendado), Little CMS-2.17, libgudev-238, libgusb-0.4.9, Polkit-126 e SQLite-3.49.1

Recomendadas
Opcionais

gnome-desktop-44.1 e colord-gtk-0.3.1 (para construir as ferramentas de exemplo), docbook-xml-5.0, docbook-xsl-ns-1.79.2, e libxslt-1.1.42 (para construir as páginas de manual), GTK-Doc-1.34.0, SANE-1.2.1, ArgyllCMS e Bash Completion

Instalação do "Colord"

Primeiro, corrija um uso indevido da API do sqlite, causante de uma falha de teste e possível quebra ao tempo da execução:

patch -Np1 -i ../colord-1.4.7-upstream_fixes-1.patch

Deveria existir um(a) usuário(a) e um grupo dedicados para assumir o controle do processo de segundo plano "colord" após ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) root:

groupadd -g 71 colord &&
useradd -c "Proprietário(a) do Processo de Segundo Plano de Cores" -d /var/lib/colord -u 71 \
        -g colord -s /bin/false colord

Instale Colord executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                  \
      --prefix=/usr             \
      --buildtype=release       \
      -D daemon_user=colord     \
      -D vapi=true              \
      -D systemd=false          \
      -D libcolordcompat=true   \
      -D argyllcms_sensor=false \
      -D bash_completion=false  \
      -D docs=false             \
      -D man=false              &&
ninja

Se docbook-xml-5.0, docbook-xsl-ns-1.79.2 e libxslt-1.1.42 estiverem instalados, construa as páginas de manual:

sed -e '/class="manual"/i<refmiscinfo class="source">colord</refmiscinfo>' \
    -i ../man/*.xml &&
meson configure -D man=true &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: ninja test. Um teste, colord-self-test-daemon, falhará se o pacote já estiver instalado. A suíte de teste precisa ser executada com o "D-Bus Daemon" abrangente ao sistema em execução.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D daemon_user=colord: Essa chave é usada de modo que o processo de segundo plano colord executará como um(a) usuário(a) sem privilégios em vez do(a) usuário(a) root.

-D vapi=true: Essa chave habilita construir as ligações Vala. Remova se você não tiver Vala-0.56.17 instalado.

-D systemd=false: Essa chave desabilita o suporte para login systemd em aplicativos Colord.

-D libcolordcompat=true: Essa chave habilita construir uma biblioteca de compatibilidade para pacotes mais antigos que usam Colord.

-D argyllcms_sensor=false: Essa chave desabilita o controlador do sensor ArgLLCMS. Omita se você tiver ArgyllCMS instalado e desejar usá-lo.

-D bash_completion=false: Essa chave desabilita o suporte ao Completação do Bash para aplicativos Colord.

-D docs=false: Essa chave desabilita a construção de documentação. Omita se você tiver GTK-Doc-1.34.0 disponível.

Conteúdo

Aplicativos Instalados: cd-create-profile, cd-fix-profile, cd-iccdump, cd-it8 e colormgr
Bibliotecas Instaladas: libcolord.so, libcolordcompat.so, libcolordprivate.so e libcolorhug.so
Diretórios Instalados: /usr/include/colord-1, /usr/lib/colord-{plugins,sensors}, /usr/share/color{d}, /usr/share/gtk-doc/html/colord e /var/lib/colord

Descrições Curtas

cd-create-profile

é a "Color Manager Profile Creation Tool"

cd-fix-profile

é uma ferramenta usada para corrigir metadados em perfis "ICC"

cd-iccdump

despeja o conteúdo de um perfil "ICC" como texto legível por humanos

cd-it8

é a "Color Manager Testing Tool"

colormgr

é um aplicativo em modo texto que te permite interagir com o "colord" na linha de comando

libcolord.so

contém as funções da "API" do Colord

libcolordcompat.so

contém funções de API herdadas para compatibilidade com aplicativos mais antigos

libcolordprivate.so

contém funções internas de "API" para os aplicativos incluídos com o Colord

libcolorhug.so

contém um colorímetro simples de hardware de exibição

cpio-2.15

Introdução ao "cpio"

O pacote cpio contém ferramentas para arquivamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3394d444ca1905ea56c94b628b706a0b

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 21 MB (com testes e documentos)

  • Tempo de construção estimado: 0,3 UPC (com testes e documentos)

Dependências do "CPIO"

Opcionais

texlive-20240312 (ou install-tl-unx)

Instalação do "cpio"

Instale cpio executando os seguintes comandos:

./configure --prefix=/usr \
           --enable-mt   \
           --with-rmt=/usr/libexec/rmt &&
make &&
makeinfo --html            -o doc/html      doc/cpio.texi &&
makeinfo --html --no-split -o doc/cpio.html doc/cpio.texi &&
makeinfo --plaintext       -o doc/cpio.txt  doc/cpio.texi

Se você tiver texlive-20240312 instalado e desejar criar documentação em "PDF" ou "Postscript", [então] emita um ou ambos os seguintes comandos:

make -C doc pdf &&
make -C doc ps

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/cpio-2.15/html &&
install -v -m644   doc/html/* \
                    /usr/share/doc/cpio-2.15/html &&
install -v -m644    doc/cpio.{html,txt} \
                    /usr/share/doc/cpio-2.15

Se você criou documentação em "PDF" ou "Postscript", [então] instale-a emitindo os seguintes comandos como o(a) usuário(a) root:

install -v -m644 doc/cpio.{pdf,ps,dvi} \
                /usr/share/doc/cpio-2.15

Explicações do Comando

--enable-mt: Esse parâmetro força a construção e instalação do aplicativo mt.

--with-rmt=/usr/libexec/rmt: Esse parâmetro inibe a construção do aplicativo rmt, pois ele já é instalado pelo pacote Tar no LFS.

Conteúdo

Aplicativos Instalados: cpio e mt
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/cpio-2.15

Descrições Curtas

cpio

copia arquivos de e para arquivamentos

mt

controla as operações da unidade de fita magnética

cups-pk-helper-0.2.7

Introdução ao "cups-pk-helper"

O pacote cups-pk-helper contém um auxiliar PolicyKit usado para configurar o Cups com privilégios refinados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "cups-pk-helper"

Exigidas

Cups-2.4.11 e Polkit-126

Instalação do "cups-pk-helper"

Instale cups-pk-helper executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: cups-pk-helper-mechanism (executável da biblioteca)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

dbus-1.16.0

Introdução ao "D-Bus"

D-Bus é um sistema de barramento de mensagens, uma maneira simples para os aplicativos se comunicarem entre si. D-Bus fornece um processo de segundo plano de sistema (para eventos como novo dispositivo de hardware adicionado ou fila de impressora mudou) e um processo de segundo plano de sessão de login por usuário(a) (para necessidades gerais de "IPC" entre aplicativos de usuário(a)). Além disso, o barramento de mensagens é construído sobre uma estrutura geral de passagem de mensagens um-para-um, a qual pode ser usada por quaisquer dois aplicativos para se comunicarem diretamente (sem passar pelo processo de segundo plano do barramento de mensagens).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus/dbus-1.16.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 66bfcf1f42d4ebc634ca558d14335e92

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 110 MB (adicionar 6 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (adicionar 0,4 UPC para testes)

Dependências do "D-Bus"

Recomendadas
Opcionais

Para os testes: D-Bus Python-1.3.2, PyGObject-3.50.0 e Valgrind-3.24.0; para documentação: Doxygen-1.13.2, xmlto-0.0.29, Ducktype e Yelp Tools

Instalação do "D-Bus"

Instale o D-Bus executando os seguintes comandos (você possivelmente deseje revisar o arquivo meson_options.txt primeiro e adicionar quaisquer opções adicionais desejadas à linha setup do meson abaixo):

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            -D systemd=disabled    \
            .. &&
ninja

Veja-se abaixo para instruções de teste.

Agora, como o(a) usuário(a) root:

ninja install

Se você estiver usando uma instalação "DESTDIR", [então] o dbus-daemon-launch-helper precisa ser corrigido posteriormente. Emita, como usuário(a) root:

chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v     4750       /usr/libexec/dbus-daemon-launch-helper

Se você ainda estiver construindo seu sistema em "chroot" ou ainda não iniciou o processo de segundo plano, mas deseja compilar alguns pacotes que exigem o D-Bus, [então] gere o "UUID" do D-Bus, para evitar avisos ao compilar alguns pacotes, com o seguinte comando como o(a) usuário(a) root:

dbus-uuidgen --ensure

Se usar elogind-255.17, [então] crie um link simbólico para o arquivo /var/lib/dbus/machine-id:

ln -sfv /var/lib/dbus/machine-id /etc

Finalmente, ainda como o(a) usuário(a) root, renomeie o diretório da documentação (ele só existe se as dependências opcionais forem satisfeitas para pelo menos um formato de documentação) para torná-lo versionado:

if [ -e /usr/share/doc/dbus ]; then
  rm -rf /usr/share/doc/dbus-1.16.0    &&
  mv -v  /usr/share/doc/dbus{,-1.16.0}
fi

Muitos testes estão desabilitados, a menos que D-Bus Python-1.3.2 e PyGObject-3.50.0 tenham sido instalados. Eles precisam ser executados como um(a) usuário(a) sem privilégios a partir de uma sessão local com endereço de barramento. Para executar os testes padrão, emita ninja test.

Se você deseja executar os testes de regressão de unidade, o meson exige parâmetros adicionais os quais expõem funcionalidades adicionais nos binários que não se destinam a serem usadas em uma construção de produção do D-Bus. Se você gostaria de executar os testes, emita os seguintes comandos (para os testes, você não precisa construir os documentos):

meson configure -D asserts=true -D intrusive_tests=true &&
ninja test

Explicações do Comando

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D systemd=disabled: Não instale arquivos de suporte do systemd mesmo que libsystemd exista (ou seja, o pacote elogind-255.17 esteja instalado).

-D intrusive_tests=true: Constrói partes extras do código para suportar todos os testes. Não use em uma construção de produção.

-D asserts=true: Habilita código de depuração para executar asserções para declarações normalmente presumidas serem verdadeiras. Isso evita um aviso de que '-D asserts=true' por si só é útil somente para perfilamento e pode não fornecer resultados verdadeiros para todos os testes, mas adiciona a própria OBSERVAÇÃO dele de que isso não deveria ser usado em uma construção de produção.

Configurando o "D-Bus"

Arquivos de Configuração

/etc/dbus-1/session.conf, /etc/dbus-1/system.conf e /etc/dbus-1/system.d/*

Informação de Configuração

Os arquivos de configuração listados acima provavelmente não deveriam ser modificados. Se mudanças forem necessárias, [então] você deveria criar /etc/dbus-1/session-local.conf e(ou) /etc/dbus-1/system-local.conf e fazer quaisquer mudanças desejadas nesses arquivos.

Se quaisquer pacotes instalarem um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando-se os seguintes comandos como o(a) usuário(a) root:

cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

 <!-- Search for .service files in /usr/local -->
 <servicedir>/usr/local/share/dbus-1/services</servicedir>

</busconfig>
EOF

Processo de Segundo Plano de Sessão do "D-Bus"

Para iniciar automaticamente o dbus-daemon quando o sistema for reinicializado, instale o "script" de inicialização /etc/rc.d/init.d/dbus a partir do pacote blfs-bootscripts-20250225.

make install-dbus

Se essa for a primeira vez que instala o D-Bus no sistema e não estiver operando em um ambiente chroot, você consegue iniciar imediatamente o dbus-daemon sem reinicializar o sistema:

/etc/init.d/dbus start

Observe que esse "script" de inicialização somente inicia o processo de segundo plano D-Bus abrangente ao sistema. Cada usuário(a) solicitante de acesso aos serviços do D-Bus também precisará executar um processo de segundo plano de sessão. Existem muitos métodos que você pode usar para iniciar um processo de segundo plano de sessão usando o comando dbus-launch. Revise a página de manual do dbus-launch para detalhes a respeito dos parâmetros e opções disponíveis. Aqui estão algumas sugestões e exemplos:

  • Adicione dbus-launch à linha no arquivo ~/.xinitrc que inicia seu ambiente gráfico de área de trabalho.

  • Se você usar gdm ou algum outro gerenciador de tela que chame o arquivo ~/.xsession, [então] você pode adicionar dbus-launch à linha no seu arquivo ~/.xsession que inicia seu ambiente gráfico de área de trabalho. A sintaxe seria semelhante ao exemplo no arquivo ~/.xinitrc.

  • Os exemplos mostrados anteriormente usam dbus-launch para especificar um aplicativo a ser executado. Isso tem a vantagem (ao usar também o parâmetro --exit-with-x11) de parar o processo de segundo plano de sessão quando o aplicativo especificado for interrompido. Você também pode iniciar o processo de segundo plano de sessão em seus "scripts" de inicialização de sistema ou os pessoais, adicionando as seguintes linhas:

    # Inicia o processo de segundo plano de sessão do "D-Bus"
    eval `dbus-launch`
    export DBUS_SESSION_BUS_ADDRESS

    Esse método não parará o processo de segundo plano de sessão quando você sair do seu "shell"; portanto você deveria adicionar a seguinte linha ao seu arquivo ~/.bash_logout:

    # Mata o processo de segundo plano de sessão do "D-Bus"
    kill $DBUS_SESSION_BUS_PID

Conteúdo

Aplicativos Instalados: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment e dbus-uuidgen
Biblioteca Instalada: libdbus-1.so
Diretórios Instalados: /etc/dbus-1, /usr/{include,lib}/dbus-1.0, /usr/lib/cmake/DBus1, /usr/share/dbus-1, /usr/share/xml/dbus-1, /usr/share/doc/dbus-1.16.0 e /var/{lib,run}/dbus

Descrições Curtas

dbus-cleanup-sockets

é usado para limpar soquetes restantes em um diretório

dbus-daemon

é o processo de segundo plano de barramento de mensagens do D-Bus

dbus-launch

é usado para iniciar o dbus-daemon a partir de um "script" do "shell". Normalmente seria chamado a partir dos "scripts" de login de um(a) usuário(a)

dbus-monitor

é usado para monitorar mensagens que passam por um barramento de mensagens D-Bus

dbus-run-session

inicia um processo como uma nova sessão do D-Bus

dbus-send

é usado para enviar uma mensagem para um barramento de mensagens do D-Bus

dbus-test-tool

é um gerador de tráfego e ferramenta de teste do D-Bus; é uma ferramenta multifuncional para depuração e perfilamento do D-Bus

dbus-update-activation-environment

é usado para atualizar o ambiente usado para serviços de sessão do D-Bus; atualiza a lista de variáveis de ambiente usadas por dbus-daemon --session quando ativa serviços de sessão sem usar o "systemd"

dbus-uuidgen

é usado para gerar um "ID" universalmente único

libdbus-1.so

contém as funções da "API" usadas pelo processo de segundo plano de mensagens do D-Bus. D-Bus é primeiro uma biblioteca que fornece comunicação "um para um" entre quaisquer duas aplicações; dbus-daemon é um aplicativo que usa essa biblioteca para implementar um processo de segundo plano de barramento de mensagens

elogind-255.17

Introdução ao elogind

elogind é o "logind" do projeto systemd, extraído para ser um processo de segundo plano independente. Ele se integra com Linux-PAM-1.7.0 para rastrear todos(as) os(as) usuários(as) logados(as) em um sistema, e se eles(as) estão logados(as) graficamente, no console ou remotamente. Elogind expõe essas informações por meio da interface padrão org.freedesktop.login1 do D-Bus e também por meio do sistema de arquivos usando o esquema padrão /run/systemd do "systemd".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do elogind

Recomendadas
Opcionais

lxml-5.3.1, zsh-5.9, Valgrind-3.24.0 (necessário para testes), audit-userspace, bash-completion, kexec e SELinux

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Logind

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

File systems --->
  [*] Inotify support for userspace                               [INOTIFY_USER]
  Pseudo filesystems --->
    [*] Tmpfs virtual memory file system support (former shm fs)         [TMPFS]
    [*]   Tmpfs POSIX Access Control Lists                     [TMPFS_POSIX_ACL]

Além disso, alguns testes precisam da "API" criptográfica do espaço do(a) usuário(a) do núcleo, a qual é habilitada com:

-*- Cryptographic API --->                                              [CRYPTO]
  Crypto core or helper --->
    <*/M> Userspace cryptographic algorithm configuration          [CRYPTO_USER]
  Userspace interface --->
    <*/M> Hash algorithms                                 [CRYPTO_USER_API_HASH]

Instalação do elogind

Instale o elogind executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                               \
      --prefix=/usr                          \
      --buildtype=release                    \
      -D man=auto                            \
      -D docdir=/usr/share/doc/elogind-255.17 \
      -D cgroup-controller=elogind           \
      -D dev-kvm-mode=0660                   \
      -D dbuspolicydir=/etc/dbus-1/system.d &&
ninja

Para testar os resultados, emita: ninja test. Uns poucos testes são ignorados se não executados com privilégios de root. Três testes, test-login, dbus-docs-fresh e check-version-history, são conhecidos por falharem.

Agora, como o(a) usuário(a) root:

ninja install                                          &&
ln -sfv  libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &&
ln -sfvn elogind /usr/include/systemd

Explicações do Comando

-D docdir=/usr/share/doc/elogind-255.17: Isso é necessário para instalar a documentação em um diretório versionado.

-D cgroup-controller=elogind: Essa chave é necessária para construir esse pacote quando o núcleo não for compilado com CONFIG_CGROUPS habilitada. Observe que elogind precisa estritamente de um núcleo com CONFIG_CGROUPS habilitada em tempo de execução, mas essa chave permitirá construir o pacote primeiro.

-D dbuspolicydir=/etc/dbus-1/system.d: Essa chave configura o local do diretório de políticas do D-Bus.

-D dev-kvm-mode=0660: A regra udev do LFS configura o modo de /dev/kvm como 0660. Essa opção garante que as regras udev do elogind sejam consistentes com a configuração do LFS.

-D man=auto: O valor padrão dessa chave é false. Configurá-lo como auto permite construir e instalar as páginas de manual se as dependências recomendadas estiverem instaladas.

-D html=auto: O valor padrão dessa chave é false. Configurá-la como auto permite construir e instalar a documentação HTML se as dependências recomendadas estiverem instaladas.

-D default-kill-user-processes=false: Determina se os processos de um(a) usuário(a) deveriam ser eliminados quando o(a) usuário(a) sai. O padrão é true, mas isso anula o uso tradicional de screen ou tmux. Isso também pode ser mudado no arquivo de configuração (veja-se abaixo).

ln -s ...: Esses comandos instalam links simbólicos, de modo que aqueles pacotes de software consigam encontrar a biblioteca e os cabeçalhos compatíveis com o "systemd".

Configurando o elogind

Arquivo de Configuração

/etc/elogind/logind.conf

Informação de Configuração

O arquivo instalado /etc/elogind/logind.conf contém todas as opções possíveis com os padrões delas comentados. Você possivelmente quera desabilitar a eliminação automática de processos do(a) usuário(a) quando o(a) usuário(a) sai, executando como o(a) usuário(a) root:

sed -e '/\[Login\]/a KillUserProcesses=no' \
   -i /etc/elogind/logind.conf

Cada usuário precisará registrar uma sessão de usuário(a) usando Linux-PAM no login. O arquivo /etc/pam.d/system-session precisa ser modificado e um novo arquivo precisa ser criado para a finalidade de que o elogind funcione corretamente. Execute os seguintes comandos como o(a) usuário(a) root:

cat >> /etc/pam.d/system-session << "EOF" &&
# Começo da adição de "elogind"

session  required    pam_loginuid.so
session  optional    pam_elogind.so

# Fim da adição de "elogind"
EOF
cat > /etc/pam.d/elogind-user << "EOF"
# Começo /etc/pam.d/elogind-user

account  required    pam_access.so
account  include     system-account

session  required    pam_env.so
session  required    pam_limits.so
session  required    pam_unix.so
session  required    pam_loginuid.so
session  optional    pam_keyinit.so force revoke
session  optional    pam_elogind.so

auth     required    pam_deny.so
password required    pam_deny.so

# Fim /etc/pam.d/elogind-user
EOF

Nota

Depois da conclusão do elogind, você deveria verificar se ele funciona corretamente. Primeiro, certifique-se de que dbus esteja executando. Pode ser mais fácil fazer isso reinicializando o sistema. Depois de se logar novamente, execute o comando loginctl. O resultado deveria indicar que uma SESSÃO e um SEAT foram criados.

Conteúdo

Aplicativos Instalados: busctl, elogind-inhibit e loginctl
Biblioteca Instalada: libelogind.so
Diretórios Instalados: /usr/lib/elogind, /etc/elogind, /usr/include/elogind e /usr/share/doc/elogind-255.17

Descrições Curtas

busctl

é usado para introspectar e monitorar o barramento do "D-Bus"

elogind-inhibit

é usado para executar um aplicativo com bloqueio de inibidor de desligamento, suspensão ou inatividade

loginctl

é usado para introspectar e controlar o estado do Gerenciador de Login do "elogind"

libelogind.so

é a principal biblioteca de utilitários do "elogind"

blocaled-0.7

Introdução ao "blocaled"

blocaled é uma implementação do protocolo org.freedesktop.locale1 do "D-Bus", que normalmente vem com o systemd. Ele é necessário para a área de trabalho GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "blocaled"

Exigidas

Polkit-126 e libdaemon-0.14

Instalação do "blocaled"

Instale blocaled executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Configurando o "blocaled"

Arquivos de Configuração

/etc/blocaled.conf

Informação de Configuração

/etc/blocaled.conf contém o local dos arquivos de configurações usados por blocaled. Os padrões são adequados para BLFS. Informações relativas às entradas estão disponíveis como comentários no arquivo.

O protocolo org.freedesktop.locale1 é inapto para exportar variáveis de localidade. As configurações de localidade são armazenadas por padrão em /etc/locale.conf. Precisamos recuperá-las no perfil do "bash". Como o(a) usuário(a) root, emita:

cat > /etc/profile.d/i18n.sh << "EOF"
# Começo /etc/profile.d/i18n.sh

if [ -r /etc/locale.conf ]; then source /etc/locale.conf; fi

if [ -n "$LANG" ];              then export LANG; fi
if [ -n "$LC_TYPE" ];           then export LC_TYPE; fi
if [ -n "$LC_NUMERIC" ];        then export LC_NUMERIC; fi
if [ -n "$LC_TIME" ];           then export LC_TIME; fi
if [ -n "$LC_COLLATE" ];        then export LC_COLLATE; fi
if [ -n "$LC_MONETARY" ];       then export LC_MONETARY; fi
if [ -n "$LC_MESSAGES" ];       then export LC_MESSAGES; fi
if [ -n "$LC_PAPER" ];          then export LC_PAPER; fi
if [ -n "$LC_NAME" ];           then export LC_NAME; fi
if [ -n "$LC_ADDRESS" ];        then export LC_ADDRESS; fi
if [ -n "$LC_TELEPHONE" ];      then export LC_TELEPHONE; fi
if [ -n "$LC_MEASUREMENT" ];    then export LC_MEASUREMENT; fi
if [ -n "$LC_IDENTIFICATION" ]; then export LC_IDENTIFICATION; fi

# Fim /etc/profile.d/i18n.sh
EOF

Então o arquivo /etc/locale deveria ser gerado, como o(a) usuário(a) root:

cat > /etc/locale.conf << EOF
# Começo /etc/locale.conf

LANG=$LANG

# Fim /etc/locale.conf
EOF

Se você planeja executar um sistema de janelas "X" (ou "Wayland"), [então] você possivelmente queira configurar seu teclado do "X". A melhor maneira de fazer isso é a de recuperar as configurações a partir de /etc/sysconfig/console e alimentá-las para o processo de segundo plano blocaled. Como o(a) usuário(a) root:

source /etc/sysconfig/console &&
KEYMAP=${KEYMAP:-us}          &&

gdbus call --system                                            \
           --dest org.freedesktop.locale1                       \
           --object-path /org/freedesktop/locale1               \
           --method org.freedesktop.locale1.SetVConsoleKeyboard \
           "$KEYMAP" "$KEYMAP_CORRECTIONS" true true

Isso deveria criar ou modificar o arquivo de configuração do "Xorg" (o padrão é /etc/X11/xorg.conf.d/30-keyboard.conf) para corresponder às configurações do teclado definidas em KEYMAP.

Conteúdo

Aplicativo Instalado: "blocaled" (em /usr/libexec)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/blocaled

Descrições Curtas

blocaled

é o processo de segundo plano implementando o protocolo org.freedesktop.locale1 do "D-Bus"

Fcron-3.2.1

Introdução ao "Fcron"

O pacote Fcron contém um agendador periódico de comandos que visa a substituir o Vixie Cron.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://fcron.free.fr/archives/fcron-3.2.1.src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bd4996e941a40327d11efc5e3fd1f839

  • Tamanho da transferência: 587 KB

  • Espaço em disco estimado exigido: 5,1 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do "Fcron"

Opcionais

Um MTA, editor de texto (o padrão é vi originário do pacote Vim-9.1.1166), Linux-PAM-1.7.0 e DocBook-utils-0.6.14

Instalação do "Fcron"

Fcron usa o recurso "cron" do syslog para registrar todas as mensagens. Como o LFS não configura essa facilidade em /etc/syslog.conf, isso precisa ser feito antes de instalar o Fcron. Esse comando anexará a linha necessária ao /etc/syslog.conf atual (realize como o(a) usuário(a) root):

cat >> /etc/syslog.conf << "EOF"
# Começo da adição do "fcron" ao /etc/syslog.conf

cron.* -/var/log/cron.log

# Fim da adição do "fcron"
EOF

O arquivo de configuração foi modificado, de modo que recarregar o processo de segundo plano sysklogd ativará as mudanças (novamente como o(a) usuário(a) root).

/etc/rc.d/init.d/sysklogd reload

Por razões de segurança, um(a) usuário(a) e um grupo sem privilégios para Fcron deveriam ser criados (realize como o(a) usuário(a) root):

groupadd -g 22 fcron &&
useradd -d /dev/null -c "Usuário(a) Fcron" -g fcron -s /bin/false -u 22 fcron

Agora corrija alguns locais codificados rigidamente na documentação:

find doc -type f -exec sed -i 's:/usr/local::g' {} \;

Instale Fcron executando os seguintes comandos:

./configure --prefix=/usr         \
            --sysconfdir=/etc      \
            --localstatedir=/var   \
            --without-sendmail     \
            --with-boot-install=no \
            --with-systemdsystemunitdir=no &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

A instalação "DESTDIR" precisa ser feita como usuário(a) root. Além disso, se os arquivos de configuração "PAM" devessem ser instalados em /etc/pam.d, [então] você tem de criar esse diretório no "DESTDIR" antes de fazer a instalação.

Explicações do Comando

--without-sendmail: Por padrão, Fcron tentará usar o comando sendmail originário de um pacote MTA para te comunicar os resultados do "script" fcron. Essa chave é usada para desabilitar a notificação padrão de mensagem eletrônica. Omita a chave para habilitar o padrão. Alternativamente, você pode usar o --with-sendmail=</caminho/para/comando "MTA"> para usar um comando de comunicador diferente.

--with-boot-install=no: Isso impede a instalação do "script" de inicialização incluído no pacote.

--with-systemdsystemunitdir=no: Isso evita construir as unidades do systemd, que não são necessárias para um sistema SYS V.

--with-editor=</caminho/para/editor>: Essa chave te permite configurar o editor padrão de texto.

--with-dsssl-dir=</caminho/para/folhas_de_estilo_dsssl>: Possivelmente seja usado se você tiver DocBook-utils-0.6.14 instalado. Atualmente, as folhas de estilo "dsssl" estão localizadas em /usr/share/sgml/docbook/dsssl-stylesheets-1.79.

Configurando o "Fcron"

Arquivos de Configuração

/etc/fcron.conf, /etc/fcron.allow e /etc/fcron.deny

Informação de Configuração

Não existem modificações necessárias em nenhum dos arquivos de configuração. As informações de configuração podem ser encontradas na página de manual do fcron.conf.

Scripts fcron são escritos usando fcrontab. Consulte a página de manual do fcrontab para os parâmetros adequados para endereçar sua situação.

Se Linux-PAM estiver instalado, [então] dois arquivos de configuração do "PAM" serão instalados em /etc/pam.d. Alternativamente, se /etc/pam.d não for usado, [então] a instalação anexará duas seções de configuração ao arquivo /etc/pam.conf existente. Você deveria garantir que os arquivos correspondam às suas preferências. Modifique-os conforme necessário para atender às suas necessidades.

Tarefas Periódicas

Se você gostaria de configurar uma hierarquia periódica para o(a) usuário(a) "root", [então] primeiro emita os seguintes comandos (como o(a) usuário(a) root) para criar o "script" /usr/bin/run -parts:

cat > /usr/bin/run-parts << "EOF" &&
#!/bin/sh
# run-parts: Executa todos os scripts encontrados em um diretório.
# Originário do "Slackware", por Patrick J. Volkerding com ideias advindas
# das versões "Red Hat" e "Debian" desse utilitário.

# Continue quando algo falhar
set +e

if [ $# -lt 1 ]; then
  echo "Uso: run-parts <diretório>"
  exit 1
fi

if [ ! -d $1 ]; then
  echo "Não é um diretório: $1"
  echo "Uso: run-parts <diretório>"
  exit 1
fi

# Existem vários tipos de arquivos que gostaríamos de
# ignorar automaticamente, pois provavelmente serão cópias de segurança
# de outros scripts:
IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp"

# Principal loop:
for SCRIPT in $1/* ; do
  # Se este não for um arquivo normal, pule-o:
  if [ ! -f $SCRIPT ]; then
    continue
  fi
  # Determine se este arquivo deveria ser ignorado pelo sufixo:
  SKIP=false
  for SUFFIX in $IGNORE_SUFFIXES ; do
    if [ ! "$(basename $SCRIPT $SUFFIX)" = "$(basename $SCRIPT)" ]; then
      SKIP=true
      break
    fi
  done
  if [ "$SKIP" = "true" ]; then
    continue
  fi
  # Se chegamos até aqui, [então] execute o script se for executável:
  if [ -x $SCRIPT ]; then
    $SCRIPT || echo "$SCRIPT falhou."
  fi
done

exit 0
EOF
chmod -v 755 /usr/bin/run-parts

Em seguida, crie o esquema do diretório para os tarefas periódicas (novamente como o(a) usuário(a) root):

install -vdm754 /etc/cron.{hourly,daily,weekly,monthly}

Finalmente, adicione o run-parts ao "fcrontab" do sistema (enquanto ainda o(a) usuário(a) root):

cat > /var/spool/fcron/systab.orig << "EOF"
&bootrun 01 * * * * root run-parts /etc/cron.hourly
&bootrun 02 4 * * * root run-parts /etc/cron.daily
&bootrun 22 4 * * 0 root run-parts /etc/cron.weekly
&bootrun 42 4 1 * * root run-parts /etc/cron.monthly
EOF

Conjunto de Comandos Sequenciais de Inicialização

Instale o "script" de iniciação /etc/rc.d/init.d/fcron a partir do pacote blfs-bootscripts-20250225.

make install-fcron

Finalmente, novamente como o(a) usuário(a) root, inicie o "fcron" e gere o arquivo /var/spool/fcron/systab:

/etc/rc.d/init.d/fcron start &&
fcrontab -z -u systab

Conteúdo

Aplicativos Instalados: fcron, fcrondyn, fcronsighup e fcrontab
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/fcron-3.2.1 e /var/spool/fcron

Descrições Curtas

fcron

é o processo de segundo plano de agendamento

fcrondyn

é uma ferramenta de usuário(a) destinada a interagir com um processo de segundo plano fcron em execução

fcronsighup

instrui o fcron a reler as tabelas do Fcron

fcrontab

é um aplicativo usado para instalar, editar, listar e remover as tabelas usadas pelo fcron

GPM-1.20.7

Introdução ao "GPM"

O pacote GPM (processo de segundo plano "General Purpose Mouse") contém um servidor de mouse para o console e xterm. Ele não apenas fornece suporte para recortar e colar em geral, mas o componente de biblioteca dele é usado por vários softwares, como Links, para fornecer suporte de mouse para o aplicativo. É útil em áreas de trabalho, especialmente se seguir as instruções do (Beyond) Linux From Scratch; frequentemente é muito mais fácil (e menos sujeito a erros) recortar e colar entre duas janelas do console que digitar tudo manualmente!

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do GPM

Opcionais

texlive-20240312 (para documentação)

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Input device support --->
    -*-   Generic input layer (needed for keyboard, mouse, ...)          [INPUT]
    <*/M>   Mouse interface                                     [INPUT_MOUSEDEV]

Instalação do "GPM"

Instale GPM executando os seguintes comandos:

patch -Np1 -i ../gpm-1.20.7-consolidated-1.patch                &&
./autogen.sh                                                    &&
./configure --prefix=/usr --sysconfdir=/etc ac_cv_path_emacs=no &&
make

Se texlive-20240312 estiver instalado, construa o manual do GPM como formatos dvi, ps e pdf:

make -C doc gpm.{dvi,ps} &&
dvipdfm doc/gpm.dvi -o doc/gpm.pdf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install                                         &&

install-info --dir-file=/usr/share/info/dir           \
             /usr/share/info/gpm.info                 &&

rm -fv /usr/lib/libgpm.a                              &&
ln -sfv libgpm.so.2.1.0 /usr/lib/libgpm.so            &&
install -v -m644 conf/gpm-root.conf /etc              &&

install -v -m755 -d /usr/share/doc/gpm-1.20.7/support &&
install -v -m644    doc/support/*                     \
                    /usr/share/doc/gpm-1.20.7/support &&
install -v -m644    doc/{FAQ,HACK_GPM,README*}        \
                    /usr/share/doc/gpm-1.20.7

Se texlive-20240312 estiver instalado e você tiver construído o manual do GPM como formatos dvi, ps e pdf, instale-os como o(a) usuário(a) root:

install -vm644 doc/gpm.{dvi,ps,pdf} /usr/share/doc/gpm-1.20.7

Explicações do Comando

./autogen.sh: Esse comando cria o ausente script configure.

ac_cv_path_emacs=no: Essa variável soluciona um problema que faz com que o pacote falhe para construir com Emacs-30.1 instalado. Ela também suprime as instalações de alguns arquivos de suporte do Emacs fornecidos com o GPM. Esses arquivos estão bastante desatualizados e deveriam ser substituídos pelo suporte GPM integrado ao Emacs-30.1. Se precisar usar Emacs-30.1 no console do Linux com suporte para mouse, você deveria instalar (ou reinstalar) Emacs-30.1 depois do GPM.

install-info ...: Esse pacote instala um arquivo .info, mas não atualiza o arquivo dir do sistema. Esse comando faz a atualização.

ln -v -sfn libgpm.so.2.1.0 /usr/lib/libgpm.so: Esse comando é usado para criar (ou atualizar) o link simbólico .so para a biblioteca.

Configurando o "GPM"

Conjunto de Comandos Sequenciais de Inicialização

Instale o script de iniciação /etc/rc.d/init.d/gpm incluído no pacote blfs-bootscripts-20250225.

make install-gpm

Arquivos de Configuração

/etc/gpm-root.conf e ~/.gpm-root: Os arquivos de configuração gpm-root padrão e de usuário(a) individual.

/etc/sysconfig/mouse: Esse arquivo contém o nome do seu dispositivo de mouse e o protocolo que ele usa. Para criar esse arquivo, execute o seguinte como o(a) usuário(a) root:

cat > /etc/sysconfig/mouse << "EOF"
# Começo /etc/sysconfig/mouse

MDEVICE="<seu_dispositivo>"
PROTOCOL="<seu_protocolo>"
GPMOPTS="<opções adicionais>"

# Fim /etc/sysconfig/mouse
EOF

Informação de Configuração

Exemplos de valores para configurar MDEVICE, PROTOCOL e GPMOPTS são:

MDEVICE="/dev/input/mice"
PROTOCOL="imps2"
GPMOPTS=""

Uma lista de quais valores de protocolo são conhecidos pode ser encontrada executando gpm -m [dispositivo] -t -help. A configuração MDEVICE depende de qual tipo de mouse você tiver. Por exemplo, /dev/ttyS0 para um mouse serial (no "Windows" isso é COM1), /dev/input/mice é frequentemente usado para mouses USB e /dev/psaux para mouses PS2. GPMOPTS é o 'pega tudo' para quaisquer opções adicionais que sejam necessárias para o seu hardware.

Conteúdo

Aplicativos Instalados: disable-paste, display-buttons, display-coords, get-versions, gpm, gpm-root, hltest, mev e mouse-test
Biblioteca Instalada: libgpm.so
Diretório Instalado: /usr/share/doc/gpm-1.20.7

Descrições Curtas

disable-paste

é um mecanismo de segurança usado para desabilitar o "buffer" de colagem

display-buttons

é um aplicativo simples que informa os botões do mouse sendo pressionados e liberados

display-coords

é um aplicativo simples que informa as coordenadas do mouse

get-versions

é usado para informar as versões da biblioteca GPM e do servidor

gpm

é um utilitário de recortar e colar e servidor de mouse para consoles virtuais

gpm-root

é um manuseador padrão para gpm. É usado para desenhar menus na janela raiz

hltest

é um aplicativo de exemplo simples que usa a biblioteca de alto nível, destinado a ser lido por programadores(as) que tentam usar a biblioteca de alto nível

mev

é um aplicativo para informar eventos de mouse

mouse-test

é uma ferramenta para determinar o tipo de mouse e o dispositivo ao qual está conectado

libgpm.so

contém as funções da "API" para acessar o processo de segundo plano GPM

Hdparm-9.65

Introdução ao "Hdparm"

O pacote Hdparm contém um utilitário que é útil para obter informações e controlar controladores "ATA"/"IDE" e unidades rígidas. Permite aumentar o desempenho e, às vezes, aumentar a estabilidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Atenção

Além de ser útil, o uso incorreto do Hdparm pode destruir suas informações e, em casos raros, unidades. Use com cuidado e certifique-se de saber o que está fazendo. Se em dúvida, [então] é recomendado que você deixe os parâmetros padrão do núcleo em paz.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/hdparm/hdparm-9.65.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6d6d039d61ec995b1ec72ddce0b1853b

  • Tamanho da transferência: 140 KB

  • Espaço em disco estimado exigido: 1,0 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do "Hdparm"

Construa o Hdparm executando o seguinte comando:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make binprefix=/usr install

Conteúdo

Aplicativo Instalado: hdparm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

hdparm

fornece uma interface de linha de comando para vários "ioctls" de disco rígido suportados pelo subsistema padrão de controlador de dispositivo "ATA"/"IDE" do Linux

hwdata-0.392

Introdução ao hwdata

O pacote hwdata contém dados atuais de PCI e ID do fornecedor.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do hwdata

Instale hwdata executando os seguintes comandos:

./configure --prefix=/usr --disable-blacklist

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/hwdata

LSB-Tools-0.12

Introdução ao "LSB-Tools"

O pacote LSB-Tools inclui ferramentas para conformidade com "Linux Standards Base" (LSB).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "LSB-Tools"

Instale LSB-Tools executando os seguintes comandos:

make

Agora, como o(a) usuário(a) root:

make install

Remova um arquivo que não deveria ser instalado, como o(a) usuário(a) root:

rm /usr/sbin/lsbinstall

Informação de Configuração

A configuração para esse pacote foi feita no LFS. O arquivo /etc/lsb-release já deveria existir. Certifique-se de que a entrada DISTRIB_CODENAME tenha sido configurada corretamente.

Conteúdo

Aplicativos Instalados: lsb_release , install_initd e remove_initd
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/lsbtools

Descrições Curtas

lsb_release

é um script para fornecer dados "LSB"

install_initd

é um script para ativar scripts de inicialização do "SysV"

remove_initd

é um script para desativar scripts de inicialização do "SysV"

lm-sensors-3-6-0

Introdução ao lm-sensors

O pacote lm-sensors fornece suporte de espaço de usuário(a) para os controladores de monitoramento de hardware no núcleo Linux. Isso é útil para monitorar a temperatura da CPU e para ajustar o desempenho de alguns hardwares (como ventiladores de resfriamento).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lm-sensors

Exigidas

Which-2.23

Opcionais

RRDtool (exigido para construir o aplicativo sensord) e dmidecode (tempo de execução)

Configuração do Núcleo

As opções de configuração a seguir tentam abranger os dispositivos de monitoramento de hardware mais comuns em um sistema típico de área de trabalho ou laptop. Veja-se a ajuda de cada uma (pressionando o botão H com a opção focada em make menuconfig) para saber se você precisa dela. Existem muitos dispositivos de monitoramento de hardware específicos da plataforma, de forma que é impossível listar a configuração de todos eles aqui. Você pode investigar o conteúdo de /sys/class/hwmon dentro de uma distribuição mainstream em execução no sistema para saber quais controladores você precisa.

Power management and ACPI options --->
  [*] ACPI (Advanced Configuration and Power Interface) Support --->      [ACPI]
    < /*/M> Battery                                               [ACPI_BATTERY]
    < /*/M> Thermal Zone                                          [ACPI_THERMAL]

Device Drivers --->
  NVME Support --->
    < /*> NVM Express block device                                [BLK_DEV_NVME]
    # Set [HWMON] to <*> (not <M>!) or it will not show up:
    [ /*] NVMe hardware monitoring                                  [NVME_HWMON]
  <*/M> Hardware Monitoring support --->                                 [HWMON]
    < /*/M> AMD Athlon64/FX or Opteron temperature sensor       [SENSORS_K8TEMP]
    < /*/M> AMD Family 10h+ temperature sensor                 [SENSORS_K10TEMP]
    < /*/M> AMD Family 15h processor power                [SENSORS_FAM15H_POWER]
    < /*/M> Intel Core/Core2/Atom temperature sensor          [SENSORS_CORETEMP]

Recompile teu núcleo e reinicialize no novo núcleo.

Instalação do lm-sensors

Instale lm-sensors executando os seguintes comandos:

make PREFIX=/usr           \
     BUILD_STATIC_LIB=0    \
     MANDIR=/usr/share/man \
     EXLDFLAGS=

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr        \
     BUILD_STATIC_LIB=0 \
     MANDIR=/usr/share/man install &&

install -v -m755 -d /usr/share/doc/lm-sensors-3-6-0 &&
cp -rv              README INSTALL doc/* \
                    /usr/share/doc/lm-sensors-3-6-0

Explicações do Comando

BUILD_STATIC_LIB=0: Esse parâmetro desabilita a compilação e instalação da versão estática da libsensors.

EXLDFLAGS=: Esse parâmetro desabilita codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos binários executáveis e bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança.

PROG_EXTRA=sensord: Esse parâmetro habilita compilar o sensord, um processo de segundo plano que consegue monitorar teu sistema em intervalos regulares. Compilar sensord exige RRDtool. Certifique-se de instalar o RRDtool em /usr executando make prefix=/usr ao construí-lo. Caso contrário, lm-sensors não o encontrará facilmente.

Configurando lm-sensors

Arquivo de Configuração

/etc/sensors3.conf

Conteúdo

Aplicativos Instalados: fancontrol, isadump, isaset, pwmconfig, sensors, sensors-conf-convert, sensors-detect e, opcionalmente, sensord
Biblioteca Instalada: libsensors.so
Diretórios Instalados: /etc/sensors.d, /usr/include/sensors e /usr/share/doc/lm-sensors-3-6-0

Descrições Curtas

fancontrol

é um conjunto de comandos sequenciais de shell para uso com lm-sensors. Ele lê a configuração dele a partir de um arquivo (/etc/sensors3.conf por padrão), então calcula velocidades do ventilador a partir das temperaturas e configura as correspondentes saídas geradas de PWM para os valores computados

isadump

é um pequeno aplicativo auxiliar para examinar registros visíveis por meio do barramento "ISA". Destina-se a testar qualquer chip que resida no barramento "ISA" trabalhando com um registrador de endereços e um registrador de dados (acesso tipo "I2C") ou um intervalo plano (de até 256 bytes)

isaset

é um pequeno aplicativo auxiliar para configurar registros visíveis por meio do barramento "ISA"

pwmconfig

testa as saídas geradas de modulação por largura de pulso ("PWM") dos sensores e configura o controle do ventilador

sensors

imprime as leituras atuais de todos os "chips" sensores

sensors-conf-convert

é um script Perl para converter arquivos de configuração de versão 2 do lm-sensors para funcionar com a versão 3

sensors-detect

é um conjunto de comandos sequenciais Perl que te guiará ao longo do processo de varredura do teu sistema em busca de vários chips de monitoramento de hardware (sensores) suportados pela libsensors, ou mais geralmente pela suíte de ferramentas do lm-sensors

sensord

(opcional) é um processo de segundo plano que consegue ser usado para registrar periodicamente as leituras do sensor

libsensors.so

contém as funções de API do lm-sensors

Logrotate-3.22.0

Introdução ao "Logrotate"

O pacote logrotate permite rotação, compressão, remoção e envio automático de arquivos de registro.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Logrotate"

Exigidas

popt-1.19

Recomendadas
Opcionais

Um MTA (tempo de execução)

Instalação do "Logrotate"

Instale logrotate executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make test. Dois testes falham se um MTA não estiver instalado.

Agora, como o(a) usuário(a) root:

make install

Configurando o "Logrotate"

Logrotate precisa de um arquivo de configuração, o qual precisa ser passado como um argumento para o comando quando executado. Crie o arquivo como o(a) usuário(a) root:

cat > /etc/logrotate.conf << EOF
# Começo /etc/logrotate.conf

# Rotacione os arquivos de registro semanalmente
weekly

# Não envie registros para ninguém
nomail

# Se o arquivo de registro estiver vazio, [então] ele não será rotacionado
notifempty

# Número de cópias de segurança que serão mantidas
# Isto manterá somente as duas cópias de segurança mais recentes
rotate 2

# Crie novos arquivos vazios depois de rotacionar os antigos
# Isto criará arquivos de registro vazios, com o(a) proprietário(a)
# configurado como "root", grupo configurado como "sys" e permissões 664
create 0664 root sys

# Comprime as cópias de segurança com o "gzip"
compress

# Nenhum pacote possui "lastlog" ou "wtmp" - rotacione-os aqui
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/lastlog {
    monthly
    rotate 1
}

# Alguns pacotes colocam informações de rotação de registro neste diretório
# de forma que incluímos qualquer arquivo nele.
include /etc/logrotate.d

# Fim /etc/logrotate.conf
EOF

chmod -v 0644 /etc/logrotate.conf

Agora crie o diretório /etc/logrotate.d como o(a) usuário(a) root:

mkdir -p /etc/logrotate.d

Neste ponto, comandos adicionais de rotação de registro conseguem ser inseridos, normalmente no diretório /etc/logrotate.d. Por exemplo:

cat > /etc/logrotate.d/sys.log << EOF
/var/log/sys.log {
   # Se o arquivo de registro for maior que 100 KB, [então] rotacione-o
   size   100k
   rotate 5
   weekly
   postrotate
      /bin/killall -HUP syslogd
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/sys.log

Você consegue designar vários arquivos em uma entrada:

cat > /etc/logrotate.d/example.log << EOF
file1
file2
file3 {
   ...
  postrotate
    ...
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/example.log

Você consegue usar na mesma linha a lista de arquivos: arquivo1 arquivo2 arquivo3. Veja-se a página de manual do "logrotate" ou https://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ para mais exemplos.

O comando logrotate /etc/logrotate.conf pode ser executado manualmente, porém o comando deveria ser executado diariamente. Outros comandos úteis são logrotate -d /etc/logrotate.conf para fins de depuração e logrotate -f /etc/logrotate.conf forçando os comandos do "logrotate" a serem executados imediatamente. Combinando as opções anteriores -df, você consegue depurar o efeito do comando "force". Durante a depuração, os comandos são somente simulados e não são realmente executados. Como resultado, erros a respeito de arquivos inexistentes aparecerão eventualmente porque os arquivos não foram realmente criados.

Para executar o comando logrotate diariamente, se você instalou Fcron-3.2.1 e completou a seção a respeito de tarefas periódicas, execute os seguintes comandos, como o(a) usuário(a) root, para criar uma tarefa diária do "cron":

cat > /etc/cron.daily/logrotate.sh << "EOF" &&
#!/bin/bash
/usr/sbin/logrotate /etc/logrotate.conf
EOF
chmod 754 /etc/cron.daily/logrotate.sh

Conteúdo

Aplicativos Instalados: logrotate
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

logrotate

realiza as funções de manutenção do registro definidas nos arquivos de configuração

MC-4.8.33

Introdução ao "MC"

MC (Midnight Commander) é um gerenciador de arquivos em tela cheia em modo texto e shell visual. Ele fornece uma interface clara, amigável e um tanto protegida para um sistema Unix, ao mesmo tempo que torna muitas operações frequentes de arquivos mais eficientes e preserva todo o poder do prompt de comando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://ftp.midnight-commander.org/mc-4.8.33.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b3596c1f092b9822a6cd9c9a1aef8dde

  • Tamanho da transferência: 2,3 MB

  • Espaço em disco estimado exigido: 71 MB (adicionar 97 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,1 UPC para testes)

Dependências do "MC"

Exigidas

GLib-2.82.5

Recomendadas
Opcionais

Doxygen-1.13.2, GPM-1.20.7, Graphviz-12.2.1, libarchive-3.7.7, libssh2-1.11.1, pcre2-10.45, Ruby-3.4.2, um ambiente gráfico e Zip-3.0

Instalação do "MC"

Instale MC executando os seguintes comandos:

./configure --prefix=/usr \
           --sysconfdir=/etc \
           --enable-charset &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--sysconfdir=/etc: Essa chave coloca o diretório global de configuração em /etc.

--enable-charset: Essa chave adiciona suporte ao mcedit para edição de arquivos em codificações diferentes daquela implícita na localidade atual.

--with-screen=ncurses: Use isso se você não tiver slang-2.3.3 instalado.

--with-search-engine=pcre2: Use essa chave se você preferisse usar pcre2-10.45 em vez de GLib para o mecanismo de pesquisa integrado.

Configurando o "MC"

Arquivos de Configuração

~/.config/mc/*

Informação de Configuração

O diretório ~/.config/mc e o conteúdo dele são criados quando você inicia o mc pela primeira vez. Então você pode editar o arquivo principal de configuração ~/.config/mc/ini manualmente ou por meio do shell do MC. Consulte-se a página de manual do mc(1) para detalhes.

Conteúdo

Aplicativos Instalados: "mc" e os links simbólicos "mcdiff", "mcedit" e "mcview"
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/mc e /usr/{libexec,share}/mc

Descrições Curtas

mc

é um shell visual

mcdiff

é uma ferramenta interna visual de comparação

mcedit

é um editor interno de arquivos

mcview

é um visualizador interno de arquivos

ModemManager-1.18.12

Introdução ao "ModemManager"

ModemManager fornece uma API unificada de alto nível para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "ModemManager"

Exigidas

libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.34.0

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ModemManager

Instalação do "ModemManager"

Instale ModemManager executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc             \
            --localstatedir=/var          \
            --disable-static              \
            --disable-maintainer-mode     \
            --with-systemd-journal=no     \
            --with-systemd-suspend-resume &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-systemd-suspend-resume: Essa chave força o ModemManager a usar os recursos de gerenciamento de energia do elogind .

--with-systemd-journal=no : Essa chave força o ModemManager a não usar o diário do "systemd" para registro.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: mmcli e ModemManager
Bibliotecas Instaladas: libmm-glib.so
Diretórios Instalados: /etc/ModemManager, /usr/include/libmm-glib, /usr/include/ModemManager, /usr/lib/ModemManager, /usr/share/ModemManager, /usr/share/gtk-doc/html/libmm-glib (opcional) e /usr/share/gtk-doc/html/ModemManager (opcional)

Descrições Curtas

mmcli

é um utilitário usado para controlar e monitorar o ModemManager

ModemManager

é um serviço do D-Bus usado para se comunicar com modems

libmm-glib.so

contém funções de "API" para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real

notification-daemon-3.20.0

Introdução ao "Notification Daemon"

O pacote Notification Daemon contém um processo de segundo plano que exibe notificações "pop-up" passivas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Notification Daemon"

Exigidas

GTK-3.24.48 e libcanberra-0.30 (Construído com suporte a GTK-3.24.48).

Instalação do "Notification Daemon"

Instale o Notification Daemon executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Você consegue testar o processo de segundo plano de notificação com o comando notify-send:

pgrep -l notification-da &&
notify-send -i info Information "Olá ${USER}, Isto é um Teste"

O comando pgrep -l notification-da é adicionado para garantir que é o processo de segundo plano desse pacote que está executando, e não outro, por exemplo. o processo de segundo plano oriundo de xfce4-notifyd-0.9.7.

Conteúdo

Aplicativo Instalado: nenhum(a)
Bibliotecas Instaladas: nenhum(a)
Diretório Instalado: nenhum(a)

Pax-20240817

Introdução ao "Pax"

pax é um utilitário de arquivamento criado pelo "POSIX" e definido pelo padrão "POSIX.1-2001". Em vez de resolver as opções incompatíveis que surgiram entre tar e cpio, juntamente com as implementações deles em várias versões do UNIX, o "IEEE" projetou um novo utilitário de arquivamento. O nome pax é um acrônimo para "Portable Archive Exchange". Além disso, pax significa paz em latim, de forma que o nome dele implica que deve criar a paz entre os(as) apoiadores(as) do formato tar e do cpio. A invocação de comandos e a estrutura de comandos são, de certa forma, uma unificação de ambos, tar e cpio.

Tem sido exigido que o pax esteja presente em sistemas compatíveis com a "LSB" desde a versão 3.0 da "LSB".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Pax"

Instale o "pax" executando os seguintes comandos:.

Nota

Esse pacote expande para o diretório pax.

bash Build.sh

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

Nota

Esse pacote também cria links rígidos a partir do pax para os aplicativos cpio e tar no diretório de construção. Os(As) editores(as) do LFS não recomendam que eles sejam instalados, pois sobrescreverão as versões "GNU" desses aplicativos.

install -v pax /usr/bin &&
install -v -m644 pax.1 /usr/share/man/man1

Conteúdo

Aplicativo Instalado: pax

Descrições Curtas

pax

copia arquivos de e para arquivamentos em vários formatos

pciutils-3.13.0

Introdução ao "PCI Utils"

O pacote PCI Utils contém um conjunto de aplicativos para listar dispositivos "PCI", inspecionar a situação deles e configurar os registros de configuração deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://mj.ucw.cz/download/linux/pci/pciutils-3.13.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1edb865de7a2de84e67508911010091b

  • Tamanho da transferência: 660 KB

  • Espaço em disco estimado exigido: 4,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "PCI Utils"

Recomendadas

Instalação do "PCI Utils"

Evite a instalação do arquivo pci.ids para evitar um conflito com o pacote hwdata-0.392:

sed -r '/INSTALL/{/PCI_IDS|update-pciids /d; s/update-pciids.8//}' \
    -i Makefile

Instale o PCI Utils executando os seguintes comandos:

make PREFIX=/usr               \
     SHAREDIR=/usr/share/hwdata \
     SHARED=yes

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr               \
     SHAREDIR=/usr/share/hwdata \
     SHARED=yes                 \
     install install-lib        &&

chmod -v 755 /usr/lib/libpci.so

Em seguida, instale o pacote hwdata-0.392 para o arquivo pci.ids.

Explicações do Comando

SHARED=yes: Esse parâmetro habilita a construção da biblioteca compartilhada em vez da estática.

Conteúdo

Aplicativos Instalados: lspci, pcilmr e setpci
Biblioteca Instalada: libpci.so
Diretório Instalado: /usr/include/pci

Descrições Curtas

lspci

é um utilitário para exibir informações relativas a todos os barramentos "PCI" no sistema e todos os dispositivos conectados a eles

pcilmr

é um utilitário para gerenciar links PCIe

setpci

é um utilitário para consultar e configurar dispositivos "PCI"

libpci.so

é uma biblioteca que permite que aplicativos acessem o subsistema PCI

pm-utils-1.4.1

Introdução aos Utilitários de Gerenciamento de Eletricidade

Os Utilitários de Gerenciamento de Eletricidade fornecem ferramentas simples de linha de comando do shell para suspender e hibernar o computador. Eles podem ser usados para executar scripts fornecidos pelo(a) usuário(a) na suspensão e na retomada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências dos Utilitários de Gerenciamento de Eletricidade

Opcionais

xmlto-0.0.29 (para gerar páginas de manual)

Opcionais (tempo de execução)

Hdparm-9.65, Wireless Tools-29, ethtool e vbetool

Configuração do Núcleo

Se necessário, habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Power management and ACPI options --->
  [*] Suspend to RAM and standby                                       [SUSPEND]
  [*] Hibernation (aka 'suspend to disk')                          [HIBERNATION]

Suspender para "RAM" permite que o sistema entre em estados de suspensão nos quais a memória principal é alimentada e, portanto, o conteúdo dela é preservado. O método corta a eletricidade da maioria das partes da máquina, exceto a "RAM". Devido à grande economia de eletricidade, é aconselhável para "laptops" para entrarem automaticamente nesse modo quando o computador estiver funcionando com baterias e a tampa estiver fechada (ou o(a) usuário(a) estiver inativo(a) por algum tempo).

Suspender no disco (hibernação) salva o estado da máquina no espaço de troca e desliga completamente a máquina. Quando a máquina for ligada, o estado é restaurado. Até então, existe consumo zero de eletricidade. A suspensão para "RAM" e a hibernação são normalmente apropriadas para dispositivos portáteis, como "laptops", mas podem ser usadas em estações de trabalho. A capacidade não é realmente apropriada para servidores.

Para usar a hibernação, o parâmetro do núcleo "resume=/dev/<partição_de_troca>" tem de ser usado na linha de comando do núcleo (no "grub.cfg"). A partição de troca deveria ser, pelo menos, do tamanho da "RAM" física no sistema.

Instalação dos Utilitários de Gerenciamento de Eletricidade

Primeiro, corrija vários defeitos e algumas incompatibilidades com núcleos mais recentes:

patch -Np1 -i ../pm-utils-1.4.1-bugfixes-1.patch

Instale os Utilitários de Gerenciamento de Eletricidade executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/pm-utils-1.4.1 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você não tiver xmlto-0.0.29 instalado, [então] copie as páginas de manual pré geradas, como o(a) usuário(a) root:

install -v -m644 man/*.1 /usr/share/man/man1 &&
install -v -m644 man/*.8 /usr/share/man/man8 &&
ln -sv pm-action.8 /usr/share/man/man8/pm-suspend.8 &&
ln -sv pm-action.8 /usr/share/man/man8/pm-hibernate.8 &&
ln -sv pm-action.8 /usr/share/man/man8/pm-suspend-hybrid.8

Configurando os Utilitários de Gerenciamento de Eletricidade

A funcionalidade de suspensão ou retomada pode ser facilmente modificada instalando-se arquivos no diretório /etc/pm/sleep.d. Esses arquivos, conhecidos como ganchos, são executados quando o sistema for colocado em um estado de suspensão ou retomado. Os ganchos padrão estão localizados em /usr/lib/pm-utils/sleep.d, e os ganchos de usuário(a) deveriam ser colocados em /etc/pm/sleep.d. Veja-se a página de manual pm-action(8) para mais informações.

Para a finalidade de usar a hibernação com GRUB e uma partição de troca, você precisa adicionar o parâmetro do núcleo resume=partição_de_troca (por exemplo, resume=/dev/sda1) à linha do núcleo no arquivo de configuração /boot/grub/grub.cfg.

Conteúdo

Aplicativos Instalados: on_ac_power, pm-hibernate, pm-is-supported, pm-powersave, pm-suspend e pm-suspend-hybrid
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/pm, /usr/lib/pm-utils e /usr/share/doc/pm-utils-1.4.1

Descrições Curtas

on_ac_power

é um script que determina se o sistema está funcionando com eletricidade "CA" (em vez de uma bateria)

pm-hibernate

é um link simbólico para o script "pm-action" que coloca o computador no modo de hibernação (o sistema é totalmente desligado e o estado do sistema é salvo no disco)

pm-is-supported

é um script que verifica se os recursos de gerenciamento de eletricidade, como suspensão e hibernação, são suportados

pm-powersave

é um script que coloca o computador no modo de economia de eletricidade (baixo consumo de eletricidade)

pm-suspend

é um link simbólico para o script "pm-action" que coloca o computador no modo de suspensão (a maioria dos dispositivos é desligada e o estado do sistema é salvo na "RAM")

pm-suspend-hybrid

é um link simbólico para o script "pm-action" que coloca o computador no modo de suspensão híbrida (o sistema faz tudo o que precisa para hibernar, mas suspende em vez de desligar)

Power-profiles-daemon-0.30

Introdução ao Power-profiles-daemon

O pacote Power-profiles-daemon fornece um programa que permite a modificação do estado de eletricidade/comportamento do sistema. Isso é usado em muitos laptops e pode ser usado por um ambiente de área de trabalho para ativar a economia de eletricidade ou controladores de desempenho da CPU por meio do dbus. Em outros sistemas, o Power-profiles-daemon pode ser usado como uma forma simplificada para configurar o controladores da CPU para a finalidade de aumentar o desempenho do sistema ao custo do uso de eletricidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Power-profiles-daemon

Exigidas

Polkit-126, PyGObject-3.50.0 (pycairo não é necessário) e UPower-1.90.7

Opcionais

GTK-Doc-1.34.0, Os restos são para os testes, dbusmock-0.34.3, umockdev-0.19.1, isort e mccabe

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

Power management and ACPI options --->
  CPU Frequency scaling --->
    -*-   CPU Frequency scaling                                       [CPU_FREQ]
    -*-     'performance' governor                    [CPU_FREQ_GOV_PERFORMANCE]
    <*/M>   'powersave' governor                        [CPU_FREQ_GOV_POWERSAVE]
    # Select if CPU is Intel:
    [ /*]   Intel P state control                             [X86_INTEL_PSTATE]
    # Select if CPU is AMD:
    [ /*]   AMD Processor P-State driver                        [X86_AMD_PSTATE]

Device Drivers --->
  # Some drivers under this submenu provide "platform profile" support
  # and power-profiles-daemon can take advantage from platform profiles;
  # select a driver if suitable for your platform:
  [ /*] X86 Platform Specific Device Drivers --->         [X86_PLATFORM_DEVICES]

Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas. Tanto quanto possível, o esquema deveria ser o mesmo dos menus de configuração do núcleo.

Instalação do Power-profiles-daemon

Instale Power-profiles-daemon executando os seguintes comandos:

mkdir build &&
cd build &&

meson setup                        \
      --prefix=/usr                \
      --buildtype=release          \
      -D gtk_doc=false             \
      -D tests=false               \
      -D systemdsystemunitdir=/tmp \
      .. &&
ninja

Se você tiver instalado as dependências externas, para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Agora, limpe uma unidade do systemd desnecessária instalada em /tmp:

rm -fv /tmp/power-profiles-daemon.service

Crie um diretório exigido para estados persistentes de eletricidade depois de reinicialização:

install -vdm755 /var/lib/power-profiles-daemon

Explicações do Comando

-D gtk_doc=false: Impede construir a documentação. Remova isso se você tiver o GTK-Doc instalado e desejar construir a documentação.

-D tests=false: Impede construir os testes porque eles não podem ser executados dentro dos limites do BLFS. Remova isso se você tiver instalado as dependências externas e desejar executar os testes.

-D systemdsystemunitdir=/tmp: Remove a dependência em relação ao systemd.

Configurando Power-profiles-daemon

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar automaticamente o power-profiles-daemon quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/power-profiles-daemon, a partir do blfs-bootscripts-20250225, como o(a) usuário(a) root:

make install-power-profiles-daemon

Selecione um Perfil de Eletricidade

Para listar todos os perfis de eletricidade suportados, emita:

powerprofilesctl

Para ativar um perfil de eletricidade (por exemplo performance), emita:

powerprofilesctl set performance

Alguns ambientes de área de trabalho (por exemplo GNOME e KDE) também fornecem uma interface gráfica para interagir com power-profiles-daemon e ativar um perfil de eletricidade.

O perfil de eletricidade ativado é automaticamente armazenado em /var/lib/power-profiles-daemon/state.ini e power-profiles-daemon irá lê-lo e ativá-lo novamente na próxima inicialização se o conjunto de comandos sequenciais de inicialização estiver instalado como acima.

Conteúdo

Aplicativo Instalado: powerprofilesctl
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

powerprofilesctl

Isso permite que o(a) usuário(a) configure o regulador de eletricidade da CPU.

Raptor-2.0.16

Introdução ao "Raptor"

Raptor é uma biblioteca C que fornece um conjunto de analisadores e serializadores que geram triplos "Resource Description Framework" ("RDF").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/raptor2-2.0.16.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0a71f13b6eaa0a04bf411083d89d7bc2

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 25 MB (adicionais 2 MB para os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionais 0,3 UPC para os testes)

Dependências do "Raptor"

Exigidas

cURL-8.12.1 e libxslt-1.1.42

Opcionais

GTK-Doc-1.34.0, ICU-76.1 e libyajl

Instalação do "Raptor"

Primeiro, corrija uma incompatibilidade com libxml2-2.11.x:

sed -i 's/20627/20627 \&\& LIBXML_VERSION < 21100/' src/raptor_libxml.c

Instale Raptor executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check. Vários dos testes de "XML" possivelmente falhem.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-icu-config=/usr/bin/icu-config: Use essa chave se você tiver instalado o ICU-76.1 e desejar construir o Raptor com suporte a ele.

Conteúdo

Aplicativos Instalados: rapper
Bibliotecas Instaladas: libraptor2.so
Diretórios Instalados: /usr/include/raptor2 e /usr/share/gtk-doc/html/raptor2

Descrições Curtas

rapper

é um utilitário de análise e serialização "RDF"

libraptor2.so

contém as funções da "API" do Raptor

Rasqal-0.9.33

Introdução ao "Rasqal"

Rasqal é uma biblioteca C que lida com sintaxes de linguagem de consulta "Resource Description Framework" ("RDF"), construção de consultas e execução de consultas que retornam resultados como ligações, booleanos, gráficos/triplos "RDF" ou sintaxes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/rasqal-0.9.33.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1f5def51ca0026cd192958ef07228b52

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 22 MB (4 MB adicionais para os testes)

  • Tempo de construção estimado: 0,3 UPC (0,7 UPC adicionais para os testes)

Dependências do "Rasqal"

Exigidas

Raptor-2.0.16

Opcionais

libgcrypt-1.11.0

Instalação do "Rasqal"

Instale Rasqal executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rasqal-config e roqet
Biblioteca Instalada: librasqal.so
Diretórios Instalados: /usr/include/rasqal e /usr/share/gtk-doc/html/rasqal

Descrições Curtas

rasqal-config

é um utilitário para recuperar as opções de instalação do Rasqal

roqet

é um utilitário de consulta "RDF"

Redland-1.0.17

Introdução ao "Redland"

Redland é um conjunto de bibliotecas C de software livre que fornece suporte para o "Resource Description Framework" ("RDF").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/redland-1.0.17.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e5be03eda13ef68aabab6e42aa67715e

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 18 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "Redland"

Exigidas

Rasqal-0.9.33

Opcionais

SQLite-3.49.1, MariaDB-11.4.5 ou MySQL, PostgreSQL-17.4, Berkeley DB (obsoleto) libiodbc, virtuoso e 3store

Instalação do "Redland"

Instale Redland executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rdfproc, redland-config e redland-db-upgrade
Bibliotecas Instaladas: librdf.so e /usr/lib/redland/librdf_storage_*.so
Diretórios Instalados: /usr/lib/redland, /usr/share/gtk-doc/html/redland e /usr/share/redland

Descrições Curtas

rdfproc

é o utilitário do processador de "RDF" "Redland"

redland-config

é um script para obter informações relativas à versão instalada do "Redland"

redland-db-upgrade

atualiza bases de dados "Redland" mais antigas para o formato 0.9.12

sg3_utils-1.48

Introdução ao "sg3_utils"

O pacote sg3_utils contém utilitários de baixo nível para dispositivos que usam um conjunto de comandos "SCSI". Além dos dispositivos de interface paralela "SCSI" ("SPI"), o conjunto de comandos "SCSI" é usado por dispositivos "ATAPI" (CD/DVDs e fitas), dispositivos de armazenamento em massa "USB", discos de Canal de Fibra, dispositivos de armazenamento "IEEE" 1394 (que usam o protocolo "SBP"), Dispositivos "SAS", "iSCSI" e "FCoE" (entre outros).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://sg.danny.cz/sg/p/sg3_utils-1.48.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0024393d2d2942cc081ce613d98db68a

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 27 MB

  • Tempo de construção estimado: 0,2 UPC

Instalação do "sg3_utils"

Instale sg3_utils executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rescan-scsi-bus.sh, scsi_logging_level, scsi_mandat, scsi_readcap, scsi_ready, scsi_satl, scsi_start, scsi_stop, scsi_temperature, sg_bg_ctl, sg_compare_and_write, sg_copy_results, sg_dd, sg_decode_sense, sg_emc_trespass, sg_format, sg_get_config, sg_get_lba_status, sg_ident, sg_inq, sg_logs, sg_luns, sg_map, sg_map26, sg_modes, sg_opcodes, sg_persist, sg_prevent, sg_raw, sg_rbuf, sg_rdac, sg_read, sg_read_attr, sg_read_block_limits, sg_read_buffer, sg_read_long, sg_readcap, sg_reassign, sg_referrals, sg_rep_pip, sg_rep_zones, sg_requests, sg_reset, sg_reset_wp, sg_rmsn, sg_rtpg, sg_safte, sg_sanitize, sg_sat_identify, sg_sat_phy_event, sg_sat_read_gplog, sg_sat_set_features, sg_scan, sg_seek, sg_senddiag, sg_ses, sg_ses_microcode, sg_start, sg_stpg, sg_stream_ctl, sg_sync, sg_test_rwbuf, sg_timestamp, sg_turs, sg_unmap, sg_verify, sg_vpd, sg_wr_mode, sg_write_buffer, sg_write_long, sg_write_same, sg_write_verify, sg_write_x, sg_xcopy, sg_zone, sginfo, sgm_dd e sgp_dd
Biblioteca Instalada: libsgutils2.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

rescan-scsi-bus.sh

adiciona ou remove dispositivos "SCSI" sem precisar reinicializar

scsi_logging_level

acessa informações de nível de registro "SCSI" do Linux

scsi_mandat

verifica o suporte do dispositivo "SCSI" para comandos obrigatórios

scsi_readcap

faz o comando "SCSI READ CAPACITY" em discos

scsi_ready

faz o "SCSI TEST UNIT READY" em dispositivos

scsi_satl

verifica o suporte de tradução "SCSI" para "ATA" (SAT) do dispositivo

scsi_start

inicia um ou mais discos "SCSI"

scsi_stop

interrompe um ou mais discos "SCSI"

scsi_temperature

busca a temperatura de um dispositivo "SCSI"

sg_bg_ctl

realiza um comando "SCSI BACKGROUND CONTROL" em um dispositivo para realizar "operações avançadas em segundo plano"

sg_compare_and_write

envia o comando "SCSI COMPARE AND WRITE" para o dispositivo

sg_copy_results

envia o comando "SCSI RECEIVE COPY RESULTS" (relacionado ao "XCOPY")

sg_dd

copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI"

sg_decode_sense

pega dados de detecção "SCSI" em binário ou como uma sequência de bytes hexadecimais "ASCII" e os decodifica

sg_emc_trespass

muda a titularidade de propriedade de um "LUN" de outro processador de serviço para este

sg_format

formata ou redimensiona um disco "SCSI" (talvez mude o tamanho de bloco dele)

sg_get_config

envia um comando "SCSI GET CONFIGURATION" ("MMC-4 +")

sg_get_elem_status

envia um comando "SCSI GET PHYSICAL ELEMENT STATUS" para um dispositivo

sg_get_lba_status

envia o comando "SCSI GET LBA STATUS"

sg_ident

envia um comando "SCSI REPORT" ou "SET IDENTIFYING INFORMATION"

sginfo

acessa informações da página de modo para um dispositivo "SCSI" (ou "ATAPI")

sg_inq

envia um comando "SCSI INQUIRY" ou "ATA IDENTIFY (PACKET) DEVICE" e gera a resposta

sg_logs

acessa páginas de registro com o comando "SCSI LOG SENSE"

sg_luns

envia o comando "SCSI REPORT LUNS"

sg_map

exibe o mapeamento entre o "sg" do Linux e outros dispositivos "SCSI"

sg_map26

mapeia um arquivo especial para um dispositivo "SCSI" genérico (sg) (ou vice-versa)

sgm_dd

copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" e fazem transferências mapeadas na memória a partir de dispositivos "sg"

sg_modes

lê páginas de modo com o comando "SCSI MODE SENSE"

sg_opcodes

informa informações relativas a comandos suportados "SCSI" ou funções de gerenciamento de tarefas

sgp_dd

copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI"

sg_persist

envia um comando "SCSI PERSISTENT RESERVE (IN ou OUT)" para manipular registros e reservas

sg_prevent

envia um comando "SCSI PREVENT ALLOW MEDIUM REMOVAL"

sg_raw

envia um comando "SCSI" arbitrário para um dispositivo

sg_rbuf

lê dados usando o comando "SCSI READ BUFFER"

sg_rdac

exibe ou modifica a página do controlador redundante "RDAC"

sg_read

lê blocos de dados continuamente a partir do mesmo deslocamento

sg_read_attr

realiza um comando "SCSI READ ATTRIBUTE" em um dispositivo

sg_read_block_limits

envia um comando "SCSI READ BLOCK LIMITS"

sg_read_buffer

envia um comando "SCSI READ BUFFER"

sg_readcap

envia um comando "SCSI READ CAPACITY"

sg_read_long

envia um comando "SCSI READ LONG"

sg_reassign

envia um comando "SCSI REASSIGN BLOCKS"

sg_referrals

envia um comando "SCSI REPORT REFERRALS"

sg_rep_pip

envia um comando "SCSI REPORT PROVISIONING INITIALIZATION PATTERN"

sg_rep_zones

envia um comando "SCSI REPORT ZONES"

sg_requests

envia um ou mais comandos "SCSI REQUEST SENSE"

sg_reset

envia uma redefinição de dispositivo, destino, barramento ou anfitrião "SCSI"; ou verifica o estado de redefinição

sg_reset_wp

envia um comando "SCSI RESET WRITE POINTER"

sg_rmsn

envia um comando "SCSI READ MEDIA SERIAL NUMBER"

sg_rtpg

envia um comando "SCSI REPORT TARGET PORT GROUPS"

sg_safte

busca informações de situação a partir de um dispositivo "SCSI" "Accessed Fault-Tolerant Enclosure" ("SAF-TE")

sg_sanitize

envia um comando "SCSI SANITIZE"

sg_sat_identify

envia um comando "ATA IDENTIFY (PACKET) DEVICE" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT")

sg_sat_phy_event

envia um comando "ATA READ LOG EXT" por meio de uma passagem "SAT" para buscar a página de registro "11h" a qual contém contadores de eventos físicos "SATA"

sg_sat_read_gplog

envia um comando "ATA READ LOG EXT" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT")

sg_sat_set_features

envia um comando "ATA SET FEATURES" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT")

sg_scan

faz uma varredura de dispositivos "sg" (ou dados dispositivos "SCSI"/"ATAPI"/"ATA") e imprime os resultados

sg_seek

realiza um comando "SCSI SEEK" ou "PRE-FETCH" em um dispositivo e o cache dele

sg_senddiag

realiza um comando "SCSI SEND DIAGNOSTIC"

sg_ses

envia controles e busca a situação atual a partir de um dispositivo "SCSI Enclosure Services" ("SES")

sg_ses_microcode

envia microcódigo para um gabinete "SCSI"

sg_start

envia um comando "SCSI START STOP UNIT" para iniciar, parar, carregar ou ejetar o meio

sg_stpg

envia um comando "SCSI SET TARGET PORT GROUPS"

sg_stream_ctl

realiza um comando "SCSI STREAM CONTROL" ou "GET STREAM STATUS" em um dispositivo para abrir ou fechar um fluxo de Entrada/Saída

sg_sync

envia um comando "SCSI" para sincronizar o cache

sg_test_rwbuf

testa o adaptador "SCSI" do anfitrião emitindo operações de gravação e leitura no "buffer" de um dispositivo e calculando somas de verificação

sg_timestamp

informa ou configura o carimbo de tempo em um dispositivo "SCSI"

sg_turs

envia um ou mais comandos "SCSI TEST UNIT READY"

sg_unmap

envia um comando "SCSI UNMAP"

sg_verify

invoca comando(s) "SCSI VERIFY" em um dispositivo de bloco

sg_vpd

busca páginas de dados vitais do produto ("VPD") usando um comando "SCSI INQUIRY"

sg_write_buffer

envia um comando "SCSI WRITE BUFFER"

sg_write_long

envia um comando "SCSI WRITE LONG"

sg_write_same

envia um comando "SCSI WRITE SAME"

sg_write_verify

envia um comando "SCSI WRITE AND VERIFY"

sg_write_x

realiza comandos "SCSI WRITE" em um dispositivo

sg_wr_mode

escreve páginas de modo

sg_xcopy

copia dados de e para arquivos e dispositivos usando "SCSI EXTENDED COPY" ("XCOPY")

sg_zone

realiza comandos "SCSI ZONE" em um dispositivo, tais como "OPEN", "CLOSE", "FINISH" ou "SEQUENTIALIZE"

libsgutils2.so

contém as funções de "API" do sg3_utils

sysmond-1.0.0

Introdução ao sysmond

O pacote sysmond (pronuncia-se sys-mon-d) é a parte de processo de segundo plano do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Configuração do Núcleo

Existem muitos dispositivos de hardware que detectam temperaturas. As leituras de temperatura são atualizadas por controladores do núcleo que suportam dispositivos específicos. Para determinar quais dispositivos estão presentes em um sistema, o pacote lm-sensors-3-6-0 tem um conjunto de comandos sequenciais Perl, sensors-detect, que consegue procurar por dispositivos específicos que estão no sistema atual.

Depois dos dispositivos sensores serem conhecidos, o controlador apropriado de núcleo precisa ser habilitado. Em muitos casos, mas não em todos, os controladores apropriados serão selecionados por padrão. Os parâmetros de configuração do núcleo estão localizados em:

Device Drivers --->                                    
  Networking options --->
    [*] Hardware Monitoring support --->        [CONFIG_HWMON]

Na maioria dos casos, pelo menos o sensor de temperatura Intel Core/Core2/Atom (SENSORS_CORETEMP) deveria estar habilitado para sistemas baseados em Intel ou CONFIG_SENSORS_K10TEMP (AMD) deveria estar habilitado para sistemas baseados em AMD.

Instalação do sysmond

Instale sysmond executando os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Configurando sysmond

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sysmond incluído no pacote blfs-bootscripts-20250225.

make install-sysmond

Arquivo de Configuração

Por padrão, o arquivo de configuração é /etc/sysmond.conf, mas ele pode ser mudado passando-se --config-file <nomearquivo> na linha de comando. Inicialmente, todos os itens de configuração estão comentados e os padrões especificados ali serão usados.

Conteúdo

Aplicativos Instalados: sysmond
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

sysmon3-3.0.1

Introdução ao sysmon3

O pacote sysmon3 (pronuncia-se sys-mon-3) é a parte cliente do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta. Múltiplas instâncias do sysmon3 podem ser executadas em um sistema para monitorar valores em sistemas diferentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do sysmon3

Exigidas

Qt-6.8.2 (ou qt5)

Exigidas em tempo de execução

sysmond-1.0.0 (tempo de execução no sistema a ser monitorado)

Instalação do sysmon3

Instale sysmon3 executando os seguintes comandos:

qmake sysmon3.pro &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -vm755 sysmon3 /usr/bin

Configurando sysmon3

Arquivos de Configuração

$HOME/.config/LinuxFromScratch/<sistema monitorado>.conf

Os arquivos de configuração são criados em tempo de execução para cada sistema sendo monitorado. Eles normalmente não são atualizados manualmente, mas são gerenciados pelas pequenas engenhocas de configuração do programa.

Quando da primeira execução, o programa solicita o sistema a ser monitorado. Depois de testar se a comunicação com o servidor está satisfatória e se o nome do servidor está salvo, a janela principal iniciará. Depois da configuração inicial, a pequena engenhoca de configuração pode ser contornada passando-se o nome do servidor como um argumento para o programa.

O programa é projetado para ocupar o mínimo de espaço na tela, de forma que, por padrão, ele não tem um quadro. O quadro pode ser ligado e desligado com Ctrl-F. Isso pode ser útil para colocar a janela no local desejado. Depois do posicionamento inicial, o local será salvo no arquivo de configuração para a próxima vez que o programa for iniciado.

Um menu curto de operação é exibido com um clique direito do mouse na janela principal. Pequenas engenhocas de configuração são exibidas com F1.

Conteúdo

Aplicativos Instalados: sysmon3
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $HOME/.config/LinuxFromScratch/

Sysstat-12.7.7

Introdução ao "Sysstat"

O pacote Sysstat contém utilitários para monitorar o desempenho do sistema e a atividade de uso. Sysstat contém o utilitário sar, comum a muitos "Unixes" comerciais, e ferramentas que você pode agendar via "cron" para coletar e historizar dados de desempenho e atividades.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Sysstat"

Instalação do "Sysstat"

Instale Sysstat executando os seguintes comandos:

sa_lib_dir=/usr/lib/sa    \
sa_dir=/var/log/sa        \
conf_dir=/etc/sysstat     \
./configure --prefix=/usr \
            --disable-file-attr &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sa_lib_dir: Essa variável de ambiente especifica o local do diretório específico do pacote da biblioteca.

sa_dir: Essa variável de ambiente especifica o local do diretório que contém os arquivos de dados.

conf_dir: Essa variável de ambiente especifica o local do diretório do sistema da configuração.

--disable-file-attr: Não configure atributos nos arquivos sendo instalados. Esse parâmetro faz com que a instalação ignore a variável do grupo "man", resultando nos arquivos de manual tendo a titularidade da propriedade root: root.

Nota

Execute ./configure --help para ver outras variáveis de ambiente influentes que você possa passar para o configure. Você possivelmente queira usar as variáveis history e compressafter para personalizar a quantidade de arquivos de dados mantidos no sistema.

Configurando o "Sysstat"

Arquivos de Configuração

/etc/sysconfig/sysstat e /etc/sysconfig/sysstat.ioconf

Informações do "cron"

Para começar a coletar informações do histórico do Sysstat, você precisa adicionar ou criar um "crontab" de usuário(a) privilegiado(a). O local dos dados do histórico é /var/log/sa. O(A) usuário(a) que executa os utilitários do Sysstat via "cron" precisa ter acesso de escrita a esse local.

Abaixo está um exemplo do que instalar no "crontab". Ajuste os parâmetros para atender às suas necessidades. Use man sa1 e man sa2 para informações a respeito dos comandos.

# Informes de atividades das 8h às 19h a cada 10 minutos durante a semana
0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 &

# Informes de atividades das 19h às 8h, a cada hora durante a semana
0 19-7 * * 1-5 /usr/lib/sa/sa1 &

# Informes de atividades a cada hora aos sábados e domingos
0 * * * 0,6 /usr/lib/sa/sa1 &

# Resumo diário aprontado às 19h05
5 19 * * * /usr/lib/sa/sa2 -A &

Certifique-se de submeter o "crontab" revisado ao processo de segundo plano "cron".

Informações de Inicialização do Sistema

Na inicialização do sistema, uma mensagem LINUX RESTART precisa ser inserida no arquivo diário de dados para reinicializar os contadores do núcleo. Isso pode ser automatizado instalando-se o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sysstat incluído no pacote blfs-bootscripts-20250225 usando-se o seguinte comando como o(a) usuário(a) root:

make install-sysstat

Conteúdo

Aplicativos Instalados: cifsiostat, iostat, mpstat, pidstat, sadf, sar e tapestat
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/sa, /usr/share/doc/sysstat-12.7.7 e /var/log/sa

Descrições Curtas

cifsiostat

exibe estatísticas relativas a operações de leitura e escrita em sistemas de arquivos "CIFS"

iostat

informa estatísticas de "CPU" e estatísticas de entrada/saída para dispositivos e partições

mpstat

escreve atividades para cada processador disponível

pidstat

é usado para monitorar tarefas individuais atualmente sendo gerenciadas pelo núcleo Linux

sadf

é usado para exibir o conteúdo dos arquivos de dados criados pelo comando sar. Mas diferentemente do sar, o sadf pode escrever os dados dele em muitos formatos

sar

é usado para exibir o conteúdo dos contadores de atividades cumulativas eleitos no sistema operacional

tapestat

é usado para monitorar a atividade de unidades de fita conectadas a um sistema

UDisks-2.10.1

Introdução ao "UDisks"

O pacote UDisks fornece um processo de segundo plano, ferramentas e bibliotecas para acessar e manipular discos e dispositivos de armazenamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "UDisks"

Exigidas

libatasmart-0.19, libblockdev-3.3.0, libgudev-238 e Polkit-126

Recomendadas
Opcionais (Exigidas se construir "GNOME")

GLib-2.82.5 (com GObject Introspection)

Opcionais

D-Bus Python-1.3.2 (para os testes de integração), GTK-Doc-1.34.0, libxslt-1.1.42 (para as páginas de manual), LVM2-2.03.30, PyGObject-3.50.0 (para os testes de integração), exFAT e libiscsi

Dependências Opcionais de Tempo de Execução

btrfs-progs-6.13, dbus-1.16.0, dosfstools-4.2, gptfdisk-1.0.10, mdadm-4.3 e xfsprogs-6.13.0

Instalação do "UDisks"

Instale UDisks executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-static     \
            --enable-available-modules &&
make

Para testar os resultados, emita: make check. Um teste mais completo pode ser executado com make ci. Você precisa primeiro criar os diretórios /var/run/udisks2 e /var/lib/udisks2, e os módulos opcionais "python" deveriam estar presente.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--enable-available-modules: Essa chave habilita funcionalidades adicionais do UDisks2 se libblockdev-3.3.0 tiver sido construído com dependências opcionais.

Conteúdo

Aplicativos Instalados: "udisksctl" e "umount.udisks2"
Biblioteca Instalada: libudisks2.so
Diretórios Instalados: /etc/udisks2, /usr/include/udisks2, /usr/libexec/udisks2, /usr/share/gtk-doc/html/udisks2 e /var/lib/udisks2

Descrições Curtas

udisksctl

é um aplicativo de linha de comando usado para interagir com o processo de segundo plano udisksd

umount.udisks2

é um aplicativo de linha de comando usado para desmontar sistemas de arquivos que tenham sido montados pelo processo de segundo plano UDisks

libudisks2.so

contém as funções da "API" do UDisks

UnRar-7.1.5

Introdução ao "UnRar"

O pacote UnRar contém um utilitário de extração RAR usado para extrair arquivos a partir de arquivamentos RAR. Arquivamentos RAR geralmente são criados com WinRAR, principalmente em um ambiente "Windows".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.rarlab.com/rar/unrarsrc-7.1.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2cfa06457cf93dacf870da6de2f1c1a1

  • Tamanho da transferência: 264 KB

  • Espaço em disco estimado exigido: 2,7 MB

  • Tempo de construção estimado: 0,4 UPC

Instalação do "UnRar"

Nota

Esse pacote extrai o "tarball" para o diretório não versionado unrar e não para o diretório esperado unrar-7.1.5.

Instale UnRar executando os seguintes comandos:

make -f makefile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -m755 unrar /usr/bin

Conteúdo

Aplicativo Instalado: unrar
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

unrar

descomprime um arquivamento RAR

UPower-1.90.7

Introdução ao "UPower"

O pacote UPower fornece uma interface para enumerar dispositivos de eletricidade, ouvir eventos de dispositivos e consultar histórico e estatísticas. Qualquer aplicativo ou serviço no sistema consegue acessar o serviço org.freedesktop.UPower por meio do barramento de mensagens do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "UPower"

Exigidas

libgudev-238 e libusb-1.0.27

Opcionais (Exigidas se construir GNOME)

GLib-2.82.5 (com GObject Introspection)

Opcionais

GTK-Doc-1.34.0, libxslt-1.1.42, docbook-xsl-nons-1.79.2, PyGObject-3.50.0, dbusmock-0.34.3, umockdev-0.19.1 (para parte da suíte de teste) e libimobiledevice

Instalação do "UPower"

Instale UPower executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                   \
      --prefix=/usr              \
      --buildtype=release        \
      -D gtk-doc=false           \
      -D man=false               \
      -D systemdsystemunitdir=no \
      -D udevrulesdir=/usr/lib/udev/rules.d &&
ninja

Para testar os resultados, emita: LC_ALL=C ninja test. A suíte de teste deveria ser executada a partir de uma sessão GUI local iniciada com dbus-launch. Em máquinas de 32 bits, um teste falhará devido a erros de arredondamento: Tests.test_battery_energy_charge_mixed. Em alguns sistemas, dois testes relacionados ao recurso hotplug de fone de ouvido são conhecidos por falharem. Eles podem ser ignorados com segurança, pois a funcionalidade ainda funciona.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D gtk-doc=false: Impede construir a documentação. Remova isso se você tiver o GTK-Doc instalado e desejar construir a documentação.

-D man=false: Impede construir as páginas de manual. Remova isso se você tiver libxslt-1.1.42 e docbook-xsl-nons-1.79.2 instalados e desejar construir as páginas de manual.

-D systemdsystemunitdir=no: Remove a dependência do systemd.

-D udevrulesdir=/usr/lib/udev/rules.d: Informa ao sistema de construção onde instalar as regras do udev porque as informações estão ausentes em /usr/lib/pkgconfig/libudev.pc

Conteúdo

Aplicativos Instalados: upower
Bibliotecas Instaladas: libupower-glib.so
Diretórios Instalados: /etc/UPower, /usr/include/libupower-glib e /var/lib/upower

Descrições Curtas

upower

é a ferramenta de linha de comando UPower

libupower-glib.so

contém as funções da "API" do UPower

usbutils-018

Introdução ao "USB Utils"

O pacote USB Utils contém utilitários usados para exibir informações relativas a barramentos "USB" no sistema e os dispositivos conectados a eles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "USB Utils"

Exigidas

libusb-1.0.27

Recomendadas

Instalação do "USB Utils"

Instale USB Utils executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release &&

ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Para o arquivo de dados usb.ids, instale o pacote hwdata-0.392.

O script lsusb.py exibe informações em um formato mais facilmente legível que lsusb. Para encontrar as opções, use lsusb.py -h. Uma forma de uso recomendada pelo(a) desenvolvedor(a) é lsusb.py -ciu.

Conteúdo

Aplicativos Instalados: lsusb, lsusb.py, usb-devices e usbhid-dump
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lsusb

é um utilitário para exibir informações relativas a todos os barramentos "USB" no sistema e todos os dispositivos conectados a eles, mas não de forma amigável a humanos(as)

lsusb.py

exibe informações relativas a todos os barramentos "USB" no sistema e todos os dispositivos conectados a eles em forma razoavelmente amigável a humanos(as)

usb-devices

é um script de shell que exibe detalhes dos barramentos "USB" e dos dispositivos conectados a eles. Ele foi projetado para ser usado se "/proc/bus/usb/devices" não estiver disponível em seu sistema

usbhid-dump

é usado para despejar descritores de informes e fluxos a partir de interfaces "HID" (dispositivo de interface humana) de dispositivos "USB"

Which-2.23 e Alternativas

A presença ou ausência do aplicativo which no livro principal do LFS é provavelmente uma das questões mais controversas nas listas de discussão. Isso resultou em pelo menos uma guerra violenta no passado. Para esperançosamente colocar um fim a isso de uma vez por todas, apresentamos aqui duas opções para equipar seu sistema com which. A questão de qual which cabe a você decidir.

Introdução ao "GNU Which"

A primeira opção é a de instalar o atual pacote GNU which.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/which/which-2.23.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1963b85914132d78373f02a84cdb3c86

  • Tamanho da transferência: 197 KB

  • Espaço em disco estimado exigido: 1,2 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do "Which"

Instale which executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: which
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

which

mostra o caminho completo dos comandos (shell) instalados em seu PATH

O Script 'which'

A segunda opção (para quem não deseja instalar o pacote) é a de criar um script simples (executar como o(a) usuário(a) root):

cat > /usr/bin/which << "EOF"
#!/bin/bash
type -pa "$@" | head -n 1 ; exit ${PIPESTATUS[0]}
EOF
chmod -v 755 /usr/bin/which
chown -v root:root /usr/bin/which

Isso deveria funcionar bem e é provavelmente a solução mais fácil para a maioria dos casos, mas não é a implementação mais abrangente.

xdotool-3.20211022.1

Introdução ao xdotool

O pacote xdotool fornece os recursos para simular entrada de teclado e atividade de mouse, mover e redimensionar janelas, etc. Ele faz isso usando a extensão XTEST do X11 e outras funções da Xlib.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdotool

Exigidas

Bibliotecas do Xorg

Instalação do xdotool

Instale xdotool executando os seguintes comandos:

make WITHOUT_RPATH_FIX=1

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr INSTALLMAN=/usr/share/man install

Conteúdo

Aplicativo Instalado: xdotool
Bibliotecas Instaladas: libxdo.so
Diretórios Instalados: Nenhum(a)

Zip-3.0

Introdução ao "Zip"

O pacote Zip contém utilitários Zip. Eles são úteis para comprimir arquivos em arquivamentos ZIP.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/infozip/zip30.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5da transferência: 7b74551e63f8ee6aab6fbc86676c0d37

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 6,4 MB

  • Tempo de construção estimado: 0,1 UPC

Instalação do "Zip"

Instale Zip executando os seguintes comandos:

make -f unix/Makefile generic CC="gcc -std=gnu89"

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make prefix=/usr MANDIR=/usr/share/man/man1 -f unix/Makefile install

Explicações do Comando

CC="gcc -std=gnu89": Esse parâmetro substitui a variável CC que é configurada como cc no arquivo unix/Makefile. No LFS, cc é um link simbólico para gcc e usa -std=gnu17 (ISO 9899:2017 com extensões GNU) como padrão, mas Zip é um pacote legado onde algumas construções gramaticais são inválidas no ISO 9899:1999 e usos comuns mais recentes.

prefix=/usr: Esse parâmetro substitui a variável prefix que está configurada como /usr/local no arquivo unix/Makefile.

Conteúdo

Aplicativos Instalados: zip, zipcloak, zipnote e zipsplit
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

zip

comprime arquivos em um arquivamento ZIP

zipcloak

é um utilitário para encriptar e desencriptar um arquivamento ZIP

zipnote

lê ou escreve comentários armazenados em um arquivo ZIP

zipsplit

é um utilitário para dividir arquivos ZIP em arquivos menores

Capítulo 13. Programação

Um sistema LFS básico pode ser usado como uma plataforma de desenvolvimento, porém o sistema básico inclui somente suporte de linguagem para C, C++, Perl e Python. Esse capítulo fornece instruções para construir muitos ambientes de programação populares para expandir significativamente as capacidades de desenvolvimento do seu sistema.

cargo-c-0.10.11

Introdução ao cargo-c

O pacote cargo-c cria um sub comando cargo para construir e instalar bibliotecas dinâmicas e estáticas compatíveis com C-ABI.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do cargo-c

Exigidas

rustc-1.85.0

Recomendadas

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Instalação do cargo-c

Primeiro, baixe um arquivo para garantir que cargo use as versões de dependência especificadas pelos(as) desenvolvedores(as) do fluxo de desenvolvimento quando essa versão cargo-c (0.10.11) foi lançada. Sem isso, as versões mais recentes das dependências seriam usadas e elas poderiam causar quebras:

curl -LO https://github.com/lu-zero/cargo-c/releases/download/v0.10.11/Cargo.lock

Nota

Normalmente, nós colocaríamos essa transferência em uma seção Transferências Adicionais. Mas, nesse caso, não podemos dizer o nome e a versão do pacote a partir do nome do arquivo Cargo.lock, de forma que é melhor não colocar o arquivo ambiguamente nomeado fora do diretório cargo-c-0.10.11. Nós usamos curl aqui porque o pacote cURL-8.12.1 deveria ter sido instalado como uma dependência exigida do rustc-1.85.0.

A soma de verificação MD5 do arquivo deveria ser d39f6c60470dc6aff66fac7a86b6b261.

Instale cargo-c executando os seguintes comandos:

[ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1    &&
[ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 &&

cargo build --release

Para testar os resultados, emita: cargo test --release.

Agora, como o(a) usuário(a) root:

install -vm755 target/release/cargo-{capi,cbuild,cinstall,ctest} /usr/bin/

Conteúdo

Aplicativos Instalados: cargo-capi, cargo-cbuild, cargo-cinstall e cargo-ctest
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Cbindgen-0.28.0

Introdução ao "Cbindgen"

Cbindgen pode ser usado para gerar ligações C para código Rust.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/mozilla/cbindgen/archive/v0.28.0/cbindgen-0.28.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0712d991fc8e65121924265d738db71d

  • Tamanho da transferência: 232 KB

  • Espaço em disco estimado exigido: 121 MB (adicionar 600 MB para testes)

  • Tempo de construção estimado: 0,5 UPC (adicionar 0,4 UPC para testes), ambos em uma máquina de 4 núcleos

Dependências do "cbindgen"

Exigidas

rustc-1.85.0

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Instalação do "cbindgen"

Instale cbindgen executando os seguintes comandos:

cargo build --release

Para testar os resultados, emita: cargo test --release. Três testes em profile.rs são conhecidos por falharem porque eles esperam alguns recursos instáveis da Rust desabilitados no na configuração de rustc-1.85.0 do BLFS.

Agora, como o(a) usuário(a) root:

install -Dm755 target/release/cbindgen /usr/bin/

Conteúdo

Aplicativo Instalado: cbindgen
Biblioteca Instalada: nenhum(a)
Diretório Instalado: nenhum(a)

Descrições Curtas

cbindgen

gera ligações C para código Rust

Clisp-2.49

Introdução ao "Clisp"

GNU Clisp é uma implementação "Common Lisp" que inclui um interpretador, compilador, depurador e muitas extensões.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/clisp/latest/clisp-2.49.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1962b99d5e530390ec3829236d168649

  • Tamanho da transferência: 7,8 MB

  • Espaço em disco estimado exigido: 163 MB (adicionar 8 MB para os testes)

  • Tempo de construção estimado: 0,9 UPC (1,2 UPC com os testes)

Transferências Adicionais

Dependências do "Clisp"

Recomendadas
Opcionais

libnsl-2.0.1 e libffcall

Instalação do "Clisp"

Nota

Esse pacote não suporta construção paralela.

Se você estiver construindo em um sistema de 32 bits, [então] contorne um defeito no "GCC" causado pela versão mais recente do "binutils":

case $(uname -m) in
   i?86) export CFLAGS="${CFLAGS:--O2 -g} -falign-functions=4" ;;
esac

Remova dois testes que falham por motivos desconhecidos:

sed -i -e '/socket/d' -e '/"streams"/d' tests/tests.lisp

Instale Clisp executando os seguintes comandos:

Se você estiver construindo clisp contra a libffcall, [então] aplique o remendo para corrigir uma falha de construção com a readline atual:

patch -Np1 -i ../clisp-2.49-readline7_fixes-1.patch

Instale Clisp executando os seguintes comandos:

mkdir build &&
cd    build &&

../configure --srcdir=../                       \
             --prefix=/usr                      \
             --docdir=/usr/share/doc/clisp-2.49 \
             --with-libsigsegv-prefix=/usr &&

ulimit -S -s 16384 &&
make -j1

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

ulimit -S -s 16384: isso aumenta o tamanho máximo da pilha, conforme recomendado pelo configure.

--docdir=/usr/share/doc/clisp-2.49: essa chave força a documentação HTML ser instalada em um diretório versionado em vez de no /usr/share/html/.

--with-libsigsegv-prefix=/usr: use isso para informar ao configure que você instalou o libsigsegv em /usr, caso contrário ele não será encontrado.

--with-libffcall-prefix=/usr: use isso para informar ao configure que você instalou o pacote opcional libffcall em /usr, caso contrário, como libsigsegv, ele não será encontrado.

Conteúdo

Aplicativos Instalados: clisp e clisp-link
Bibliotecas Instaladas: várias bibliotecas estáticas em /usr/lib/clisp-2.49/base/
Diretórios Instalados: /usr/lib/clisp-2.49, /usr/share/doc/clisp-2.49 e /usr/share/emacs/site-lisp

Descrições Curtas

clisp

é um compilador, interpretador e depurador "ANSI" "Common Lisp"

clisp-link

é usado para vincular um módulo externo ao "clisp"

CMake-3.31.5

Introdução ao "CMake"

O pacote CMake contém um conjunto moderno de ferramentas usado para gerar "Makefiles". É um sucessor do script configure gerado automaticamente e pretende ser independente de plataforma e de compilador. Um usuário significativo do CMake é o KDE desde a versão 4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://cmake.org/files/v3.31/cmake-3.31.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5da transferência: ea5e8d7208616b1609018db290a67419

  • Tamanho da transferência: 12 MB

  • Espaço em disco estimado exigido: 576 MB (adicionar 1,4 GB para os testes)

  • Tempo de construção estimado: 2,2 UPC (adicionar 5,4 UPC para testes, ambos usando paralelismo=4)

Dependências do "CMake"

Recomendadas
Opcionais

GCC-14.2.0 (para gfortran), git-2.48.1 (para uso durante testes), Mercurial-6.9.2 (para uso durante testes), OpenJDK-23.0.2 (para uso durante testes), Qt-6.8.2 (para a GUI baseada em Qt), sphinx-8.2.1 (para construir documentos), Subversion-1.14.5 (para testagem), cppdap, jsoncpp e rhash

Instalação do "CMake"

Instale CMake executando os seguintes comandos:

sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &&

./bootstrap --prefix=/usr        \
            --system-libs        \
            --mandir=/share/man  \
            --no-system-jsoncpp  \
            --no-system-cppdap   \
            --no-system-librhash \
            --docdir=/share/doc/cmake-3.31.5 &&
make

Para testar os resultados, emita: bin/ctest -j$(nproc). Substitua $(nproc) por um inteiro entre 1 e o número de núcleos lógicos do sistema se você não quiser usar todos.

Se você quiser investigar um problema com um determinado "problem1-test", [então] use bin/ctest -R "problem1-test" e, para omiti-lo, use bin/ctest -E "problem1-test". Essas opções podem ser usadas juntas: bin/ctest -R "problem1-test" -E "problem2-test". A opção -N pode ser usada para exibir todos os testes disponíveis, e você pode executar bin/ctest para um subconjunto de testes usando nomes ou números separados por espaços como opções . A opção --help pode ser usada para mostrar todas as opções.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ... Modules/GNUInstallDirs.cmake: Esse comando desabilita aplicativos que usam "cmake" de tentar instalar arquivos em "/usr/lib64/".

--system-libs: Essa chave força o sistema de construção a vincular-se à versão instalada do sistema para todas as bibliotecas necessárias, exceto aquelas especificadas explicitamente por meio de uma opção --no-system-*.

--no-system-jsoncpp e --no-system-cppdap: Essas chaves removem a biblioteca JSON-C++ da lista de bibliotecas do sistema. Uma versão empacotada dessa biblioteca é usada em lugar dela.

--no-system-librhash: Essa chave remove a biblioteca librhash da lista de bibliotecas do sistema usadas. Uma versão empacotada dessa biblioteca é usada em lugar dela.

--no-system-{curl,libarchive,libuv,nghttp2}: Use a opção correspondente na lista para o bootstrap se uma das dependências recomendadas não estiver instalada. Uma versão empacotada da dependência será usada em lugar dela.

--qt-gui: Essa chave habilita construir a "GUI" baseada em Qt para CMake.

--parallel=: Essa chave permite executar as instruções de autoaprimoramento do CMake com várias tarefas ao mesmo tempo. Não é necessário se a variável MAKEFLAGS já tiver sido configurada para usar vários processadores seguindo Usando Múltiplos Processadores.

Conteúdo

Aplicativos Instalados: ccmake, cmake, cmake-gui (opcional), cpack e ctest
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/cmake-3.31 e /usr/share/doc/cmake-3.31.5

Descrições Curtas

ccmake

é uma estrutura de interação direta com o(a) usuário(a) baseada em "curses" para cmake

cmake

é o gerador de "makefile"

cmake-gui

(opcional) é a estrutura de interação direta com o(a) usuário(a) baseada em Qt para o cmake

cpack

é o aplicativo de empacotamento CMake

ctest

é um utilitário de teste para árvores de construção geradas pelo "cmake"

Doxygen-1.13.2

Introdução ao "Doxygen"

O pacote Doxygen contém um sistema de documentação para "C++", "C", "Java", "Objective-C", "Corba IDL" e, até certo ponto, "PHP", "C#" e "D". É útil para gerar documentação "HTML" e(ou) manual de referência fora de linha a partir de um conjunto de arquivos fonte documentados. Também existe suporte para gerar saída em "RTF", "PostScript", "PDF" com hiperlink, "HTML" compactado e páginas de manual "Unix". A documentação é extraída diretamente dos fontes, o que torna muito mais fácil manter a documentação consistente com o código-fonte.

Você também pode configurar o Doxygen para extrair a estrutura do código a partir de arquivos fonte não documentados. Isso é muito útil para encontrar rapidamente seu caminho em grandes distribuições de fontes. Usado junto com Graphviz, você também consegue visualizar as relações entre os vários elementos por meio de gráficos de dependência, diagramas de herança e diagramas de colaboração, todos gerados automaticamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://doxygen.nl/files/doxygen-1.13.2.src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1c3bfaaeda1544bf2b33b73ceb4d2ea4

  • Tamanho da transferência: 8,1 MB

  • Espaço em disco estimado exigido: 253 MB (com testes)

  • Tempo de construção estimado: 1,6 UPC (com testes; ambos usando paralelismo=4)

Dependências do "Doxygen"

Exigidas

CMake-3.31.5 e git-2.48.1

Recomendadas
Opcionais

Graphviz-12.2.1, ghostscript-10.04.0, libxml2-2.13.6 (exigido para os testes), LLVM-19.1.7 (com clang), texlive-20240312 (ou install-tl-unx), xapian-1.4.27 (para doxyindexer) e javacc

Instalação do "Doxygen"

Primeiro, corrija alguns conjuntos de comandos sequenciais python:

grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

Instale Doxygen executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -G "Unix Makefiles"          \
      -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      -D build_wizard=ON           \
      -D force_qt=Qt6              \
      -W no-dev .. &&
make

Para testar os resultados, emita: make testes. Um teste, 012_cite.dox, é conhecido por falhar se texlive-20240312 ou install-tl-unx não estiver instalado.

Se você deseja gerar a documentação do pacote, [então] você precisa ter Python, TeX Live (para documentos "HTML") e Ghostscript (para documentos "PDF") instalados, então emita o seguinte comando:

cmake  -D build_doc=ON \
       -D DOC_INSTALL_DIR=share/doc/doxygen-1.13.2 \
       .. &&
make docs

Agora, como o(a) usuário(a) root:

make install &&
install -vm644 ../doc/*.1 /usr/share/man/man1

Se você gerou a documentação do pacote, então as páginas de manual serão instaladas automaticamente e você não precisará executar o último comando install ....

Explicações do Comando

-D build_wizard=OFF: Use essa chave se Qt6 não estiver instalado.

-D build_search=ON: Use essa chave se xapian estiver instalado e você desejar construir ferramentas de pesquisa externas (doxysearch.cgi e doxyindexer).

-D force_qt6=ON: Use essa chave para construir doxywizard com Qt6, mesmo se Qt5 estiver instalado.

-D use_libclang=ON: Use essa chave se llvm com clang estiverem instalados, para adicionar suporte para análise da libclang.

Configurando o "Doxygen"

Não existe nenhuma configuração real necessária para o pacote Doxygen, embora três pacotes adicionais sejam exigidos se você desejar usar recursos estendidos. Se demandar fórmulas para criar documentação em PDF, então você precisa ter o texlive-20240312 instalado. Se demandar fórmulas para converter arquivos PostScript em bitmaps, então você precisa ter o ghostscript-10.04.0 instalado.

Conteúdo

Aplicativos Instalados: doxygen e opcionalmente, doxywizard, doxyindexer e doxysearch.cgi
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/doxygen-1.13.2

Descrições Curtas

doxygen

é um utilitário baseado em linha de comando usado para gerar arquivos de configuração de modelo e, em seguida, gerar documentação a partir desses modelos. Use doxygen --help para uma explicação dos parâmetros da linha de comando

doxywizard

é uma estrutura "GUI" de interação direta com o(a) usuário(a) para configurar e executar doxygen

doxyindexer

gera um índice de pesquisa chamado doxysearch.db a partir de um ou mais arquivos de dados de pesquisa produzidos por doxygen. Veja-se, por exemplo, https://javacc.github.io/javacc/

doxysearch.cgi

é um aplicativo "CGI" para pesquisar os dados indexados por doxyindexer

dtc-1.7.2

Introdução ao Dtc

O pacote dtc contém o Device Tree Compiler para trabalhar com fontes de árvores de dispositivos e arquivos binários e também libfdt, uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz

  • Soma de verificação MD5 da transferência: 0f193be84172556027da22d4fe3464e0

  • Tamanho da transferência: 168 KB

  • Espaço em disco estimado exigido: 13 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Dependências de Dtc

Opcionais

libyaml-0.2.5, SWIG-4.3.0 e texlive-20240312

Instalação do Dtc

Instale dtc executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr         \
            --buildtype=release   \
            -D python=disabled .. &&
ninja

Para testar os resultados, emita: CC='gcc -Wl,-z,noexecstack' meson test -v.

Agora, como o(a) usuário(a) root:

ninja install

Ainda como o(a) usuário(a) root, remova a biblioteca estática inútil:

rm /usr/lib/libfdt.a

Se você tiver texlive-20240312 instalado, poderá construir o formato PDF da documentação emitindo o seguinte comando:

pushd ../Documentation
  latexmk -bibtex --pdf dtc-paper &&
  latexmk -bibtex --pdf dtc-paper -c
popd

Para instalar a documentação, como o(a) usuário(a) root emita o seguinte comando:

cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2

Se você tiver instalado SWIG-4.3.0 e desejar instalar as ligações Python 3 desse pacote, construa o módulo Python 3:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..

Como o(a) usuário(a) root, instale o módulo Python 3:

pip3 install --no-index --find-links dist --no-user libfdt

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D python=disabled: Essa chave impede construir a ligação do Python 3 com o método obsoleto (executando setup.py diretamente). Nós construiremos a ligação do Python 3 com o comando pip3 wheel separadamente, se desejado.

CC='gcc -Wl,-z,noexecstack': Essa variável impede marcar as bibliotecas compartilhadas na suíte de teste como exigindo pilha executável. A Glibc 2.41 ou posterior parou de permitir abrir com dlopen tal biblioteca compartilhada, de forma que a suíte de teste falharia. Mas essas bibliotecas compartilhadas não precisam realmente de uma pilha executável, de modo que nós podemos usar -Wl,-z,noexecstack para consertar a suíte de teste. É necessário no ambiente CC para o meson test porque essas bibliotecas compartilhadas são construídas por um conjunto de comandos sequenciais de teste em vez do sistema de construção meson/ninja, e o conjunto de comandos sequenciais de teste não reconhece outras variáveis de ambiente comuns como LDFLAGS.

Conteúdo

Aplicativos Instalados: convert-dtsv0, dtc, dtdiff, fdtdump, fdtget, fdtoverlay e fdtput
Biblioteca Instalada: libfdt.so
Diretório Instalado: /usr/lib/python3.13/site-packages/libfdt-1.7.2.dist-info e /usr/share/doc/dtc-1.7.2 (opcionalmente)

Descrições Curtas

convert-dtsv0

converte a fonte da árvore de dispositivos v0 em árvore de dispositivos v1

dtc

compila a fonte da árvore de dispositivos (dts) para o blob binário da árvore de dispositivos (dtb) ou descompila dtb para dts

dtdiff

compara duas árvores de dispositivos

fdtdump

imprime uma versão legível de um arquivo simples de árvore de dispositivos

fdtget

lê valores a partir da árvore de dispositivos

fdtoverlay

aplica uma série de sobreposições a um blob de árvore de dispositivo base

fdtput

escreve um valor de propriedade em uma árvore de dispositivos

libfdt.so

é uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário

GCC-14.2.0

Introdução ao GCC

O pacote GCC contém a GNU Compiler Collection. Esta página descreve a instalação de compiladores para as seguintes linguagens: C, C++, Fortran, Objective C, Objective C++, Go e Modula2. Como C e C++ são instalados no LFS, esta página é tanto para atualizar C e C++ quanto para instalar compiladores adicionais.

Nota

Linguagens adicionais, entre as quais D e Ada, estão disponíveis na coleção. D e Ada tem um requisito de instruções iniciais de carregamento de binário para a primeira instalação, de modo que a instalação deles não está descrita aqui. Para instalá-los, você pode proceder da mesma forma abaixo depois de instalar o compilador correspondente a partir de um pacote binário, adicionando ada ou d à linha --enable-languages.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Cuidado

Se você estiver atualizando o GCC a partir de qualquer outra versão anterior ao 14.2.0, então você precisa ser cuidadoso(a) ao compilar módulos de terceiros do núcleo. Você deveria garantir que o núcleo e todos os módulos nativos dele também sejam compilados usando a mesma versão do GCC que você usa para construir o módulo de terceiros. Esse problema não afeta as atualizações do núcleo nativo (e dos módulos do núcleo), pois as instruções abaixo são uma reinstalação completa do GCC. Se você tiver módulos de terceiros instalados, certifique-se de que eles sejam recompilados usando a versão atualizada do GCC.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2268420ba02dc01821960e274711bde0

  • Tamanho da transferência: 88 MB

  • Espaço em disco estimado exigido: 11 GB (3,4 GB instalado com todas as linguagens listadas; adicionar 1,6 GB para testes)

  • Tempo de construção estimado: 14 UPC (adicionar 34 UPC para testes; ambos com paralelismo=8)

Dependências do GCC

Opcionais

GDB-16.2, Graphviz-12.2.1 (alguns testes usam ele se instalado; observe que se ele estiver instalado, porém não construído com libpng-1.6.46, esses testes falharão), Valgrind-3.24.0 (para testes) e ISL (para habilitar otimização do graphite)

Instalação do GCC

Importante

Mesmo se você especificar somente linguagens diferentes de "C" e "C++" para o comando ./configure abaixo, o processo de instalação substituirá seus compiladores e bibliotecas "C" e "C++" do GCC existentes. Executar a suíte completa de teste é recomendado.

Não continue com o comando make install até ter certeza de que a construção foi bem-sucedida. Você pode comparar seus resultados de teste com aqueles encontrados em https://gcc.gnu.org/ml/gcc-testresults/. Você também possivelmente deseje consultar as informações encontradas na seção do GCC do Capítulo 8 no livro LFS (../../../../lfs/view/12.3/chapter08/gcc.html).

As instruções abaixo estão intencionalmente realizando um processo de bootstrap. As instruções iniciais de carregamento são necessárias para robustez e são altamente recomendadas ao atualizar a versão dos compiladores. Para desabilitar as instruções iniciais de carregamento de qualquer maneira, adicione --disable-bootstrap às opções ./configure abaixo.

Instale o GCC executando os seguintes comandos:

case $(uname -m) in
  x86_64)
    sed -i.orig '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
  ;;
esac

mkdir build               &&
cd    build               &&

../configure              \
    --prefix=/usr         \
    --disable-multilib    \
    --with-system-zlib    \
    --enable-default-pie  \
    --enable-default-ssp  \
    --enable-host-pie     \
    --disable-fixincludes \
    --enable-languages=c,c++,fortran,go,objc,obj-c++,m2 &&
make

Se executar testes, como no LFS, remova/corrija várias falhas de teste conhecidas:

sed -e '/cpython/d'               -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp
sed -e 's/no-pic /&-no-pie /'     -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c
sed -e 's/300000/(1|300000)/'     -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c
sed -e 's/{ target nonpic } //' \
    -e '/GOTPCREL/d'              -i ../gcc/testsuite/gcc.target/i386/fentryname3.c

Se você tiver instalado pacotes adicionais, como valgrind e gdb, a parte gcc da suíte de teste executará mais testes que no LFS. Alguns deles informarão FAIL e outros XPASS (aprovados quando esperado FAIL). A partir do gcc-14.1.0, cerca de setenta e quatro (74) FAIL ocorrem na suíte guality, bem como falhas diversas em todo o resto da suíte de teste. Se todos os compiladores acima forem construídos, existirão um pouco mais que cento e dez (110) falhas inesperadas em mais que seiscentos e dezessete mil (617.000) testes. Para executar os testes, emita:

make -k check

Os testes são muito longos e os resultados possivelmente sejam difíceis de encontrar nos registros, especialmente se você usar tarefas paralelas com "make". Você consegue obter um resumo dos testes com:

../contrib/test_summary

Agora, como o(a) usuário(a) root:

make install &&

mkdir -pv /usr/share/gdb/auto-load/usr/lib              &&
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib &&

chown -v -R root:root \
    /usr/lib/gcc/*linux-gnu/14.2.0/include{,-fixed}     &&

ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/14.2.0/liblto_plugin.so \
        /usr/lib/bfd-plugins/

Explicações do Comando

mkdir build; cd build: A documentação do GCC recomenda construir o pacote em um diretório de construção dedicado.

--disable-multilib: Esse parâmetro garante que os arquivos sejam criados para a arquitetura específica do seu computador.

--with-system-zlib: Usa a zlib do sistema em vez daquela empacotada. A zlib é usada para comprimir e descomprimir a linguagem intermediária do GCC em arquivos de objeto "Link Time Optimization" ("LTO").

--enable-default-pie: Torna a opção -fpie o padrão ao compilar aplicativos. Juntamente com o recurso ASLR habilitado no núcleo, isso derrota alguns tipos de ataques baseados em esquemas conhecidos de memória.

--enable-default-ssp: Torna a opção -fstack-protector-strong o padrão ao compilar aplicativos. SSP é uma técnica que evita a alteração do fluxo do programa por corrompimento da pilha de parâmetros.

--enable-host-pie: Torna os executáveis do compilador PIE (Position Independent Executable). Isso pode ser usado para aumentar a proteção contra ataques ROP (Return Oriented Programming) e pode ser visto como parte de uma tendência mais ampla de fortalecer os binários.

--enable-languages=c,c++,fortran,go,objc,obj-c++,m2: Esse comando identifica quais linguagens construir. Você pode modificar esse comando para remover linguagens indesejadas. A GCC também suporta Ada e D, mas construir a GCC com suporte a Ada (ou D) precisa de um compilador Ada (ou D) existente. Portanto, eles não estão habilitados aqui.

make -k check: Esse comando executa a suíte de teste sem parar se quaisquer erros forem encontrados.

../contrib/test_summary: Esse comando produzirá um resumo dos resultados da suíte de teste. Você pode anexar | grep -A7 Summ ao comando para produzir uma versão ainda mais condensada do resumo. Você possivelmente também deseje redirecionar a saída gerada para um arquivo para revisão e comparação posterior.

mv -v /usr/lib/*gdb.py ...: A etapa de instalação coloca alguns arquivos usados pelo gdb sob o diretório /usr/lib. Isso gera mensagens de erro falsas ao executar o ldconfig. Esse comando move os arquivos para outro local.

chown -v -R root:root /usr/lib/gcc/*linux-gnu/...: Se o pacote for construído por um(a) usuário(a) diferente de "root", [então] titularidade da propriedade do diretório include instalado (e o conteúdo dele) estará incorreta. Esse comando muda a titularidade da propriedade para o(a) usuário(a) e grupo root.

--enable-host-shared --enable-languages=jit: Construir libgccjit, uma biblioteca para incorporar a GCC em aplicativos e bibliotecas para gerar código de máquina . Apesar do JIT (just-in-time) no nome, a biblioteca também pode ser usada para compilação AOT (ahead-of-time). --enable-host-shared é necessário para construir libgccjit, mas retarda significativamente a GCC. Portanto libgccjit deveria ser construída e instalada separadamente, não como parte da instalação principal da GCC. Se você precisar dessa biblioteca, configure a GCC com essas duas opções e instale a biblioteca executando make -C gcc jit.install-common jit.install-info como o(a) usuário(a) root. Essa biblioteca não é usada por nenhum pacote do BLFS, nem testada pelos(as) desenvolvedores(as) do BLFS.

Conteúdo

Alguns nomes e descrições de aplicativos e bibliotecas não estão listados aqui, mas podem ser encontrados na seção do LFS para "GCC", já que foram inicialmente instalados durante a construção do LFS.

Aplicativos Instalados: gccgo, gfortran, gm2, go e gofmt, rigidamente vinculados a nomes específicos de arquitetura
Bibliotecas Instaladas: libgfortran.{so,a}, libgm2.{so,a}, libgo.{so,a}, libgobegin.a, libgolibbegin.a, libobjc.{so,a} e numerosos(as) outros(as) bibliotecas e executáveis de tempo de execução
Diretórios Instalados: /usr/lib/go

Descrições Curtas

gccgo

é um compilador baseado na GCC para a linguagem Go

gm2

é um compilador baseado na GCC para a linguagem Modula-2

go

é uma ferramenta para gerenciar o código-fonte da Go

gofmt

é uma ferramenta para formatar o código-fonte da Go

gfortran

é um compilador baseado na GCC para a linguagem Fortran

GC-8.2.8

Introdução ao "GC"

O pacote GC contém o coletor conservador de lixo Boehm-Demers-Weiser, que pode ser usado como um substituto da coleta de lixo para a função "malloc" da "C" ou o novo operador da "C++". Ele permite que você aloque memória basicamente como faria normalmente, sem desalocar explicitamente a memória que não é mais útil. O coletor recicla automaticamente a memória quando determina que ela não mais consegue ser acessada de outra forma. O coletor também é usado por diversas implementações de linguagens de programação que, ou usam a "C" como código intermediário; desejam facilitar a interoperação mais fácil com bibliotecas "C"; ou apenas preferem a interface simples do coletor. Alternativamente, o coletor de lixo possivelmente seja usado como detector de vazamentos para aplicativos "C" ou "C++", embora esse não seja o objetivo principal dele.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Opcionais

libatomic_ops-7.8.2

Instalação do "GC"

Instale GC executando os seguintes comandos:

./configure --prefix=/usr     \
            --enable-cplusplus \
            --disable-static   \
            --docdir=/usr/share/doc/gc-8.2.8 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 doc/gc.man /usr/share/man/man3/gc_malloc.3

Explicações do Comando

--docdir=/usr/share/doc/gc-8.2.8: Essa opção é usada de forma que o pacote instalará a documentação em um diretório versionado.

--enable-cplusplus: Esse parâmetro habilita a construção e instalação da biblioteca "C++" juntamente com a biblioteca "C" padrão.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libcord.so, libgc.so, libgccpp.so e libgctba.so
Diretórios Instalados: /usr/include/gc e /usr/share/doc/gc-8.2.8

Descrições Curtas

libcord.so

contém uma biblioteca de sequências de caracteres baseada em árvore

libgc.so

contém uma interface "C" para o coletor conservador de lixo, projetada principalmente para substituir a função "malloc" da "C"

libgccpp.so

contém uma interface "C++" para o coletor conservador de lixo

libgctba.so

contém uma interface "C++" para lançar alocações incorretas

GDB-16.2

Introdução ao GDB

GDB, o depurador do Projeto "GNU", permite que você veja o que está acontecendo dentro de outro aplicativo enquanto ele é executado - ou o que outro aplicativo estava fazendo no momento em que travou. Observe que GDB é mais eficaz ao rastrear aplicativos e bibliotecas que foram construídos(as) com símbolos de depuração e não despojados(as).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-16.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 05e4a7e3b177432771aa7277af9bccee

  • Tamanho da transferência: 23 MB

  • Espaço em disco estimado exigido: 1,0 GB (adicionar 943 MB para documentos; adicionar 960 MB para testes)

  • Tempo de construção estimado: 1,4 UPC (adicionar 0,3 UPC para documentos; adicionar 3,0 UPC testes; todos usando paralelismo=8)

Dependências do GDB

Dependência Recomendada de Tempo de Execução
Opcionais

Doxygen-1.13.2, GCC-14.2.0 (ada, gfortran e go são usados para testes), Guile-3.0.10, rustc-1.85.0 (usado para alguns testes), Valgrind-3.24.0 e SystemTap (tempo de execução, usado para testes)

Instalação do GDB

Instale o GDB executando os seguintes comandos:

mkdir build &&
cd   build &&

../configure --prefix=/usr          \
             --with-system-readline \
             --with-python=/usr/bin/python3 &&
make

Opcionalmente, para construir a documentação da "API" usando Doxygen-1.13.2, execute:

make -C gdb/doc doxy

Executar os testes não é recomendado. Os resultados variam muito dependendo da arquitetura do sistema e de quais dependências opcionais estão instaladas e qual versão do GCC está sendo usada. Em um sistema testado, existiram 140 falhas inesperadas (de mais de 108.000 testes) e em outro sistema existiram “somente” 14 falhas inesperadas. O tempo para executar os testes varia de aproximadamente 3 UPC a mais de 15 UPC ao usar -j8. Isso depende do número de testes que expiram, assim como de outros fatores.

Dica

Com um make check simples, existem muitas mensagens de aviso acerca de um arquivo de configuração global ausente. Essas podem ser evitadas executando-se touch global.exp e antepondo-se ao comando make check DEJAGNU=$PWD/global.exp. Além disso, os testes podem ser consideravelmente acelerados usando-se a opção do make "-j<N>", onde <N> é o número de núcleos em teu sistema. Às vezes, porém, usar paralelismo possivelmente resulte em falhas estranhas.

Para testar os resultados de qualquer forma, emita:

pushd gdb/testsuite &&
make  site.exp      &&
echo  "set gdb_test_timeout 30" >> site.exp &&
make check 2>1 | tee gdb-check.log
popd

Veja-se gdb/testsuite/README e TestingGDB. Existem muitos problemas adicionais com a suíte de teste:

  • Diretórios limpos são necessários se reexecutar-se os testes. Por esse motivo, produza uma cópia do diretório do código-fonte compilado antes dos testes, caso precise executar os testes novamente.

  • Os resultados também podem depender dos compiladores instalados.

  • Em alguns sistemas baseados em "AMD", mais que duzentos (200) testes adicionais possivelmente falhem devido a uma diferença na implementação de camadas nessas "CPUs".

  • Para gdb-16.1, usando um Intel Xeon E5-1650 v3, existiram 14 falhas inesperadas em mais de 120.000 testes.

  • Quatro testes na suíte gdb.base/step-over-syscall.exp são conhecidos por falharem devido a mudanças no Linux 6.13 e glibc-2.41.

Agora, como o(a) usuário(a) root:

make -C gdb install &&
make -C gdbserver install

Se você construiu a documentação da "API", [então] ela agora está em "gdb/doc/doxy". Você consegue instalá-la (como o(a) usuário(a) root):

install -d /usr/share/doc/gdb-16.2 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-16.2

Explicações do Comando

--with-system-readline: Essa chave força o GDB a usar a cópia do Readline instalada no LFS.

--with-python=/usr/bin/python3: Essa chave força GDB a usar Python 3.

Conteúdo

Aplicativos Instalados: gcore, gdb, gdbserver, gdb-add-index e gstack
Biblioteca Instalada: libinproctrace.so
Diretórios Instalados: /usr/{include,share}/gdb e /usr/share/doc/gdb-16.2

Descrições Curtas

gcore

gera um despejo principal de um aplicativo em execução

gdb

é o Depurador GNU

gdbserver

é um servidor remoto para o depurador "GNU" (permite que aplicativos sejam depurados a partir de uma máquina diferente)

gdb-add-index

Permite adicionar arquivos de índice a binários ELF. Isso acelera o início do gdb em aplicativos grandes.

gstack

imprime um rastreamento de pilha a partir de um programa que esteja executando atualmente

libinproctrace.so

contém funções para o agente de rastreamento em processo. O agente permite instalar pontos de rastreamento rápidos, listar marcadores de pontos de rastreamento estáticos, sondar marcadores de pontos de rastreamento estáticos e iniciar o monitoramento de rastreamento.

Git-2.48.1

Introdução ao "Git"

Git é um sistema de controle de versão distribuído, gratuito e de código aberto, projetado para lidar com tudo, desde projetos pequenos a muito grandes, com velocidade e eficiência. Cada clone do Git é um repositório completo com histórico completo e recursos completos de rastreamento de revisão, não dependente de acesso à rede de comunicação ou de um servidor central. Ramificar e mesclar são rápidos e fáceis de fazer. Git é usado para controle de versão de arquivos, assim como ferramentas como Mercurial-6.9.2, Bazaar, Subversion-1.14.5, CVS, Perforce e Team Foundation Server.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.48.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 99656f1481e70701198257ada703a480

  • Tamanho da transferência: 7,4 MB

  • Espaço em disco estimado exigido: 541 MB (com documentação baixada; adicionar 19 MB para construir documentos; adicionar 21 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 1,0 UPC para construir documentos e até 7 UPC (dependente da velocidade do disco) para testes)

Transferências Adicionais

Dependências do "Git"

Recomendadas
Opcionais

Apache-2.4.63 (para alguns testes), Fcron-3.2.1 (tempo de execução, para agendamento de tarefas git maintenance), GnuPG-2.4.7 (tempo de execução, possivelmente seja usado para assinar submissões ou etiquetas do Git, ou verificar as assinaturas delas), OpenSSH-9.9p2 (tempo de execução, necessário para usar Git sobre ssh), pcre2-10.45, Subversion-1.14.5 com ligações Perl (tempo de execução, para git svn), Tk-8.6.16 (gitk, um visualizador simples de repositórios do Git, usa Tk em tempo de execução), Valgrind-3.24.0, Authen::SASL (tempo de execução, para git send-email), e IO-Socket-SSL-2.089 (tempo de execução, para git send-email se conectar a um servidor SMTP com encriptação SSL)

Opcional (para criar as páginas de manual, documentos "HTML" e outros documentos)

xmlto-0.0.29 e asciidoc-10.2.1 , e também dblatex (para a versão PDF do manual de usuário(a)) e docbook2x para criar páginas info

Instalação do "Git"

Instale Git executando os seguintes comandos:

./configure --prefix=/usr \
           --with-gitconfig=/etc/gitconfig \
           --with-python=python3 &&
make

Você pode construir as páginas de manual e(ou) documentos "HTML" ou usar os baixados. Se você decidir construí-los(as), [então] use as próximas duas instruções.

Se você instalou asciidoc-10.2.1, [então] você pode criar a versão "HTML" das páginas de manual e outros documentos:

make html

Se você instalou asciidoc-10.2.1 e xmlto-0.0.29, [então] você pode criar as páginas de manual:

make man

A suíte de teste pode ser executada em modo paralelo. Para executar a suíte de teste, emita: GIT_UNZIP=nonexist make test -k |& tee test.log. A configuração GIT_UNZIP impede que a suíte de teste use unzip; nós precisamos dela porque no BLFS unzip é um link simbólico para bsdunzip que não satisfaz a suposição de alguns casos de teste. Se algum caso de teste falhar, a lista de testes falhos pode ser mostrada via grep '^not ok' test.log | grep -v TODO.

Agora, como o(a) usuário(a) root:

make perllibdir=/usr/lib/perl5/5.40/site_perl install

Se você criou as páginas de manual e(ou) documentos "HTML"

Instale as páginas de manual como o(a) usuário(a) root:

make install-man

Instale os documentos "HTML" como o(a) usuário(a) root:

make htmldir=/usr/share/doc/git-2.48.1 install-html

Se você baixou as páginas de manual e(ou) documentos "HTML"

Se você baixou as páginas de manual, [então] descompacte-as como o(a) usuário(a) root:

tar -xf ../git-manpages-2.48.1.tar.xz \
   -C /usr/share/man --no-same-owner --no-overwrite-dir

Se você baixou os documentos "HTML", [então] descompacte-os como o(a) usuário(a) root:

mkdir -vp   /usr/share/doc/git-2.48.1 &&
tar   -xf   ../git-htmldocs-2.48.1.tar.xz \
     -C    /usr/share/doc/git-2.48.1 --no-same-owner --no-overwrite-dir &&

find        /usr/share/doc/git-2.48.1 -type d -exec chmod 755 {} \; &&
find        /usr/share/doc/git-2.48.1 -type f -exec chmod 644 {} \;

Reorganize o texto e o "HTML" no "html-docs" (ambos os métodos)

Para ambos os métodos, o "html-docs" inclue muitos arquivos planos de texto. Reorganize os arquivos como o(a) usuário(a) root:

mkdir -vp /usr/share/doc/git-2.48.1/man-pages/{html,text}        &&
mv        /usr/share/doc/git-2.48.1/{git*.txt,man-pages/text}     &&
mv        /usr/share/doc/git-2.48.1/{git*.,index.,man-pages/}html &&

mkdir -vp /usr/share/doc/git-2.48.1/technical/{html,text}         &&
mv        /usr/share/doc/git-2.48.1/technical/{*.txt,text}        &&
mv        /usr/share/doc/git-2.48.1/technical/{*.,}html           &&

mkdir -vp /usr/share/doc/git-2.48.1/howto/{html,text}             &&
mv        /usr/share/doc/git-2.48.1/howto/{*.txt,text}            &&
mv        /usr/share/doc/git-2.48.1/howto/{*.,}html               &&

sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.48.1/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.48.1/howto-index.txt

Explicações do Comando

--with-gitconfig=/etc/gitconfig: Isso configura /etc/gitconfig como o arquivo que armazena as configurações padrão do Git abrangente a todo o sistema.

--with-python=python3: Use esta chave para usar Python 3, em vez do Python 2 com "EOL". "Python" é usado para a interface git p4 para repositórios "Perforce" e também usado em alguns testes.

--with-libpcre2: Use essa chave se PCRE2 estiver instalado.

tar -xf ../git-manpages-2.48.1.tar.gz -C /usr/share/man --no-same-owner: Isso descompacta git-manpages-2.48.1.tar.gz. A opção -C faz com que o "tar" mude o diretório para /usr/share/man antes de começar a descomprimir os documentos. A opção --no-same-owner impede que o "tar" preserve os detalhes de usuário(a) e de grupo dos arquivos. Isso é útil porque esse(a) usuário(a) ou grupo possivelmente não exista em seu sistema; isso poderia (potencialmente) ser um risco de segurança.

mv /usr/share/doc/git-2.48.1 ...: Esses comandos movem alguns dos arquivos para subpastas para tornar mais fácil a ordenação ao longo dos documentos e achar o que você está procurando.

find ... chmod ...: Esses comandos corrigem as permissões no arquivo "tar" da documentação enviada.

Configurando o "Git"

Arquivos de Configuração

~/.gitconfig e /etc/gitconfig

Conteúdo

Aplicativos Instalados: git, git-receive-pack, git-upload-archive e git-upload-pack (rigidamente vinculados entre eles), git-cvsserver, git-shell, gitk e scalar
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/libexec/git-core, /usr/lib/perl5/5.40/site_perl/Git e /usr/share/{doc/git-2.48.1,git-core,git-gui,gitk,gitweb}

Descrições Curtas

git

é o rastreador estúpido de conteúdo

git-cvsserver

é um emulador de servidor "CVS" para Git

gitk

é um navegador gráfico de repositório Git (precisa de Tk-8.6.16)

git-receive-pack

é invocado por git send-pack e atualiza o repositório com as informações fornecidas a partir do terminal remoto

git-shell

é um shell de login para contas "SSH" para fornecer acesso restrito ao "Git"

git-upload-archive

é invocado por git archive --remote e envia um arquivamento gerado para a outra extremidade por meio do protocolo "git"

git-upload-pack

é invocado por git fetch-pack; ele descobre quais objetos estão ausentes no outro lado e os envia depois de empacotar

scalar

é uma ferramenta de gerenciamento de repositórios que otimiza o "Git" para uso em grandes repositórios

Executando um Servidor "Git"

Introdução

Esta seção descreverá como configurar, administrar e proteger um servidor git. Git tem muitas opções disponíveis. Para documentação mais detalhada, veja-se https://git-scm.com/book/en/v2.

Dependências do Servidor

Exigidas

git-2.48.1 e OpenSSH-9.9p2

Configurando um Servidor "Git"

As instruções a seguir instalarão um servidor git. Ele será configurado para usar OpenSSH como método de acesso remoto seguro.

A configuração do servidor consiste nas seguintes etapas:

1. Configurar Usuários(as), Grupos e Permissões

Você precisará ser o(a) usuário(a) root para a parte inicial da configuração. Crie o(a) usuário(a) e grupo git e defina um resumo de senha inutilizável com os seguintes comandos:

groupadd -g 58 git &&
useradd -c "Proprietário(a) do git" -d /home/git -m -g git -s /usr/bin/git-shell -u 58 git &&
sed -i '/^git:/s/^git:[^:]:/git:NP:/' /etc/shadow

Colocar um resumo de senha inutilizável (substituindo ! por NP) desbloqueia a conta, mas ela não pode ser usada para se conectar via autenticação de senha. Isso é exigido pelo sshd para funcionar corretamente. Em seguida, crie alguns arquivos e diretórios no diretório "home" do(a) usuário(a) git, permitindo acesso ao repositório "git" usando chaves "ssh".

install -o git -g git -dm0700 /home/git/.ssh &&
install -o git -g git -m0600 /dev/null /home/git/.ssh/authorized_keys

Para qualquer desenvolvedor(a) que devesse ter acesso ao repositório, adicione a chave pública "ssh" dele/dela em /home/git/.ssh/authorized_keys. Primeiro, acrescente algumas opções para evitar que os(as) usuários(as) usem a conexão com o "git" para encaminhamento de porta para outras máquinas que o servidor "git" possa alcançar.

echo -n "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " >> /home/git/.ssh/authorized_keys &&
cat <chave-ssh-usuário(a)> >> /home/git/.ssh/authorized_keys

Também é útil definir o nome padrão da ramificação inicial de novos repositórios modificando a configuração do "git". Como o(a) usuário(a) root, execute:

git config --system init.defaultBranch trunk

Por fim, adicione a entrada /usr/bin/git-shell ao arquivo de configuração /etc/shells. Esse shell foi definido no perfil do(a) usuário(a) git e serve para garantir que somente ações relacionadas ao "git" possam ser executadas:

echo "/usr/bin/git-shell" >> /etc/shells

2. Criar um repositório "git"

O repositório pode estar em qualquer lugar no sistema de arquivos. É importante que o(a) usuário(a) "git" tenha acesso de leitura/escrita a esse local. Usamos /srv/git como diretório base. Crie um novo repositório git com os seguintes comandos (como o(a) usuário(a) root):

Nota

Em todas as instruções abaixo, usamos projeto1 como um nome de repositório de exemplo. Você deveria nomear seu repositório como um nome descritivo curto para seu projeto específico.

install -o git -g git -m755 -d /srv/git/projeto1.git &&
cd /srv/git/projeto1.git                             &&
git init --bare                                      &&
chown -R git:git .

3. Povoar o repositório a partir de um sistema cliente

Nota

Todas as instruções nesta seção e na próxima deveriam ser feitas em um sistema do(a) usuário(a), não no sistema do servidor.

Agora que o repositório foi criado, ele pode ser usado pelos(as) desenvolvedores(as) para colocar alguns arquivos nele. Depois que a chave "ssh" do(a) usuário(a) for importada para o arquivo authorized_keys do "git", o(a) usuário(a) poderá interagir com o repositório.

Uma configuração mínima deveria estar disponível no sistema do(a) desenvolvedor(a) especificando o nome de usuário(a) e endereço de correio eletrônico dele(a). Crie esse arquivo de configuração mínima no lado do cliente:

cat > ~/.gitconfig <<EOF
[user]
        name = <nome-usuário(a)>
        email = <endereço-correio-eletrônico-usuário(a)>
EOF

Na máquina do(a) desenvolvedor(a), configure alguns arquivos para serem enviados ao repositório como conteúdo inicial:

Nota

O termo gitserver usado abaixo deveria ser o nome do dispositivo (ou endereço "IP") do servidor "git".

mkdir meuprojeto
cd meuprojeto
git init --initial-branch=trunk
git remote add origin git@gitserver:/srv/git/projeto1.git
cat >LEIAME <<EOF
Este é o arquivo 'LEIAME'
EOF
git add LEIAME
git commit -m 'Criação inicial do LEIAME'
git push --set-upstream origin trunk

O conteúdo inicial agora é enviado ao servidor e fica disponível para outros(as) usuários(as). Na máquina atual, o argumento --set-upstream origin trunk agora não é mais necessário, pois o repositório local agora está conectado ao repositório remoto. Envios subsequentes podem ser realizados como

git push

Outros(as) desenvolvedores(as) agora podem clonar o repositório e fazer modificações no conteúdo (desde que as chaves "ssh" deles(as) tenham sido instaladas):

git clone git@gitserver:/srv/git/projeto1.git
cd projeto1
vi LEIAME
git commit -am 'Correção para o arquivo LEIAME'
git push

Nota

Essa é uma configuração de servidor muito básica baseada no acesso OpenSSH. Todos(as) os(as) desenvolvedores(as) estão usando o(a) usuário(a) git para realizar ações no repositório e as mudanças que os(as) usuários(as) estão "comitando" podem ser distinguidas como o nome de usuário(a) local (veja-se ~/.gitconfig) sendo registrado nos conjuntos de mudanças.

O acesso é restrito pelas chaves públicas adicionadas ao arquivo authorized_keys do "git" e não existe opção para o público exportar/clonar o repositório. Para habilitar isso, continue com a etapa quatro (4) para configurar o servidor "git" para acesso público somente leitura.

Na "URL" usada para clonar o projeto, o caminho absoluto (aqui /srv/git/projeto1.git) tem de ser especificado, pois o repositório não está no diretório "home" do "git", mas em /srv/git. Para eliminar a necessidade de expor a estrutura de instalação do servidor, um link simbólico pode ser adicionado no diretório "home" do "git" para cada projeto, como isto:

ln -svf /srv/git/projeto1.git /home/git/

Agora, o repositório pode ser clonado usando

git clone git@gitserver:projeto1.git

4. Configurar o Servidor

A configuração descrita acima torna um repositório disponível para usuários(as) autenticados(as) (via fornecimento do arquivo de chave pública "ssh"). Também existe uma maneira simples de publicar o repositório para usuários(as) não autenticados(as) — certamente, sem acesso de escrita.

A combinação do acesso via "ssh" (para usuários(as) autenticados(as)) e a exportação de repositórios para usuários(as) não autenticados(as) via processo de segundo plano é, na maioria dos casos, suficiente para um sítio de desenvolvimento.

Nota

O processo de segundo plano estará alcançável na porta 9418 por padrão. Certifique-se de que a configuração do seu "firewall" permite acesso a essa porta.

Para iniciar o servidor em tempo de inicialização, instale o script de inicialização "git-daemon" incluído no pacote blfs-bootscripts-20250225:

make install-git-daemon

Para a finalidade de permitir que o git exporte um repositório, um arquivo chamado git-daemon-export-ok é necessário em cada diretório de repositório no servidor. O arquivo não necessita de conteúdo; apenas a existência dele habilita; a ausência dele desabilita a exportação daquele repositório.

touch /srv/git/projeto1.git/git-daemon-export-ok

O "script" para iniciar o processo de segundo plano "git" usa alguns valores padrão internamente. O mais importante é o caminho para o diretório do repositório que está definido como /srv/git. Caso, por algum motivo, você tenha criado o repositório em um local diferente, você precisará informar ao "script" de inicialização onde o repositório pode ser encontrado. Isso pode ser conseguido criando um arquivo de configuração chamado /etc/sysconfig/git-daemon. Esse arquivo de configuração será importado se existir, significando que ele é opcional. O arquivo pode ser parecido com:

# Começo /etc/sysconfig/git-daemon

# Especifica o local do repositório "git"
GIT_BASE_DIR="/srv/git/"

# Diretórios adicionados à lista de permissões
DFT_REPO_DIR="$GIT_BASE_DIR"

# Adiciona opções extras que serão anexadas ao comando 'git daemon'
# executado no script de inicialização
GIT_DAEMON_OPTS=""

# Término /etc/sysconfig/git-daemon

Existem somente três opções a configurar no arquivo de configuração:

  • GIT_BASE_DIR=<nome-diretório>

    Especifique o local dos repositórios "git". Os caminhos relativos usados ao acessar o processo de segundo plano serão traduzidos relativos a esse diretório.

  • DFT_REPO_DIR=<nome-diretório>

    Esse diretório é adicionado à lista branca de diretórios permitidos. Essa variável pode conter vários nomes de diretório, mas geralmente é definida igual a GIT_BASE_DIR.

  • GIT_DAEMON_OPTS=<opções>

    No caso de opções especiais para o comando git daemon serem necessárias, elas tem de ser especificadas nessa configuração. Um exemplo pode ser ajustar o número da porta onde o processo de segundo plano está escutando. Nesse caso, adicione --port=<número da porta> a essa variável. Para mais informações relativas a quais opções podem ser definidas, dê uma olhada na saída gerada de git daemon --help.

Após iniciar o processo de segundo plano, usuários(as) não autenticados(as) conseguem clonar repositórios exportados usando

git clone git://gitserver/projeto1.git

Como o diretório base é /srv/git por padrão (ou definido como um valor personalizado na configuração), git interpreta o caminho de entrada (/projeto1.git) relativo a esse diretório base, de modo que o repositório em /srv/git/projeto1.git seja servido.

Guile-3.0.10

Introdução ao "Guile"

O pacote Guile contém a biblioteca de linguagens de extensão do Projeto "GNU". Guile também contém um interpretador Scheme independente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/guile/guile-3.0.10.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 375f8a423a23d229552512113aa4a954

  • Tamanho da transferência: 5,5 MB

  • Espaço em disco estimado exigido: 184 MB (adicionar 4 MB para os testes)

  • Tempo de construção estimado: 4,5 UPC (Usando paralelismo=4; adicionar 0,3 UPC para testes)

Dependências do "Guile"

Exigidas

GC-8.2.8 e libunistring-1.3

Opcionais

Emacs-30.1 e GDB-16.2 (dependências somente em tempo de execução).

Instalação do "Guile"

Instale Guile executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/guile-3.0.10 &&
make      &&
make html &&

makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi &&
makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi

Para testar os resultados, emita: ./check-guile. Em um sistema "i686", até dez (10) testes falharão na suíte de teste numbers.test devido a pequenos erros de arredondamento de ponto flutuante.

Agora, como o(a) usuário(a) root:

make install      &&
make install-html &&

mkdir -p                      /usr/share/gdb/auto-load/usr/lib &&
mv /usr/lib/libguile-*-gdb.scm /usr/share/gdb/auto-load/usr/lib &&
mv /usr/share/doc/guile-3.0.10/{guile.html,ref} &&
mv /usr/share/doc/guile-3.0.10/r5rs{.html,}     &&

find examples -name "Makefile*" -delete         &&
cp -vR examples   /usr/share/doc/guile-3.0.10   &&

for DIRNAME in r5rs ref; do
  install -v -m644  doc/${DIRNAME}/*.txt \
                    /usr/share/doc/guile-3.0.10/${DIRNAME}
done &&
unset DIRNAME

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: guild, guile, guile-config, guile-snarf e guile-tools
Bibliotecas Instaladas: libguile-3.0.so e guile-readline.so
Diretórios Instalados: /usr/include/guile, /usr/lib/guile, /usr/share/doc/guile-3.0.10 e /usr/share/guile

Descrições Curtas

guile

é um interpretador "Scheme" independente para Guile

guile-config

é um script Guile que fornece as informações necessárias para vincular seus programas à biblioteca Guile, em muito da mesma maneira que o "PkgConfig" faz

guile-snarf

é um script para analisar declarações em seu código C para funções visíveis C do Scheme

guild

é um aplicativo envólucro instalado junto com o guile, que sabe onde um determinado módulo está instalado e o chama, passando os argumentos dele para o aplicativo

guile-tools

é um vínculo simbólico para guild

LLVM-19.1.7

Introdução ao LLVM

O pacote LLVM contém uma coleção de compiladores modulares e reusáveis e tecnologias de conjunto de ferramentas. As bibliotecas centrais Low Level Virtual Machine (LLVM) fornecem um otimizador moderno independente de origem e destino, junto com suporte para geração de código para muitas CPUs populares (bem como algumas menos comuns!). Essas bibliotecas são construídas em torno de uma representação de código bem especificada, conhecida como a LLVM Intermediate Representation ("LLVM IR").

Clang fornece novas estruturas C, C++, Objective C e Objective C++ de interação direta com o(a) usuário(a) para o LLVM e é exigido por alguns pacotes de área de trabalho, como firefox, e para rust se for construído usando o sistema LLVM.

O pacote Compiler RT fornece higienizador de tempo de execução e bibliotecas de perfilamento para desenvolvedores(as) que usam Clang e LLVM.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/llvm-19.1.7.src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 45229744809103ad151e3757a0f21d3d

  • Tamanho da transferência: 65 MB

  • Espaço em disco estimado exigido: 3,5 GB (964 MB instalado; adicionar 20 GB para testes e 308 MB para documentação)

  • Tempo de construção estimado: 13 UPC (Adicionar 8 UPC para testes; ambos usando paralelismo=8)

Transferências Adicionais

módulos Cmake para LLVM

Dependências de terceiros(as) para sistema de construção LLVM

Transferência Recomendada

Clang

Transferência Opcional

Compilador RT

Dependências do LLVM

Exigidas

CMake-3.31.5

Opcionais

Doxygen-1.13.2, git-2.48.1, Graphviz-12.2.1, libxml2-2.13.6, psutil-7.0.0 (para testes), Pygments-2.19.1, PyYAML-6.0.2 (para testes), rsync-3.4.1 (para testes), texlive-20240312 (ou install-tl-unx), Valgrind-3.24.0, Zip-3.0, myst-parser (para construir documentação), OCaml e Z3

Instalação do LLVM

Dois tarballs adicionais llvm-cmake-19.1.7.src.tar.xz e llvm-third-party-19.1.7.src.tar.xz são necessários para o sistema de construção do LLVM. O fluxo de desenvolvimento espera eles extraídos no mesmo nível, como o tarball llvm-19.1.7.src.tar.xz, e os diretórios extraídos renomeados para cmake e third-party. Extraia-os e modifique o sistema de construção para evitar criar diretórios ambiguamente nomeados fora da hierarquia llvm-19.1.7.src:

tar -xf ../llvm-cmake-19.1.7.src.tar.xz                              &&
tar -xf ../llvm-third-party-19.1.7.src.tar.xz                        &&
sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-19.1.7.src@'          \
    -i CMakeLists.txt                                                &&
sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@third-party-19.1.7.src@' \
    -i cmake/modules/HandleLLVMOptions.cmake

Nota

Esses dois tarballs extraem nos diretórios chamados cmake-19.1.7.src e third-party-19.1.7.src, ou seja, os nomes dos diretórios carecem do prefixo llvm-.

Instale o clang na árvore do fonte executando os seguintes comandos:

tar -xf ../clang-19.1.7.src.tar.xz -C tools &&
mv tools/clang-19.1.7.src tools/clang

Se você tiver baixado compiler-rt, instale-o na árvore do fonte executando os seguintes comandos:

tar -xf ../compiler-rt-19.1.7.src.tar.xz -C projects    &&
mv projects/compiler-rt-19.1.7.src projects/compiler-rt

Existem muitos conjuntos de comandos sequenciais Python nesse pacote que usam /usr/bin/env python para acessar o Python do sistema, que no LFS é Python-3.13.2. Use o seguinte comando para corrigir esses conjuntos de comandos sequenciais:

grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'

Certifique-se de instalar o programa FileCheck que é necessário para a suíte de teste de alguns pacotes (por exemplo rustc-1.85.0):

sed 's/utility/tool/' -i utils/FileCheck/CMakeLists.txt

Instale o LLVM executando os seguintes comandos:

mkdir -v build &&
cd       build &&

CC=gcc CXX=g++                               \
cmake -D CMAKE_INSTALL_PREFIX=/usr           \
      -D CMAKE_SKIP_INSTALL_RPATH=ON         \
      -D LLVM_ENABLE_FFI=ON                  \
      -D CMAKE_BUILD_TYPE=Release            \
      -D LLVM_BUILD_LLVM_DYLIB=ON            \
      -D LLVM_LINK_LLVM_DYLIB=ON             \
      -D LLVM_ENABLE_RTTI=ON                 \
      -D LLVM_TARGETS_TO_BUILD="host;AMDGPU" \
      -D LLVM_BINUTILS_INCDIR=/usr/include   \
      -D LLVM_INCLUDE_BENCHMARKS=OFF         \
      -D CLANG_DEFAULT_PIE_ON_LINUX=ON       \
      -D CLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \
      -W no-dev -G Ninja ..                  &&
ninja

Se você deseja executar a suíte de teste e tiver baixado o compiler-rt, contorne um problema que causa falhas de testes ao construir o LLVM com GCC e -D CLANG_CONFIG_FILE_SYSTEM_DIR:

sed -e 's/config.has_no_default_config_flag/True/' \
    -i ../projects/compiler-rt/test/lit.common.cfg.py

A suíte de testes do LLVM pode produzir muitos arquivos de despejo de core. Eles ocuparão uma grande quantidade de espaço em disco e o processo de despejo de core pode retardar significativamente a testagem. Para testar os resultados com o despejo de core desabilitado, emita:

sh -c 'ulimit -c 0 && ninja check-all'

Se -jN (N substituído por um número) for passado para ninja, os testes serão construídos com N núcleos lógicos, mas executados usando todos os núcleos lógicos disponíveis. Execute o comando de teste em um cgroup ( leia “Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” para detalhes) para limitar o número de núcleos lógicos para executar os testes. Um teste chamado Linux/clone_setns.cpp falhará se CONFIG_USER_NS não estiver habilitada na configuração do núcleo.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D LLVM_ENABLE_FFI=ON: Essa chave permite que o LLVM use libffi.

-D LLVM_BUILD_LLVM_DYLIB=ON: Essa chave constrói as bibliotecas como estáticas e vincula todas elas em uma biblioteca compartilhada exclusiva. Essa é a forma recomendada de construir uma biblioteca compartilhada.

-D CMAKE_BUILD_TYPE=Release: Essa chave habilita otimizações do compilador para a finalidade de acelerar o código e reduzir o tamanho dele. Também desabilita algumas verificações de compilação que não são necessárias em um sistema de produção.

-D LLVM_TARGETS_TO_BUILD="host;AMDGPU": Essa chave habilita construir para o mesmo alvo que o anfitrião e, também, para a GPU r600 da AMD, usada pelos controladores r600 e radeonsi do Mesa. O padrão é todos os alvos. Você pode usar uma lista separada por ponto e vírgula. Os alvos válidos são: host, AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, LoongArch, Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SystemZ, SystemZ, VE, WebAssembly, X86, XCore ou all.

-D LLVM_LINK_LLVM_DYLIB=ON: Usado em conjunção com -D LLVM_BUILD_LLVM_DYLIB=ON, essa chave habilita vincular as ferramentas à biblioteca compartilhada em vez das estáticas. Reduz ligeiramente o tamanho delas e também garante que "llvm-config" usará corretamente "libLLVM-19.so".

-D LLVM_ENABLE_RTTI=ON: Essa chave é usada para construir LLVM com informações de tipo de tempo de execução. Isso é necessário para construir Mesa-24.3.4.

-D LLVM_BINUTILS_INCDIR=/usr/include: Essa chave é usada para informar ao sistema de construção o local dos cabeçalhos do binutils, que foram instalados no LFS. Isso permite a construção de LLVMgold.so, que é necessário para construir aplicativos com clang e Link Time Optimization (LTO).

-D LLVM_INCLUDE_BENCHMARKS=OFF: é usado para desabilitar geração de alvos de construção para as avaliações do LLVM. Essa opção exige código adicional que não está disponível atualmente.

-D CLANG_DEFAULT_PIE_ON_LINUX=ON: torna a opção -fpie o padrão ao compilar aplicativos. Junto com o recurso ASLR habilitado no núcleo, isso derrota alguns tipos de ataques baseados em esquemas conhecidos de memória.

-D CLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang: faz com que clang e clang++ pesquisem /etc/clang para arquivos de configuração.

-D BUILD_SHARED_LIBS=ON: se usado em vez de -D LLVM_BUILD_LLVM_DYLIB=ON e -D LLVM_LINK_LLVM_DYLIB=ON, constrói todas as bibliotecas LLVM (cerca de sessenta (60)) como bibliotecas compartilhadas em vez de estáticas.

-D LLVM_ENABLE_DOXYGEN: habilita a geração de documentação HTML navegável se você tiver instalado Doxygen-1.13.2. Você deveria executar make doxygen-html depois e instalar a documentação gerada manualmente.

Configurando LLVM

Informação de Configuração

Se você tiver construído o Clang, como o(a) usuário(a) root, crie dois arquivos de configuração para tornar SSP habilitado por padrão para clang e clang++, de forma que a configuração padrão do recurso SSP deles seja consistente com GCC-14.2.0:

mkdir -pv /etc/clang &&
for i in clang clang++; do
  echo -fstack-protector-strong > /etc/clang/$i.cfg
done

Conteúdo

Aplicativos Instalados: amdgpu-arch, analyze-build, bugpoint, c-index-test, clang, clang++ (links simbólicos para clang-19), clang-19, clang-check, clang-cl, clang-cpp (os últimos dois links simbólicos para clang), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-offload-bundler, clang-offload-packager, clang-refactor, clang-rename, clang-repl, clang-scan-deps, clang-tblgen, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (link simbólico para llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (link simbólico para llvm-objcopy), llvm-cat, llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer, llvm-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (link simbólico para llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (link simbólico para llvm-objcopy), llvm-jitlink, llvm-lib (link simbólico para llvm-ar), llvm-libtool-darwin, llvm-link, llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml, llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report, llvm-otool (link simbólico para llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (link simbólico para llvm-ar), llvm-rc, llvm-readelf (link simbólico para llvm-readobj), llvm-readobj, llvm-readtapi, llvm-reduce, llvm-remarkutil, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (link simbólico para llvm-objcopy), llvm-symbolizer, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (link simbólico para llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build, scan-build-py, scan-view e verify-uselistorder
Bibliotecas Instaladas: libLLVM.so, libLLVM*.a (107 bibliotecas), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang*.a (43 bibliotecas) e LLVMgold.so
Diretórios Instalados: /usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild}, /usr/share/{clang,opt-viewer,scan-build,scan-view} e /etc/clang

Descrições Curtas

amdgpu-arch

lista as GPUs AMD instaladas; em tempo de execução ele precisa de libhsa-runtime64.so que não é parte do BLFS

analyze-build

é uma ferramenta de análise estática

bugpoint

é a ferramenta automática de redução de casos de teste

c-index-test

é usado para testar a API da libclang e demonstrar o uso dela

clang

é o compilador C, C++ e Objective-C do Clang

clang-check

é uma ferramenta para realizar análise estática de código e exibir Abstract Syntax Trees (AST)

clang-extdef-mapping

é uma ferramenta para coletar o nome do USR e o local de definições externas em um arquivo de fonte

clang-format

é uma ferramenta para formatar código C/C++/Java/JavaScript/Objective-C/Protobuf

clang-linker-wrapper

é um utilitário envólucro sobre o vinculador de dispositivo

clang-offload-bundler

é uma ferramenta para agrupar/desagrupar arquivos descarregados OpenMP associados a um arquivo fonte comum

clang-offload-packager

é uma ferramenta para agrupar vários arquivos de objeto em um binário, que pode então ser usado para criar um binário que contenha código nativo para várias arquiteturas de processador contendo código de descarregamento

clang-refactor

é uma ferramenta de refatoração baseada em Clang para C, C++ e Objective-C

clang-rename

é uma ferramenta para renomear símbolos em aplicativos C/C++

clang-scan-deps

é uma ferramenta para escanear dependências em um arquivo fonte

clang-tblgen

é um programa que traduz arquivos de descrição de alvo relacionados ao compilador (.td) para código C++ e outros formatos de saída

diagtool

é uma combinação de ferramentas para lidar com diagnósticos em clang

FileCheck

é uma ferramenta que lê dois arquivos (um a partir da entrada padrão e outro especificado na linha de comando) e usa um para verificar o outro.

dsymutil

é uma ferramenta usada para manipular arquivos de símbolos de depuração DWARF arquivados, compatível com o comando dsymutil do Darwin

git-clang-format

executa clang-format em remendos gerados pelo git (exige git-2.48.1)

hmaptool

é uma ferramenta Python para despejar e construir mapas de cabeçalho

intercept-build

gera uma base de dados de comandos de construção para um projeto

llc

é o compilador estático LLVM

lli

é usado para executar aplicativos diretamente a partir do bitcode do LLVM

llvm-addr2line

é uma ferramenta usada para converter endereços em nomes de arquivos e números de linha

llvm-ar

é o arquivador do LLVM

llvm-as

é o montador do LLVM

llvm-bcanalyzer

é o analizador de bitcode do LLVM

llvm-bitcode-strip

remove o bitcode de LLVM de um objeto

llvm-cat

é uma ferramenta para concatenar módulos llvm

llvm-cfi-verify

identifica se o Control Flow Integrity protege todas as instruções de fluxo de controle indireto no arquivo de objeto fornecido, DSO ou binário

llvm-config

Imprime as opções de compilação do LLVM

llvm-cov

é usado para emitir informações de cobertura

llvm-c-test

é um desmontador de bytecode

llvm-cvtres

é uma ferramenta para converter arquivos de recursos da Microsoft em COFF

llvm-cxxdump

é usado como um Despejador de Dados de ABI da C++

llvm-cxxfilt

é usado para desmontar símbolos C++ no código llvm

llvm-cxxmap

é usado para remapear símbolos mutilados da C++

llvm-debuginfo-analyzer

imprime uma representação lógica de informações de depuração de baixo nível

llvm-debuginfod

é um serviço que fornece informações de depuração por meio de uma API de HTTP para analisar binários despojados

llvm-debuginfod-find

é uma interface para o processo de segundo plano llvm-debuginfod para achar artefatos debuginfod

llvm-diff

é o 'diff' estrutural do LLVM

llvm-dis

é o desmontador do LLVM

llvm-dwarfdump

imprime o conteúdo das seções DWARF em arquivos objeto

llvm-dwarfutil

é uma ferramenta para copiar e manipular informações de depuração

llvm-dwp

mescla arquivos divididos DWARF

llvm-elfabi

é usado para ler informações relativas a uma ABI de um binário ELF

llvm-exegesis

é uma ferramenta de comparação que usa informações disponíveis no LLVM para medir características de instrução de máquina do dispositivo, como latência ou decomposição de porta

llvm-extract

é usado para extrair uma função a partir de um módulo do LLVM

llvm-gsymutil

é usado para processar arquivos no formato de simbolização GSYM que convertem endereços de memória para nome de função e linha de arquivo fonte. Esses arquivos são menores que os arquivos "DWARF" ou "Breakpad"

llvm-ifs

é usado para mesclar "stubs" de interface com arquivos de objeto

llvm-install-name-tool

é usado para reescrever comandos de carregamento no formato binário "MachO"

llvm-jitlink

é usado para analisar arquivos de objetos relocáveis para tornar o conteúdo deles executável em um processo alvo

llvm-libtool-darwin

fornece funcionalidade básica da libtool em sistemas baseados em Darwin. Isso é útil principalmente se você estiver gerando binários para sistemas macOS

llvm-link

é o vinculador do LLVM

llvm-lipo

é usado para criar binários universais a partir de arquivos MachO

llvm-lto

é o vinculador Link Time Optimization (LTO) do LLVM

llvm-lto2

é um equipamento de teste para a interface LTO baseada em resolução

llvm-mc

é um montador/desmontador de código de máquina autônomo

llvm-mca

é uma ferramenta de análise de desempenho para medir estaticamente o desempenho do código de máquina

llvm-ml

é um área de recreação para código de máquina fornecido pelo LLVM

llvm-modextract

é uma ferramenta para extrair um módulo a partir de arquivos bitcode multi módulos

llvm-mt

é uma ferramenta para gerar arquivos e catálogos assinados a partir de um manifesto de montagem lado a lado (usado para SDK da Microsoft)

llvm-nm

é usado para listar o bitcode do LLVM e a tabela de símbolos do arquivo objeto

llvm-objcopy

é a versão do LLVM de uma ferramenta objcopy

llvm-objdump

é um despejador de arquivo objeto do LLVM

llvm-opt-report

é uma ferramenta para gerar um informe de otimização a partir de arquivos de registro de otimização YAML

llvm-pdbutil

é um despejador Program Database (PDB). PDB é um formato da Microsoft

llvm-profdata

é uma pequena ferramenta para manipular e imprimir arquivos de dados de perfil

llvm-profgen

gera informações de perfil SPGO do LLVM

llvm-ranlib

é usado para gerar um índice para um arquivamento do LLVM

llvm-rc

é uma ferramenta independente de plataforma para compilar scripts de recursos em arquivos de recursos de binários

llvm-readobj

exibe informações específicas de formato de baixo nível relativas a arquivos de objeto

llvm-readtapi

é o leitor e transformador de arquivos TAPI do LLVM

llvm-reduce

é usado para reduzir automaticamente os casos de teste ao executar uma suíte de teste

llvm-remarkutil

converte arquivos de observação entre bitstream e YAML; ou imprime informações de contagem de instruções de função em arquivos de observação

llvm-rtdyld

é a ferramenta MC-JIT do LLVM

llvm-size

é o despejador de tamanho de objeto do LLVM

llvm-split

é o divisor de módulo do LLVM

llvm-stress

é usado para gerar arquivos aleatórios .ll

llvm-strings

imprime sequências de caracteres encontradas em um binário (arquivo objeto, executável ou biblioteca de arquivamento)

llvm-symbolizer

converte endereços em locais de código-fonte

llvm-tblgen

é a descrição alvo do LLVM para o gerador de código C++

llvm-tli-checker

é o verificador TargetLibraryInfo versus SDK do LLVM

llvm-undname

é uma ferramenta para desmantelar nomes

llvm-xray

é uma implementação do sistema de rastreamento de chamadas de função XRay do Google

nvptx-arch

lista as GPUs NVIDIA instaladas; em tempo de execução ele precisa de libcuda.so que não é parte do BLFS

opt

é o otimizador do LLVM

sancov

é a ferramenta de processamento de cobertura de higienizador

sanstats

é a ferramenta de processamento de estatísticas de higienizador

scan-build

é um conjunto de comandos sequenciais Perl que invoca o analisador estático Clang

scan-build-py

é um conjuntos de comandos sequenciais Python que invoca o analisador estático Clang

scan-view

é um visualizador dos resultados do analisador estático Clang

verify-uselistorder

é a ferramenta do LLVM para verificar a ordem da lista de uso

Lua-5.4.7

Introdução ao "Lua"

Lua é uma linguagem de programação poderosa e leve projetada para estender aplicativos. Também é frequentemente usada como uma linguagem autônoma de uso geral. Lua é implementada como uma pequena biblioteca de funções "C", escrita em "ANSI C", e compila sem modificações em todas as plataformas conhecidas. Os objetivos de implementação são simplicidade, eficiência, portabilidade e baixo custo de incorporação. O resultado é um mecanismo de linguagem rápido e compacto, tornando-a ideal em sistemas embarcados também.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.lua.org/ftp/lua-5.4.7.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fc3f3291353bbe6ee6dec85ee61331e8

  • Tamanho da transferência: 368 KB

  • Espaço em disco estimado exigido: 3,8 MB (com testes Básicos)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes Básicos)

Transferências Adicionais

Instalação do "Lua"

Alguns pacotes verificam o arquivo pkg-config para Lua, o qual é criado com:

cat > lua.pc << "EOF"
V=5.4
R=5.4.7

prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/share/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Lua
Description: Uma Linguagem de Extensão Extensível
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm -ldl
Cflags: -I${includedir}
EOF

Instale Lua executando os seguintes comandos:

patch -Np1 -i ../lua-5.4.7-shared_library-1.patch &&
make linux

Para testar os resultados, emita: make test. Isso executará o interpretador e imprimirá a versão dele. Testes mais abrangentes podem ser realizados se você baixou o tarball da "Suíte de teste". Esses testes precisam ser executados depois que o pacote estiver instalado, por isso seguimos para a descrição abaixo.

Agora, como o(a) usuário(a) root:

make INSTALL_TOP=/usr               \
     INSTALL_DATA="cp -d"            \
     INSTALL_MAN=/usr/share/man/man1 \
     TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.7" \
     install &&

mkdir -pv                      /usr/share/doc/lua-5.4.7 &&
cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.7 &&

install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc

Aqui descrevemos somente os "Testes básicos". Descompacte o "tarball" e mude para o diretório lua-5.4.7-tests e emita lua -e "_U=true" all.lua. Se os testes terminarem sem erros, [então] você verá uma mensagem contendo a sequência de caracteres "final OK".

Conteúdo

Aplicativos Instalados: lua e luac
Biblioteca Instalada: liblua.so
Diretórios Instalados: /usr/{lib,share}/lua e /usr/share/doc/lua-5.4.7

Descrições Curtas

lua

é o interpretador independente "Lua"

luac

é o compilador "Lua"

liblua.so

contém as funções da "API" da Lua

luajit-20250212

Introdução ao luajit

O pacote luajit contém um compilador Just-In-Time para Lua. Ele frequentemente é usado como middleware de automação, e tem alto desempenho, ao mesmo tempo em que ocupa pouca memória.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do luajit

Instale luajit executando os seguintes comandos:

make PREFIX=/usr amalg

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr install &&
rm -v /usr/lib/libluajit-5.1.a

Explicações do Comando

amalg: Isso garante uma construção amalgamada, ou seja, o núcleo LuaJIT é compilado como um grande arquivo C, permitindo que o GCC gere código mais rápido e mais curto.

Conteúdo

Aplicativos Instalados: luajit (link simbólico para luajit-2.1.ROLLING) e luajit-2.1.ROLLING
Bibliotecas Instaladas: libluajit-5.1.so
Diretórios Instalados: /usr/include/luajit-2.1 e /usr/share/luajit-2.1

Descrições Curtas

luajit

fornece um compilador Just-In-Time para Lua

libluajit-5.1.so

contém uma API para o compilador Just-In-Time para Lua

Mercurial-6.9.2

Introdução ao "Mercurial"

Mercurial é uma ferramenta de gerenciamento distribuído de controle de fonte semelhante ao Git e ao Bazaar. Mercurial é escrita em Python e é usada por projetos como "Mozilla" para "Firefox" e "Thunderbird".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.mercurial-scm.org/release/mercurial-6.9.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 05cb7a265bf503c0b934e3591f3c66ac

  • Tamanho da transferência: 8,3 MB

  • Espaço em disco estimado exigido: 83 MB (com documentos, adicionar 1,6 GB para testes)

  • Tempo de construção estimado: 0,3 UPC (com documentos; adicionar 15 UPC para testes; ambos usando paralelismo=8)

Dependências do "Mercurial"

Opcionais

docutils-0.21.2 (exigido para construir a documentação), git-2.48.1, GPGME-1.24.2 (com ligações "Python"), OpenSSH-9.9p2 (tempo de execução, para acessar repositórios "ssh://..."), Pygments-2.19.1, rustc-1.85.0 (veja-se rust/README.rst e rust/rhg/README.md), Subversion-1.14.5 (com ligações "Python"), Bazaar, CVS, pyflakes, pyOpenSSL e re2

Instalação do "Mercurial"

Construa Mercurial emitindo o seguinte comando:

make build

Para construir a documentação (exige docutils-0.21.2), emita:

make doc

Se você desejar executar os testes, os testes rust precisam ser removidos, pois estão atualmente quebrados devido a erros de sintaxe. Para fazer isso, emita:

sed -i '138,142d' Makefile

Para executar a suíte de teste, emita:

TESTFLAGS="-j<N> --tmpdir tmp" make check

onde <N> é um número inteiro entre um e o número de (camadas X do processador), inclusive. Testes possivelmente falhem porque algumas mensagens de erro foram mudadas no Python ou alguns avisos de descontinuação são impressos, que não estavam presentes quando o teste foi projetado. Dois testes são conhecidos por falharem: test-duplicateoptions.py e test-highlight.t.

Para a finalidade de investigar quaisquer testes aparentemente falhos, você possivelmente use o conjunto de comandos sequenciais run-tests.py. Para ver as quase quarenta chaves, algumas delas muito úteis, emita tests/run-tests.py --help. Executando os seguintes comandos, você executará somente os testes que falharam antes:

pushd tests &&
  rm -rf tmp &&
  ./run-tests.py --tmpdir tmp test-gpg.t
popd

Normalmente, as falhas anteriores serão reproduzíveis. Porém, se você adicionar a chave --debug antes de --tmpdir e executar os testes novamente, [então] algumas falhas possivelmente desapareçam, o que é um problema com a suíte de teste. Se isso acontecer, [então] não mais existirão falhas, mesmo se você não passar a chave "--debug" novamente.

Uma chave interessante é --time, que gerará uma tabela de todos os testes executados e respectivos tempos de início, fim, usuário(a), sistema e real assim que os testes estiverem completos. Observe que essas chaves possivelmente sejam usadas com make check incluindo-as na variável de ambiente TESTFLAGS.

Instale o Mercurial executando o seguinte comando (como root):

make PREFIX=/usr install-bin

Se você construiu a documentação, [então] instale-a executando o seguinte comando (como root):

make PREFIX=/usr install-doc

Depois da instalação, dois testes muito rápidos e simples deveriam executar corretamente. O primeiro precisa de alguma configuração:

cat >> ~/.hgrc << "EOF"
[ui]
username = <nome_usuário(a)> <usuário(a)@correio>
EOF

onde você precisa substituir <nome_usuário(a)> e <seu@correio-eletrônico> (o correio é opcional e pode ser omitido). Com a identidade do(a) usuário(a) definida, execute hg debuginstall e diversas linhas serão exibidas, a última dizendo "no problems detected". Outro teste rápido e simples é apenas hg, que deveria gerar comandos básicos que conseguem ser usados com hg.

Configurando o "Mercurial"

Arquivos de Configuração

/etc/mercurial/hgrc e ~/.hgrc

A maioria das extensões está desabilitada por padrão. Execute hg help extensions se precisar habilitar alguma, por exemplo. ao investigar falhas de teste. Isso exibirá uma lista de extensões habilitadas e desabilitadas, bem como mais informações, tais como habilitar ou desabilitar extensões usando arquivos de configuração.

Se você tiver instalado o make-ca-1.15 e deseja que o Mercurial use os certificados, [então] como o(a) usuário(a) root, emita:

install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/pki/tls/certs/ca-bundle.crt
EOF

Conteúdo

Aplicativos Instalados: hg
Bibliotecas Instaladas: vários módulos internos sob /usr/lib/python3.13/site-packages/mercurial
Diretórios Instalados: /etc/mercurial, /usr/lib/python3.13/site-packages/hgdemandimport, /usr/lib/python3.13/site-packages/hgext, /usr/lib/python3.13/site-packages/hgext3rd, /usr/lib/python3.13/site-packages/mercurial e /usr/lib/python3.13/site-packages/mercurial-6.9.2-py3.13.egg-info

Descrições Curtas

hg

é o sistema de controle de versão "mercurial"

NASM-2.16.03

Introdução ao "NASM"

NASM ("Netwide Assembler") é um montador "80x86" projetado para portabilidade e modularidade. Inclui também um desmontador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "NASM"

Opcional (para gerar documentação):

asciidoc-10.2.1 e xmlto-0.0.29

Instalação do "NASM"

Se você baixou a documentação opcional, [então] coloque-a na árvore do fonte:

tar -xf ../nasm-2.16.03-xdoc.tar.xz --strip-components=1

Instale NASM executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você baixou a documentação opcional, [então] instale-a com as seguintes instruções como o(a) usuário(a) root:

install -m755 -d        /usr/share/doc/nasm-2.16.03/html  &&
cp -v doc/html/*.html    /usr/share/doc/nasm-2.16.03/html  &&
cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.16.03

Conteúdo

Aplicativos Instalados: nasm e ndisasm
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/nasm-2.16.03

Descrições Curtas

nasm

é um montador portável "80x86"

ndisasm

é um desmontador de arquivos binários "80x86"

Patchelf-0.18.0

Introdução ao "Patchelf"

O pacote patchelf contém um pequeno utilitário para modificar o vinculador dinâmico e o "RPATH" dos executáveis "ELF".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Patchelf"

Instale patchelf executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/patchelf-0.18.0 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: patchelf

Descrições Curtas

patchelf

é um utilitário simples para modificar executáveis e bibliotecas "ELF" existentes; ele consegue mudar o carregador dinâmico ("interpretador ELF") de executáveis e mudar o "RPATH" de executáveis e bibliotecas.

Módulos Perl

Introdução aos Módulos "Perl"

Os pacotes de módulos Perl (também chamados de Distribuições, porque cada um pode conter vários módulos) adicionam objetos úteis à linguagem Perl. Os pacotes listados nesta página são exigidos ou recomendados para outros pacotes no livro. Se eles tiverem módulos dependentes, [então] esses estarão ou nesta página ou na próxima página (Dependências de Módulos "Perl").

Em muitos casos, somente as dependências exigidas ou as recomendadas são listadas - pode existir outros módulos que permitam mais testes serem executados, mas omiti-los ainda permitirá que os testes PASSEM.

Para uns poucos módulos, os(as) editores(as) do BLFS determinaram que outros módulos ainda listados como pré requisitos não são exigidos e os omitiram.

Quando uma dependência alfabeticamente anterior do mesmo módulo atrai uma dependência, ela não é mencionada para as dependências posteriores do mesmo módulo. Você deveria construir as dependências listadas na ordem.

Geralmente compensa executar os testes para módulos "Perl"; eles frequentemente conseguem mostrar problemas, como dependências ausentes, que são exigidas para usar o módulo. Aqui, os(as) editores(as) tentaram separar tais dependências, que são exigidas somente para executar suítes de teste, mas elas não serão mencionadas para um módulo onde uma das dependências dele usa esse módulo para a própria suíte de teste dela. Ou seja, se você pretende executar as suítes de teste, [então] execute-as para cada dependência do módulo.

É possível instalar automaticamente as versões atuais de um módulo e todas as dependências ausentes ou muito antigas recomendadas pelo(a) desenvolvedor(a) usando a "CPAN". Veja-se Instalação automatizada "CPAN" de módulos "Perl" no final desta página.

A maioria desses módulos instala somente arquivos abaixo de /usr/lib/perl5/site_perl/5.xx.y e eles não serão documentados. Um ou dois instalão aplicativos (principalmente scripts "Perl"), ou uma biblioteca, em /usr/bin/ ou /usr/lib/ e esses estão documentados.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules

Archive::Zip-1.68

Introdução ao "Archive::Zip"

O módulo "Archive::Zip" permite que um aplicativo "Perl" crie, manipule, leia e escreva arquivamentos "Zip".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Archive::Zip"
Recomendadas (para a suíte de teste)

libarchive-3.7.7

Instalação do "Archive::Zip"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: crc32

Descrições Curtas

crc32

computa e imprime na saída gerada padrão os valores "CRC-32" dos arquivos fornecidos

autovivification-0.18

Introdução ao módulo "autovivification"

Esse módulo permite que você desabilite a "autovivificação" (a criação e povoamento automática de novos vetores e resumos sempre que variáveis indefinidas são desreferenciadas) e, opcionalmente, lançar um aviso ou um erro quando isso tivesse ocorrido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "autovivification"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Business::ISBN-3.011

Introdução ao "Business::ISBN"

O módulo "Business::ISBN" fornece funções para trabalhar-se com números internacionais padrão de livros.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Business::ISBN"
Exigidas

Business-ISBN-Data-20250205.001

Instalação do "Business::ISBN"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Business::ISMN-1.204

Introdução ao "Business::ISMN"

O módulo Business::ISMN fornece funções para trabalhar com International Standard Music Numbers.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Business::ISMN"
Exigidas

Tie-Cycle-1.229

Instalação do "Business::ISMN"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Business::ISSN-1.008

Introdução ao "Business::ISSN"

O módulo Business::ISSN fornece funções para trabalhar com International Standard Serial Numbers.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Business::ISSN"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Accessor-0.51

Introdução ao "Class::Accessor"

"Class::Accessor" gera acessadores/mutadores para sua classe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Class::Accessor"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Data::Compare-1.29

Introdução ao "Data::Compare"

O módulo "Data::Compare" compara duas estruturas de dados perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Data::Compare"
Exigidas

Clone-0.47 e File-Find-Rule-0.34

Instalação do "Data::Compare"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Data::Dump-1.25

Introdução ao "Data::Dump"

"Data::Dump" fornece uma impressão bonita de estruturas de dados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Data::Dump"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Data::Uniqid-0.12

Introdução ao "Data::Uniqid"

"Data::Uniqid" fornece três rotinas simples para gerar "IDs" exclusivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Data::Uniqid"

Embora o teste final falhe e informe um "Error", a suíte de teste retorna uma situação de zero (0). O erro pode ser seguramente ignorado.

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::Calendar::Julian-0.107

Introdução ao "DateTime::Calendar::Julian"

"DateTime::Calendar::Julian" implementa o Calendário Juliano.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime::Calendar::Julian"
Exigidas

DateTime-1.65

Instalação do "DateTime::Calendar::Julian"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::Format::Builder-0.83

Introdução ao "DateTime::Format::Builder"

DateTime::Format::Builder cria classes e objetos do analisador DateTime.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime::Format::Builder"
Exigidas

DateTime-Format-Strptime-1.79 e Params-Validate-1.31

Instalação do "DateTime::Format::Builder"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::EUCJPASCII-0.03

Introdução ao "Encode::EUCJPASCII"

"Encode::EUCJPASCII" fornece um mapeamento "eucJP-open" ("Extended Unix Code", japonês).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Encode::EUCJPASCII"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::HanExtra-0.23

Introdução ao "Encode::HanExtra"

O módulo "Encode::HanExtra" fornece conjuntos extras de codificações chinesas as quais não estão incluídas no módulo "Encode" principal devido a problemas de tamanho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Encode::HanExtra"

Esse módulo usa as instruções de construção e instalação 'inseguras' (no perl-5.26.0 o uso do diretório atual em @INC foi removido por razões de segurança e esse módulo não foi atualizado):

PERL_USE_UNSAFE_INC=1 perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::JIS2K-0.05

Introdução ao "Encode::JIS2K"

O módulo "Encode::JIS2K" fornece codificações "JIS X 0212" (também conhecidas como "JIS 2000").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Encode::JIS2K"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::FcntlLock-0.22

Introdução ao File::FcntlLock

File::FcntlLock é um módulo para fazer bloqueio de arquivos de maneira orientada a objetos usando a chamada de sistema fcntl(2). Isso permite bloqueios em partes de um arquivo, bem como em todo o arquivo e supera alguns problemas conhecidos com flock(2), no qual a função flock() do Perl é baseada por padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do File::FcntlLock

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Slurper-0.014

Introdução ao "File::Slurper"

"File::Slurper" é um módulo simples, sensato e eficiente para sorver um arquivo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "File::Slurper"
Recomendadas (exigidas para a suíte de teste)

Instalação do "File::Slurper"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Which-1.27

Introdução ao "File::Which"

"File::Which" fornece uma implementação portável do utilitário 'which'.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "File::Which"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTML::Parser-3.83

Introdução ao "HTML::Parser"

A distribuição "HTML::Parser" é uma coleção de módulos que analisam e extraem informações a partir de documentos "HTML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "HTML::Parser"
Exigidas

HTML-Tagset-3.24 e HTTP-Message-7.00 (estritamente falando, não exigido para construção, mas o módulo HTTP::Headers dele é exigido para testes e uma exigência de tempo de execução para HTML::HeadParser proveniente dessa distribuição).

Instalação do "HTML::Parser"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Daemon-6.16

Introdução ao "HTTP::Daemon"

As instâncias da classe "HTTP::Daemon" são servidores "HTTP/1.1" que escutam em um soquete as solicitações entrantes. O "HTTP::Daemon" é uma subclasse de "IO::Socket::INET", de forma que você consegue realizar operações de soquete diretamente nele também.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "HTTP::Daemon"
Exigidas

HTTP-Message-7.00

Nota

"Makefile.PL" e a execução dos testes reclamarão que "Module::Build::Tiny" está ausente, mas isso só é necessário para Build.PL que é usado se o sistema carecer de um compilador "C".

Instalação do "HTTP::Daemon"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

IO::Socket::SSL-2.089

Introdução ao "IO::Socket::SSL"

"IO::Socket::SSL" torna usar "SSL/TLS" muito mais fácil, agrupando a funcionalidade necessária na interface familiar "IO::Socket" e fornecendo padrões seguros sempre que possível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "IO::Socket::SSL"
Exigidas

make-ca-1.15 e Net-SSLeay-1.94

Recomendadas

Instalação do "IO::Socket::SSL"

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes | perl Makefile.PL &&
make                   &&
make test

Um teste, Client non-SSL connection, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes: "Perl" perguntará se você deseja executar testes externos, que "falharão suavemente" se existirem problemas de rede de comunicação. O padrão é "y", que permitirá que você automatize o processo de construção.

IO::String-1.08

Introdução ao "IO::String"

"IO::String" - Emula interface de arquivo para sequências internas de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "IO::String"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

IPC::Run3-0.049

Introdução ao "IPC::Run3"

"IPC::Run3" é usado para executar um subprocesso com redirecionamento de entrada/saída.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "IPC::Run3"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Lingua::Translit-0.29

Introdução ao "Lingua::Translit"

"Lingua::Translit" e o aplicativo translit transliteram texto entre sistemas de escrita.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Lingua::Translit"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: translit

Descrições Curtas

translit

translitera texto entre sistemas de escrita usando vários padrões

LWP (libwww-perl-6.78)

Introdução à "LWP" - A biblioteca "World-wide Web" para Perl

A coleção "libwww-perl" é um conjunto de módulos "Perl" que fornece uma interface de programação de aplicativos ("API") simples e consistente para a "World Wide Web". O foco principal da biblioteca é o de fornecer classes e funções que te permitem escrever clientes "WWW". A biblioteca também contém módulos que são de uso mais geral e até classes que te ajudam a implementar servidores "HTTP" simples.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências da "libwww-perl"
Exigidas

File-Listing-6.16, HTTP-CookieJar-0.014, HTTP-Cookies-6.11, HTTP-Daemon-6.16, HTTP-Negotiate-6.01, HTML-Parser-3.83, Net-HTTP-6.23, Try-Tiny-0.32 e WWW-RobotRules-6.02

Recomendadas (exigidas para a suíte de teste)

Instalação da "libwww-perl"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Depois de instalar esse pacote, se você desejar suporte ao protocolo "HTTPS", [então] instale LWP-Protocol-https-6.14.

Conteúdo

Aplicativos Instalados: lwp-download, lwp-dump, lwp-mirror, lwp-request

Descrições Curtas

lwp-download

é um script para buscar um arquivo grande a partir da "web"

lwp-dump

é usado para ver quais cabeçalhos e conteúdo são retornados para um "URL"

lwp-mirror

é um utilitário simples de espelho

lwp-request

é um agente simples de usuário(a) de linha de comando

List::AllUtils-0.19

Introdução ao "List::AllUtils"

O módulo "List::Allutils" combina "List::Util" e "List::MoreUtils" em um pacote pequeno.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "List::AllUtils"
Exigidas

List-SomeUtils-0.59 e List-UtilsBy-0.12

Instalação do "List::AllUtils"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::MoreUtils-0.430

Introdução ao "List::MoreUtils"

"List::MoreUtils" fornece o que falta em "List::Util".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "List::MoreUtils"
Exigidas

Exporter-Tiny-1.006002 e List-MoreUtils-XS-0.430

Instalação do "List::MoreUtils"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Log::Log4perl-1.57

Introdução ao "Log::Log4perl"

"Log::Log4perl" fornece uma implementação "Log4j" para perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Log::Log4perl"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: l4p-templ

Descrições Curtas

l4p-templ

imprime o texto de um modelo de configuração do "Log4perl" para iniciar um novo arquivo de configuração do "Log4perl"

LWP::Protocol::https-6.14

Introdução ao "LWP::Protocol::https"

"LWP::Protocol::https" fornece suporte "HTTPS" para "LWP::UserAgent" (ou seja, libwww-perl-6.78). Depois que o módulo estiver instalado, o "LWP" será capaz de acessar sítios usando "HTTP" sobre "SSL"/"TLS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "LWP::Protocol::https"
Exigidas

IO-Socket-SSL-2.089, libwww-perl-6.78 e make-ca-1.15 com /etc/pki/tls/certs/ca-bundle.crt.

Instalação do "LWP::Protocol::https"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Module::Build-0.4234

Introdução ao "Module::Build"

"Module::Build" permite módulos "Perl" serem construídos sem um comando make estar presente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Module::Build"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Observe que esse módulo também pode ser construído usando Build.PL

Conteúdo

Aplicativos Instalados: config_data

Descrições Curtas

config_data

é usado para consultar ou mudar a configuração de módulos "Perl"

Net::DNS-1.50

Introdução ao "Net::DNS"

"Net::DNS" é um resolvedor de "DNS" implementado em Perl. Ele pode ser usado para realizar praticamente qualquer tipo de consulta "DNS" a partir de um script Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Net::DNS"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Parse::RecDescent-1.967015

Introdução ao "Parse::RecDescent"

"Parse::RecDescent" gera incrementalmente analisadores de texto descendentes recursivos de cima para baixo a partir de especificações gramaticais simples do tipo "yacc".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Parse::RecDescent"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Parse::Yapp-1.21

Introdução ao "Parse::Yapp"

"Parse::Yapp" é uma extensão "Perl" para gerar e usar analisadores "LALR".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Parse::Yapp"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: yapp

Descrições Curtas

yapp

é uma interface para o módulo "Parse::Yapp", que te permite criar um analisador "Perl" "OO" a partir de um arquivo de gramática de entrada

PerlIO::utf8_strict-0.010

Introdução ao "PerlIO::utf8_strict"

PerlIO::utf8_strict fornece uma camada UTF-8 PerlIO rápida e correta. Ao contrário da camada :utf8 padrão do Perl, ele verifica a correção da entrada gerada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "PerlIO::utf8_strict"
Recomendadas (exigidas para a suíte de teste)

Instalação dp "PerlIO::utf8_strict"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Regexp::Common-2024080801

Introdução ao "Regexp::Common"

"Regexp::Common" fornece expressões regulares comumente solicitadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Regexp::Common"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

SGMLSpm-1.1

Introdução ao "SGMLSpm"

O módulo "SGMLSpm" é uma biblioteca Perl usada para analisar a saída gerada a partir dos analisadores "SGMLS" e "NSGMLS" de James Clark.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "SGMLSpm"

Antes de iniciar a construção, emita o seguinte comando para evitar um erro:

chmod -v 644 MYMETA.yml

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Depois de o pacote ter sido instalado, execute o seguinte comando como o(a) usuário(a) root:

ln -sv sgmlspl.pl /usr/bin/sgmlspl

Conteúdo

Aplicativos Instalados: sgmlspl.pl, sgmlspl

Descrições Curtas

sgmlspl.pl

é um processador "SGML"

sgmlspl

é um vínculo simbólico usado durante a instalação de DocBook-utils-0.6.14

Sort::Key-1.33

Introdução ao "Sort::Key"

"Sort::Key" fornece um conjunto de funções para classificar listas de valores por algum valor-chave calculado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Sort::Key"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Command-0.11

Introdução ao "Test::Command"

"Test::Command" testa a situação de saída, "STDOUT" ou "STDERR", de um comando externo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Test::Command"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Differences-0.71

Introdução ao "Test::Differences"

"Test::Differences" testa sequências de caracteres e estruturas de dados e mostra as diferenças se elas não corresponderem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Test::Differences"
Exigidas

Text-Diff-1.45

Recomendadas (exigidas para a suíte de teste)

Instalação do "Test::Differences"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::BibTeX-0.91

Introdução ao "Text::BibTeX"

"Text::BibTeX" fornece uma interface para ler e analisar arquivos BibTeX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Text::BibTeX"
Exigidas

Config-AutoConf-0.320 e ExtUtils-LibBuilder-0.09

Instalação do "Text::BibTeX"

Esse módulo é construído usando Build.PL:

perl Build.PL &&
./Build       &&
./Build test

Agora, como o(a) usuário(a) root:

./Build install

Conteúdo

Aplicativos Instalados: biblex, bibparse, dumpnames
Bibliotecas Instaladas: libbtparse.so

Descrições Curtas

biblex

realiza análise léxica em um arquivo "BibTeX"

bibparse

analisa uma série de arquivos "BibTeX" com opções de linha de comando para controlar o comportamento de pós-processamento da sequência de caracteres

dumpnames

analisa um arquivo "BibTeX", dividindo os campos "author" e "editor" em listas de nomes e, em seguida, despeja tudo na saída gerada padrão

libbtparse.so

é uma biblioteca para analisar e processar arquivos de dados "BibTeX"

Text::CSV-2.05

Introdução ao "Text::CSV"

"Text::CSV" é um manipulador de valores separados por vírgula, usando "XS" ("eXternal Subroutine" - para sub-rotinas escritas em "C" ou "C++") ou "Perl" puro.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Text::CSV"
Recomendadas

Instalação do "Text::CSV"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Roman-3.5

Introdução ao "Text::Roman"

"Text::Roman" permite a conversão entre algoritmos romanos e arábicos (sistemas numéricos, por exemplo, "MCMXLV" e "1945").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Text::Roman"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Unicode::Collate-1.31

Introdução ao "Unicode::Collate"

"Unicode::Collate" fornece um algoritmo de agrupamento "Unicode".

Nota

Esse é um módulo central. Se você estiver usando perl-5.28.0 ou posterior, [então] a versão dele é boa o suficiente para biber-2.20 e você não precisa reinstalar esse módulo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Unicode::Collate"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Unicode::LineBreak-2019.001

Introdução ao "Unicode::LineBreak"

"Unicode::LineBreak" fornece um algoritmo de quebra de linha "Unicode" "UAX #14".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Unicode::LineBreak"
Exigidas

MIME-Charset-1.013.1 e Wget-1.25.0 (para baixar dois arquivos a partir de unicode.org na suíte de teste)

Opcionais

Instalação do "Unicode::LineBreak"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

URI-5.31

Introdução ao "URI"

Esse módulo implementa a classe "URI". Os objetos dessa classe representam "referências de Identificador Uniforme de Recursos" conforme especificado na "RFC" 2396 (e atualizado pela "RFC" 2732). Um Identificador Uniforme de Recursos é uma sequência compacta de caracteres que identifica um recurso abstrato ou físico. Um Identificador Uniforme de Recursos pode ainda ser classificado ou como um Localizador Uniforme de Recursos ("URL") ou um Nome Uniforme de Recurso ("URN"). A distinção entre "URL" e "URN" não importa para a interface da classe "URI". Uma "referência de URI" é um "URI" que possivelmente tenha informações adicionais anexadas na forma de um identificador de fragmento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "URI"
Exigidas

MIME-Base32-1.303

Recomendadas (exigidas para a suíte de teste)
Opcionais

Business-ISBN-3.011

Instalação do "URI"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::LibXML::Simple-1.01

Introdução ao "XML::LibXML::Simple"

O módulo XML::LibXML::Simple é uma reescrita de XML::Simple para usar o analisador XML::LibXML para estruturas XML, em vez dos analisadores simples Perl ou SAX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "XML::LibXML::Simple"
Exigidas

XML-LibXML-2.0210

Instalação do "XML::LibXML::Simple"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::LibXSLT-2.003000

Introdução ao "XML::LibXSLT"

"XML-LibXSLT" fornece uma interface para libxslt-1.1.42

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "XML::LibXSLT"
Exigidas

libxslt-1.1.42 e XML-LibXML-2.0210

Instalação do "XML::LibXSLT"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::Simple-2.25

Introdução ao "XML::Simple"

"XML::Simple" fornece uma "API" fácil para ler e escrever "XML" (especialmente arquivos de configuração). Está obsoleto e o uso dele é desencorajado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "XML::Simple"
Opcionais

XML-SAX-1.02 (para um analisador alternativo, que será usado se disponível; caso contrário, XML::Parser (que foi instalado no LFS) será usado

Instalação do "XML::Simple"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::Writer-0.900

Introdução ao "XML::Writer"

"XML::Writer" fornece uma extensão Perl para escrever documentos "XML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "XML::Writer"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Instalação automatizada "CPAN" de módulos "Perl"

Instalação Automática de Módulos "Perl".

Existe uma maneira alternativa de instalar os módulos usando o comando install do "shell" cpan. O comando baixa automaticamente o fonte mais recente a partir do arquivamento "CPAN" para o módulo e quaisquer módulos de pré-requisito ausentes listados pelo(a) desenvolvedor(a). Então para cada módulo ele o extrai, executa a compilação, os testes e o instala.

Você ainda precisa instalar quaisquer dependências não "Perl" antes de executar o método de instalação automatizado. Você possivelmente queira limpar o diretório build/ depois da instalação, para liberar o espaço. Se quaisquer ações pós-instalação, como criar um link simbólico, for mencionada, [então] você também deveria executá-las.

Na primeira vez que você executar o cpan, você será solicitado(a) a inserir algumas informações relativas a locais e métodos de transferência. Essas informações são retidas em arquivos localizados em ~/.cpan.

Em particular, você possivelmente deseje configurá-lo de forma que Sudo-1.9.16p2 seja usado para as instalações, permitindo que você construa e teste como um(a) usuário(a) normal. Os exemplos a seguir não usaram essa abordagem.

Inicie o "shell" cpan emitindo "cpan" como o(a) usuário(a) root. Qualquer módulo agora pode ser instalado a partir do "prompt" cpan>  com o comando:

install <Módulo::Nome>

Para comandos e ajuda adicionais, emita "help" a partir do "prompt" cpan> .

Alternativamente, para instalações com automatizadas ou não interativas, use a seguinte sintaxe como o(a) usuário(a) root para instalar um ou mais módulos:

cpan -i <Módulo1::Nome> <Módulo2::Nome>

Revise a página de manual cpan.1 para parâmetros adicionais que você consegue passar para cpan na linha de comando.

Dependências de Módulos "Perl"

Módulos "Perl" que são exigidos somente por outros módulos

Os módulos na página anterior são referenciados a partir de outras páginas no BLFS, mas esses módulos estão no livro somente como dependências daqueles módulos. Se você usar o método de instalação "CPAN", [então] não precisará ler esta página.

Os(As) editores(as) do BLFS prestam muito menos atenção a estes módulos e as versões não serão revisadas regularmente. Em todos os casos, somente as dependências exigidas ou recomendadas estão listadas - podem existir outros módulos que permitem que mais testes sejam executados, mas omiti-los ainda permitirá que os testes PASSEM.

Nota

Os links nesta página (para metacpan.org) deveriam ir para versões "boas conhecidas", para as quais as dependências delas estão corretas. Se você desejar usar uma versão posterior, por favor, verifique o arquivo das Mudanças em https://metacpan.org - às vezes as dependências adicionadas estão listadas, outras vezes não. Alguns destes módulos tem atualizações muito frequentes, muitas vezes trazendo diferentes dependências. As versões vinculadas do metacpan.org abaixo eram conhecidas por funcionarem com as versões do módulo no BLFS quando revisadas pela última vez.

No entanto, se você notar que o arquivo de mudanças para uma versão mais recente que a do livro de desenvolvimento atual informa uma correção para um problema de segurança, [então] informe isso ou à lista "blfs-dev" ou à "blfs-support".

Da mesma forma, se você descobrir que um módulo atualizado na página anterior precisa de uma dependência extra, [então], por favor, informe isso.

Algorithm::Diff-1.201

Introdução ao "Algorithm::Diff"

"Algorithm::Diff" calcula diferenças "inteligentes" entre dois arquivos ou listas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Algorithm::Diff"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Alien::Build-2.84

Introdução ao "Alien::Build"

"Alien::Build" fornece ferramentas para construir dependências externas (não "CPAN") para "CPAN".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Alien::Build"
Exigidas

Capture-Tiny-0.50, File-Which-1.27, FFI-CheckLib-0.31 e File-chdir-0.1011

Instalação do "Alien::Build"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Alien::Build::Plugin::Download::GitLab-0.01

Introdução ao "Alien::Build::Plugin::Download::GitLab"

"Alien::Build::Plugin::Download::GitLab" permite que "Alien::Build" baixe a partir do "GitLab" (na prática, isso não baixa se a biblioteca exigida já estiver instalada no sistema).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Alien::Build::Plugin::Download::GitLab"
Exigidas

Alien-Build-2.84 e URI-5.31

Instalação do "Alien::Build::Plugin::Download::GitLab"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Alien::Libxml2-0.19

Introdução ao "Alien::Libxml2"

"Alien::Libxml2" foi projetado para permitir que módulos instalem a biblioteca "libxml2" da "C" em seu sistema. No BLFS, ele usa pkg-config para descobrir como vincular ao libxml2-2.13.6 instalado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Alien::Libxml2"
Exigidas

Alien-Build-Plugin-Download-GitLab-0.01, libxml2-2.13.6 e Path-Tiny-0.146

Recomendadas (exigidas para a suíte de teste)

Instalação do "Alien::Libxml2"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

B::COW-0.007

Introdução ao "B::COW"

"B::COW" fornece ajudantes adicionais para o módulo central "B" verificar "Copy On Write".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "B::COW"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

B::Hooks::EndOfScope-0.28

Introdução ao B::Hooks::EndOfScope

B::Hooks::EndOfScope permite que você execute código quando o Perl terminar de compilar o escopo circundante.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências de B::Hooks::EndOfScope
Exigidas

Module-Implementation-0.09, Sub-Exporter-Progressive-0.001013 e Variable-Magic-0.64

Recomendadas (exigidas para a suíte de teste)

Instalação do B::Hooks::EndOfScope

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Business::ISBN::Data-20250205.001

Introdução ao "Business-ISBN-Data"

"Business-ISBN-Data" é um pacote de dados para "Business::ISBN".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do “Business-ISBN-Data”

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Capture::Tiny-0.50

Introdução ao "Capture::Tiny"

O módulo "Capture::Tiny" captura "STDOUT" e "STDERR" a partir de "Perl", "XS" ("eXternal Subroutine", ou seja, escrito em "C" ou "C++") ou aplicativos externos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Capture::Tiny"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Data::Inheritable-0.10

Introdução ao "Class::Data::Inheritable"

"Class::Data::Inheritable" serve para criar acessadores/"mutadores" para dados de classe. Isto é, se você quiser armazenar algo acerca de sua classe como um todo (em vez de acerca de um objeto).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Class::Data::Inheritable"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Inspector-1.36

Introdução ao "Class::Inspector"

"Class::Inspector" te permite obter informações acerca de uma classe carregada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Class::Inspector"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Singleton-1.6

Introdução ao "Class::Singleton"

Um "Singleton" descreve uma classe de objeto que pode ter somente uma instância em qualquer sistema, como um aplicativo de gerenciamento de fila de documentos de impressão. Esse módulo implementa uma classe "Singleton" a partir da qual outras classes podem ser derivadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Class::Singleton"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class:Tiny-1.008

Introdução ao "Class:Tiny"

"Classe:Tiny" oferece um conjunto de ferramentas minimalistas de construção de classes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Class:Tiny"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Clone-0.47

Introdução ao "Clone"

"Clone" copia recursivamente tipos de dados "Perl".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Clone"
Recomendadas (exigidas para a suíte de teste)

Instalação do "Clone"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Config::AutoConf-0.320

Introdução ao "Config::AutoConf"

O módulo "Config::AutoConf" implementa algumas das macros "AutoConf" (detectar um comando, detectar uma biblioteca, etc.) em "Perl" puro.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Config::AutoConf"
Exigidas

Capture-Tiny-0.50 e File-Slurper-0.014

Instalação do "Config::AutoConf"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

CPAN::Meta::Check-0.018

Introdução ao "CPAN::Meta::Check"

"CPAN::Meta::Check" verifica se os requisitos descritos em um objeto "CPAN::Meta" estão presentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "CPAN::Meta::Check"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime-1.65

Introdução ao "DateTime"

"DateTime" é um objeto de data e hora para "Perl".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime"
Exigidas

DateTime-Locale-1.44 e DateTime-TimeZone-2.64

Recomendadas (exigidas para a suíte de teste)

Instalação do "DateTime"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::Format::Strptime-1.79

Introdução ao "DateTime::Format::Strptime"

DateTime::Format::Strptime implementa a maior parte de strptime(3), ou seja, ele pega uma sequência de caracteres e um padrão e retorna um objeto DateTime.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime::Format::Strptime"
Exigidas

DateTime-1.65

Instalação do "DateTime::Format::Strptime"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::Locale-1.44

Introdução ao "DateTime::Locale"

"DateTime::Locale" fornece suporte a localização para DateTime-1.65.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime::Locale"
Exigidas

Dist-CheckConflicts-0.11, File-ShareDir-1.118, namespace-autoclean-0.31 e Params-ValidationCompiler-0.31

Recomendadas (exigidas para a suíte de teste)

Instalação do "DateTime::Locale"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::TimeZone-2.64

Introdução ao "DateTime::TimeZone"

Essa classe é a classe base para todos os objetos de fuso horário. Um fuso horário é representado internamente como um conjunto de observâncias, cada uma das quais descreve o deslocamento a partir do "GMT" para um dado período de tempo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "DateTime::TimeZone"
Exigidas

Class-Singleton-1.6, Module-Runtime-0.016 e Params-ValidationCompiler-0.31

Recomendadas (exigidas para a suíte de teste)

Instalação do "DateTime::TimeZone"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Devel::StackTrace-2.05

Introdução ao "Devel::StackTrace"

Devel::StackTrace fornece um objeto que representa um rastreamento de pilha.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Devel::StackTrace"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Dist::CheckConflicts-0.11

Introdução ao "Dist::CheckConflicts"

"Dist::CheckConflicts" declara conflitos de versão para uma distribuição, para suportar atualizações pós-instalação de distribuições dependentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Dist::CheckConflicts"
Exigidas

Module-Runtime-0.016

Recomendadas (exigidas para a suíte de teste)

Instalação do "Dist::CheckConflicts"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::Locale-1.05

Introdução ao "Encode::Locale"

"Encode::Locale" determina a codificação de localidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do "Encode::Locale"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Eval::Closure-0.14

Introdução ao "Eval::Closure"

"Eval::Closure" cria fechamentos de forma segura e limpa por meio de avaliação de sequências de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Eval::Closure"
Recomendadas (exigidas para a suíte de teste)

Instalação do "Eval::Closure"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Exception::Class-1.45

Introdução ao "Exception::Class"

"Exception::Class" permite que você declare classes reais de exceção em Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "Exception::Class"
Exigidas

Class-Data-Inheritable-0.10 e Devel-StackTrace-2.05

Instalação do "Exception::Class"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Exporter::Tiny-1.006002

Introdução ao Exporter::Tiny

"Exporter::Tiny" é um exportador com os recursos do "Sub::Exporter", mas somente com dependências centrais.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Exporter::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

ExtUtils::LibBuilder-0.09

Introdução ao ExtUtils::LibBuilder

"ExtUtils::LibBuilder" é uma ferramenta para construir bibliotecas "C".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do ExtUtils::LibBuilder
Exigidas

Module-Build-0.4234

Instalação do ExtUtils::LibBuilder

Esse módulo é construído usando Build.PL:

perl Build.PL &&
./Build       &&
./Build test

Agora, como o(a) usuário(a) root:

./Build install

FFI::CheckLib-0.31

Introdução ao FFI::CheckLib

"FFI::CheckLib" verifica se uma biblioteca dinâmica específica está disponível para uso por "Foreign Function Interface" ("FFI").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do FFI::CheckLib
Recomendadas (exigidas para a suíte de teste)

Instalação do FFI::CheckLib

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::chdir-0.1011

Introdução ao File::chdir

"File::chdir" fornece uma maneira mais sensata de mudar diretórios.

O "chdir()" do "Perl" tem o infeliz problema de ser muito, muito, muito global. Se qualquer parte do seu aplicativo chamar "chdir()" ou se qualquer biblioteca que você usa chamar "chdir()", [então] ele muda o diretório atual de trabalho do aplicativo *inteiro*. "File::chdir" te oferece uma alternativa, "$CWD" e "@CWD".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do File::chdir

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Copy::Recursive-0.45

Introdução ao File::Copy::Recursive

Esse módulo copia e move diretórios recursivamente (ou arquivos únicos), para uma profundidade opcional e tenta preservar o modo de cada arquivo ou diretório.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do File::Copy::Recursive
Recomendadas (exigidas para a suíte de teste)

Instalação do File::Copy::Recursive

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Find::Rule-0.34

Introdução ao File::Find::Rule

"File::Find::Rule" é uma interface mais amigável para "File::Find". Ele permite que você construa regras que especifiquem os arquivos e diretórios desejados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do File::Find::Rule
Exigidas

Number-Compare-0.03 e Text-Glob-0.11

Instalação do File::Find::Rule

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: findrule

Descrições Curtas

findrule

é um envólucro de linha de comando para "File::Find::Rule"

File::Listing-6.16

Introdução ao File::Listing

"File::Listing" analisa uma listagem de diretórios.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do File::Listing
Exigidas

HTTP-Date-6.06

Instalação do File::Listing

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::ShareDir-1.118

Introdução ao File::ShareDir

"File::ShareDir" permite que você acesse arquivos de dados que tenham sido instalados por "File::ShareDir::Install".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do File::ShareDir
Exigidas

Class-Inspector-1.36 e File-ShareDir-Install-0.14

Instalação do File::ShareDir

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::ShareDir::Install-0.14

Introdução ao File::ShareDir::Install

"File::ShareDir::Install" permite que você instale arquivos de dados somente leitura a partir de uma distribuição.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do File::ShareDir::Install

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTML::Tagset-3.24

Introdução ao HTML::Tagset

"HTML::Tagset" fornece várias tabelas de dados úteis na análise de "HTML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do HTML::Tagset

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::CookieJar-0.014

Introdução ao HTTP::CookieJar

HTTP::CookieJar fornece um cookie HTTP jar minimalista de agente de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do HTTP::CookieJar
Exigidas

HTTP-Date-6.06

Recomendadas (exigidas para a suíte de teste)

Instalação do HTTP::CookieJar

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Cookies-6.11

Introdução ao HTTP::Cookies

"HTTP::Cookies" fornece uma classe para objetos que representam um "cookie jar" - isto é, uma base de dados de todos os "cookies" "HTTP" que um determinado objeto "LWP::UserAgent" (proveniente de libwww-perl-6.78) conhece.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do HTTP::Cookies
Exigidas

HTTP-Message-7.00

Instalação do HTTP::Cookies

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Date-6.06

Introdução ao HTTP::Date

"HTTP::Date" fornece funções para lidar com os formatos de data usados pelo protocolo "HTTP" e também com alguns outros formatos de data.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do HTTP::Date
Recomendadas

Instalação do HTTP::Date

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Message-7.00

Introdução ao HTTP::Message

"HTTP::Message" fornece uma classe base para objetos de mensagem de estilo "HTTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do HTTP::Message
Exigidas

Clone-0.47, Encode-Locale-1.05, HTTP-Date-6.06, IO-HTML-1.004, LWP-MediaTypes-6.04 e URI-5.31

Recomendadas (exigidas para a suíte de teste)

Instalação do HTTP::Message

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Negotiate-6.01

Introdução ao HTTP::Negotiate

"HTTP::Negotiate" fornece uma implementação completa do algoritmo de negociação de conteúdo "HTTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do HTTP::Negotiate
Recomendadas (exigidas para a suíte de teste)

Instalação do HTTP::Negotiate

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

IO::HTML-1.004

Introdução ao IO::HTML

"IO::HTML" abre um arquivo "HTML" com detecção automática de conjunto de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do IO::HTML

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

IPC::System::Simple-1.30

Introdução ao IPC::System::Simple

"IPC::System::Simple" elimina o trabalho árduo de chamar comandos externos e produzir diagnósticos detalhados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do IPC::System::Simple

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::MoreUtils::XS-0.430

Introdução ao List::MoreUtils::XS

"List::MoreUtils::XS" é uma estrutura compilada de retaguarda para "List::MoreUtils"

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do List::MoreUtils::XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::SomeUtils-0.59

Introdução ao List::SomeUtils

"List::SomeUtils" fornece o que falta em "List::Util".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do List::SomeUtils
Exigidas

Module-Implementation-0.09 e List-SomeUtils-XS-0.58

Instalação do List::SomeUtils

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::SomeUtils::XS-0.58

Introdução ao List::SomeUtils::XS

"List::SomeUtils::XS" é uma implementação "XS" ("eXternal Subroutine") (mais rápida) para "List::SomeUtils".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do List::SomeUtils::XS
Recomendadas (exigidas para a suíte de teste)

Instalação do List::SomeUtils::XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::UtilsBy-0.12

Introdução ao List::UtilsBy

"List::UtilsBy" fornece uma série de funções utilitárias de lista de ordem superior.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do List::UtilsBy

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

LWP::MediaTypes-6.04

Introdução ao LWP::MediaTypes

"LWP::MediaTypes" adivinha o tipo de mídia (ou seja, o tipo "MIME") de um arquivo ou "URL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do LWP::MediaTypes
Recomendadas (exigidas para a suíte de teste)

Instalação do LWP::MediaTypes

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

MIME::Base32-1.303

Introdução ao MIME::Base32

MIME::Base32 é para Codificar/Decodificar dados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do MIME::Base32

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

MIME::Charset-1.013.1

Introdução ao MIME::Charset

MIME::Charset fornece informações relativas a conjuntos de caracteres usados para mensagens MIME na Internet, como as codificações deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do MIME::Charset
Recomendadas

Instalação do MIME::Charset

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes '' | perl Makefile.PL &&
make            &&
make test

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes |: Perl perguntará se você deseja instalar um módulo adicional para lidar com codificações legadas em japonês, e outro que ele usaria para traduzir documentação para japonês. A opção padrão é "n"; usar "yes" permite que você automatize a construção.

Module::Implementation-0.09

Introdução ao Module::Implementation

"Module::Implementation" carrega uma das várias implementações alternativas subjacentes de um módulo (por exemplo, "eXternal Subroutine" ou "Perl" puro, ou uma implementação para um determinado Sistema Operacional).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Module::Implementation
Exigidas

Module-Runtime-0.016 e Try-Tiny-0.32

Recomendadas (exigidas para a suíte de teste)

Instalação do Module::Implementation

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Module::Runtime-0.016

Introdução ao Module::Runtime

"Module::Runtime" fornece funções para lidar com o manuseio em tempo de execução de módulos Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Module::Runtime

Embora "Module::Build" ainda esteja listado como um pré-requisito, ele não mais é necessário em sistemas com um make funcional.

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

MRO::Compat-0.15

Introdução ao MRO::Compat

O espaço de nome "mro" fornece vários utilitários para lidar com a ordem de resolução de métodos e cache de métodos em geral no "Perl" 5.9.5 e superior. Esse módulo fornece essas interfaces para versões anteriores do "Perl".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do MRO::Compat

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

namespace::autoclean-0.31

Introdução ao namespace::autoclean

Esse módulo é muito semelhante ao "namespace::clean", exceto que limpará todas as funções importadas, não importa se você as importou antes ou depois que usou o "pragma". Também não tocará em nada que pareça um método.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do namespace::autoclean
Exigidas

namespace-clean-0.27

Recomendadas (exigidas para a suíte de teste)

Instalação do namespace::autoclean

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

namespace::clean-0.27

Introdução ao namespace::clean

Esse pacote permite que você mantenha importações e funções fora do seu espaço de nome.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do namespace::clean
Exigidas

B-Hooks-EndOfScope-0.28 e Package-Stash-0.40

Instalação do namespace::clean

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Net::HTTP-6.23

Introdução ao Net::HTTP

A classe "Net::HTTP" é um cliente "HTTP" de baixo nível. Uma instância da classe representa uma conexão com um servidor "HTTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Net::HTTP
Exigidas

URI-5.31

Instalação do Net::HTTP

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Net::SSLeay-1.94

Introdução ao Net::SSLeay

Net::SSLeay é uma extensão Perl para usar OpenSSL.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Net::SSLeay

Nota

Um teste chamado 32_x509_get_cert_info.t é conhecido por falhar com OpenSSL-3.4.0 ou posterior. Se habilitar os testes externos, um teste em t/external/15_altnames.t possivelmente falhe.

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes '' | perl Makefile.PL &&
make                      &&
make test || true

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes '': "Perl" perguntará se você deseja executar testes externos, que falharão se você não tiver conectividade de rede de intercomunicação. O padrão é "n"; especificar isso permite que você automatize a construção.

|| true: Ao executar um conjunto de comandos sequenciais que sai em caso de erro, isso evita a parada devido à falha conhecida de teste.

Number::Compare-0.03

Introdução ao Number::Compare

"Number::Compare" compila uma comparação simples com uma sub-rotina anônima, que você consegue chamar com um valor a ser testado. Ele compreende magnitudes padrão "IEC" (k, ki, m, mi, g, gi).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Number::Compare

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Package::Stash-0.40

Introdução ao Package::Stash

Manipular "stashes" (tabelas de símbolos do "Perl") ocasionalmente é necessário, mas incrivelmente confuso e fácil de errar. Esse módulo esconde tudo isso atrás de uma "API" simples.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Package::Stash
Exigidas

Dist-CheckConflicts-0.11 e Module-Implementation-0.09

Recomendadas (exigidas para a suíte de teste)

Instalação do Package::Stash

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Params::Validate-1.31

Introdução ao Params::Validate

"Params::Validate" te permite validar parâmetros de chamada de método ou função para um nível arbitrário de especificidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Params::Validate
Exigidas

Module-Build-0.4234 e Module-Implementation-0.09

Recomendadas (exigidas para a suíte de teste)

Instalação do Params::Validate

Esse módulo é construído usando Build.PL:

perl Build.PL &&
./Build       &&
./Build test

Agora, como o(a) usuário(a) root:

./Build install

Params::ValidationCompiler-0.31

Introdução ao Params::ValidationCompiler

"Params::ValidationCompiler" constrói um validador de parâmetro de sub-rotina otimizado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Params::ValidationCompiler
Exigidas

Exception-Class-1.45 e Specio-0.49

Recomendadas (exigidas para a suíte de teste)

Instalação do Params::ValidationCompiler

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Path::Tiny-0.146

Introdução ao Path::Tiny

"Path::Tiny" fornece um pequeno utilitário rápido para trabalhar com caminhos de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Path::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Role::Tiny-2.002004

Introdução ao Role::Tiny

"Role::Tiny" é uma ferramenta minimalista de composição de papéis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Role::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Scope::Guard-0.21

Introdução ao Scope::Guard

"Scope::Guard" fornece uma maneira conveniente de realizar limpeza ou outras formas de gerenciamento de recursos no final de um escopo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Scope::Guard

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Specio-0.49

Introdução ao Specio

"Specio" fornece classes para representar restrições de tipo e coerção, junto com açúcar sintático para declará-las.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Specio
Exigidas

Devel-StackTrace-2.05, Eval-Closure-0.14, Module-Runtime-0.016, Role-Tiny-2.002004, Sub-Quote-2.006008 e Try-Tiny-0.32

Recomendadas (exigidas para a suíte de teste)
Opcionais

namespace-autoclean-0.31 (para a suíte de teste)

Instalação do Specio

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Sub::Exporter::Progressive-0.001013

Introdução ao Sub::Exporter::Progressive

"Sub::Exporter::Progressive" é um envólucro para "Sub::Exporter".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Sub::Exporter::Progressive

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Sub::Quote-2.006008

Introdução ao Sub::Quote

"Sub::Quote" fornece maneiras de gerar sub-rotinas a partir de sequências de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Sub::Quote

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Sub::Uplevel-0.2800

Introdução ao Sub::Uplevel

"Sub::Uplevel" permite que você engane um chamador dizendo que ele está executando em um quadro mais alto da pilha.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Sub::Uplevel

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Term::Table-0.024

Introdução ao Term::Table

Term::Table formata um cabeçalho e linhas em uma tabela. Isso é usado por alguns testes falhos para fornecer diagnósticos relativos ao que deu errado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Term::Table
Recomendadas (exigidas para a suíte de teste)

Instalação do Term::Table

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Deep-1.204

Introdução ao Test::Deep

"Test::Deep" te dá maneiras muito flexíveis de verificar se o resultado obtido é o resultado que você estava esperando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::Deep

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Exception-0.43

Introdução ao Test::Exception

"Test::Exception" fornece métodos convenientes para testar código baseado em exceções.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test::Exception
Exigidas

Sub-Uplevel-0.2800

Instalação do Test::Exception

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Fatal-0.017

Introdução ao Test::Fatal

O módulo "Test::Fatal" fornece ajudantes simples para testar código que lança exceções.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test::Fatal
Exigidas

Try-Tiny-0.32

Instalação do Test::Fatal

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::File-1.994

Introdução ao Test::File

"Test::File" fornece uma coleção de utilitários de teste para atributos de arquivo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test::File
Recomendadas (exigidas para a suíte de teste)

Instalação do Test::File

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::File::ShareDir-1.001002

Introdução ao Test::File::ShareDir

"Test::File::ShareDir" é algum encanamento de baixo nível para habilitar a distribuição a realizar testes enquanto consome os próprios diretórios de compartilhamento deles de maneira semelhante a como eles serão ocasionalmente instalados. Isso permite que File-ShareDir-1.118 veja a versão mais recente do conteúdo em vez do que estiver instalado no sistema alvo onde você estiver testando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test::File::ShareDir
Exigidas

Class-Tiny-1.008, File-Copy-Recursive-0.45, File-ShareDir-1.118, Path-Tiny-0.146 e Scope-Guard-0.21

Recomendadas (exigidas para a suíte de teste)

Instalação do Test::File::ShareDir

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::LeakTrace-0.17

Introdução ao Test::LeakTrace

"Test::LeakTrace" rastreia vazamentos de memória.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::LeakTrace

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Needs-0.002010

Introdução ao Test::Needs

"Test::Needs" pula os testes se um módulo solicitado não estiver presente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::Needs

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Requires-0.11

Introdução ao Test::Requires

O módulo "Test::Requires" verifica se outro módulo (opcional) consegue ser carregado e, se não, pula todos os testes atuais.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::Requires

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::RequiresInternet-0.05

Introdução ao Test::RequiresInternet

Test::RequiresInternet destina-se a testar facilmente a conectividade da rede de intercomunicação antes que os testes funcionais comecem a se conectarem a recursos não locais da Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::RequiresInternet

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Simple-1.302209

Introdução ao Test::Simple

Test::Simple contém utilitários básicos para escrever testes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test::Simple
Exigidas

Term-Table-0.024

Instalação do Test::Simple

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::utf8-1.03

Introdução ao Test::utf8

"Test::utf8" é uma coleção de testes úteis para lidar com sequências de caracteres utf8 na Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::utf8

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Warnings-0.038

Introdução ao Test::Warnings

"Test::Warnings" testa para avisos e a falta deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::Warnings

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Without::Module-0.23

Introdução ao Test::Without::Module

Esse módulo te permite ocultar deliberadamente módulos provenientes de um aplicativo, mesmo que eles estejam instalados. Isso é útil principalmente para testar módulos que possuem um substituto quando um determinado módulo de dependência não estiver instalado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Test::Without::Module

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test2::Plugin::NoWarnings-0.10

Introdução ao Test2::Plugin::NoWarnings

"Test2::Plugin::NoWarnings" causa testes falhem se existir algum aviso durante a execução deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Test2::Plugin::NoWarnings
Exigidas

Test-Simple-1.302209

Recomendadas (exigidas para a suíte de teste)

Instalação do Test2::Plugin::NoWarnings

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::CSV_XS-1.60

Introdução ao Text::CSV_XS

"Text::CSV_XS" fornece facilidades para a composição e decomposição de valores separados por vírgula.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Text::CSV_XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Diff-1.45

Introdução ao Text::Diff

"Text::Diff" realiza diferenças em arquivos e conjuntos de registros.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Text::Diff
Exigidas

Algorithm-Diff-1.201

Instalação do Text::Diff

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Glob-0.11

Introdução ao Text::Glob

Text::Glob implementa correspondência de estilo glob(3) que pode ser usada para corresponder a texto, em vez de buscar nomes a partir de um sistema de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Text::Glob

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Tie::Cycle-1.229

Introdução ao Tie::Cycle

Você usa "Tie::Cycle" para percorrer uma lista repetidamente. Depois de chegar ao final da lista, você volta ao início. Você não precisa se preocupar com nada disso, pois a magia da gravata faz isso por você.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Tie::Cycle

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

TimeDate-2.33

Introdução ao TimeDate

"TimeDate" fornece diversas rotinas de manipulação de fuso horário.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do TimeDate

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Try::Tiny-0.32

Introdução ao Try::Tiny

"Try::Tiny" fornece try e catch para esperar e lidar com condições excepcionais, evitando peculiaridades na Perl e erros comuns.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Try::Tiny
Opcionais (podem ser usadas pela suíte de teste)

Capture-Tiny-0.50

Instalação do Try::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Variable::Magic-0.64

Introdução ao Variable::Magic

"Magic" é a maneira "Perl" de melhorar variáveis. Com esse módulo, você consegue adicionar sua própria magia a qualquer variável.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Variable::Magic

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

WWW::RobotRules-6.02

Introdução ao WWW::RobotRules

"WWW::RobotRules" analisa arquivos robots.txt, criando um objeto "WWW::RobotRules" com métodos para verificar se o acesso a um determinado "URL" é proibido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do WWW::RobotRules
Exigidas (tempo de execução)

libwww-perl-6.78 (instale esse módulo primeiro e instale-o mais tarde)

Instalação do WWW::RobotRules

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::LibXML-2.0210

Introdução ao XML::LibXML

"XML::LibXML" é uma ligação "Perl" para libxml2-2.13.6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Transferência Adicional
Dependências do XML::LibXML
Exigidas

Alien-Libxml2-0.19 e XML-SAX-1.02

Instalação do XML::LibXML

Primeiro, aplique um remendo para corrigir problemas com a suíte de teste quando compilada em relação à libxml2-2.13:

patch -Np1 -i ../XML-LibXML-2.0210-testsuite_fixes-1.patch

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::NamespaceSupport-1.12

Introdução ao XML::NamespaceSupport

"XML::NamespaceSupport" oferece uma maneira simples de processar nomes "XML" com espaços de nome a partir de dentro de qualquer aplicativo que possa precisar deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do XML::NamespaceSupport

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::SAX-1.02

Introdução ao XML::SAX

"XML::SAX" é uma "API" de acesso ao analisador "SAX" para "Perl". Inclui classes e "APIs" exigidas para implementar controladores "SAX", juntamente com uma classe de fábrica para retornar qualquer analisador "SAX" instalado no sistema do(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do XML::SAX
Exigidas

libxml2-2.13.6, XML-NamespaceSupport-1.12 e XML-SAX-Base-1.09

Instalação do XML::SAX

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes | perl Makefile.PL &&
make            &&
make test

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes: "Perl" perguntará se você deseja alterar o "ParserDetails.ini" e, então, aguardará uma resposta. O padrão é "y". Usar "yes" te permite automatizar isso.

XML::SAX::Base-1.09

Introdução ao XML::SAX::Base

Esse módulo tem uma tarefa muito simples - ser uma classe base para controladores e filtros "PerlSAX".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do XML::SAX-Base

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

PHP-8.4.4

Introdução ao PHP

PHP é o PHP Hypertext Preprocessor. Usado principalmente em sites dinâmicos, ele permite que o código de programação seja diretamente incorporado na marcação HTML. Ele também é útil como uma linguagem de script de propósito geral.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.php.net/distributions/php-8.4.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c9aa75fada9f41e9f0e02642b51225cc

  • Tamanho da transferência: 13 MB

  • Espaço em disco estimado exigido: 589 MB (com documentação e testes)

  • Tempo de construção estimado: 1,3 UPC (com paralelismo=4; adicionar 2,5 UPC para testes)

Transferências Adicionais

Dependências do PHP

Recomendadas
Utilitários e Bibliotecas de Sistema Opcionais

Aspell-0.60.8.1, enchant-2.8.2, libxslt-1.1.42, um MTA (que forneça um comando sendmail), pcre2-10.45, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c e XMLRPC-EPI

Utilitários e Bibliotecas Gráficos Opcionais

FreeType-2.13.3, libexif-0.6.25, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, um ambiente gráfico, FDF Toolkit, GD e t1lib

Utilitários Opcionais da Web

cURL-8.12.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer e WDDX

Utilitários e Bibliotecas Opcionais de Gerenciamento de Dados

lmdb-0.9.31, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, unixODBC-2.3.12, Berkeley DB (obsoleto) Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, libiodbc, Mini SQL, Monetra e QDBM

PHP também fornece suporte para muitas ferramentas comerciais de base de dados, como Oracle, SAP e ODBC Router.

Utilitários e Bibliotecas Opcionais de Segurança/Encriptação

Cyrus SASL-2.1.28, MIT Kerberos V5-1.21.3, libmcrypt e mhash

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/php

Instalação do PHP

Você pode usar PHP para scripts do lado do servidor, scripts de linha de comando ou aplicativos GUI do lado do cliente. Este livro fornece instruções para configurar PHP para scripts do lado do servidor, pois é a forma mais comum.

Nota

PHP tem muito mais opções do configure que habilitarão suporte para várias coisas. Você pode usar ./configure --help para ver uma lista completa das opções disponíveis. Também, o uso do site do PHP é altamente recomendado, pois os documentos deles on-line são muito bons. Um exemplo de um comando configure que utiliza muitas das dependências mais comuns pode ser encontrado em https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.

Se, por qualquer motivo, você não tiver libxml2-2.13.6 instalado, você precisa adicionar --disable-libxml ao comando configure nas instruções abaixo. Observe que isso impedirá que o comando pear seja construído.

Instale PHP executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --without-pear               \
            --enable-fpm                 \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-config-file-path=/etc \
            --with-zlib                  \
            --enable-bcmath              \
            --with-bz2                   \
            --enable-calendar            \
            --enable-dba=shared          \
            --with-gdbm                  \
            --with-gmp                   \
            --enable-ftp                 \
            --with-gettext               \
            --enable-mbstring            \
            --disable-mbregex            \
            --with-readline              &&
make

Para testar os resultados, emita: make test. Several tests (out of over 20000) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | .

Agora, como o(a) usuário(a) root:

make install                                     &&
install -v -m644 php.ini-production /etc/php.ini &&

install -v -m755 -d /usr/share/doc/php-8.4.4 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.4.4

Os arquivos pré definidos de configuração para o gerenciador de processos fastCGI são instalados somente se eles ainda não existirem no sistema. Se esta for a primeira instalação, eles deveriam ser renomeados, como o(a) usuário(a) root:

if [ -f /etc/php-fpm.conf.default ]; then
  mv -v /etc/php-fpm.conf{.default,} &&
  mv -v /etc/php-fpm.d/www.conf{.default,}
fi

A documentação HTML pré-construída é empacotada em dois formatos: um tarball contendo muitos arquivos individuais, útil para carregamento rápido no teu navegador, e um arquivo individual grande, que é útil para usar o utilitário de pesquisa do teu navegador. Se você baixou um, ou ambos, os arquivos de documentação, emita os seguintes comandos como o(a) usuário(a) root para instalá-los (observe que estas instruções assumem documentos em inglês; modifique os nomes dos tarballs abaixo se necessário).

Para o arquivo HTML Único:

install -v -m644 ../php_manual_en.html.gz \
    /usr/share/doc/php-8.4.4 &&
gunzip -v /usr/share/doc/php-8.4.4/php_manual_en.html.gz

Para o tarball Muitos arquivos HTML:

tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-8.4.4 --no-same-owner

O pear empacotado não é instalado por causa de um defeito que poderia poluir o sistema de arquivos com vários arquivos e diretórios ocultos. Se o pear for necessário, execute os seguintes comandos para instalá-lo:

wget https://pear.php.net/go-pear.phar
php ./go-pear.phar

Explicações do Comando

--datadir=/usr/share/php: Isso contorna um defeito no mecanismo de construção, que instala alguns dados em um local errado.

--enable-fpm: Esse parâmetro permite construir o Gerenciador de Processos fastCGI.

--without-pear: Essa chave desabilita a instalação do software pear incluído.

--with-config-file-path=/etc: Esse parâmetro faz com que PHP procure o arquivo de configuração php.ini em /etc.

--with-zlib: Esse parâmetro adiciona suporte para compressão Zlib.

--enable-bcmath: Habilita funções matemáticas de precisão no estilo do bc.

--with-bz2: Adiciona suporte para funções de compressão do Bzip2.

--enable-calendar: Esse parâmetro fornece suporte para conversão de calendário.

--enable-dba=shared: Esse parâmetro habilita o suporte para funções de camada de abstração de base de dados (estilo dbm).

--enable-ftp: Esse parâmetro habilita funções de FTP.

--with-gettext: Habilita funções que usam a tradução de texto Gettext.

--enable-mbstring: Esse parâmetro habilita o suporte a sequências de caracteres de multi byte.

--with-readline: Esse parâmetro habilita o suporte Readline de linha de comando.

--disable-libxml: Essa opção permite construir o PHP sem libxml2 instalado.

--with-apxs2: Em vez de construir o gerenciador de processos fastCGI, é possível construir um módulo do apache. Isso tem alguma penalidade de desempenho para servidores com carga pesada, mas pode ser mais fácil de configurar. Essa chave é incompatível com as chaves --enable-fpm e --with-fpm-....

--with-mysqli=shared: Essa opção inclui suporte ao MySQLi.

--with-mysql-sock=/run/mysqld/mysqld.sock: Local do ponteiro do soquete Unix do MySQL.

--with-pdo-mysql=shared: Essa opção inclui suporte a PDO: MySQL.

--with-tidy=shared: Essa opção inclui suporte a biblioteca tidy.

Configurando PHP

Arquivos de Configuração

/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf e /etc/php-fpm.d/www.conf

Informação de Configuração

O arquivo usado como o arquivo pré definido de configuração /etc/php.ini é recomendado pela equipe de desenvolvimento do PHP. Esse arquivo modifica o comportamento pré definido do PHP. Se nenhum /etc/php.ini for usado, todas as definições de configuração cairão para as pré definidas. Você deveria revisar os comentários nesse arquivo e garantir que as mudanças sejam aceitáveis em teu ambiente específico.

O gerenciador de processos fastCGI usa o arquivo de configuração /etc/php-fpm.conf. O arquivo pré definido enviado com o PHP inclui todos os /etc/php-fpm.d/*.conf em sequência. Existe um arquivo /etc/php-fpm.d/www.conf enviado, que contém os parâmetros relacionados à interação com o servidor Web Apache.

Você deve ter observado o seguinte a partir da saída gerada do comando make install:

You may want to add: /usr/lib/php to your php.ini include_path

Se desejado, adicione a entrada usando o seguinte comando como o(a) usuário(a) root:

sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
    /etc/php.ini

Para habilitar o suporte fastCGI no servidor web Apache, duas diretivas LoadModule precisam ser adicionadas ao arquivo httpd.conf. Elas estão comentadas, de forma que apenas emita o seguinte comando como usuário(a) root:

sed -i -e '/proxy_module/s/^#//'      \
       -e '/proxy_fcgi_module/s/^#//' \
       /etc/httpd/httpd.conf

Esses módulos aceitam várias diretivas ProxyPass. Uma possibilidade é (como o(a) usuário(a) root):

echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
/etc/httpd/httpd.conf

Além disso, pode ser útil adicionar uma entrada para index.php para a diretiva DirectoryIndex do arquivo httpd.conf. Por fim, adicionar uma linha para configurar a extensão .phps para mostrar o fonte PHP destacado pode ser desejável:

AddType application/x-httpd-php-source .phps

Você precisará reiniciar o servidor web Apache depois de fazer quaisquer modificações no arquivo httpd.conf.

Script de Inicialização

Para iniciar automaticamente o processo de segundo plano php-fpm quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/php oriundo do pacote blfs-bootscripts-20250225 como o(a) usuário(a) root:

make install-php

Conteúdo

Aplicativos Instalados: phar (link simbólico), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg e phpize
Bibliotecas Instaladas: dba.so e opcache.so em /usr/lib/php/extensions/no-debug-non-zts-20230831
Diretórios Instalados: /etc/php-fpm.d, /usr/{include,lib,share}/php e /usr/share/doc/php-8.4.4

Descrições Curtas

php

é uma interface de linha de comando que te habilita a analisar e a executar código PHP

pear

é o gerenciador de pacotes PHP Extension and Application Repository (PEAR). Isso não é instalado por pré definição

php-fpm

é o gerenciador de processos fastCGI para PHP

phpdbg

é o depurador interativo de PHP

Python-3.13.2

Introdução ao Python 3

O pacote Python 3 contém o ambiente de desenvolvimento Python. Isso é útil para programação orientada a objetos, escrita de conjuntos sequenciais de comandos, prototipagem de aplicativos grandes ou desenvolvimento de aplicativos inteiros.

Nota

O Python 3 foi instalado no LFS. A única razão para reconstruí-lo aqui é se módulos opcionais forem necessários ou para atualizar esse pacote.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Se atualizar para uma nova versão secundária do Python-3 (por exemplo, de Python-3.11.x para Python-3.12.0), você precisará reinstalar quaisquer módulos do Python3 que tiver instalado. Você também deveria reinstalar pacotes que geram módulos do Python3, incluindo GLib-2.82.5 (com GObject Introspection), libxml2-2.13.6, opencv-4.11.0, FontForge-20230101, gnome-tweaks-46.1, Samba-4.21.4 e Graphviz-12.2.1 (se swig estiver instalado).

Antes de atualizar, você pode obter uma lista de módulos instalados com pip3 list. A lista pode estar incompleta porque alguns módulos Python não são instalados com pip3, por exemplo o módulo cracklib instalado por CrackLib-2.10.3. Use ls /usr/lib/python3.minor/site-packages para uma lista abrangente.

Os módulos Python oriundos do LFS também terão que ser reinstalados: flit-core, wheel, setuptools, meson, MarkupSafe e Jinja2.

Informação do Pacote

  • Transferência (HTTP): https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4c2d9202ab4db02c9d0999b14655dfe5

  • Tamanho da transferência: 22 MB

  • Espaço em disco estimado exigido: 649 MB (adicionar 65 MB para os testes)

  • Tempo de construção estimado: 2,1 UPC (adicionar 1,1 UPC para testes; ambos usando paralelismo=4)

Transferência Adicional Opcional

Dependências do "Python" 3

Recomendadas
Opcionais

BlueZ-5.79, GDB-16.2 (exigido para alguns testes), Valgrind-3.24.0 e libmpdec

Opcionais (Para Módulos Adicionais)

libnsl-2.0.1, Tk-8.6.16 e Berkeley DB (obsoleto)

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Python3

Instalação do Python 3

Instale o "Python 3" executando os seguintes comandos:

CXX="/usr/bin/g++"               \
./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --enable-optimizations &&
make

Alguns testes são conhecidos por travarem ocasional e indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, porém configure um limite de tempo de 2 minutos para cada caso de teste:

make test TESTOPTS="--timeout 120"

Para um sistema relativamente lento, você possivelmente precise aumentar o limite de tempo e 1 UPC (medido ao construir Binutils a passagem 1 com um núcleo de CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará testes falhos. Se um teste falhou, porém a seguir passou quando reexecutado, ele deveria ser considerado como passado.

De mais de 44.000 testes, o seguinte teste é conhecido por falhar: test_importlib.

Agora, como o(a) usuário(a) "root":

make install

Se atualizar e a documentação tiver sido baixada, [então] opcionalmente instale-a como o(a) usuário(a) "root":

install -v -dm755 /usr/share/doc/python-3.13.2/html

tar --strip-components=1 \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.13.2/html \
    -xvf ../python-3.13.2-docs-html.tar.bz2

Explicações do Comando

CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração.

--with-system-expat: Essa chave habilita vinculação à versão do sistema do Expat.

--enable-optimizations: Essa chave habilita otimizações estáveis, mas caras.

--with-lto: Essa chave opcional habilita "Link Time Optimization" denso. Excepcionalmente, ele cria um "/usr/lib/python3.13/config-3.13-<arch>-linux-gnu/libpython3.13.a" muito maior com um pequeno aumento no tempo para compilar o "Python". Os resultados em tempo de execução não parecem mostrar nenhum benefício advindo de fazer isso.

Configurando o Python 3

Para a finalidade de que "python3" encontre a documentação instalada, crie o seguinte link simbólico independente da versão:

ln -svfn python-3.13.2 /usr/share/doc/python-3

e adicione a seguinte variável de ambiente ao perfil individual do(a) usuário(a) ou ao do sistema:

export PYTHONDOCS=/usr/share/doc/python-3/html

Conteúdo

Aplicativos Instalados: 2to3 (link simbólico) e 2to3-3.13, idle3 (link simbólico) e idle3.13, pip3 e pip3.13, pydoc3 (link simbólico) e pydoc3.13, python3 (link simbólico) e python3.13, e python3-config (link simbólico) e python3.13-config
Bibliotecas Instaladas: libpython3.13.so e libpython3.so
Diretórios Instalados: /usr/include/python3.13, /usr/lib/python3.13 e /usr/share/doc/python-3.13.2

Descrições Curtas

idle3

é um conjunto sequencial de comandos envólucros que abrem um editor "GUI" compatível com "Python". Para esse conjunto sequencial de comandos executar, você precisa ter instalado o "Tk" antes do "Python", de forma que o módulo "Tkinter" do "Python" seja construído

pydoc3

é a ferramenta de documentação do "Python"

python3

é uma linguagem de programação interpretada, interativa e orientada a objetos

python3.13

é um nome específico da versão para o programa python

Python-3.11.1

Introdução ao Python 3.11

O pacote Python 3.11 contém uma versão mais antiga do ambiente de desenvolvimento do Python. Isso é necessário somente para construir seamonkey-2.53.20, pois o sistema de construção dele não tem sido atualizado para suportar Python-3.13.2.

Nota

NÃO instale esse pacote se você não estiver instalando Seamonkey.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Python 3.11

Recomendadas

Instalação do Python 3.11

Instale Python 3.11 executando os seguintes comandos:

CXX="/usr/bin/g++"                     \
./configure --prefix=/opt/python3.11   \
            --disable-shared           \
            --with-system-expat        &&
make

Como esse pacote é usado somente em situações muito limitadas, testes não são recomendados.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração.

--prefix=/opt/python3.11: Isso instala Python 3.11 em /opt para a finalidade de evitar conflitos com a versão do sistema do Python e permitir fácil remoção/isolamento quando programas atualizarem para Python 3.12 ou posterior.

--disable-shared: Essa chave desabilita construir bibliotecas compartilhadas. Como todos os pacotes que precisam do python-3.11 foram construídos em módulos e não se vinculam diretamente ao python, é seguro desativar o suporte de biblioteca compartilhada.

--with-system-expat: Essa chave habilita vinculação à versão do sistema do Expat.

Conteúdo

Aplicativos Instalados: python3.11
Bibliotecas Instaladas: libpython3.11.a
Diretórios Instalados: /opt/python3.11/include/python3.11 e /opt/python3.11/lib/python3.11,

Descrições Curtas

python3.11

é um nome específico da versão para o programa python

Módulos "Python"

Introdução aos Módulos do Python

Os pacotes de módulo Python adicionam objetos úteis à linguagem Python. Os módulos utilizados pelos pacotes em todo o BLFS estão listados aqui, junto com as dependências deles.

Nota

Se você quiser executar testes, vários dos seguintes módulos dependem do módulo central python sqlite3 que não foi construído no LFS. Portanto, é recomendado reconstruir o Python depois de instalar a dependência recomendada listada em Python-3.13.2.

Importante

No BLFS, normalmente construímos e instalamos módulos "Python 3" com pip3. Por favor tome cuidado de que os comandos pip3 install no livro deveriam ser executados como root a menos que seja para um ambiente virtual "Python". Executar o pip3 install como um(a) usuário(a) não-root possivelmente pareça funcionar bem, mas causará o módulo instalado ficar inacessível para outros(as) usuários(as).

pip3 install não reinstalará um módulo já instalado por padrão. Para usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira --upgrade na linha de comando. Se for realmente necessário desatualizar um módulo ou reinstalar a mesma versão por algum motivo, insira --force-reinstall na linha de comando.

Asciidoc-10.2.1

Introdução ao Módulo Asciidoc

O pacote Asciidoc é um formato de documento de texto para escrever notas, documentação, artigos, livros, "e-books", apresentações de slides, páginas da "web", páginas de manual e "blogs". Os arquivos "AsciiDoc" podem ser traduzidos para muitos formatos, incluindo "HTML", "PDF", "EPUB" e página de manual.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Asciidoc
Opcionais (tempo de execução)

docbook-xsl-nons-1.79.2, fop-2.10, libxslt-1.1.42, Lynx-2.9.2, dblatex e W3m

Instalação do Asciidoc

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user asciidoc

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: a2x e asciidoc
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/asciidoc e /usr/lib/python3.13/site-packages/asciidoc-10.2.1.dist-info
Descrições Curtas

a2x

é um gerenciador de conjunto de ferramentas para "AsciiDoc" (converte arquivos de texto "Asciidoc" para outros formatos de arquivo)

asciidoc

converte um arquivo de texto "AsciiDoc" para "HTML" ou "DocBook"

CSSSelect-1.2.0

Introdução ao Módulo CSSSelect

CSSSelect fornece seletores "CSS" para "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do CSSSelect
Exigidas

setuptools_scm-8.1.0

Opcionais (para testagem)

lxml-5.3.1 e pytest-8.3.4

Instalação do CSSSelect

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user cssselect

Para testar a instalação, emita pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/cssselect

CacheControl-0.14.2

Introdução ao Módulo CacheControl

CacheControl é uma porta dos algoritmos de cache em "httplib2" para uso com solicitações de objeto de sessão. Ele foi escrito porque o melhor suporte do "httplib2" para cache frequentemente é mitigado pela falta de segurança de camada. O mesmo se aplica às solicitações em termos de cache.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do CacheControl
Exigidas

msgpack-1.1.0 e requests-2.32.3

Instalação do CacheControl

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user cachecontrol

Esse módulo não tem uma suíte de teste funcional.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: doesitcache
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/CacheControl-0.14.2.dist-info e /usr/lib/python3.13/site-packages/cachecontrol
Descrições Curtas

doesitcache

é um conjunto de comandos sequenciais de linha de comando não documentado.

Cython-3.0.12

Introdução ao Módulo Cython

O pacote Cython fornece um compilador para escrever extensões "C" para a linguagem "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Cython

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user Cython

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: cygdb, cython e cythonize
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/Cython, /usr/lib/python3.13/site-packages/Cython-3.0.12.dist-info e /usr/lib/python3.13/site-packages/pyximport
Descrições Curtas

cygdb

é o depurador Cython

cython

é um compilador para código escrito na linguagem Cython. Ele gera um aplicativo C/C++ que pode ser compilado com um compilador C/C++

cythonize

é um compilador para código escrito na linguagem Cython. Ele gera um módulo de extensão que é importável diretamente a partir do Python

dbusmock-0.34.3

Introdução ao dbusmock

dbusmock é uma biblioteca "Python" útil para escrever testes para logiciário que se comunique com serviços "D-Bus".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do dbusmock
Exigidas

D-Bus Python-1.3.2

Opcionais

pytest-8.3.4 (exigido para executar a suíte de teste), PyGObject-3.50.0 (exigido para executar a suíte de teste), BlueZ-5.79 (opcional para a suíte de teste) e UPower-1.90.7 (opcional para a suíte de teste; se não instalado, um teste falhará)

Instalação do dbusmock

Construa o pacote com:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar o pacote execute o seguinte como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user python-dbusmock

Para testar os resultados, emita: LC_ALL=C pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/dbusmock e /usr/lib/python3.13/site-packages/python_dbusmock-0.34.3.dist-info

D-Bus Python-1.3.2

Introdução ao Módulo D-Bus Python

"D-Bus Python" fornece ligações "Python" para a interface "API" "D-Bus".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do "D-Bus Python"
Exigidas

dbus-1.16.0, GLib-2.82.5, meson_python-0.17.1 e patchelf-0.18.0

Instalação do D-Bus Python

Construa o módulo "D-Bus Python" executando o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora instale o módulo como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user dbus-python

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/dbus e /usr/lib/python3.13/site-packages/dbus_python-1.3.2.egg-info

docutils-0.21.2

Introdução ao docutils

"docutils" é um conjunto de módulos e programas "Python" para processar documentos de texto simples em formatos como "HTML", "XML" ou "LaTeX".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do docutils

Primeiro, remova alguns arquivos instalados em uma versão anterior que não mais são válidos. Como o(a) usuário(a) root:

for f in /usr/bin/rst*.py; do
  rm -fv /usr/bin/$(basename $f .py)
done

Para construir os aplicativos "Python 3", execute o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar os aplicativos "Python" execute o seguinte como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user docutils

Para testar a instalação, emita: test/alltests.py. Dois testes na suíte test_parser são conhecidos por falharem.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: docutils, rst2html4, rst2html5, rst2html, rst2latex, rst2man, rst2odt_prepstyles, rst2odt, rst2pseudoxml, rst2s5, rst2xetex, rst2xml e rstpep2html
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/docutils{,-0.21.2.dist-info}
Descrições Curtas

docutils

converte documentos em vários formatos

rst2html

gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText"

rst2html4

gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText"

rst2html5

gera documentos "HTML5" a partir de fontes independentes "reStructuredText"

rst2latex

gera documentos "LaTeX" a partir de fontes independentes "reStructuredText"

rst2man

gera documentos manuais simples "Unix" a partir de fontes independentes "reStructuredText"

rst2odt

gera documentos "OpenDocument/OpenOffice/ODF" a partir de fontes independentes "reStructuredText"

rst2odt_prepstyles

Corrige um "styles.odt" gerado por processador de texto para uso do "odtwriter"

rst2pseudoxml

gera pseudo "XML" a partir de fontes independentes "reStructuredText" (para fins de teste)

rst2s5

gera apresentação de slides "(X)HTML" "S5" a partir de fontes independentes "reStructuredText"

rst2xetex

gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" para compilação com as variantes "TeX" compatíveis com "Unicode" "XeLaTeX" ou "LuaLaTeX"

rst2xml

gera "XML" nativo do "Docutils" a partir de fontes independentes "reStructuredText"

rstpep2html

gera "(X)HTML" a partir de arquivos "PEP" no formato "reStructuredText"

Doxypypy-0.8.8.7

Introdução ao Módulo Doxypypy

O pacote "Doxypypy" é um filtro "doxygen" para "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Doxypypy
Exigidas

chardet-5.2.0 e Doxygen-1.13.2 (em tempo de execução)

Instalação do Doxypypy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user doxypypy

Esse pacote não vem com uma suíte de teste funcional.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: doxypypy
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/doxypypy e /usr/lib/python3.13/site-packages/doxypypy-0.8.8.7.dist-info
Descrições Curtas

doxypypy

filtra o código "Python" para uso com "Doxygen", usando uma abordagem com reconhecimento de sintaxe.

Doxyqml-0.5.3

Introdução ao Módulo Doxyqml

O pacote "Doxyqml" permite usar "Doxygen" para documentar classes "QML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Doxyqml
Exigidas (Tempo de Execução)

Doxygen-1.13.2

Opcionais (para testagem)

pytest-8.3.4

Instalação do Doxyqml

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user doxyqml

Para testar a instalação, emita:

python3 tests/functional/tests.py &&
python3 tests/unit/tests.py

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: doxyqml
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/doxyqml e /usr/lib/python3.13/site-packages/doxyqml-0.5.3.dist-info
Descrições Curtas

doxyqml

é um filtro de entrada "Doxygen" para arquivos "QML".

Gi-DocGen-2025.3

Introdução ao Módulo Gi-DocGen

Gi-DocGen é um gerador de documentos para bibliotecas baseadas em GObject. GObject é o sistema básico de tipos do projeto GNOME. Gi-DocGen reusa os dados de introspecção gerados por bibliotecas baseadas em GObject para gerar a referência de API dessas bibliotecas, bem como outras documentações auxiliares.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Gi-DocGen
Exigidas

Markdown-3.7, packaging-24.2, Pygments-2.19.1 e typogrify-2.1.0

Opcionais

Graphviz-12.2.1 (tempo de execução, para visualizar gráficos de hierarquia de classes) e pytest-8.3.4 (para testagem)

Instalação do gi-docgen

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user gi-docgen

Para testar a instalação, emita "pytest".

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: gi-docgen
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/gidocgen e /usr/lib/python3.13/site-packages/gi_docgen-2025.3.dist-info

Descrições Curtas

gi-docgen

gerencia documentação para bibliotecas baseadas em "libgobject".

html5lib-1.1

Introdução ao html5lib Module

html5lib fornece uma biblioteca Python pura para analisar HTML. Ele foi projetado para conformar-se com a especificação HTML WHATWG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências de html5lib
Exigidas

six-1.17.0 e webencodings-0.5.1

Instalação do html5lib

Para construir o módulo do Python 3, execute:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar o módulo, emita o seguinte comando como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user html5lib

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/html5lib e /usr/lib/python3.13/site-packages/html5lib-1.1.dist-info

lxml-5.3.1

Introdução ao Módulo lxml

"lxml" fornece ligações "Python" para libxslt-1.1.42 e libxml2-2.13.6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do lxml
Exigidas

libxslt-1.1.42

Instalação do lxml

Para construir o módulo do Python 3, execute:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar o módulo, emita o seguinte comando como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user lxml

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/lxml e /usr/lib/python3.13/site-packages/lxml-5.3.1.dist-info

Mako-1.3.9

Introdução ao Módulo Mako

"Mako" é um módulo "Python" que implementa modelos hiper-rápidos e leves para a plataforma "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

O nome do tarball mudou de Mako para mako, mas ainda instala o módulo como Mako.

Dependências do Mako
Opcionais (para testagem)

pytest-8.3.4

Instalação do Mako

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Instale o módulo como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user Mako

Para testar a instalação, emita "pytest".

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: mako-render
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/mako e /usr/lib/python3.13/site-packages/Mako-1.3.9.dist-info
Descrições Curtas

mako-render

renderiza um modelo

NumPy-2.2.3

Introdução ao Módulo NumPy

"NumPy" é o pacote fundamental para computação científica com "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do NumPy
Exigidas

cython-3.0.12, meson_python-0.17.1 e pyproject-metadata-0.9.0

Opcionais

fortran oriundo do GCC-14.2.0, lapack e cblas e openblas

Opcionais (para testagem)

attrs-25.1.0, pytest-8.3.4, pytz-2025.1 e hypothesis

Instalação do NumPy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir -C setup-args=-Dallow-noblas=true $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user numpy

A instalação pode ser testada com os seguintes comandos:

mkdir -p test                                  &&
cd       test                                  &&
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install hypothesis                        &&
python3 -c "import numpy, sys; sys.exit(numpy.test() is False)"
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: f2py, f2py3 e f2py3.13 (três cópias do mesmo "script")
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/numpy
Descrições Curtas

f2py

é o utilitário gerador de interface "Fortran" para "Python".

Packaging-24.2

Introdução ao Módulo Packaging

A biblioteca Packaging fornece utilitários que implementam as especificações de interoperabilidade que tem claramente um comportamento correto (PEP440) ou se beneficiam muito de ter uma implementação compartilhada (PEP425). Isso inclui utilitários para manuseio de versão, especificadores, marcadores, etiquetadores e exigências.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Packaging
Opcionais (para testagem)

pytest-8.3.4 e pretend

Instalação do Packaging

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user packaging

Supondo que "pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install pretend                           &&
python3 /usr/bin/pytest
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/packaging e /usr/lib/python3.13/site-packages/packaging-24.2.dist-info

ply-3.11

Introdução ao ply Module

O pacote ply é uma implementação 100% Python das ferramentas comuns de análise 'lex' e 'yacc'.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do ply

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user ply

Esse pacote não vem com uma suíte de teste funcional.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/ply e /usr/lib/python3.13/site-packages/ply-3.11.dist-info

psutil-7.0.0

Introdução ao psutil Module

psutil (utilitários de processo e sistema) é uma biblioteca multiplataforma para recuperar informações acerca de processos em execução e utilização do sistema (CPU, memória, discos, rede de intercomunicação, sensores) em Python. Ela é útil principalmente para monitoramento do sistema, criação de perfil e limitação de recursos de processos e gerenciamento de processos em execução. Ela implementa muitas funcionalidades oferecidas pelas ferramentas clássicas de linha de comando do UNIX, como ps, top, iotop, lsof, netstat, ifconfig, free e outras.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Packaging
Opcionais (para testagem)

pytest-8.3.4 and pypinfo

Instalação do psutil

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user psutil

Para testar os resultados, emita: make test.

Two tests, TestSystemAPIs::test_disk_usage and TestNetAPIs::test_net_if_addrs, are known to fail. One test named TestAvailProcessAPIs::test_io_counters is known to fail if the kernel does not have CONFIG_TASK_IO_ACCOUNTING enabled. TestScripts.test_who is known to fail if the login manager does not write into /run/utmp (note that due to the potential year 2037 problem, Shadow has already stopped writing into it). TestInternalScripts::test_import_all is known to fail if the external module pyinfo is not installed.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/psutil-7.0.0.dist-info

Py3c-1.4

Introdução ao Py3c

"Py3c" te ajuda a portar extensões "C" para "Python" 3. Ele fornece um guia detalhado e um conjunto de macros para facilitar a portabilidade e reduzir o clichê.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
  • Transferência (HTTP): https://github.com/encukou/py3c/archive/v1.4/py3c-1.4.tar.gz

  • Soma de verificação MD5 da transferência: 53029afde7e0cf8672a2d69d378a0cfc

  • Tamanho da transferência: 47 KB

  • Espaço em disco estimado exigido: 608 KB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Instalação do Py3c

O pacote "Py3c" é um pacote somente de cabeçalhos e, por isso, nenhuma configuração e compilação é necessária.

Para testar o pacote, emita:

make test-python3 &&
make test-python3-cpp

Para instalar o módulo "Python 3", execute o seguinte comando como o(a) usuário(a) "root":

make prefix=/usr install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/py3c

PyAtSpi2-2.46.1

Introdução ao PyAtSpi2

O pacote "PyAtSpi2" contém ligações "Python" para os componentes centrais da Acessibilidade do "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do PyAtSpi2
Exigidas

PyGObject-3.50.0

Recomendadas

Instalação do PyAtSpi2

Para construir "PyAtSpi2" como um módulo "Python 3", execute os seguintes comandos:

./configure --prefix=/usr --with-python=/usr/bin/python3

Esse pacote não vem com uma suíte de teste.

Para instalar o módulo "Python 3", execute o seguinte comando como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pyatspi

PyCairo-1.26.1

Introdução ao Módulo PyCairo

"PyCairo" fornece ligações "Python" para "Cairo".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do PyCairo
Exigidas

Cairo-1.18.2

Opcionais

Hypothesis e pytest-8.3.4 (para testes)

Instalação do PyCairo

Instale "PyCairo" para "Python3" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, esse pacote exige o módulo opcional pytest. Se ele estiver instalado, execute os testes executando ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/include/pycairo, /usr/lib/python3.13/site-packages/cairo e /usr/lib/python3.13/site-packages/pycairo-1.26.1.egg-info

pygdbmi-0.11.0.0

Introdução ao pygdbmi Module

GDB/MI é uma interface de texto orientada a máquina baseada em linha para GDB e é ativada especificando-se usar a opção de linha de comando --interpreter (vejam-se Opções de Modo). Ele é destinado especificamente para suportar o desenvolvimento de sistemas que usam o depurador apenas como um pequeno componente de um sistema maior.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do pygdbmi

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user pygdbmi

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pygdbmi-0.11.0.0.dist-info

Pygments-2.19.1

Introdução ao Módulo Pygments

"Pygments" é um realçador geral de sintaxe escrito em "Python", para mais de trezentas (300) linguagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Pygments

Exigidas

hatchling-1.27.0

Opcionais (para testagem)

pytest-8.3.4 e wcag-contrast-ratio

Instalação do Pygments

Construa o módulo "Python 3":

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar o pacote execute o seguinte como o usuário "root":

pip3 install --no-index --find-links dist --no-user Pygments

Para testar a instalação, certifique-se de que pytest-8.3.4 esteja instalado e execute:

python3 -m venv --system-site-packages testenv &&
testenv/bin/pip3 install wcag-contrast-ratio   &&
testenv/bin/python -m pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: pygmentize
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pygments e /usr/lib/python3.13/site-packages/Pygments-2.19.1.dist-info

Descrições Curtas

pygmentize

realça um arquivo de entrada e escreve o resultado em um arquivo de saída

PyGObject-3.50.0

Introdução ao Módulo PyGObject3

"PyGObject3" fornece ligações "Python" para a classe "GObject" originária da "GLib".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do PyGObject3
Exigidas

GLib-2.82.5 (com GObject Introspection)

Recomendadas
Opcionais (para os testes)

GTK-4.16.12, pep8, pyflakes e pytest-8.3.4

Instalação do PyGObject3

Primeiro, remova dois testes defeituosos:

mv -v tests/test_gdbus.py{,.nouse}         &&
mv -v tests/test_overrides_gtk.py{,.nouse}

Instale "pygobject3" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test". É necessária uma sessão gráfica já ativa com endereço de barramento para executar os testes. Outra rodada de testes possivelmente informe "ERROR" se "GTK-4.16.12" não estiver instalado.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D pycairo=disabled: use essa chave se você não tiver PyCairo-1.26.1 instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: /usr/lib/python3.13/site-packages/gi/_gi{,_cairo}.cpython-313-<arch>-linux-gnu.so
Diretórios Instalados: /usr/include/pygobject-3.0 e /usr/lib/python3.13/site-packages/{gi,pygtkcompat}

pyparsing-3.2.1

Introdução ao Módulo pyparsing

O módulo "pyparsing" é uma abordagem alternativa para criar e executar gramáticas simples, versus a abordagem tradicional "lex/yacc", ou o uso de expressões regulares. Ele fornece uma biblioteca de classes que o código cliente usa para construir a gramática diretamente no código "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do pyparsing
Opcionais

railroad-diagrams (também necessário para testes)

Opcionais (para testagem)

pytest-8.3.4

Instalação do pyparsing

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pyparsing

Supondo que pytest-8.3.4 esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install railroad-diagrams matplotlib      &&
python3 /usr/bin/pytest
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pyparsing e /usr/lib/python3.13/site-packages/pyparsing-3.2.1.dist-info

pySerial-3.5

Introdução ao Módulo pySerial

O módulo "pySerial" encapsula o acesso à porta serial.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do pySerial
Exigidas

setuptools_scm-8.1.0

Opcionais (para testagem)

pytest-8.3.4

Instalação do pySerial

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pyserial

Para testar a instalação, emita pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: pyserial-miniterm e pyserial-ports
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pyserial-3.5.dist-info e /usr/lib/python3.13/site-packages/serial
Descrições Curtas

pyserial-miniterm

é um aplicativo de console que fornece um pequeno aplicativo de terminal. Ele pode herdar recursos de terminal a partir do terminal no qual é executado.

pyserial-ports

lista portas disponíveis.

Pytest-8.3.4

Introdução ao Módulo Pytest

A estrutura "Pytest" facilita escrever testes pequenos e legíveis e pode escalar para suportar testagem complexa funcional para aplicativos e bibliotecas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Pytest
Exigidas

iniconfig-2.0.0, packaging-24.2 e pluggy-1.5.0

Recomendadas
Opcionais (para testagem)

attrs-25.1.0, Pygments-2.19.1, requests-2.32.3, argcomplete, hypothesis, mock e xmlschema

Instalação do Pytest

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pytest

A instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install pytest[dev] xmlschema hypothesis  &&
python3 /usr/bin/pytest
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: "pytest" e "py.test" (arquivos diferentes, mas com o mesmo conteúdo)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/_pytest, /usr/lib/python3.13/site-packages/pytest e /usr/lib/python3.13/site-packages/pytest-8.3.4.dist-info
Descrições Curtas

pytest

configura, gerencia e (ou) executa testes nos diretórios fonte do módulo python

PyXDG-0.28

Introdução ao Módulo PyXDG

"PyXDG" é uma biblioteca "Python" para acessar os padrões do "freedesktop.org".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do PyXDG

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Instale o módulo como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pyxdg

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Diretório Instalado: /usr/lib/python3.13/site-packages/xdg e /usr/lib/python3.13/site-packages/pyxdg-0.28.dist-info

PyYAML-6.0.2

Introdução ao Módulo PyYAML

"PyYAML" é um módulo "Python" que implementa o analisador e emissor "YAML" de próxima geração.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do PyYAML
Exigidas

cython-3.0.12 e libyaml-0.2.5

Opcionais

pytest-8.3.4 (para testagem)

Instalação do PyYAML

Construa PyYAML com o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, instale o módulo como o usuário "root":

pip3 install --no-index --find-links dist --no-user PyYAML

Para testar os resultados, emita: pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/PyYAML-0.2.5.dist-info

Recommonmark-0.7.1

Introdução ao Módulo Recommonmark

Recommonmark é uma ponte de compatibilidade do Docutils para o CommonMark. Ele permite escrever CommonMark dentro de projetos Docutils e Sphinx. Recommonmark agora está obsoleto em favor do MyST-Parser. Infelizmente, libinput-1.27.1 depende desse módulo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Recommonmark
Exigidas

commonmark-0.9.1 e sphinx-8.2.1

Opcionais (para testagem)

pytest-8.3.4

Instalação do Recommonmark

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user recommonmark

"Recommonmark" agora está obsoleto em favor de MyST-Parser. Por essa razão, muitos testes tem que ser desabilitados porque eles não passam com versões recentes do "Sphinx". A instalação pode ser parcialmente testada com o seguinte comando:

pytest -k 'not (test_integration or test_code or test_headings or test_image or test_links or test_lists)'

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: cm2html, cm2latex, cm2man, cm2pseudoxml, cm2xetex e cm2xml
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/recommonmark e /usr/lib/python3.13/site-packages/recommonmark-0.7.1.dist-info

Descrições Curtas

cm2html

gera um documento "HTML" a partir de fontes "markdown"

cm2latex

gera um documento "LaTeX" a partir de fontes "markdown"

cm2man

gera uma página de manual a partir de fontes "markdown"

cm2pseudoxml

gera um documento pseudo "XML" a partir de fontes "markdown"

cm2xetex

gera um documento "XeTeX" a partir de fontes "markdown"

cm2xml

gera um documento "XML" a partir de fontes "markdown"

Requests-2.32.3

Introdução ao Módulo Requests

O pacote "Requests" é uma biblioteca "HTTP" elegante e simples para "Python", construída para seres humanos. Permite enviar solicitações "HTTP/1.1" extremamente facilmente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Transferência Adicional
Dependências do Requests
Exigidas

charset-normalizer-3.4.1, idna-3.10 e urllib3-2.3.0

Recomendadas
Opcionais

PySocks (também necessário para testagem)

Opcionais (para testagem)

pytest-8.3.4, Flask<2, httpbin, MarkupSafe<2.1, pytest-mock, pytest-httpbin, sphinx<5, trustme e Werkzeug<2

Instalação do Requests

Primeiro aplique um remendo, de forma que a mesma variável de ambiente já usada para apontar para certificados de sistema em "Python3", seguindo a instalação de "make-ca", também possa ser usada por esse módulo:

patch -Np1 -i ../requests-2.32.3-use_system_certs-1.patch

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user requests

Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install --force-reinstall sphinx\<5       &&
pip3 install pytest-mock    \
             werkzeug\<2    \
             flask\<2       \
             pytest-httpbin \
             pysocks        \
             trustme                           &&
pip3 install --force-reinstall Markupsafe\<2.1 &&
python3 /usr/bin/pytest tests
deactivate

Nota

Veja-se "make-ca-1.15" para saber como configurar a variável de ambiente e como as cópias locais dos módulos "Certifi" e "Requests" instaladas em um ambiente virtual substituirão os certificados do sistema.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/requests e /usr/lib/python3.13/site-packages/requests-2.32.3.dist-info

Scour-0.38.2

Introdução ao Módulo Scour

"Scour" é um otimizador/limpador "Scalable Vector Graphics" ("SVG") que reduz o tamanho deles otimizando a estrutura e removendo dados desnecessários.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Scour
Exigidas

six-1.17.0

Instalação do scour

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Para instalar o módulo, execute o seguinte comando como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user scour

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: scour
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/scour e /usr/lib/python3.13/site-packages/scour-0.38.2.dist-info

Descrições Curtas

scour

é um aplicativo para otimizar e limpar arquivos "SVG"

sentry-sdk-2.22.0

Introdução ao Módulo sentry-sdk

O módulo sentry-sdk é o SDK oficial do Python para Sentry.io.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do sentry-sdk
Exigidas

certifi-2025.1.31 e urllib3-2.3.0

Instalação do sentry-sdk

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user sentry-sdk

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sentry_sdk-2.22.0.dist-info e /usr/lib/python3.13/site-packages/sentry_sdk

six-1.17.0

Introdução ao Módulo Six

"Six" é uma biblioteca de compatibilidade "Python" 2 a 3.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Six

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user six

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/six-1.17.0.dist-info

Sphinx-8.2.1

Introdução ao Módulo Sphinx

O pacote "Sphinx" é um conjunto de ferramentas para traduzir alguns formatos de texto estruturado em documentação bonita em vários formatos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinx/sphinx-8.2.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c4e340fa7b1c85898dcb72b5ea8bb8f7

  • Tamanho da transferência: 7,9 MB

  • Espaço em disco estimado exigido: 32 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,7 UPC para testes)

Dependências do Sphinx
Exigidas

alabaster-1.0.0, babel-2.17.0, docutils-0.21.2, imagesize-1.4.1, packaging-24.2, Pygments-2.19.1, requests-2.32.3, snowballstemmer-2.2.0, sphinxcontrib-applehelp-2.0.0, sphinxcontrib-devhelp-2.0.0, sphinxcontrib-htmlhelp-2.1.0, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-2.0.0 e sphinxcontrib-serializinghtml-2.0.0

Opcionais (para testes)

cython-3.0.12, html5lib-1.1, pytest-8.3.4, texlive-20240312, defusedxml e typing_extensions

Instalação do Sphinx

Primeiro instale uma nova dependência como o(a) usuário(a) root:

pip3 install roman-numerals-py

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinx

Supondo que cython-3.0.12 e pytest-8.3.4 estejam instalados, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install sphinx[test]                      &&
python3 -m pytest
deactivate

Um teste, test_ext_math.py::test_imgmath_numfig_html, é conhecido por falhar.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: sphinx-apidoc, sphinx-autogen, sphinx-build e sphinx-quickstart
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinx e /usr/lib/python3.13/site-packages/sphinx-8.2.1.dist-info
Descrições Curtas

sphinx-apidoc

cria um arquivo "reST" a partir de módulos e pacotes "Python"

sphinx-autogen

gera "ReStructuredText" a partir de diretivas especiais contidas em determinados arquivos de entrada

sphinx-build

gera documentação em vários formatos a partir de arquivos fonte "ReStructuredText"

sphinx-quickstart

gera os arquivos exigidos para um projeto "Sphinx"

Sphinx_rtd_theme-3.0.2

Introdução ao Módulo Sphinx_rtd_theme

O módulo "sphinx_rtd_theme" é um tema "Sphinx" projetado para fornecer uma ótima experiência de leitura para usuários(as) de documentação em áreas de trabalho e dispositivos móveis. Esse tema é usado principalmente no "Read the Docs", mas pode funcionar com qualquer projeto "Sphinx".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinx_rtd_theme
Exigidas

sphinx-8.2.1 e sphinxcontrib-jquery-4.1

Opcionais (para testes)

pytest-8.3.4 e readthedocs-sphinx-ext

Instalação do Sphinx_rtd_theme

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinx_rtd_theme

Supondo que "pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install readthedocs-sphinx-ext            &&
python3 /usr/bin/pytest
deactivate

Vários testes retornam avisos porque usam uma API obsoleta do Sphinx.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinx_rtd_theme e /usr/lib/python3.13/site-packages/sphinx_rtd_theme-3.0.2.dist-info

Dependências do "Python"

Introdução às Dependências do Python

Os módulos "Python" listados em "Módulos "Python"" tem dependências que não são referenciadas por outros pacotes no BLFS. Essas dependências estão listadas aqui. Eles não serão atualizados regularmente, a menos que uma versão mais recente seja necessária.

Importante

No BLFS, normalmente construímos e instalamos módulos "Python" 3 com pip3. Por favor tome cuidado para que os comandos "pip3 install" no livro sejam executados como "root", a menos que seja para um ambiente virtual "Python". Executar o "pip3 install" como um(a) usuário(a) não "root" pode parecer funcionar bem, mas fará com que o módulo instalado fique inacessível para outros(as) usuários(as).

pip3 install não reinstalará um módulo já instalado por padrão. Para usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira --upgrade na linha de comando. Se for realmente necessário desatualizar um módulo ou reinstalar a mesma versão por algum motivo, insira --force-reinstall na linha de comando.

Alabaster-1.0.0

Introdução ao Módulo Alabaster

O pacote "Alabaster" é um tema para o sistema de documentação "sphinx". Embora desenvolvido separadamente, é o tema padrão para "Sphinx".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Alabaster

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user alabaster

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/alabaster e /usr/lib/python3.13/site-packages/alabaster-1.0.0.dist-info

Attrs-25.1.0

Introdução ao Módulo Attrs

O pacote Attrs é um módulo python que permite escrever atributos sem clichês extras.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/a/attrs/attrs-25.1.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 338069d6f69126086d589b2cb44f4c73

  • Tamanho da transferência: 776 KB

  • Espaço em disco estimado exigido: 7 MB (adicionar 78 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (0,2 UPC para os testes)

Dependências de Attrs
Exigidas

hatch-fancy-pypi-readme-24.1.0 e hatch_vcs-0.4.0

Opcionais (para testagem)

pytest-8.3.4, cloudpickle, hypothesis, Pympler, mypy, pytest-mypy-plugins, pytest-xdist[psutil] e zope.interface

Instalação do Attrs

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user attrs

Para testar a instalação, execute:

python3 -m venv --system-site-packages testenv           &&
testenv/bin/pip3 install 'attrs[tests]'                  &&
PATH=$PWD/testenv/bin:$PATH testenv/bin/python -m pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/attr, /usr/lib/python3.13/site-packages/attrs e /usr/lib/python3.13/site-packages/attrs-25.1.0.dist-info

babel-2.17.0

Introdução ao Módulo Babel

O pacote "Babel" é uma coleção integrada de utilitários que auxiliam na internacionalização e localização de aplicações "Python", com ênfase em aplicações baseadas na web.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Babel
Exigidas

pytz-2025.1

Opcionais (para testagem)

pytest-8.3.4, Python-3.13.2 (com o módulo sqlite), freezegun e pytest-cov

Instalação do Babel

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user Babel

Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install pytest-cov freezegun              &&
python3 /usr/bin/pytest
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: pybabel
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/babel e /usr/lib/python3.13/site-packages/Babel-2.17.0.dist-info
Descrições Curtas

pybabel

é uma interface de linha de comando para trabalhar com catálogos de mensagens

certifi-2025.1.31

Introdução ao Certifi Module

O módulo certifi fornece uma coleção cuidadosamente selecionada de Certificados Raiz da Mozilla para validar a confiabilidade dos certificados SSL enquanto verifica a identidade dos dispositivos TLS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do certifi

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user certifi

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/certifi e /usr/lib/python3.13/site-packages/certifi-2025.1.31.dist-info

Chardet-5.2.0

Introdução ao Módulo chardet

"Chardet" é um detector universal de codificação de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Chardet
Opcionais (para testagem)

pytest-8.3.4

Instalação do Chardet

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user chardet

Para testar a instalação, emita pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: chardetect
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/chardet e /usr/lib/python3.13/site-packages/chardet-5.2.0.dist-info
Descrições Curtas

chardetect

é um detector universal de codificação de caracteres

Charset-normalizer-3.4.1

Introdução ao Módulo charset-normalizer

A biblioteca charset-normalizer ajuda com leitura de texto originário de uma codificação de caracteres desconhecida.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Charset-normalizer
Exigidas

setuptools_scm-8.1.0

Opcionais (para testagem)

pytest-8.3.4, Python-3.13.2 (reconstruído depois de instalar SQLite-3.49.1) e pytest-cov

Instalação do Charset-normalizer

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user charset-normalizer

Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install pytest-cov                        &&
python3 /usr/bin/pytest
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: normalizer
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/charset_normalizer e /usr/lib/python3.13/site-packages/charset_normalizer-3.4.1.dist-info
Descrições Curtas

normalizer

é um Detector Universal de Conjuntos de Caracteres (descobre a codificação de origem e normaliza o texto para "Unicode")

Commonmark-0.9.1

Introdução ao Módulo Commonmark

"Commonmark" analisador "Python" para a especificação "CommonMark Markdown".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Commonmark
Opcionais (para testagem)

pytest-8.3.4, flake8 e hypothesis

Instalação do Commonmark

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user commonmark

Supondo que "pytest-8.3.4" esteja instalado e a outra dependência opcional não esteja, a instalação pode ser testada com:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install hypothesis                        &&
python3 /usr/bin/pytest commonmark/tests/unit_tests.py
python3 commonmark/tests/run_spec_tests.py
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: cmark
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/commonmark e /usr/lib/python3.13/site-packages/commonmark-0.9.1.dist-info

Descrições Curtas

cmark

processa "Markdown" de acordo com a especificação "CommonMark"

Editables-0.5

Introdução ao Módulo Editables

Editables é uma biblioteca Python para criar rodas editáveis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências de Editables
Opcionais (para testagem)

pytest-8.3.4

Instalação do Editables

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user editables

Para testar a instalação, emita: pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/editables e /usr/lib/python3.13/site-packages/editables-0.5.dist-info

Hatchling-1.27.0

Introdução ao Módulo Hatchling

"Hatchling" é uma estrutura de retaguarda de construção extensível e compatível com padrões para módulos "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Hatchling
Exigidas

editables-0.5, packaging-24.2, pathspec-0.12.1, pluggy-1.5.0 e trove-classifiers-2025.1.15.22

Instalação do Hatchling

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user hatchling

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: hatchling
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/hatchling e /usr/lib/python3.13/site-packages/hatchling-1.27.0.dist-info

Descrições Curtas

hatchling

é um construtor de módulo "Python"

Hatch-Fancy-Pypi-Readme-24.1.0

Introdução ao Hatch-Fancy-Pypi-Readme Module

Hatch-Fancy-Pypi-Readme é um plugin de hachura que preenche o campo leia-me nos metadados de um módulo Python a partir dos arquivos de documentação da linguagem de marcação do módulo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências de Hatch-Fancy-Pypi-Readme
Exigidas

hatchling-1.27.0

Opcionais (para testagem)

pytest-8.3.4 e build

Instalação do Hatch-Fancy-Pypi-Readme

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user hatch-fancy-pypi-readme

Para testar a instalação, certifique-se de que pytest-8.3.4 esteja instalado e execute:

python3 -m venv --system-site-packages testenv            &&
testenv/bin/pip3 install 'hatch-fancy-pypi-readme[tests]' &&
testenv/bin/python -m pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/hatch_fancy_pypi_readme e /usr/lib/python3.13/site-packages/hatch_fancy_pypi_readme-24.1.0.dist-info

Hatch_vcs-0.4.0

Introdução ao Módulo Hatch-vcs

Hatch_vcs é um plugin Hatch para versionamento com vários Sistemas de Controle de Versão ( VCS ).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Hatch_vcs
Exigidas

hatchling-1.27.0 e setuptools_scm-8.1.0

Opcionais (para testagem)

git-2.48.1 e pytest-8.3.4

Instalação do Hatch_vcs

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user hatch_vcs

Para testar a instalação, emita (HOME= impede o arquivo .gitconfig no diretório inicial de interferir nos testes): HOME= pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/hatch_vcs e /usr/lib/python3.13/site-packages/hatch_vcs-0.4.0.dist-info

Idna-3.10

Introdução ao Módulo Idna

O módulo "Idna" fornece suporte para o protocolo "Internationalized Domain Names in Applications" ("IDNA"), conforme especificado na "RFC" 5891.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Idna
Opcionais (para testagem)

pytest-8.3.4

Instalação do Idna

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user idna

Para testar a instalação, execute "pytest".

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/idna e /usr/lib/python3.13/site-packages/idna-3.10.dist-info

Imagesize-1.4.1

Introdução ao Módulo Imagesize

O pacote "imagesize" analisa os cabeçalhos dos arquivos de imagem e retorna o tamanho e o "DPI" da imagem. Funciona com formatos "JPEG"/"JPEG 2000"/"PNG"/"GIF"/"TIFF"/"SVG"/"Netpbm"/"WebP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Imagesize
Opcionais (para testagem)

pytest-8.3.4 e requests-2.32.3

Instalação do Imagesize

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user imagesize

Os testes para esse pacote são conhecidos por estarem quebrados. Para testar a instalação de qualquer maneira, execute pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/imagesize e /usr/lib/python3.13/site-packages/imagesize-1.4.1.dist-info

Iniconfig-2.0.0

Introdução ao Módulo Iniconfig

Iniconfig é um módulo analisador de arquivo "INI" pequeno e simples.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Iniconfig
Exigidas

hatch_vcs-0.4.0

Instalação do Iniconfig

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user iniconfig

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/iniconfig e /usr/lib/python3.13/site-packages/iniconfig-2.0.0.dist-info

Markdown-3.7

Introdução ao Módulo Markdown

"Markdown" é um analisador "Python" para a especificação "Markdown" de John Gruber.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Markdown
Opcionais (para testagem)

pytest-8.3.4, PyYAML-6.0.2 e coverage

Instalação do Markdown

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user Markdown

Supondo que pytest-8.3.4 e PyYAML-6.0.2 estejam instalados e a outra dependência opcional não esteja, a instalação pode ser testada com:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install coverage                          &&
python3 /usr/bin/pytest --ignore=tests/test_syntax/extensions/test_md_in_html.py
deactivate

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: markdown_py
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/markdown e /usr/lib/python3.13/site-packages/Markdown-3.7.dist-info

Descrições Curtas

markdown_py

converte arquivos "markdown" para "(x)html"

Meson_python-0.17.1

Introdução ao Módulo Meson_python

O módulo "Meson_python" contém uma estrutura de retaguarda de construção "Python" ("PEP" 517) para projetos "Meson".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Meson_python
Exigidas

pyproject-metadata-0.9.0

Recomendadas (tempo de execução)

patchelf-0.18.0

Opcionais (para testagem)

cython-3.0.12, git-2.48.1, pytest-8.3.4, Python-3.13.2 (reconstruído depois de instalar SQLite-3.49.1), build e pytest-mock

Instalação do Meson_python

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user meson_python

Para testar a instalação, certifique-se de que git-2.48.1, patchelf-0.18.0 e pytest-8.3.4 estejam instalados e Python-3.13.2 foi reconstruído depois de instalar SQLite-3.49.1, então emita (HOME= evita que o arquivo .gitconfig no diretório inicial interfira nos testes):

python3 -m venv --system-site-packages testenv &&
testenv/bin/pip3 install 'meson_python[test]'  &&
HOME= testenv/bin/python -m pytest

Dois testes chamados test_missing_version e test_pep621 são conhecidos por falharem com pyproject-metadata-0.8.0 ou posterior.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/meson_python e /usr/lib/python3.13/site-packages/meson_python-0.17.1.dist-info

Msgpack-1.1.0

Introdução ao Módulo Msgpack

Msgpack é um formato de serialização binária eficiente. Ele te permite trocar dados entre várias linguagens, como JSON. Mas é mais rápido e menor. Esse pacote fornece ligações CPython para leitura e escrita de dados do Msgpack.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Msgpack
Exigidas

cython-3.0.12

Opcionais (para testagem)

pytest-8.3.4

Instalação do Msgpack

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user msgpack

Para testar a instalação, emita pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/msgpack-1.1.0.dist-info e /usr/lib/python3.13/site-packages/msgpack

Pathspec-0.12.1

Introdução ao Módulo Pathspec

"Pathspec" é uma biblioteca de utilitários para correspondência de padrões de caminhos de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Pathspec
Opcionais (para testagem)

pytest-8.3.4

Instalação do Pathspec

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pathspec

Para testar a instalação, emita "pytest".

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pathspec e /usr/lib/python3.13/site-packages/pathspec-0.12.1.dist-info

Pluggy-1.5.0

Introdução ao Módulo Pluggy

O pacote "Pluggy" oferece a usuários(as) a capacidade de estender ou modificar o comportamento de um aplicativo anfitrião instalando um "plugin" para esse aplicativo. O código do "plugin" será executado como parte da execução normal do aplicativo, mudando ou aprimorando certos aspectos dele. Em essência, "pluggy" habilita a ligação de funções, de modo que um(a) usuário(a) consiga construir sistemas plugáveis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Pluggy
Recomendadas
Opcionais (para testagem)

pytest-8.3.4

Instalação do Pluggy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pluggy

Para testar a instalação, emita: pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pluggy e /usr/lib/python3.13/site-packages/pluggy-1.5.0.dist-info

Pyproject-Metadata-0.9.0

Introdução ao Módulo Pyproject-Metadata

O módulo "Pyproject-Metadata" contém uma classe de dados para metadados "PEP" 621 com suporte para geração de metadados centrais ("PEP" 643).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Pyproject-Metadata
Exigidas

packaging-24.2

Opcionais (para testagem)

pytest-8.3.4

Instalação do Pyproject-Metadata

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pyproject-metadata

Para testar a instalação, emita: pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pyproject_metadata e /usr/lib/python3.13/site-packages/pyproject_metadata-0.9.0.dist-info

Pytz-2025.1

Introdução ao Módulo Pytz

A biblioteca "Pytz" traz a base de dados "tz" da "IANA" para o "Python". Ela permite cálculos de fuso horário precisos e entre plataformas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Pytz
Opcionais (para testagem)

pytest-8.3.4

Instalação do Pytz

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user pytz

Para testar a instalação, execute "pytest". Uns poucos avisos são emitidos.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/pytz e /usr/lib/python3.13/site-packages/pytz-2025.1.dist-info

Setuptools_scm-8.1.0

Introdução ao Módulo Setuptools_scm

O pacote "Setuptools_scm" é usado para extrair versões de pacotes "Python" a partir dos metadados "git" ou "hg" em vez de declará-los.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Setuptools_scm
Exigidas

packaging-24.2

Opcionais (para testagem)

git-2.48.1, Mercurial-6.9.2, pytest-8.3.4, Sudo-1.9.16p2 e build

Instalação do Setuptools_scm

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user setuptools_scm

Para testar a instalação, certifique-se de que pytest-8.3.4 está instalado a execute (HOME= evita que o arquivo .gitconfig no diretório inicial de interfira nos testes):

python3 -m venv --system-site-packages testenv &&
testenv/bin/pip3 install build                 &&
TZ=UTC HOME= testenv/bin/python -m pytest

Se git-2.48.1 e (ou) Mercurial-6.9.2 não estiverem instalados, os testes dependentes do(s) ausente(s) serão ignorados. Alguns testes possivelmente invoquem Sudo-1.9.16p2 e solicitem uma senha.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/setuptools_scm e /usr/lib/python3.13/site-packages/setuptools_scm-8.1.0.dist-info

Smartypants-2.0.1

Introdução ao Módulo Smartypants

"Smartypants" traduz caracteres de pontuação "ASCII" simples em entidades "HTML" de pontuação tipográfica inteligente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Smartypants
Opcionais (para testagem)

docutils-0.21.2, Pygments-2.19.1 e pytest-8.3.4

Instalação do Smartypants

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user smartypants

Para testar os resultados, emita:

sed 's/assertEquals/assertEqual/' -i tests/test_cli.py &&
cp /usr/bin/smartypants . &&
pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: smartypants
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/smartypants-2.0.1.dist-info

Descrições Curtas

smartypants

traduz pontuação "ASCII" em pontuação "HTML".

Snowballstemmer-2.2.0

Introdução ao Módulo Snowballstemmer

O pacote Snowballstemmer é uma pequena linguagem de processamento de sequências de caracteres para criar algoritmos de remoção de radical [de palavras] para uso em Recuperação de Informação, mais uma coleção de algoritmos de remoção de radical [de palavras] implementados usando-a. O removedor de radical [de palavras] mapeia diferentes formas da mesma palavra para um radical comum — por exemplo, o removedor inglês de radical [de palavras] mapeia connection, connections, connective, connected e connecting para connect. Executar-se uma busca por connected também encontraria documentos que tenham somente as outras formas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Snowballstemmer

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user snowballstemmer

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/snowballstemmer e /usr/lib/python3.13/site-packages/snowballstemmer-2.2.0.dist-info

Sphinxcontrib-applehelp-2.0.0

Introdução ao Módulo Sphinxcontrib-applehelp

O pacote "Sphinxcontrib-applehelp" é uma extensão "Sphinx" que produz livros de ajuda da "Apple".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-applehelp
Opcionais (para testagem)

pytest-8.3.4 e sphinx-8.2.1 (dependência circular)

Instalação do Sphinxcontrib-applehelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-applehelp

Para testar a instalação, execute "pytest". Vários avisos possivelmente sejam emitidos devido ao uso de funções obsoletas.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_applehelp-2.0.0.dist-info

Sphinxcontrib-devhelp-2.0.0

Introdução ao Módulo Sphinxcontrib-devhelp

O pacote "Sphinxcontrib-devhelp" é uma extensão "Sphinx" que produz documentos Devhelp.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-devhelp
Opcionais (para testagem)

pytest-8.3.4 e sphinx-8.2.1 (dependência circular)

Instalação do Sphinxcontrib-devhelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-devhelp

Para testar a instalação, execute "pytest".

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_devhelp-2.0.0.dist-info

Sphinxcontrib-htmlhelp-2.1.0

Introdução ao Módulo Sphinxcontrib-htmlhelp

O pacote "Sphinxcontrib-htmlhelp" é uma extensão "Sphinx" que renderiza arquivos de ajuda "HTML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-htmlhelp
Opcionais (para testagem)

pytest-8.3.4, sphinx-8.2.1 (dependência circular) e html5lib-1.1

Instalação do Sphinxcontrib-htmlhelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-htmlhelp

Se as dependências opcionais estiverem instaladas, o pacote pode ser testado com:

pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_htmlhelp-2.1.0.dist-info

Sphinxcontrib-jquery-4.1

Introdução ao Módulo Sphinxcontrib-jquery

O pacote "Sphinxcontrib-jquery" é uma extensão "Sphinx" que inclui "jQuery" nos lançamentos mais recentes do "Sphinx".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-jquery
Exigidas

sphinx-8.2.1

Opcionais (para testagem)

pytest-8.3.4

Instalação do Sphinxcontrib-jquery

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-jquery

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_jquery-4.1.dist-info

Sphinxcontrib-jsmath-1.0.1

Introdução ao Módulo Sphinxcontrib-jsmath

O pacote "Sphinxcontrib-jsmath" é uma extensão "Sphinx" que renderiza matemática de exibição em "HTML" via "JavaScript".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-jsmath
Opcionais (para testagem)

pytest-8.3.4 e sphinx-8.2.1 (dependência circular)

Instalação do Sphinxcontrib-jsmath

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-jsmath

A instalação pode ser testada com os seguintes comandos:

sed -i 's/text()/read_&/' tests/test_jsmath.py &&
pytest

o comando "sed ..." é necessário devido a uma mudança na "API" "Sphinx" para lançamentos superiores a 5.0.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info

Sphinxcontrib-qthelp-2.0.0

Introdução ao Módulo Sphinxcontrib-qthelp

O pacote "Sphinxcontrib-qthelp" é uma extensão "Sphinx" que produz documentos "QtHelp".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-qthelp
Opcionais (para testagem)

pytest-8.3.4, sphinx-8.2.1 (dependência circular) e defusedxml

Instalação do Sphinxcontrib-qthelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-qthelp

A instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
testenv/bin/pip3 install defusedxml            &&
testenv/bin/python -m pytest

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_qthelp-2.0.0.dist-info

Sphinxcontrib-serializinghtml-2.0.0

Introdução ao Módulo Sphinxcontrib-serializinghtml

O pacote "Sphinxcontrib-serializinghtml" é uma extensão "Sphinx" que produz arquivos "HTML" serializados ("json" e "pickle").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Sphinxcontrib-serializinghtml
Opcionais (para testagem)

pytest-8.3.4 e sphinx-8.2.1 (dependência circular)

Instalação do Sphinxcontrib-serializinghtml

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user sphinxcontrib-serializinghtml

Para testar a instalação, primeiro instale sphinx-8.2.1, a seguir execute pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_serializinghtml-2.0.0.dist-info

Trove-Classifiers-2025.1.15.22

Introdução ao Trove-Classifiers Module

Trove-Classifiers é uma biblioteca Python que abrange todos os classificadores PyPI válidos usados para categorizar projetos e lançamentos de acordo com PEP 301, por exemplo Topic :: System :: Filesystems e Development Status :: 6 - Mature.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências de Trove-Classifiers
Opcionais (para testagem)

pytest-8.3.4

Instalação do Trove-Classifiers

Primeiro, codifique rigidamente a versão do pacote em setup.py para contornar um problema que faz com que a roda gerada contenha uma sequência incorreta de caracteres de versão quando o módulo calver não estiver instalado:

sed -i '/calver/s/^/#/;$iversion="2025.1.15.22"' setup.py

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user trove-classifiers

Para testar a instalação, emita: pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/trove_classifiers e /usr/lib/python3.13/site-packages/trove_classifiers-2025.1.15.22.dist-info

Typogrify-2.1.0

Introdução ao Módulo Typogrify

"Typogrify" fornece filtros para aprimorar a tipografia da "web", incluindo suporte para modelos "Django" e "Jinja".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Typogrify
Exigidas

smartypants-2.0.1

Instalação do Typogrify

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user typogrify

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/typogrify e /usr/lib/python3.13/site-packages/typogrify-2.1.0.dist-info

Urllib3-2.3.0

Introdução ao Módulo Urllib3

O módulo "Urllib3" é um cliente "HTTP", poderoso e amigável para com o(a) usuário(a), para "Python". Ele traz muitos recursos críticos que estão ausentes nas bibliotecas padrão do "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Urllib3
Exigidas

hatchling-1.27.0

Opcionais (para testes)

pytest-8.3.4, httpx, hypercorn, mock, PySocks, pytest-timeout, python-dateutil, quart, quart-trio, tornado, trio e trustme

Instalação do Urllib3

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-user urllib3

Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install trustme         \
             tornado         \
             python-dateutil \
             mock            \
             pysocks         \
             pytest-timeout  \
             trio            \
             hypercorn       \
             quart           \
             quart_trio      \
             httpx           &&
python3 /usr/bin/pytest
deactivate

Cerca de 37 erros são conhecidos por ocorrerem devido a pequenas mudanças de comportamento nos módulos externos do Python acima, quando combinados com o Python 3.13.2.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/urllib3 e /usr/lib/python3.13/site-packages/urllib3-2.3.0.dist-info

webencodings-0.5.1

Introdução ao Webencodings Module

O módulo webencodings é uma implementação Python do padrão de codificação WHATWG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do webencodings

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-user webencodings

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/webencodings e /usr/lib/python3.13/site-packages/webencodings-0.5.1.dist-info

Last updated on

Ruby-3.4.2

Introdução ao Ruby

O pacote "Ruby" contém o ambiente de desenvolvimento "Ruby". Isso é útil para "scripts" orientados a objetos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 63a56b170246fcf0198a5eaba57dd46c

  • Tamanho da transferência: 16 MB

  • Espaço em disco estimado exigido: 697 MB (com documentos de API da C e testes)

  • Tempo de construção estimado: 1,0 UPC (com documentos da API da C; adicionar 0,5 UPC para testes; todos usando paralelismo=4)

Dependências do Ruby

Exigidas

libyaml-0.2.5

Opcionais

Doxygen-1.13.2, Graphviz-12.2.1, rustc-1.85.0, Tk-8.6.16, Valgrind-3.24.0, Berkeley DB (obsoleto) e DTrace

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do Ruby

Nota

Se tiver instalado um pacote que fornece uma gema de Ruby, como asciidoctor-2.0.23, você precisa reinstalar esses pacotes ao atualizar para uma nova versão secundária do Ruby.

Instale "Ruby" executando o seguinte comando:

./configure --prefix=/usr         \
            --disable-rpath       \
            --enable-shared       \
            --without-valgrind    \
            --without-baseruby    \
            ac_cv_func_qsort_r=no \
            --docdir=/usr/share/doc/ruby-3.4.2 &&
make

Opcionalmente, construa os documentos da "API" "C" executando os seguintes comandos:

make capi

Para testar os resultados, emita: make -k check. Se o ambiente tiver variáveis relacionadas às configurações de proxy (all_proxy, ALL_PROXY, http_proxy e etc.) configuradas, a suíte de teste sairá mais cedo com mensagens como net/ftp is not found. Certifique-se de que você desconfigurou essas variáveis para a suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Nota

Se você tem aplicativos "Ruby-On-Rails" instalados e fez uma atualização do "Ruby" instalando esse pacote, [então] você pode precisar executar uma atualização lá também (como o(a) usuário(a) "root"):

cd /caminho/para/aplicativo/web/
bundle update rake

e reinicie o servidor "web" que atende o aplicativo.

Explicações do Comando

--disable-rpath: Essa chave desabilita a incorporação de /usr/lib como um caminho de pesquisa de biblioteca no aplicativo ruby. Fazer isso não é necessário (porque /usr/lib é um caminho de biblioteca do sistema) e possivelmente faça com que a suíte de teste executar com a libruby. so do sistema em vez da recém construída quando o Ruby foi instalado.

--enable-shared: Essa chave habilita construir a biblioteca compartilhada "libruby".

--without-baseruby: Essa chave impede usar o ruby do sistema se ele já estiver instalado. O sistema de construção usará a versão recém-construída.

ac_cv_func_qsort_r=no: Essa chave impede usar a função qsort_r proveniente da Glibc. Ruby faz algumas otimizações agressivas assumindo alguns detalhes de implementação do algoritmo de ordenação, mas a suposição não é verdadeira com a implementação da Glibc. Com essa chave, Ruby usará a própria implementação dela de ordenação.

--disable-install-doc: Essa chave desabilita construir e instalar índices "rdoc" e documentos da "API" "C".

--disable-install-rdoc: Essa chave desabilita construir e instalar índices "rdoc".

--disable-install-capi: Essa chave desabilita construir e instalar documentos da "API" "C".

Conteúdo

Aplicativos Instalados: bundle, bundler, erb, gem, irb, racc, rake, rbs, rdbg, rdoc, ri, ruby e typeprof
Bibliotecas Instaladas: libruby.so
Diretórios Instalados: /usr/include/ruby-3.4.0, /usr/lib/ruby, /usr/share/doc/ruby-3.4.2 e /usr/share/ri

Descrições Curtas

bundle

cria pacotes de "Ruby Gems"

bundler

gerencia as dependências de um aplicativo durante todo o ciclo de vida dele

erb

é uma estrutura de interação direta com o(a) usuário(a) em linha de comando para "eRuby", que fornece um sistema de modelos para "Ruby"

gem

é o comando para "RubyGems", que é um sofisticado gerenciador de pacotes para "Ruby". Isso é semelhante ao comando "pip" do "Python"

irb

é a interface interativa para "Ruby"

rake

é um utilitário de construção semelhante ao "make" para "Ruby"

rdbg

é um depurador interativo para "Ruby"

rdoc

gera documentação "Ruby"

ri

exibe documentação a partir de uma base de dados relacionada a classes, módulos e métodos "Ruby"

ruby

é uma linguagem de "script" interpretada para programação orientada a objetos rápida e fácil

libruby.so

contém as funções da "API" exigidas pelo "Ruby"

Rustc-1.85.0

Introdução ao Rust

A linguagem de programação Rust foi projetada para ser uma linguagem segura, simultânea e prática.

Esse pacote é atualizado em um ciclo de lançamento de seis semanas. Por ser um pacote tão grande e lento para construir, é, no momento, exigido somente por uns poucos pacotes neste livro, e particularmente porque versões mais novas tendem a quebrar pacotes mais antigos do Mozilla, os(as) editores(as) do BLFS consideram que ele deveria ser atualizado somente quando necessário (ou para corrigir problemas ou para permitir que uma nova versão de um pacote construa).

Tal como acontece com muitas outras linguagens de programação, o "Rustc" (o compilador "Rust") precisa de um binário a partir do qual inicializar. Ele baixará um binário stage0 no início da construção, de forma que você não consegue compilá-lo sem uma conexão com a Internet.

Nota

Embora o BLFS normalmente instale em "/usr", quando você atualizar posteriormente para uma versão mais recente do "rust", as bibliotecas antigas em "/usr/lib/rustlib" permanecerão, com vários "hashes" nos nomes delas, mas não serão usáveis e desperdiçarão espaço. Os(As) editores(as) recomendam colocar os arquivos no diretório "/opt". Em particular, se você tiver motivos para reconstruir com uma configuração modificada (por exemplo, usando o "LLVM" enviado após construir com "LLVM" compartilhado, talvez para compilar caixas para arquiteturas que a construção "LLVM" do BLFS não suporta), [então] é possível que a instalação deixe um aplicativo quebrado "cargo". Em tal situação, remova a instalação existente primeiro ou use um prefixo diferente, como "/opt/rustc-1.85.0-build2".

Se preferir, você pode, certamente, mudar o prefixo para "/usr".

O sistema de construção rustbuild atual usará todos os processadores, embora não escale bem e frequentemente recorra a usar apenas um núcleo enquanto espera que uma biblioteca compile. No entanto, ele pode ser limitado principalmente a um número especificado de processadores por uma combinação da adição da chave --jobs <N> (por exemplo, '--jobs 4' para limitar a 4 processadores) em cada invocação de ./x.py e usando uma variável de ambiente CARGO_BUILD_JOBS=<N>. No momento, isso não é eficaz quando alguns dos testes rustc são executados.

A versão atual da caixa num_cpus do Rust agora reconhece que cgroups pode ser usado para restringir quais processadores ele está autorizado a usar. Portanto, se tua máquina carecer de DRAM (normalmente, menos de 2 GB de DRAM por núcleo), isso pode ser uma alternativa para colocar as CPUs offline. Leia-se “Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” para como usar um cgroup.

No momento, "Rust" não oferece nenhuma garantia de uma "ABI" estável.

Nota

O padrão do "Rustc" é o de construir para TODAS as arquiteturas suportadas, usando uma cópia enviada do "LLVM". No BLFS a construção é somente para a arquitetura "X86". Se você pretende desenvolver caixas "Rust", [então] essa construção possivelmente não seja boa o suficiente para os teus propósitos.

Os tempos de construção dessa versão, quando repetidos na mesma máquina, costumam ser razoavelmente consistentes, mas como acontece com todas as compilações usando "rustc", pode existir alguns valores discrepantes muito lentos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://static.rust-lang.org/dist/rustc-1.85.0-src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a0193e0a4925f772bd50f8d12e47860c

  • Tamanho da transferência: 261 MB

  • Espaço em disco estimado exigido: 9,4 GB (252 MB instalado); adicionar 7,4 GB se executar os testes

  • Tempo de construção estimado: 9,0 UPC (incluindo o tempo de transferência; adicionar 15 UPC para testes, ambos usando paralelismo=8)

Dependências do Rust

Exigidas

CMake-3.31.5 e cURL-8.12.1

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Recomendadas

Nota

Se uma dependência recomendada não estiver instalada, [então] uma cópia enviada no "tarball" do fonte do "Rustc" será construída e usada.

Opcionais

GDB-16.2 (usado pela suíte de teste se estiver presente), git-2.48.1 (exigido pela suíte de teste), cranelift, jemalloc, libgccjit (leia-se Explicação do Comando em GCC-14.2.0) e libgit2

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/rust

Instalação do Rust

Para instalar no diretório "/opt", remova qualquer link simbólico "/opt/rustc" existente e crie um novo diretório (ou seja, com um nome diferente se tentar uma construção modificada da mesma versão). Como o(a) usuário(a) "root":

mkdir -pv /opt/rustc-1.85.0     &&
ln -svfn rustc-1.85.0 /opt/rustc

Nota

Se múltiplas versões do "Rust" estiverem instaladas em "/opt", [então] a mudança para outra versão exige somente mudar o link simbólico "/opt/rustc" e então executar "ldconfig".

Crie um arquivo "config.toml" adequado que configurará a construção.

cat << EOF > config.toml
# see config.toml.example for more possible options
# See the 8.4 book for an old example using shipped LLVM
# e.g. if not installing clang, or using a version before 13.0

# Tell x.py the editors have reviewed the content of this file
# and updated it to follow the major changes of the building system,
# so x.py will not warn us to do such a review.
change-id = 134650

[llvm]
# When using system llvm prefer shared libraries
link-shared = true

# Do not download pre-built LLVM, instead either use the system
# LLVM or build LLVM from the shipped source.
download-ci-llvm = false

# If building the shipped LLVM source, only enable the x86 target
# instead of all the targets supported by LLVM.
targets = "X86"

[build]
# omit docs to save time and space (default is to build them)
docs = false

# install extended tools: cargo, clippy, etc
extended = true

# Do not query new versions of dependencies online.
locked-deps = true

# Specify which extended tools (those from the default install).
tools = ["cargo", "clippy", "rustdoc", "rustfmt"]

[install]
prefix = "/opt/rustc-1.85.0"
docdir = "share/doc/rustc-1.85.0"

[rust]
channel = "stable"
description = "for BLFS 12.3"

# Enable the same optimizations as the official upstream build.
lto = "thin"
codegen-units = 1

[target.x86_64-unknown-linux-gnu]
llvm-config = "/usr/bin/llvm-config"

[target.i686-unknown-linux-gnu]
llvm-config = "/usr/bin/llvm-config"
EOF

Agora remova alguns testes que deflagram uma reconstrução completa da biblioteca padrão e do compilador Rust:

sed '/MirOpt/d' -i src/bootstrap/src/core/builder/mod.rs

Compile "Rust" executando os seguintes comandos:

[ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1
[ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
./x.py build

Nota

A suíte de teste gerará algumas mensagens no registro do sistema para interceptações em códigos inválidos de operação e para falhas de segmentação. Por si só, isso não é motivo de preocupação, apenas uma maneira do teste ser terminado.

Para executar os testes (novamente usando todas as "CPUs" disponíveis), emita:

./x.py test --verbose --no-fail-fast | tee rustc-testlog

Seis testes na suíte de teste de instruções de autoaprimoramento são conhecidos por falharem porque eles esperam executar no repositório Git da Rust.

Tal como acontece com todas as grandes suítes de teste, alguns testes podem falhar em algumas máquinas - se o número de falhas adicionais for baixo, verifique se existem 'failures:' no registro e revise as linhas acima, especialmente as linhas 'stderr:'. Qualquer menção ao SIGSEGV ou ao sinal onze (11) em um teste falho é motivo de preocupação.

Se você receber algum outro teste falho que informe um número de problema, então você deveria procurar por esse problema. Por exemplo, quando "Rustc" >= 1.41.1 era construído com uma versão do "LLVM" do sistema anterior à 10.0, o teste para o problema "69225" falhava https://github.com/rust-lang/rust/issues/69225 e isso deveria ser considerado como uma falha crítica (eles(as) lançaram 1.41.1 por causa disso). A maioria das outras falhas não será crítica.

Portanto, você deveria determinar o número de falhas. O número de testes que passaram e falharam pode ser encontrado executando-se:

grep '^test result:' rustc-testlog |
 awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }'

Os outros campos disponíveis são "$8" para aqueles que foram ignorados (ou seja, pulados), "$10" para 'medido' e "$12" para 'filtrado', mas ambos os dois últimos provavelmente sejam zero.

Agora, como o(a) usuário(a) "root", instale o pacote:

Nota

Se sudo ou su for invocado para comutar para o(a) usuário(a) root, certifique-se de que LIBSSH2_SYS_USE_PKG_CONFIG e LIBSQLITE3_SYS_USE_PKG_CONFIG sejam passados corretamente ou o comando a seguir pode reconstruir cargo com cópias enviadas de libssh2 e sqlite. Para sudo, use a opção --preserve-env=LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG. Para su, não use as opções - ou --login.

./x.py install rustc std &&
./x.py install --stage=1 cargo clippy rustfmt

Ainda como o(a) usuário(a) root, corrija a instalação da documentação, linque simbolicamente um arquivo de completação do Zsh para o local correto, e mova um arquivo de completação do Bash para o local recomendado pelos(as) mantenedores(as) da completação do Bash:

rm -fv /opt/rustc-1.85.0/share/doc/rustc-1.85.0/*.old   &&
install -vm644 README.md                                \
               /opt/rustc-1.85.0/share/doc/rustc-1.85.0 &&

install -vdm755 /usr/share/zsh/site-functions      &&
ln -sfv /opt/rustc/share/zsh/site-functions/_cargo \
        /usr/share/zsh/site-functions

mv -v /etc/bash_completion.d/cargo /usr/share/bash-completion/completions

Finalmente, desconfigure as variáveis de ambiente exportadas:

unset LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG

Explicações do Comando

ln -svfn rustc-1.85.0 /opt/rustc: se esse não for o primeiro uso do link simbólico /opt/rustc, [então] sobrescreva-o forçando e use o sinalizador '-n' para evitar resultados confusos oriundos, por exemplo, de ls -l.

targets = "X86": isso evita construir todos os compiladores cruzados disponíveis do Linux (AArch64, MIPS, PowerPC, SystemZ, etc). Infelizmente, o Rust insiste em instalar os arquivos fonte para esses abaixo de /opt/rustc/lib/src.

extended = true: isso instala várias ferramentas (especificadas pela entrada tools) juntamente com o rustc.

tools = ["cargo", "clippy", "rustdoc", "rustfmt"]: construa somente as ferramentas a partir do perfil 'padrão' no comando binário rustup que é recomendado para a maioria dos(as) usuários(as). As outras ferramentas são improváveis que sejam úteis, a menos que se use analisadores (antigos) de código ou se edite a biblioteca padrão.

channel = "stable": isso garante que somente recursos estáveis possam ser usados. O padrão no config.toml é o de usar recursos de desenvolvimento, o que não é apropriado para uma versão lançada.

[target.x86_64-unknown-linux-gnu]: a sintaxe do config.toml exige uma entrada llvm-config para cada alvo para o qual o LLVM do sistema esteja para ser usado. Mude o alvo para [target.i686-unknown-linux-gnu] se você estiver construindo em x86 de 32 bits. Essa seção inteira pode ser omitida se você desejar construir contra o LLVM enviado ou não tiver clang, mas a construção resultante será maior e demorará mais.

export LIBSSH2_SYS_USE_PKG_CONFIG=1: Permite que o "cargo" se vincule à "libssh2" do sistema.

export LIBSQLITE3_SYS_USE_PKG_CONFIG=1: Permite cargo lincar ao sqlite do sistema.

--verbose: essa chave às vezes pode fornecer mais informações relativas a um teste que falhe.

--no-fail-fast: essa chave garante que a suíte de teste não parará no primeiro erro.

--stage=1: essa chave contorna um problema que faz com que alguns componentes do Rustc sejam reconstruídos desnecessariamente ao se executar ./x.py install.

Configurando o Rust

Informação de Configuração

Se você instalou "rustc" em "/opt", [então] você precisa atualizar os seguintes arquivos de configuração, de forma que "rustc" seja encontrado corretamente por outros pacotes e processos do sistema.

Como o(a) usuário(a) "root", crie o arquivo "/etc/profile.d/rustc.sh":

cat > /etc/profile.d/rustc.sh << "EOF"
# Begin /etc/profile.d/rustc.sh

pathprepend /opt/rustc/bin           PATH

# End /etc/profile.d/rustc.sh
EOF

Imediatamente depois da instalação, atualize o PATH atual para teu shell atual como um(a) usuário(a) normal:

source /etc/profile.d/rustc.sh

Conteúdo

Aplicativos Instalados: cargo-clippy, cargo-fmt, cargo, clippy-driver, rust-gdb, rust-gdbgui, rust-lldb, rustc, rustdoc e rustfmt
Bibliotecas Instaladas: librustc-driver-<resumo_de_16_bytes>.so, libstd-<resumo_de_16_bytes>.so e libtest-<resumo_de_16_bytes>.so
Diretórios Instalados: ~/.cargo, /opt/rustc, link simbólico para /opt/rustc-1.85.0

Descrições Curtas

cargo-clippy

fornece verificações "lint" para um pacote "cargo"

cargo-fmt

formata todos os arquivos "bin" e "lib" da caixa atual usando "Rustfmt"

cargo

é o Gerenciador de Pacote para "Rust"

clippy-driver

fornece verificações "lint" para "Rust"

rust-gdb

é um "script" envólucro para "gdb", extraindo módulos de impressão bonita do "Python" instalados em "/opt/rustc-1.85.0/lib/rustlib/etc"

rust-gdbgui

é um "script" envólucro para uma estrutura gráfica de interação direta com o(a) usuário(a) para "gdb" que executa em um navegador

rust-lldb

é um "script" envólucro para "LLDB" (o depurador "LLVM") que extrai os módulos de impressão bonita do "Python"

rustc

é o compilador "rust"

rustdoc

gera documentação a partir do código fonte "rust"

rustfmt

formata código "rust"

libstd-<resumo_de_16_bytes>.so

é a biblioteca padrão do "Rust", a fundação do logiciário portável "Rust"

rust-bindgen-0.71.1

Introdução ao rust-bindgen

O pacote rust-bindgen contém um utilitário que gera ligações Rust a partir de cabeçalhos C/C++.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de rust-bindgen

Exigidas

rustc-1.85.0 e LLVM-19.1.7 (com Clang, tempo de execução)

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Instalação do rust-bindgen

Instale rust-bindgen executando os seguintes comandos:

cargo build --release

Para testar os resultados, emita: cargo test --release.

Agora, como o(a) usuário(a) root:

install -v -m755 target/release/bindgen /usr/bin

Ainda como o(a) usuário(a) root, instale os arquivos de suporte à completação do Bash e do Zsh:

bindgen --generate-shell-completions bash \
    > /usr/share/bash-completion/completions/bindgen
bindgen --generate-shell-completions zsh  \
    > /usr/share/zsh/site-functions/_bindgen

Conteúdo

Aplicativos Instalados: bindgen
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

bindgen

gera ligações para Rust a partir de cabeçalhos C/C++

SCons-4.8.1

Introdução ao SCons

"SCons" é uma ferramenta para construir logiciário (e outros arquivos) implementada em "Python".

Nota

Ao expandir o tarball, o pacote expande para scons-4.8.1, não para o esperado SCons-4.8.1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/scons/SCons-4.8.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ed49dcac8dd586f1d78955bcd9878905

  • Tamanho da transferência: 3,1 MB

  • Espaço em disco estimado exigido: 50 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do SCons

Construa o pacote:

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Como o(a) usuário(a) root, instale o pacote:

pip3 install --no-index --find-links dist --no-user SCons &&
install -v -m664 *.1 /usr/share/man/man1

Conteúdo

Aplicativos Instalados: scons, scons-configure-cache e sconsign
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/lib/python3.13/site-packages/SCons{,-4.8.1.dist-info}

Descrições Curtas

scons

é uma ferramenta de construção de logiciário

scons-configure-cache

mostra ou converte a configuração de um diretório de cache do "SCons"

sconsign

imprime informações do arquivo .sconsign do SCons

slang-2.3.3

Introdução ao slang

"S-Lang" ("slang") é uma linguagem interpretada que pode ser incorporada em um aplicativo para torná-lo extensível. Ela fornece recursos exigidos por aplicativos interativos, como gerenciamento de exibição/tela, entrada de teclado e mapas de teclado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.jedsoft.org/releases/slang/slang-2.3.3.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 69015c8300088373eb65ffcc6ed4db8c

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 22 MB (adicionar 15 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 0,5 UPC para testes)

Dependências do Slang

Opcionais

libpng-1.6.46 e Oniguruma

Instalação do Slang

Nota

Esse pacote não suporta construção paralela.

Instale "slang" executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --with-readline=gnu &&
make -j1 RPATH=

Para testar os resultados, emita: LC_ALL=C make check.

Agora, como o(a) usuário(a) "root":

make install_doc_dir=/usr/share/doc/slang-2.3.3   \
     SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh \
     RPATH= install

Explicações do Comando

--with-readline=gnu: Esse parâmetro configura o "Readline" do "GNU" para ser usado pela interface do analisador em vez da versão interna do "slang".

RPATH=: Essa variável substituída do make impede codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos executáveis binários e nas bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança.

install_doc_dir=/usr/share/doc/slang-2.3.3 SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh: Essas variáveis substituídas do make garantem instalar esse pacote com um diretório versionado de instalação da documentação.

Configurando slang

Arquivos de Configuração

~/.slshrc e /etc/slsh.rc

Conteúdo

Aplicativo Instalado: slsh
Bibliotecas Instaladas: "libslang.so" e numerosos módulos de suporte
Diretórios Instalados: /usr/lib/slang, /usr/share/doc/slang-2.3.3 e /usr/share/slsh

Descrições Curtas

slsh

é um aplicativo simples para interpretar "scripts" "slang". Ele suporta carregamento dinâmico de módulos "slang" e inclui uma interface "Readline" para uso interativo

Subversion-1.14.5

Introdução ao Subversion

"Subversion" é um sistema de controle de versão que foi projetado para ser um substituto atraente para o "CVS" na comunidade de fonte aberto. Ele amplia e aprimora o conjunto de recursos do "CVS", enquanto mantém uma interface semelhante para aqueles(as) já familiarizados(as) com o "CVS". Estas instruções instalam o logiciário cliente e servidor usado para manipular um repositório "Subversion". A criação de um repositório é abordada em Executando um Servidor "Subversion".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/subversion/subversion-1.14.5.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: af6001dc7af2f1242a4f72e8a5c565d2

  • Tamanho da transferência: 8,3 MB

  • Espaço em disco estimado exigido: 260 MB (adicionar 189 MB para ligações, 54 MB para documentos, 1,3 GB para testes)

  • Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4; adicionar 2,0 UPC para ligações, 30 UPC para testes)

Dependências do Subversion

Exigidas

Apr-Util-1.6.3 e SQLite-3.49.1

Recomendadas
Opcionais

Apache-2.4.63, Boost-1.87.0, Cyrus SASL-2.1.28, dbus-1.16.0, Doxygen-1.13.2 (para gerar documentação HTML), gnome-keyring-46.2, libsecret-0.21.6, Py3c-1.4 (para as ligações Python, e testes), Python-3.13.2 (com suporte a sqlite para os testes), Ruby-3.4.2, SWIG-4.3.0 e UTF8proc

Opcionais (para as ligações Java)

Um de OpenJDK-23.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações "Java") e apache-ant-1.10.15.

Instalação do Subversion

Instale Subversion executando os seguintes comandos:

./configure --prefix=/usr            \
            --disable-static         \
            --with-apache-libexecdir \
            --with-utf8proc=internal &&
make

Se você tiver "Doxygen-1.13.2" instalado e desejar construir a documentação da "API", emita:

doxygen doc/doxygen.conf

Se você deseja construir as ligações Java, [então] passe o parâmetro "--enable-javahl" para o comando "configure". Além disso, se desejar executar a suíte de teste "Java", [então] você tem de especificar o local do arquivo "JUnit" adicionando "--with-junit=<caminho para o jar junit>" (por exemplo "--with-junit=/usr/local/java/lib/junit-4.13.jar") para o "configure". O arquivo "jar" do "JUnit" não mais está incluído em "apache-ant-1.10.15" e precisa ser baixado separadamente. Para construir as ligações "Java", emita o seguinte comando:

make -j1 javahl

Se tu desejar compilar ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes comandos:

make swig-pl # para Perl
make swig-py \
     swig_pydir=/usr/lib/python3.13/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.13/site-packages/svn # para Python
make swig-rb # para Ruby

Para testar os resultados, emita: make check.

Para testar os resultados de quaisquer das ligações "SWIG", você pode usar algum dos seguintes comandos: "make check-swig-pl", "make check-swig-py" ou "make check-swig-rb".

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d /usr/share/doc/subversion-1.14.5 &&
cp     -v -R doc/* /usr/share/doc/subversion-1.14.5

Se você construiu as ligações "Java", [então] emita o seguinte comando como o(a) usuário(a) "root" para instalá-las:

make install-javahl

Se você construiu as ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes comandos como o(a) usuário(a) "root" para instalá-las:

make install-swig-pl
make install-swig-py \
     swig_pydir=/usr/lib/python3.13/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.13/site-packages/svn
make install-swig-rb

As ligações "Java" precisam ser instaladas para a finalidade de que os testes executem, pois os testes tentam procurá-las em "CLASSPATH". Para testar os resultados da construção de ligações "Java", emita "LANG=C make check-javahl".

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-apache-libexecdir: Se o "Apache-2.4.63" estiver instalado, [então] os módulos compartilhados do "Apache" serão construídos. Essa chave permite ter esses módulos instalados no diretório configurado de módulo do "Apache" em vez do "/usr/libexec". Ela não tem efeito se o "Apache" não estiver instalado.

--with-utf8proc=internal: Remova essas chaves se você tiver instalado as dependências opcionais.

--enable-javahl: habilita a compilação de ligações de alto nível "Java". Executar "make javahl" é necessário para fazer a compilação.

--with-junit=<local do arquivo "jar" do "JUnit">: dá o local do "jar" do "JUnit"; caso contrário, os testes "javahl" não poderão ser executados.

--disable-gmock: Não use a estrutura de testes "Googlemock".

Configurando o Subversion

Arquivos de Configuração

~/.subversion/config e /etc/subversion/config

Informação de Configuração

/etc/subversion/config é o arquivo de configuração do "Subversion" abrangente ao sistema. Esse arquivo é usado para especificar padrões para diferentes comandos "svn".

~/.subversion/config é o arquivo de configuração pessoal do(a) usuário(a). Ele é usado para substituir os padrões de todo o sistema configurados em "/etc/subversion/config".

Conteúdo

Aplicativos Instalados: svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync e svnversion
Bibliotecas Instaladas: libsvn_*-1.so e, opcionalmente, uma biblioteca Java; os módulos DSO mod_dav_svn.so e mod_authz_svn.so do Apache HTTP e vários módulos Perl, Python e Ruby.
Diretórios Instalados: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.40/{,auto/}SVN, /usr/lib/python3.13/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby/<x.y.z>/{,<arch-linux>-linux/}svn, /usr/lib/svn-javahl e /usr/share/doc/subversion-1.14.5

Descrições Curtas

svn

é um aplicativo cliente de linha de comando usado para acessar repositórios do "Subversion"

svnadmin

é uma ferramenta para criar, ajustar ou reparar um repositório "Subversion"

svnbench

é uma ferramenta de avaliação comparativa

svndumpfilter

é um aplicativo para filtrar fluxos de formato de arquivo de despejo do repositório "Subversion"

svnfsfs

é a ferramenta de manipulação de repositório "FSFS" ("FileSystem sobre o FileSystem" - implementação do sistema de arquivos do "Subversion")

svnlook

é uma ferramenta para inspecionar um repositório "Subversion"

svnmucc

é um cliente de comando de múltiplas "URLs" para o "Subversion"

svnrdump

é uma ferramenta para despejar ou carregar um repositório remoto do "Subversion"

svnserve

é um aplicativo servidor independente personalizado, capaz de executar como um processo de segundo plano ou invocado por "SSH"

svnsync

é uma ferramenta de sincronização de repositório "Subversion"

svnversion

é usado para informar o número da versão e o estado de uma cópia funcional do repositório "Subversion"

libsvn_*-1.so

são as bibliotecas de suporte usadas pelos aplicativos do "Subversion"

mod_authz_svn.so

é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para autenticar usuários(as) em um repositório "Subversion" por intermédio da Internet ou na intranet

mod_dav_svn.so

é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para disponibilizar um repositório "Subversion" para outros(as) por intermédio da Internet ou de uma intranet

Executando um Servidor "Subversion"

Executando um Servidor "Subversion"

Esta seção descreverá como configurar, administrar e proteger um servidor "Subversion".

Dependências do Servidor "Subversion"

Exigidas

Subversion-1.14.5 e OpenSSH-9.9p2

Configurando um Servidor Subversion.

As seguintes instruções instalarão um servidor "Subversion", que será configurado para usar "OpenSSH" como o método de acesso remoto seguro, com "svnserve" disponível para acesso anônimo.

A configuração do servidor "Subversion" consiste nas seguintes etapas:

1. Configurar Usuários(as), Grupos e Permissões

Você precisará ser o(a) usuário(a) "root" para a parte inicial da configuração. Crie o(a) usuário(a) e grupo "svn" com os seguintes comandos:

groupadd -g 56 svn &&
useradd -c "Proprietário(a) do SVN" -d /home/svn -m -g svn -s /bin/false -u 56 svn

Se você planeja ter vários repositórios, [então] deveria ter um grupo dedicado para cada repositório para facilitar a administração. Crie o grupo "svntest" para o repositório de teste e adicione o(a) usuário(a) "svn" a esse grupo com os seguintes comandos:

groupadd -g 57 svntest &&
usermod -G svntest -a svn

Além disso, você deveria configurar "umask 002" enquanto trabalha com um repositório, de forma que todos os novos arquivos sejam escrevíveis pelo(a) proprietário(a) e pelo grupo. Isso é tornado obrigatório criando-se um "script" envólucro para "svn" e "svnserve":

mv /usr/bin/svn /usr/bin/svn.orig &&
mv /usr/bin/svnserve /usr/bin/svnserve.orig &&
cat >> /usr/bin/svn << "EOF"
#!/bin/sh
umask 002
/usr/bin/svn.orig "$@"
EOF
cat >> /usr/bin/svnserve << "EOF"
#!/bin/sh
umask 002
/usr/bin/svnserve.orig "$@"
EOF
chmod 0755 /usr/bin/svn{,serve}

Nota

Se usar o "Apache" para trabalhar com o repositório via "HTTP", mesmo para acesso anônimo, [então] você deveria agrupar "/usr/sbin/httpd" em um "script" semelhante.

2. Criar um repositório Subversion.

Existem várias maneiras de configurar um repositório "Subversion". Recomenda-se dar uma olhada no capítulo correspondente do Livro SVN. Um repositório básico pode ser configurado com as instruções abaixo.

Crie um novo repositório "Subversion" com os seguintes comandos (como o(a) usuário(a) "root"):

install -v -m 0755 -d /srv/svn &&
install -v -m 0755 -o svn -g svn -d /srv/svn/repositories &&
svnadmin create /srv/svn/repositories/svntest

Agora que o repositório foi criado, ele deveria ser povoado com algo útil. Você precisará ter um esquema predefinido de diretório configurado exatamente como deseja que seu repositório aparente. Por exemplo, aqui está um exemplo de configuração de esquema do BLFS com uma raiz de "svntest/". Você precisará configurar uma árvore de diretórios semelhante à seguinte:

svntest/            # O nome do repositório
   trunk/           # Contém a árvore existente de fonte
      BOOK/
      bootscripts/
      edguide/
      patches/
      scripts/
   branches/        # Necessário para ramificações adicionais
   tags/            # Necessário para rotular pontos de lançamento

Depois que tiver criado teu esquema do diretório conforme mostrado acima, você estará pronto(a) para fazer a importação inicial:

svn import -m "Importação inicial." \
    </caminho/para/árvore/fonte>      \
    file:///srv/svn/repositories/svntest

Agora mude as informações do(a) proprietário(a) e do grupo no repositório e adicione um(a) usuário(a) sem privilégios aos grupos "svn" e "svntest":

chown -R svn:svntest /srv/svn/repositories/svntest    &&
chmod -R g+w         /srv/svn/repositories/svntest    &&
chmod g+s            /srv/svn/repositories/svntest/db &&
usermod -G svn,svntest -a <nome_usuário(a)>

"svntest" é o grupo atribuído ao repositório "svntest". Conforme mencionado anteriormente, isso facilita a administração de repositórios múltiplos ao usar "OpenSSH" para autenticação. A partir de agora, você precisará adicionar teu(ua) usuário(a) sem privilégios, e quaisquer usuários(as) adicionais que desejar ter acesso de escrita ao repositório, aos grupos "svn" e "svntest".

Além disso, você notará que o diretório "db" do novo repositório está configurado o "ID" de grupo. Se o raciocínio não for imediatamente óbvio, [então] ao usar qualquer método externo de autenticação (como "ssh"), o bit "sticky" é configurado, de forma que todos os novos arquivos sejam de propriedade do(a) usuário(a), mas do grupo de "svntest". Qualquer um(a) no grupo "svntest" consegue criar arquivos, mas, ainda assim, conceder ao grupo inteiro acesso de escrita a esses arquivos. Isso evita bloquear outros(as) usuários(as) fora do repositório.

Agora, retorne para uma conta de usuário(a) sem privilégios e dê uma olhada no novo repositório usando "svnlook":

svnlook tree /srv/svn/repositories/svntest/

Nota

Você possivelmente precise sair e entrar novamente para atualizar tuas titularidades de membros(as) de grupo. "su <nome_de_usuário(a)>" também deveria funcionar.

3. Configurar o Servidor

Como mencionado anteriormente, estas instruções configurarão o servidor para usar somente "ssh" para acesso de escrita ao repositório e para fornecer acesso anônimo usando "svnserve". Existem várias outras maneiras de fornecer acesso ao repositório. Essas configurações adicionais estão melhor explicadas em https://svnbook.red-bean.com/.

A configuração de acesso precisa ser feita para cada repositório. Crie o arquivo "svnserve.conf" para o repositório "svntest" usando os seguintes comandos:

cp /srv/svn/repositories/svntest/conf/svnserve.conf \
   /srv/svn/repositories/svntest/conf/svnserve.conf.default &&

cat > /srv/svn/repositories/svntest/conf/svnserve.conf << "EOF"
[general]
anon-access = read
auth-access = write
EOF

Não há muito no arquivo de configuração. Você notará que somente a seção geral é exigida. Dê uma olhada no arquivo "svnserve.conf.default" para informações relativas a usar o método de autenticação integrado do "svnserve".

4. Iniciar o Servidor

Para iniciar o servidor durante a inicialização, instale o "script" de inicialização "svn" incluído no pacote "blfs-bootscripts-20250225":

make install-svn

SWIG-4.3.0

Introdução ao SWIG

SWIG (Simplified Wrapper and Interface Generator) é um compilador que integra C e C++ com linguagens incluindo Perl, Python, Tcl, Ruby, PHP, Java, JavaScript, C#, D, Go, Lua, Octave, R, Racket, Scilab, Scheme e Ocaml. SWIG também consegue exportar a árvore de análise dele para s-expressions da Lisp e XML.

"SWIG" lê arquivos anotados de cabeçalho "C/C++" e cria código envólucro (código de cola) para a finalidade de tornar disponíveis as bibliotecas "C/C++" correspondentes para as linguagens listadas ou para estender aplicativos "C/C++" com uma linguagem de "script".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/swig/swig-4.3.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6a0555a2063c78447c5912136f013c43

  • Tamanho da transferência: 8,2 MB

  • Espaço em disco estimado exigido: 90 MB (2,2 GB com testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 8,4 UPC para testes; ambos usando paralelismo=4)

Dependências do "SWIG"

Exigidas

pcre2-10.45

Opcionais

"Boost-1.87.0" para testes e quaisquer das linguagens mencionadas na introdução, como dependências de tempo de execução

Instalação do SWIG

Instale "SWIG" executando os seguintes comandos:

./configure --prefix=/usr                     \
            --without-javascript               \
            --without-maximum-compile-warnings &&
make

Para testar os resultados, emita: make TCL_INCLUDE=-k check. A desconfiguração da variável TCL_INCLUDE é necessária pois ela não é configurada corretamente pelo configure. Os testes são executados somente para as linguagens instaladas em tua máquina, de forma que o espaço em disco e os valores de UPC fornecidos para os testes possivelmente variem e deveriam ser considerados como meras ordens de grandeza. De acordo com a documentação do SWIG, a falha em alguns testes não deveria ser considerada prejudicial. Os testes go são defeituosos e possivelmente gerem um monte de saída sem significado.

Agora, como o(a) usuário(a) "root":

make install &&
cp -v -R Doc -T /usr/share/doc/swig-4.3.0

Explicações do Comando

--without-maximum-compile-warnings: desabilita o compelimento de conformidade "ANSI" do compilador, o que deflagra erros nos cabeçalhos "Lua" (começando com "Lua" 5.3).

--without-<linguagem>: permite desabilitar a construção de testes e exemplos para <linguagem>, mas todas as capacidades de linguagens do SWIG são sempre construídas. Essa chave é usada para JavaScript porque a implementação SWIG está incompleta e muitos testes falham devido a mudanças de API no Node-20.

Conteúdo

Aplicativos Instalados: swig e ccache-swig
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/doc/swig-4.3.0 e /usr/share/swig

Descrições Curtas

swig

pega um arquivo de interface contendo declarações "C"/"C++" e instruções especiais "SWIG" e gera o código envólucro correspondente necessário para construir módulos de extensão

ccache-swig

é um cache do compilador, que acelera a recompilação de código "C"/"C++"/"SWIG"

Tk-8.6.16

Introdução ao Tk

O pacote "Tk" contém um kit de ferramentas "GUI" "TCL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/tcl/tk8.6.16-src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a7aad6cf52aa4687506a377a9a885a83

  • Tamanho da transferência: 4,4 MB

  • Espaço em disco estimado exigido: 25 MB

  • Tempo de construção estimado: 0,2 UPC (adicionar 5,6 UPC para testes)

Dependências do "Tk"

Exigidas

Bibliotecas do Xorg

Instalação do Tk

Instale "Tk" executando os seguintes comandos:

cd unix &&
./configure --prefix=/usr \
           --mandir=/usr/share/man \
           $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&

make &&

sed -e "s@^\(TK_SRC_DIR='\).*@\1/usr/include'@" \
    -e "/TK_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
    -i tkConfig.sh

Executar os testes não é recomendado. Falhas serão informadas durante os testes, dependendo da resolução/capacidades da tela, fontes instaladas e outros parâmetros relacionados ao "X", mas o informe final pode mostrar zero (0) falhas. Alguns testes roubarão o foco e alguns poderão travar seu servidor "X". Para testar os resultados de qualquer maneira, emita: "make test". Certifique-se de executá-lo a partir de um dispositivo de exibição do "X Window" com as extensões "GLX" carregadas, mas mesmo assim, os testes podem travar.

Agora, como o(a) usuário(a) "root":

make install &&
make install-private-headers &&
ln -v -sf wish8.6 /usr/bin/wish &&
chmod -v 755 /usr/lib/libtk8.6.so

Explicações do Comando

--enable-64bit: Essa chave é usada para habilitar o suporte de 64 bits no Tk em sistemas operacionais de 64 bits.

make install-private-headers: Esse comando é usado para instalar os cabeçalhos de interface da biblioteca "Tk" usados por outros pacotes se eles se vincularem à biblioteca "Tk".

ln -v -sf wish8.6 /usr/bin/wish: Esse comando é usado para criar um link simbólico de compatibilidade para o arquivo "wish8.6" já que muitos pacotes esperam um arquivo chamado "wish".

sed -e ... tkConfig.sh: O pacote "Tk" espera que a árvore fonte dele seja preservada, de forma que os pacotes que dependem dele para compilação possam utilizá-la. Esse "sed" remove as referências ao diretório de construção e as substitui por locais mais saudáveis abrangentes a todo o sistema.

Conteúdo

Aplicativos Instalados: wish e wish8.6
Bibliotecas Instaladas: libtk8.6.so e libtkstub8.6.a
Diretório Instalado: /usr/lib/tk8.6

Descrições Curtas

wish

é um link simbólico para o aplicativo "wish8.6"

wish8.6

é um "shell" simples contendo o kit de ferramentas "Tk" que cria uma janela principal e então processa comandos "Tcl"

libtk8.6.so

contém as funções da "API" exigidas pelo "Tk"

unifdef-2.12

Introdução ao unifdef

O pacote unifdef contém um utilitário que é útil para remover do código condicionais de pré processador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://dotat.at/prog/unifdef/unifdef-2.12.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b225312c110cd2600ca7166bd0419751

  • Tamanho da transferência: 88 KB

  • Espaço em disco estimado exigido: 1,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do unifdef

Instale o unifdef executando os seguintes comandos:

make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make prefix=/usr install

Conteúdo

Aplicativos Instalados: unifdef e unifdefall
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

unifdef

remove do código condicionais de pré processador

unifdefall

remove do código condicionais de pré processador ao longo de uma árvore inteira

Vala-0.56.17

Introdução ao Vala

"Vala" é uma nova linguagem de programação que visa a trazer recursos modernos de linguagem de programação para desenvolvedores(as) "GNOME" sem impor quaisquer requisitos adicionais de tempo de execução e sem usar uma "ABI" diferente em comparação com aplicativos e bibliotecas escritos em "C".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/vala/0.56/vala-0.56.17.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 134075855867fdd9c51ca7555c4951bb

  • Tamanho da transferência: 3,8 MB

  • Espaço em disco estimado exigido: 160 MB (adicionar 19 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (adicionar 1,0 UPC para testes; ambos usando paralelismo=4)

Dependências do Vala

Exigidas

GLib-2.82.5 (GObject Introspection exigido para os testes)

Recomendadas
Opcionais

dbus-1.16.0 (exigido para os testes), libxslt-1.1.42 (exigido para gerar a documentação), help2man, jing e weasyprint

Instalação do Vala

Instale Vala executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

bootstrap: Esse alvo do make força o sistema de construção a construir o pacote duas vezes e usar o executável vala produzido na primeira construção para regenerar os arquivos .c a partir dos arquivos .vala, se necessário. Se um executável vala ainda não estiver instalado e você tiver modificado quaisquer arquivos .vala na árvore do fonte, execute make bootstrap em vez de make.

--disable-valadoc: Essa opção é exigida se "Graphviz-12.2.1" não estiver instalado.

Conteúdo

Aplicativos Instalados: vala, vala-0.56, valac, valadoc, vala-gen-introspect e vapigen (links simbólicos); valac-0.56, valadoc-0.56, vala-gen-introspect-0.56 e vapigen-0.56
Biblioteca Instalada: libvala-0.56.so e libvaladoc-0.56.so
Diretórios Instalados: /usr/include/vala-0.56, /usr/include/valadoc-0.56, /usr/lib/vala-0.56, /usr/lib/valadoc-0.56, /usr/share/vala, /usr/share/vala-0.56, /usr/share/valadoc-0.56 e /usr/share/devhelp/books/vala-0.56

Descrições Curtas

valac

é um compilador que traduz o código-fonte "Vala" em arquivos fonte e de cabeçalho "C"

valadoc

é um gerador de documentação para gerar documentação de "API" a partir do código-fonte "Vala" baseado na "libvala"

vala-gen-introspect

gera um arquivo "GI" para pacotes baseados em "GObject" e "GLib"

vapigen

é um utilitário que gera arquivos "API" "Vala" ("VAPI") a partir de arquivos "GI"

libvala-0.56.so

contém as funções da "API" "Vala"

Valgrind-3.24.0

Introdução ao Valgrind

"Valgrind" é uma estrutura de instrumentação para construir ferramentas dinâmicas de análise. Existem ferramentas "Valgrind" que conseguem detectar automaticamente muitos defeitos de gerenciamento de memória e de camadas e perfilar aplicativos em detalhes. "Valgrind" também pode ser usado para construir novas ferramentas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://sourceware.org/pub/valgrind/valgrind-3.24.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7ae7ffc6b3cff48fe35076266c128226

  • Tamanho da transferência: 16 MB

  • Espaço em disco estimado exigido: 396 MB (adicionar 85 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 6,5 UPC para testes; ambos usando paralelismo=4)

Dependências do "Valgrind"

Opcionais

docbook-xml-4.5 (para testes), GDB-16.2 (para testes), LLVM-19.1.7 (com Clang) e Which-2.23 (para testes)

Instalação do Valgrind

Instale "Valgrind" executando os seguintes comandos:

sed -i 's|/doc/valgrind||' docs/Makefile.in &&

./configure --prefix=/usr \
           --datadir=/usr/share/doc/valgrind-3.24.0 &&
make

Para testar os resultados, emita: "make regtest". Os testes possivelmente travem para sempre se "GDB-16.2" não estiver instalado. Alguns testes também são conhecidos por travarem, dependendo da versão da "glibc". Alguns testes podem falhar em várias suítes. Testes problemáticos podem ser desabilitados mudando-se a linha "prereq:" no arquivo ".vgtest" correspondente para "prereq: false". Por exemplo:

sed -e 's@prereq:.*@prereq: false@' \
   -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest

Nota

Os testes "OpenMP" serão pulados se a "libgomp" tiver sido compilada com "--enable-linux-futex" (o padrão). Se necessário, apenas recompile a biblioteca "libgomp" originária da árvore de construção do "gcc", passando "--disable-linux-futex" para configurar, armazenando a biblioteca em algum lugar e mudando o link de "/usr/lib/libgomp.so.1" para apontar para a nova biblioteca.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i ... docs/Makefile.in : Esse "sed" fornece a instalação da documentação em um diretório versionado.

--enable-lto=yes: Essa opção permite construir "Valgrind" com "Link Time Optimization" ("LTO"). Isso produz um "Valgrind" menor/mais rápido (até 10%), mas o tempo de construção aumenta para cerca de 5,5 UPC.

Conteúdo

Aplicativos Instalados: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener e vgdb
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind e /usr/share/doc/valgrind-3.24.0

Descrições Curtas

valgrind

é um aplicativo para depuração e perfilamento de executáveis "Linux"

callgrind_annotate

pega um arquivo de saída produzido pela ferramenta "Callgrind" do "Valgrind" e imprime as informações em um formato de fácil leitura

callgrind_control

controla aplicativos sendo executados pela ferramenta "Callgrind" do "Valgrind"

cg_annotate

é uma ferramenta de pós-processamento para a ferramenta "Cachegrind" do "Valgrind"

cg_diff

compara dois arquivos de saída gerada do "Cachegrind"

cg_merge

mescla vários arquivos de saída gerada do "Cachegrind" em um

ms_print

pega um arquivo de saída produzido pela ferramenta "Massif" do "Valgrind" e imprime as informações em um formato de fácil leitura

valgrind-di-server

é um servidor que lê informações de depuração oriundas de objetos armazenados em uma máquina diferente

valgrind-listener

escuta em um soquete os comentários do "Valgrind"

vgdb

é um intermediário entre "Valgrind" e "GDB" ou um "shell"

yasm-1.3.0

Introdução ao yasm

"Yasm" é uma reescrita completa do montador "NASM-2.16.03". Ele suporta conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera formatos de objetos binário, "ELF32" e "ELF64".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fc9e586751ff789b34b1f21d572d96af

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 27 MB (12 MB adicionais para os testes)

  • Tempo de construção estimado: 0,1 UPC (0,1 UPC adicionais para os testes)

Dependências do yasm

Opcionais

cython-3.0.12 e Python2

Instalação do yasm

Instale "yasm" executando os seguintes comandos:

sed -i 's#) ytasm.*#)#' Makefile.in &&

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make -j1 check.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i 's#) ytasm.*#)#' Makefile.in: Esse "sed" impede a compilação de dois aplicativos ("vsyasm" e "ytasm") que são de uso somente no "Microsoft Windows".

Conteúdo

Aplicativo Instalado: yasm
Biblioteca Instalada: libyasm.a
Diretório Instalado: /usr/include/libyasm

Descrições Curtas

yasm

é um montador portável e redirecionável que suporta os conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera binários nos formatos de objeto "ELF32" e "ELF64"

libyasm.a

fornece todas as funcionalidades centrais do "yasm", para manipular instruções de máquina e construções de arquivos de objetos

Java

Java-23.0.2

Acerca do Java

Java é diferente da maioria dos pacotes do LFS e BLFS. É uma linguagem de programação que trabalha com arquivos de códigos de byte para obter instruções e executá-las em uma "Java Virtual Machine" ("JVM"). Um aplicativo introdutório Java se parece com:

public class HelloWorld
{
   public static void main(String[] args)
   {
       System.out.println("Hello, World");
   }
}

Esse aplicativo é salvo como "HelloWorld.java". O nome do arquivo, "HelloWorld", precisa corresponder ao nome da classe. Em seguida, ele é convertido em código de bytes com "javac HelloWorld.java". O arquivo de saída gerada é "HelloWorld.class". O aplicativo é executado com "java HelloWorld". Isso cria uma "JVM" e executa o código. A extensão 'class' precisa não ser especificada.

Vários arquivos de classe podem ser combinados em um arquivo com o comando "jar". Isso é semelhante ao comando "tar" padrão. Por exemplo, o comando "jar cf myjar.jar *.class" combinará todos os arquivos de classe em um diretório em um arquivo" jar". Eles atuam como arquivos de biblioteca.

A "JVM" consegue procurar e usar classes em arquivos "jar" automaticamente. Ela usa a variável de ambiente "CLASSPATH" para procurar arquivos "jar". Essa é uma lista padrão de nomes de diretórios separados por dois pontos, semelhante à variável de ambiente "PATH".

Informações do Binário JDK

Criar uma "JVM" a partir do fonte exige um conjunto de dependências circulares. A primeira coisa que é necessária é um conjunto de aplicativos chamado "Java Development Kit" ("JDK"). Esse conjunto de aplicativos inclui "java", "javac", "jar" e vários outros. Ele também inclui vários arquivos "jar" básicos.

Para começar, configuramos uma instalação binária do "JDK" criada pelos(as) editores(as) do BLFS. Ela é instalada no diretório "/opt" para permitir múltiplas instalações, incluindo uma versão baseada no fonte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informações do Pacote Binário

Dependências de Tempo de Execução do Binário "Java"

alsa-lib-1.2.13, Cups-2.4.11, giflib-5.2.2, Little CMS-2.17 e Bibliotecas do Xorg

Instalação do JDK do Binário Java

Comece extraindo o "tarball" binário apropriado para tua arquitetura e mudando para o diretório extraído. Instale o binário "OpenJDK" com os seguintes comandos como o(a) usuário(a) "root":

install -vdm755 /opt/OpenJDK-23.0.2-bin &&
mv -v * /opt/OpenJDK-23.0.2-bin        &&
chown -R root:root /opt/OpenJDK-23.0.2-bin

A versão binária agora está instalada. Você pode criar um link simbólico para essa versão emitindo, como o(a) usuário(a) "root":

ln -sfn OpenJDK-23.0.2-bin /opt/jdk

Agora você pode prosseguir para "Configurando o ambiente Java", onde as instruções assumem que o link acima existe.

OpenJDK-23.0.2

Introdução ao OpenJDK

"OpenJDK" é uma implementação de código aberto da plataforma "Java Standard Edition" da "Oracle". "OpenJDK" é útil para desenvolver aplicativos "Java" e fornece um ambiente de tempo de execução completo para executar aplicativos "Java".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

"OpenJDK" é código "GPL", com uma exceção especial feita para projetos não-livres para usar essas classes nos produtos proprietários deles. De forma semelhante à "LGPL", que permite que aplicativos não-livres se vinculem a bibliotecas fornecidas por logiciário livre, a Licença Pública Geral GNU, versão 2, com a exceção Classpath permite que aplicativos de terceiros usem classes fornecidas por logiciário livre sem a exigência de que o logiciário de terceiros também seja livre. Tal como acontece com a "LGPL", quaisquer modificações feitas nas partes de logiciário livre de um aplicativo de terceiros também precisam ser disponibilizadas livremente.

Nota

O fonte do "OpenJDK" inclui uma suíte de teste de código aberto muito completa usando o equipamento de teste "JTreg". As instruções de teste abaixo permitem testar o "JDK" recém-construído para compatibilidade razoável com o "JDK" proprietário da "Oracle". No entanto, para a finalidade de que uma implementação independente alegue compatibilidade, ela precisa passar por uma suíte proprietária de teste "JCK/TCK". Nenhuma alegação de compatibilidade, ou mesmo compatibilidade parcial, pode ser feita sem passar por uma suíte de teste aprovada.

A Oracle fornece acesso gratuito à comunidade, caso a caso, a um kit de ferramentas fechado para garantir 100% de compatibilidade com o JDK proprietário dela. Nem a versão binária fornecida na página Java-23.0.2 nem a JVM construída com as instruções abaixo foram testadas contra o TCK. Qualquer versão que seja construída usando as instruções fornecidas não pode alegar ser compatível com o JDK proprietário, sem que o(a) próprio(a) usuário(a) solicite e complete os testes de compatibilidade.

Com isso em mente, os binários produzidos usando este método de construção são testados regularmente em relação ao TCK pelos membros listados no sítio acima. Além da licença comunitária acima, uma licença educacional e não comercial para o TCK pode ser obtida aqui.

Informação do Pacote

  • Transferência (HTTP): https://github.com/openjdk/jdk23u/archive/jdk-23.0.2-ga.tar.gz

  • Soma de verificação MD5 da transferência: 31ff1e9a086626610591efdff44cb7b3

  • Tamanho da Transferência: 112 MB

  • Espaço em disco estimado exigido: 3,7 GB (adicionar 515 MB para os testes)

  • Tempo de construção estimado: 4,8 UPC com quatro (04) tarefas (adicionar 33 UPC para testes com quatro (04) tarefas)

Transferências Adicionais

Equipamento opcional de teste

Dependências do OpenJDK

Dependências Exigidas

Um binário existente (Java-23.0.2 ou uma versão construída anterior desse pacote. As instruções abaixo assumem que você está usando Configurando o ambiente Java), alsa-lib-1.2.13, cpio-2.15, Cups-2.4.11, libarchive-3.7.7, Which-2.23, Bibliotecas do Xorg e Zip-3.0

Recomendadas
Opcionais

git-2.48.1, Graphviz-12.2.1, Mercurial-6.9.2, ccache, pandoc e pigz

Instalação do OpenJDK

Se você baixou o equipamento opcional de teste, desempacote-o agora:

tar -xf ../jtreg-7.3.1+1.tar.gz

Nota

Antes de continuar, você deveria garantir que sua variável de ambiente PATH contenha o local do compilador Java usado para inicializar o OpenJDK. Essa é a única exigência para o ambiente. Instalações modernas Java não precisam de JAVA_HOME; e CLASSPATH não é usado aqui. Além disso, os(as) desenvolvedores(as) do OpenJDK recomendam desconfigurar JAVA_HOME e CLASSPATH.

O sistema de construção não permite a chave "-j" em "MAKEFLAGS". Veja-se a explicação do comando para "--with-jobs=" para mais informações relativas a personalizar a paralelização.

Configure e construa o pacote com os seguintes comandos:

unset JAVA_HOME                             &&
unset CLASSPATH                             &&
unset MAKEFLAGS                             &&
bash configure --enable-unlimited-crypto    \
               --disable-warnings-as-errors \
               --with-stdc++lib=dynamic     \
               --with-giflib=system         \
               --with-harfbuzz=system       \
               --with-jtreg=$PWD/jtreg      \
               --with-lcms=system           \
               --with-libjpeg=system        \
               --with-libpng=system         \
               --with-zlib=system           \
               --with-version-build="7"     \
               --with-version-pre=""        \
               --with-version-opt=""        \
               --with-jobs=$(nproc)         \
               --with-cacerts-file=/etc/pki/tls/java/cacerts &&
make images

Para testar os resultados, você precisará executar o aplicativo "jtreg". Você consegue configurar o número de testes simultâneos adicionando o valor "-conc:<X>" no comando abaixo (caso contrário, os testes executarão sequencialmente):

export JT_JAVA=$(echo $PWD/build/*/jdk) &&
jtreg/bin/jtreg -jdk:$JT_JAVA -automatic -ignore:quiet -v1 \
   test/jdk:tier1 test/langtools:tier1 &&
unset JT_JAVA

Para mais controle sobre a suíte de teste, revise a documentação disponível em jtreg/doc/jtreg/usage.txt. Para revisar os resultados, vejam-se os arquivos JTreport/test_{jdk,langtools}/text/stats.txt e JTreport/test_{jdk,langtools}/text/summary.txt. Você deveria esperar ver cerca de oitenta (80) falhas e dez (10) erros.

Instale o pacote com os seguintes comandos como o(a) usuário(a) "root":

install -vdm755 /opt/jdk-23.0.2+7             &&
cp -Rv build/*/images/jdk/* /opt/jdk-23.0.2+7 &&
chown -R root:root /opt/jdk-23.0.2+7          &&
for s in 16 24 32 48; do
  install -vDm644 src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \
                 /usr/share/icons/hicolor/${s}x${s}/apps/java.png
done

Nota

Se desejar instalar somente o "Java Runtime Environment", [então] você pode substituir "build/*/images/jre" no comando "cp" acima.

Agora existem dois "SDKs" "OpenJDK" instalados em "/opt". Você deveria decidir qual deles gostaria de usar como padrão. Normalmente, você optaria pelo recém-instalado "OpenJDK". Nesse caso, faça o seguinte como o(a) usuário(a) "root":

ln -v -nsf jdk-23.0.2+7 /opt/jdk

Se desejado, você pode criar arquivos ".desktop" para adicionar entradas no menu para "java" e "jconsole". Os ícones necessários já foram instalados. Como o(a) usuário(a) "root":

mkdir -pv /usr/share/applications &&

cat > /usr/share/applications/openjdk-java.desktop << "EOF" &&
[Desktop Entry]
Name=OpenJDK Java 23.0.2 Tempo de Execução
Comment=OpenJDK Java 23.0.2 Tempo de Execução
Exec=/opt/jdk/bin/java -jar
Terminal=false
Type=Application
Icon=java
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
NoDisplay=true
EOF
cat > /usr/share/applications/openjdk-jconsole.desktop << "EOF"
[Desktop Entry]
Name=OpenJDK Java 23.0.2 Console
Comment=OpenJDK Java 23.0.2 Console
Keywords=java;console;monitoramento
Exec=/opt/jdk/bin/jconsole
Terminal=false
Type=Application
Icon=java
Categories=Application;System;
EOF

Explicações do Comando

bash configure...: o "configure" do nível superior é um envólucro em torno daquele do "autotools". Ele não é executável e precisa ser executado por intermédio do "bash".

--enable-unlimited-crypto: Devido às limitações no uso de criptografia em alguns países, existe a possibilidade de limitar o tamanho das chaves de encriptação e o uso de alguns algoritmos em um arquivo de política. Essa chave permite enviar um arquivo de política sem restrições. É responsabilidade do(a) usuário(a) garantir a adequada aderência à legislação.

--disable-warnings-as-errors: Essa chave desabilita o uso de "-Werror" na construção.

--with-stdc++lib=dynamic: Essa chave força o sistema de construção a vincular-se a "libstdc++.so" (dinâmica) em vez de "libstdc++.a" (estática).

--with-jobs=$(nproc): O -j passado para make não funciona com make como invocado aqui. Por padrão, o sistema de construção usará o número de CPUs – 1.

--with-jtreg=$PWD/jtreg: Essa chave informa ao "configure" onde encontrar o "jtreg". Omita se você não baixou a suíte opcional de teste.

--with-{giflib,harfbuzz,lcms,libjpeg,libpng,zlib}=system: Essas chaves forçam o sistema de construção a usar as bibliotecas do sistema em vez das versões incluídas.

--with-version-build: Atualmente, o sistema de construção não inclui o número da construção na sequência de caracteres da versão. Ele tem que ser especificado aqui.

--with-version-pre: Essa chave te permite prefixar a sequência de caracteres da versão com uma sequência personalizada de caracteres.

--with-version-opt: Essa chave te permite adicionar uma descrição opcional da construção à sequência de caracteres de versão.

--with-cacerts-file=/etc/pki/tls/java/cacerts: Especifica onde encontrar um arquivo "cacerts", "/etc/pki/tls/java/" em um sistema BLFS. Caso contrário, um vazio será criado. Você consegue usar o comando "/usr/sbin/make-ca --force" para gerá-lo, depois que tenha instalado os binários "Java".

--with-boot-jdk: Essa chave fornece o local do "JDK" temporário. Ele normalmente não é necessário se "java" for encontrado no "PATH".

Configurando o OpenJDK

Informação de Configuração

Normalmente, o ambiente Java é configurado depois de instalar-se a versão binária e também pode ser usado com o pacote recém-construído. Revise Configurando o ambiente Java caso você queira modificar alguma coisa.

Para testar se as páginas de manual estão instaladas corretamente, emita "source /etc/profile" e "man java" para exibir a respectiva página de manual.

Configurando o arquivo de Certificados de Autoridade Certificadora do JRE (cacerts)

Se você executou as instruções na página "make-ca-1.15", [então] você só precisa criar um link simbólico no local padrão para o arquivo "cacerts". Como usuário(a) "root":

ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts

Para verificar a instalação, emita:

cd /opt/jdk
bin/keytool -list -cacerts

No "prompt" "Enter keystore password:", digite "changeit" (o padrão) ou simplesmente pressione a tecla Enter. Se o arquivo "cacerts" foi instalado corretamente, [então] você verá uma lista dos certificados com informações relacionadas a cada um. Caso contrário, você precisa reinstalá-los.

Conteúdo

Aplicativos Instalados: jar, jarsigner, java, javac, javadoc, javap, jcmd, jconsole, jdb, jdeprscan, jdeps, jfr, jhsdb, jimage, jinfo, jlink, jmap, jmod, jpackage, jps, jrunscript, jshell, jstack, jstat, jstatd, jwebserver, keytool, rmiregistry e serialver
Bibliotecas Instaladas: 37 bibliotecas em /opt/jdk-23.0.2+7/lib/
Diretório Instalado: /opt/jdk-23.0.2+7

Descrições Curtas

jar

combina múltiplos arquivos em um arquivamento "jar"

jarsigner

assina arquivos "jar" e verifica as assinaturas e a integridade de um arquivo "jar" assinado

java

inicia um aplicativo "Java" iniciando um ambiente em tempo de execução "Java", carregando uma classe especificada e invocando o método principal dela

javac

lê definições de classe e interface, escritas na linguagem de programação "Java", e as compila em arquivos de classe de código de bytes

javadoc

analisa as declarações e comentários da documentação em um conjunto de arquivos fonte "Java" e produz um conjunto correspondente de páginas "HTML" descrevendo as classes, interfaces, construtores, métodos e campos

javap

desmonta um arquivo de classe "Java"

jcmd

é um utilitário para enviar solicitações de comando de diagnóstico para uma "Java Virtual Machine" em execução

jconsole

é uma ferramenta gráfica de console para monitorar e gerenciar aplicativos "Java" e máquinas virtuais locais e remotas

jdb

é um depurador simples de linha de comando para classes "Java"

jdeprscan

escaneia arquivos de classe ou "jar" em busca de usos de elementos obsoletos de "API"

jdeps

mostra as dependências de nível de pacote ou de nível de classe de arquivos de classe "Java"

jfr

é uma ferramenta para trabalhar com arquivos Flight Recorder

jhsdb

é uma ferramenta para analisar o conteúdo de um despejo central originário de uma "Java Virtual Machine" ("JVM") quebrada

jimage

é usado para listar, extrair, verificar ou obter informações relativas a módulos no formato "jimage"

jinfo

imprime informações de configuração "Java" para um determinado processo "Java", arquivo central ou servidor remoto de depuração

jlink

é usado para montar e otimizar um conjunto de módulos e as dependências deles em uma imagem personalizada em tempo de execução

jmap

imprime mapas de memória de objetos compartilhados ou detalhes de memória "heap" de um determinado processo, arquivo central ou um servidor remoto de depuração

jmod

cria arquivos "JMOD" e lista o conteúdo dos arquivos existentes "JMOD"

jpackage

gera pacotes e imagens de aplicativos "Java"

jps

lista as "JVMs" instrumentadas no sistema alvo

jrunscript

é um "shell" de "script" de linha de comando

jshell

é uma ferramenta interativa para aprender a linguagem de programação "Java" e "prototipar" código "Java"

jstack

imprime rastreamentos de pilha "Java" de camadas "Java" para um determinado processo "Java", arquivo central ou um servidor remoto de depuração

jstat

exibe estatísticas de desempenho para uma "JVM" instrumentada

jstatd

é um aplicativo de servidor "RMI" que monitora a criação e o encerramento de "JVMs" instrumentadas

jwebserver

fornece um servidor mínimo "HTTP", projetado para ser usado para prototipagem, testagem e depuração

keytool

é um utilitário de gerenciamento de chaves e certificados

rmiregistry

cria e inicia um registro de objeto remoto na porta especificada no dispositivo atual

serialver

retorna o "serialVersionUID" para uma ou mais classes em um formato adequado para cópia em uma classe em evolução

Configurando o ambiente Java

Configurando o ambiente

Depois que a instalação do pacote estiver completa, a próxima etapa é a de garantir que o sistema consiga encontrar os arquivos corretamente. Se você configurar teus "scripts" de login conforme recomendado em "Os Arquivos de Iniciação do Shell Bash", [então] atualize o ambiente criando o "script" "openjdk.sh", como o(a) usuário(a) "root":

cat > /etc/profile.d/openjdk.sh << "EOF"
# Begin /etc/profile.d/openjdk.sh

# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk

# Adjust PATH
pathappend $JAVA_HOME/bin

# Auto Java CLASSPATH: Copy jar files to, or create symlinks in, the
# /usr/share/java directory.

AUTO_CLASSPATH_DIR=/usr/share/java

pathprepend . CLASSPATH

for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
    pathappend $dir CLASSPATH
done

for jar in `find ${AUTO_CLASSPATH_DIR} -name "*.jar" 2>/dev/null`; do
    pathappend $jar CLASSPATH
done

export JAVA_HOME

# By default, Java creates several files in a directory named
# /tmp/hsperfdata_[username]. This directory contains files that are used for
# performance monitoring and profiling, but aren't normally needed on a BLFS
# system. This environment variable disables that feature.
_JAVA_OPTIONS="-XX:-UsePerfData"

export _JAVA_OPTIONS

unset AUTO_CLASSPATH_DIR dir jar _JAVA_OPTIONS

# End /etc/profile.d/openjdk.sh
EOF

Se "Sudo-1.9.16p2" estiver instalado, [então] o(a) superusuário(a) deveria ter acesso às variáveis acima. Execute os seguintes comandos como o(a) usuário(a) "root":

cat > /etc/sudoers.d/java << "EOF"
Defaults env_keep += JAVA_HOME
Defaults env_keep += CLASSPATH
Defaults env_keep += _JAVA_OPTIONS
EOF

Para usar "mandb" para incluir as páginas de manual do "OpenJDK" na base de dados dele, emita como o(a) usuário(a) "root":

cat >> /etc/man_db.conf << "EOF" &&
# Inicia adição "Java"
MANDATORY_MANPATH     /opt/jdk/man
MANPATH_MAP           /opt/jdk/bin     /opt/jdk/man
MANDB_MAP             /opt/jdk/man     /var/cache/man/jdk
# Termina Java addition
EOF

mkdir -p /var/cache/man &&
mandb -c /opt/jdk/man

Configurando os Certificados de Autoridade Certificadora para Java

O "OpenJDK" usa o próprio formato dele para os certificados de "AC". Os módulos de segurança do "Java" usam "$JAVA_HOME/lib/security/cacerts" por padrão. Para a finalidade de manter todos os certificados em um lugar, nós usamos "/etc/ssl/java/cacerts". As instruções na página "make-ca-1.15" criaram anteriormente o arquivo localizado em "/etc/ssl/java". Configure um link simbólico no local padrão como o(a) usuário(a) "root":

ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts

Use o seguinte comando para verificar se o arquivo "cacerts" foi instalado com sucesso:

/opt/jdk/bin/keytool -list -cacerts

No "prompt" "Enter keystore password:", digite "changeit" (o padrão) ou simplesmente pressione a tecla Enter. Se o arquivo "cacerts" foi instalado corretamente, [então] você verá uma lista dos certificados com informações relacionadas a cada um. Caso contrário, você precisa reinstalá-los.

Se instalar posteriormente uma nova "JVM", [então] você apenas tem de criar o link simbólico no local padrão para estar apto(a) a usar o "cacerts".

apache-ant-1.10.15

Introdução ao Apache Ant

O pacote "Apache Ant" é uma ferramenta de construção baseada em "Java". Na teoria, é como o comando "make", mas sem as rugas do "make". "Ant" é diferente. Em vez de um modelo que é estendido com comandos baseados em "shell", "Ant" é estendido usando classes "Java". Em vez de escrever comandos de "shell", os arquivos de configuração são baseados em "XML", chamando uma árvore alvo que executa várias tarefas. Cada tarefa é executada por um objeto que implementa uma interface específica de tarefa.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Apache Ant

Exigidas

Uma "JDK" ("Binário "Java"" ou "OpenJDK-23.0.2") e "GLib-2.82.5"

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Instalação do Apache Ant

Construa uma versão limitada de instruções de autoaprimoramento do "Apache Ant" usando o seguinte comando:

./bootstrap.sh

Transfira as dependências de tempo de execução usando o "script" de construção "ant" "fetch.xml":

bootstrap/bin/ant -f fetch.xml -Ddest=optional

Construa o "Apache Ant" executando o seguinte comando:

./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist

Instale, como o(a) usuário(a) "root":

cp -rv ant-1.10.15 /opt/           &&
chown -R root:root /opt/ant-1.10.15 &&
ln -sfv ant-1.10.15 /opt/ant

Explicações do Comando

bootstrap/bin/ant -f fetch.xml -Ddest=optional: Transfere as dependências ausentes para o diretório inicial do(a) usuário(a) e as copia para a árvore do fonte (no diretório lib/optional, onde o ant as coleta ao tempo da construção).

./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist: Esse comando constrói, testa e, então, instala o pacote em um diretório temporário.

Configurando o Apache Ant

Arquivos de Configuração

/etc/ant/ant.conf, ~/.ant/ant.conf e ~/.antrc

Informação de Configuração

Alguns pacotes exigirão que o "ant" esteja no caminho de pesquisa e que a variável de ambiente "ANT_HOME" esteja definida. Satisfaça essas exigências emitindo, como o(a) usuário(a) "root":

cat > /etc/profile.d/ant.sh << EOF
# Inicia /etc/profile.d/ant.sh

pathappend /opt/ant/bin
export ANT_HOME=/opt/ant

# Termina /etc/profile.d/ant.sh
EOF

As instruções acima pressupõem que você configurou seu sistema conforme descrito em "Os Arquivos de Iniciação do Shell Bash".

Conteúdo

Aplicativos Instalados: ant, antRun, antRun.pl, complete-ant-cmd.pl, runant.pl e runant.py
Bibliotecas Instaladas: Numerosos "ant*.jar" e bibliotecas dependentes em "$ANT_HOME/lib"
Diretórios Instalados: /opt/ant-1.10.15

Descrições Curtas

ant

é uma ferramenta de construção baseada em "Java" usada por muitos pacotes em vez do aplicativo convencional "make"

antRun

é um "script" de suporte usado para iniciar "scripts" de construção do "ant" em um dado diretório

antRun.pl

é um "script" "Perl" que fornece funcionalidade semelhante oferecida pelo "script" "antRun"

complete-ant-cmd.pl

é um conjunto de comandos "Perl" que permite ao "Bash" completar uma linha de comando do "ant"

runant.pl

é um conjunto envólucro de comandos "Perl" usado para invocar o "ant"

runant.py

é um conjunto envólucro de comandos "Python" usado para invocar o "ant"

ant*.jar

arquivos são as bibliotecas de classes "Java" do "Apache Ant"

Parte IV. Rede de Intercomunicação

Capítulo 14. Conectando a uma Rede de Intercomunicação

O livro LFS aborda a configuração de rede de intercomunicação conectando-se a uma "LAN" com um endereço "IP" estático. Existem outros métodos usados para obter um endereço "IP" e conectar-se a uma "LAN" e outras redes de intercomunicação (como a Internet). Os métodos mais populares ("DHCP" e "PPP") são abordados neste capítulo.

"DHCP" significa "Dynamic Host Configuration Protocol". Ele é um protocolo usado por muitos sítios para fornecer automaticamente informações como endereços "IP", máscaras de sub-rede e informações de roteamento para computadores. Se a sua rede de intercomunicação usar "DHCP", [então] você precisará de um cliente "DHCP" para a finalidade de se conectar a ela.

dhcpcd-10.2.2

Introdução ao dhcpcd

"dhcpcd" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do dhcpcd

Opcionais

LLVM-19.1.7 (com Clang), ntp-4.2.8p18, chronyd e ypbind

Separação de privilégios

Lançamentos recentes do "dhcpcd" suportam opcionalmente a separação de privilégios. Como os benefícios práticos de segurança disso não são claros para um aplicativo como o "dhcpcd" e a configuração é mais complicada, o livro atualmente usa como padrão desativá-lo.

No entanto, se você quiser usar a separação de privilégios, [então] etapas adicionais de instalação são necessárias para configurar o ambiente adequado. Emita os seguintes comandos como o(a) usuário(a) "root":

install  -v -m700 -d /var/lib/dhcpcd &&

groupadd -g 52 dhcpcd        &&
useradd  -c 'Separação de privilégios do dhcpcd' \
         -d /var/lib/dhcpcd  \
         -g dhcpcd           \
         -s /bin/false       \
         -u 52 dhcpcd &&
chown    -v dhcpcd:dhcpcd /var/lib/dhcpcd 

Instalação do dhcpcd

Construa o "dhcpcd" sem separação de privilégios executando o seguinte comando:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --disable-privsep         &&
make

Alternativamente, construa o dhcpcd com separação de privilégios executando os seguintes comandos:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --privsepuser=dhcpcd         &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--libexecdir=/usr/lib/dhcpcd: Essa chave configura um local melhor para bibliotecas internas do dhcpcd.

--dbdir=/var/lib/dhcpcd: Essa chave ajusta o diretório da base de dados, pois o diretório padrão, /var/db, não é compatível com o FHS.

--runstatedir=/run: Essa chave configura o diretório de estado de tempo de execução, pois o padrão /var/run é um link simbólico para /run e usar /var/run está obsoleto.

--disable-privsep: Essa chave desabilita a separação de privilégios, que é o padrão no dhcpcd. Essa chave não é usada na configuração da construção onde a separação de privilégios é usada.

--privsepuser=dhcpcd: Essa chave configura o(a) usuário(a) de separação de privilégios na configuração da construção onde o escalonamento de privilégios é usado.

--with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração, como ntp.conf. Um conjunto de ganchos pode ser encontrado no diretório dhcpcd-hooks na árvore da construção.

Configurando o dhcpcd

Arquivos de Configuração

/etc/dhcpcd.conf

Informações Gerais de Configuração

Para configurar o "dhcpcd", você precisa primeiro instalar o conjunto sequencial de comandos de serviço de rede de intercomunicação, "/usr/lib/services/dhcpcd" incluído no pacote "blfs-bootscripts-20250225" (como usuário "root"):

make install-service-dhcpcd

Nota

O padrão para o dhcpcd é o de configurar o nome do dispositivo e o MTU. Ele também sobrescreve /etc/resolv.conf e /etc/ntp.conf. Essas modificações nos arquivos do sistema são feitas por ganchos que estão armazenados em /usr/lib/dhcpcd/dhcpcd-hooks. Você consegue mudar esse comportamento removendo ou adicionando ganchos de/para esse diretório. A execução de ganchos pode ser desabilitada usando-se a opção de linha de comando --nohook (-C) ou pela opção nohook no arquivo /etc/dhcpcd.conf.

Finalmente, como o(a) usuário(a) "root", crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais:

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -h $HOSTNAME <insira aqui opções apropriadas de início>"
DHCP_STOP="-k <insira opções adicionais de parada aqui>"
EOF

Para mais informações relativas aos valores apropriados "DHCP_START" e "DHCP_STOP", examine a página de manual do "dhcpcd".

Informações de Configuração: IP fixo

Embora não usual, é possível que você precise configurar o "dhcpcd" para usar um "IP" fixo. Aqui, nós damos um exemplo. Como o(a) usuário(a) "root" crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais e para o "IP" e roteador reais que você precisa:

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -S ip_address=192.168.0.10/24 -S routers=192.168.0.1"
DHCP_STOP="-k"
EOF

Você consegue ou usar servidores "DNS" em "/etc/resolv.conf" oriundos de outro sistema, teus servidores preferidos, ou apenas o arquivo de exemplo "/etc/resolv.conf.head" abaixo, como está:

cat > /etc/resolv.conf.head << "EOF"
# Servidores abertos "DNS"
nameserver 208.67.222.222
nameserver 208.67.220.220
EOF

Conteúdo

Aplicativo Instalado: dhcpcd
Biblioteca Instalada: /usr/lib/dhcpcd/dev/udev.so
Diretório Instalado: /{usr,var}/lib/dhcpcd e /usr/share/dhcpcd

Descrições Curtas

dhcpcd

é uma implementação do cliente "DHCP" especificado na "RFC2131"

udev.so

adiciona suporte ao "Udev" para chegada e partida da interface; isso ocorre porque o "Udev" gosta de renomear a interface, o que não poderá ser feito se o "dhcpcd" a capturar primeiro

Capítulo 15. Aplicativos de Rede de Intercomunicação

Estes aplicativos geralmente são aplicativos clientes usados para acessar o servidor apropriado no prédio ou em todo o mundo. "Tcpwrappers" e "portmap" são aplicativos de suporte para processos de segundo plano que você possivelmente esteja executando em tua máquina.

bridge-utils-1.7.1

Introdução ao bridge-utils

O pacote "bridge-utils" contém um utilitário necessário para criar e gerenciar dispositivos de ponte. Isso é útil na configuração de redes de intercomunicação para uma máquina virtual ("MV") hospedada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "bridge-utils"

Opcionais (para executar testes)

Net-tools-2.10

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]

Instalação do bridge-utils

Instale "bridge-utils" executando os seguintes comandos:

autoconf                  &&
./configure --prefix=/usr &&
make

Testar os resultados exige executar-se os seis conjuntos sequenciais de comandos de "shell" no diretório "tools/". Dois dos testes exigem duas portas "Ethernet". Alguns testes não preservarão a configuração atual da rede de intercomunicação. Veja-se "tests/README" para detalhes.

Agora, como o(a) usuário(a) "root":

make install

Configurando o bridge-utils

Informação de Configuração

Para automatizar a criação e configuração da ponte, instale o conjunto sequencial de comandos de serviço "/usr/lib/services/bridge" incluído no pacote "blfs-bootscripts-20250225".

make install-service-bridge

Nota

O conjunto sequencial de comandos "bridge" depende dos comandos "/sbin/ifup" e "/sbin/ifdown" e do conjunto sequencial de comandos de serviço "ipv4-static" originário dos conjuntos sequenciais de comandos de inicialização do LFS datados de 27 de janeiro de 2012 ou posteriores.

O seguinte arquivo de configuração criará um dispositivo de ponte ao tempo da inicialização e anexará o dispositivo "eth0" a ele. Se mais que um dispositivo for desejado, [então] use uma lista separada por espaços de "INTERFACE_COMPONENTS". Essa configuração é útil ao planejar executar uma máquina virtual como "kvm"/"qemu".

Outras combinações de "SERVICE" são possíveis, por exemplo, "SERVICE="bridge dhcp"". Nesse caso, os parâmetros de endereço não são necessários, mas não interferem se estiverem presentes. O serviço de ponte também pode ser usado sozinho, mas exigirá configuração adicional subsequente.

Cuidado

Não execute uma configuração paralela para um dispositivo na lista "INTERFACE_COMPONENTS". Por exemplo, no exemplo abaixo, não configure "/etc/sysconfig/ifconfig.eth0" para executar ao tempo da inicialização. O comando "ifdown br0" seguido pelo comando "ifup eth0" funcionará, mas não tente ativar os dois ao mesmo tempo.

cat > /etc/sysconfig/ifconfig.br0 << "EOF"
ONBOOT=yes
IFACE=br0
VIRTINT=yes
SERVICE="ponte IPv4 estático"  # Separados por espaço
IP=192.168.1.32
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
CHECK_LINK=no                 # Não verificar antes que a ponte esteja criada
STP=no                        # "Spanning Tree Protocol", padrão não
INTERFACE_COMPONENTS="eth0"   # Adicionar a "IFACE", dispositivos separados por espaços
IP_FORWARD=true
EOF

Todos os endereços deveriam ser mudados para atender às suas circunstâncias.

Conteúdo

Aplicativo Instalado: brctl
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

brctl

é um aplicativo usado para configurar, manter e inspecionar a configuração da ponte "Ethernet" no núcleo Linux

cifs-utils-7.2

Introdução ao cifs-utils

O pacote "cifs-utils" fornece um meio para montar compartilhamentos "SMB"/"CIFS" em um sistema Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "cifs-utils"

Exigidas

Talloc-2.4.3

Recomendadas
Opcionais

docutils-0.21.2 (para criar as páginas de manual), keyutils-1.6.3 (exigido para construir o módulo "PAM"), Linux-PAM-1.7.0, Samba-4.21.4 e libcap-2.73 com PAM ou libcap-ng

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> SMB3 and CIFS support (advanced network filesystem)             [CIFS]

Dependendo da configuração do teu servidor, opções adicionais do núcleo possivelmente sejam exigidas.

Instalação do cifs-utils

Instale cifs-utils executando os seguintes comandos:

./configure --prefix=/usr \
           --disable-pam \
           --disable-systemd &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-pam: Não construa suporte "PAM". Remova-a e use "--with-pamdir" (veja-se abaixo), se "Linux-PAM-1.7.0" estiver instalado e você desejar suporte "PAM".

--disable-systemd: Desabilite o comportamento específico do "systemd" para "mount.cifs".

--with-pamdir=/usr/lib/security: Instale o módulo "PAM" em "/usr/lib/security".

Conteúdo

Aplicativos Instalados: cifs.idmap, cifs.upcall, cifscreds, getcifsacl, mount.cifs, mount.smb3, setcifsacl, smb2-quota e smbinfo
Biblioteca Instalada: /usr/lib/cifs-utils/idmapwb.so e, opcionalmente, o módulo "PAM" /usr/lib/security/pam_cifscreds.so
Diretório Instalado: /usr/lib/cifs-utils

Descrições Curtas

cifs.idmap

é um aplicativo auxiliar do espaço de usuário(a) para o sistema de arquivos do cliente "CIFS" Linux. Existe uma série de atividades que o núcleo não consegue realizar facilmente ele próprio. Esse aplicativo é um aplicativo "callout" que faz essas coisas para o núcleo e depois retorna o resultado. Não se destina a ser executado a partir da linha de comando

cifs.upcall

é um aplicativo auxiliar do espaço de usuário(a) para o sistema de arquivos do cliente "CIFS" Linux. Ele se destina a ser executado quando o núcleo chamar "request-key" para um tipo de chave específico. Não se destina a ser executado a partir da linha de comando

cifscreds

é uma ferramenta para gerenciamento de credenciais (nome de usuário(a) e senha) com a finalidade de estabelecer sessões em montagens multiusuário(a)

getcifsacl

é um auxiliar do espaço de usuário(a) para exibir uma "ACL" em um descritor de segurança para "Common Internet File System" ("CIFS")

mount.cifs

monta um sistema de arquivos CIFS do Linux. Geralmente é invocado indiretamente pelo comando mount(8) ao usar a opção -t cifs

mount.smb3

monta um sistema de arquivos baseado em SMB3. Geralmente é invocado indiretamente pelo comando mount(8) ao usar a opção -t smb3

setcifsacl

destina-se a alterar uma "ACL" de um descritor de segurança para um objeto do sistema de arquivos

smb3-quota

exibe informações de cota para um sistema de arquivos "SMB"

smbinfo

exibe informações de arquivos específicas de "SMB", como descritores de segurança e cotas

NcFTP-3.2.7

Introdução ao NcFTP

O pacote "NcFTP" contém uma interface poderosa e flexível para o protocolo de transferência de arquivos padrão da Internet. Destina-se a substituir ou complementar o aplicativo "ftp" padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do NcFTP

Existem duas maneiras de construir o "NcFTP". A primeira (e ideal) maneira constrói a maior parte da funcionalidade como uma biblioteca compartilhada e depois constrói e instala o programa vinculado a essa biblioteca. O segundo método simplesmente vincula todas as funcionalidades ao binário estaticamente. Isso não disponibiliza a biblioteca dinâmica para vinculação por outros aplicativos. Você precisa escolher o método que melhor se adapta a você. Observe que o segundo método não cria um binário totalmente vinculado estaticamente; apenas as partes da "libncftp" estão vinculadas estaticamente, nesse caso. Esteja ciente de que a construção e uso da biblioteca compartilhada são cobertas pela Licença Artística Esclarecida; entretanto, o desenvolvimento de aplicativos que utilizam a biblioteca compartilhada está sujeito a uma licença diferente.

Primeiro, corrija um problema com o conjunto de comandos sequenciais de configuração introduzido pelo gcc-14:

sed -i 's/def HAVE_STDLIB_H/ 1/;s/extern select/extern int select/' configure

Para instalar o "NcFTP" usando o primeiro (e ideal) método, execute os seguintes comandos:

CC=/usr/bin/gcc \
./configure --prefix=/usr --sysconfdir=/etc &&
make -C libncftp shared &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make -C libncftp soinstall &&
make install

Para instalar o "NcFTP" usando o segundo método (com a funcionalidade da "libncftp" vinculada estaticamente) execute os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

CC=/usr/bin/gcc. Essa variável de ambiente garante que gcc seja usado se LLVM-19.1.7 estiver instalado. O procedimento de construção é quebrado se gcc não for usado.

make -C ... && make -C ...: Esses comandos criam e instalam a biblioteca dinâmica "libncftp" que é então usada para vincular ao compilar o programa principal.

Conteúdo

Aplicativos Instalados: ncftp, ncftpbatch, ncftpbookmarks, ncftpget, ncftpls, ncftpput e ncftpspooler
Biblioteca Instalada: libncftp.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ncftp

é um aplicativo de navegador para "File Transfer Protocol"

ncftpbatch

é um processador de tarefa "FTP" em lote individual

ncftpbookmarks

é o editor de marcadores do "NcFTP" (baseado em "NCurses")

ncftpget

é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para recuperar arquivos

ncftpls

é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para listar arquivos

ncftpput

é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para transferir arquivos

ncftpspooler

é um processo de segundo plano global de processador de tarefas "FTP" em lote

Net-tools-2.10

Introdução ao Net-tools

O pacote "Net-tools" é uma coleção de aplicativos para controlar o subsistema de rede de intercomunicação do núcleo Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Net-tools

As instruções abaixo automatizam o processo de configuração canalizando "yes" para o comando "make". Se você deseja executar o processo interativo de configuração (mudando a instrução para apenas "make"), mas não tem certeza de como responder a todas as perguntas, então basta aceitar os padrões. Isso funcionará perfeitamente na maioria dos casos. O que você é inquirido(a) aqui é um monte de perguntas relativas a quais protocolos de rede de intercomunicação você habilitou em teu núcleo. As respostas padrão habilitarão as ferramentas originárias desse pacote para funcionem com os protocolos mais comuns: "TCP", "PPP" e vários outros. Você ainda precisa habilitar esses protocolos no núcleo—o que você faz aqui é meramente dizer ao pacote para incluir suporte para esses protocolos nos aplicativos dele, mas cabe ao núcleo disponibilizar os protocolos.

Nota

Esse pacote tem vários protocolos desnecessários e funções específicas de dispositivos de hardware que estão obsoletas. Para construir somente o mínimo necessário para o teu sistema, ignore o comando "yes" e responda a cada pergunta interativamente. As opções mínimas necessárias são "UNIX protocol family" e "INET (TCP/IP) protocol family".

Para esse pacote, nós usamos o método "DESTDIR" de instalação para a finalidade de remover facilmente arquivos da construção que sobrescrevem aqueles que queremos manter ou que não são apropriados para nosso sistema.

Instale o "Net-tools" executando os seguintes comandos:

export BINDIR='/usr/bin' SBINDIR='/usr/bin' &&
yes "" | make -j1                          &&
make DESTDIR=$PWD/install -j1 install       &&
rm    install/usr/bin/{nis,yp}domainname    &&
rm    install/usr/bin/{hostname,dnsdomainname,domainname,ifconfig} &&
rm -r install/usr/share/man/man1            &&
rm    install/usr/share/man/man8/ifconfig.8 &&
unset BINDIR SBINDIR

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

chown -R root:root install &&
cp -a install/* /

Explicações do Comando

export BINDIR='/usr/bin' SBINDIR='/usr/bin': Certifique-se de que os executáveis estejam instalados no local correto.

yes "" | make : Canalizar "yes" para "make config" ignora a configuração interativa e aceita os padrões.

rm ...: Remova aplicativos e páginas de manual desnecessários.

Conteúdo

Aplicativos Instalados: arp, ipmaddr, iptunnel, mii-tool, nameif, netstat, plipconfig, rarp, route e slattach
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

arp

é usado para manipular o "cache" "ARP" do núcleo, geralmente para adicionar ou deletar uma entrada, ou para despejar todo o "cache"

ipmaddr

adiciona, deleta e mostra os endereços "multicast" de uma interface

iptunnel

adiciona, muda, deleta e mostra os túneis de uma interface

mii-tool

verifica ou configura o situação de uma unidade "Media Independent Interface" ("MII") de uma interface de rede de intercomunicação

nameif

nomeia interfaces de rede baseado em endereços "MAC"

netstat

é usado para informar conexões de rede, tabelas de roteamento e estatísticas de interface

plipconfig

é usado para ajustar os parâmetros do dispositivo "PLIP", para melhorar o desempenho dele

rarp

é usado para manipular a tabela "RARP" do núcleo

route

é usado para manipular a tabela de roteamento "IP"

slattach

anexa uma interface de rede de intercomunicação a uma linha serial. Isso permite que você use linhas normais de terminal para links ponto a ponto para outros computadores

NFS-Utils-2.8.2

Introdução aos Utilitários do NFS

O pacote "NFS Utilities" contém as ferramentas de espaço do usuário(a) servidor e cliente necessárias para usar as capacidades "NFS" do núcleo. "NFS" é um protocolo que permite compartilhar sistemas de arquivos por intermédio da rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências dos Utilitários do NFS

Exigidas

libevent-2.1.12, libnl-3.11.0, libtirpc-1.3.6, libxml2-2.13.6, rpcsvc-proto-1.4.4 e SQLite-3.49.1

Opcionais

Cyrus SASL-2.1.28 (para autenticação SASL), libnsl-2.0.1 (para suporte ao cliente NIS), LVM2-2.03.30 (libdevmapper para suporte a NFSv4), OpenLDAP-2.6.9 (para autenticação LDAP), MIT Kerberos V5-1.21.3 ou libgssapi e librpcsecgss (para suporte de segurança GSS e RPC), e libcap-2.73 com PAM

Exigidas (tempo de execução)

rpcbind-1.2.7

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo (escolha o suporte ao cliente e(ou) servidor conforme apropriado) e recompile o núcleo se necessário:

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> NFS server support                                              [NFSD]

Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas.

Nota

No BLFS nós assumimos que o "NFS" v3 será usado. Se o servidor oferecer "NFS" v4 (para o Linux, "CONFIG_NFSD_V4") então a negociação automática para v3 falhará e você precisará adicionar "nfsver=3" às opções de montagem. Isso também se aplica se essa opção estiver habilitada no núcleo do cliente, por exemplo, em uma distribuição tentando montar a partir de um servidor BLFS v3.

Mesmo que nenhuma extremidade da conexão suporte "NFS" v4, adicionar "nfsver=3" ainda é benéfico porque evita que uma mensagem de erro "NFS: bad mount option value specified: minorversion=1" seja registrada em cada montagem.

Instalação dos Utilitários do NFS

Instale o Utilitários do NFS executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --sbindir=/usr/sbin    \
            --disable-nfsv4        \
            --disable-gss          \
            LIBS="-lsqlite3 -levent_core" &&
make

Agora, como o(a) usuário(a) root:

make install                       &&
chmod u+w,go+r /usr/sbin/mount.nfs &&
chown nobody:nogroup /var/lib/nfs

Os testes para esse pacote exigem que o pacote esteja instalado. Além disso, o processo de segundo plano rpc.statd precisa não estar executando e os testes precisam ser executados como o(a) usuário(a) root.

Para testar os resultados, emita, como root:

make check

Explicações do Comando

--disable-gss: Desabilita o suporte para "GSS" do "RPCSEC" (Segurança "RPC").

LIBS="-lsqlite3 -levent_core": é exigido para o aplicativo fsidd.

chown nobody:nogroup /var/lib/nfs: O aplicativo rpc.statd usa a titularidade de propriedade desse diretório para configurar o UID e GID dele. Esse comando os configura como entradas sem privilégios.

Configurando os Utilitários do NFS

Configuração do Servidor

"/etc/exports" contém os diretórios exportados em servidores "NFS". Consulte a página de manual "exports.5" para a sintaxe desse arquivo. Consulte também o "NFS HowTo" disponível em https://nfs.sourceforge.net/nfs-howto/ para informações relativas a como configurar os servidores e clientes de maneira segura. Por exemplo, para compartilhar o diretório "/home" por intermédio da rede local de intercomunicação, a seguinte linha pode ser adicionada:

cat >> /etc/exports << EOF
/home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99)
EOF

Nota

Certifique-se de substituir o diretório, endereço de rede de intercomunicação. e prefixo acima para corresponder à tua rede de intercomunicação. O único espaço na linha acima deveria ficar entre o diretório e o endereço de rede de intercomunicação.

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/nfs-server incluso no pacote blfs-bootscripts-20250225 para iniciar o servidor na inicialização.

make install-nfs-server

Agora crie o arquivo de configuração "/etc/sysconfig/nfs-server":

cat > /etc/sysconfig/nfs-server << "EOF"
PORT="2049"
PROCESSES="8"
KILLDELAY="10"
EOF

Nota

Os parâmetros acima podem ser opcionalmente colocados no "/etc/sysconfig/rc.site".

Configuração do Cliente

"/etc/fstab" contém os diretórios que são para serem montados no cliente. Alternativamente, as partições conseguem ser montadas usando o comando "mount" com as opções apropriadas. Para montar as partições "/home" e "/usr", adicione o seguinte ao "/etc/fstab":

<nome-servidor>:/home  /home nfs   rw,_netdev 0 0
<nome-servidor>:/usr   /usr  nfs   ro,_netdev 0 0

As opções que podem ser usadas estão especificadas em "man 5 nfs ". Se tanto o cliente quanto o servidor estiverem executando versões recentes do Linux, [então] a maioria das opções serão negociadas (mas veja a Observação acima a respeito de "nfsver=3"). Você consegue especificar ou "rw" ou "ro", "_netdev" se o sistema de arquivos é para ser montado automaticamente na inicialização, ou "noauto" (e talvez "user") para outros sistemas de arquivos.

Se o servidor de arquivos não estiver executando uma versão recente do Linux, [então] você possivelmente precise especificar outras opções.

Conjunto de Comandos Sequenciais de Inicialização

Nota

O seguinte conjunto de comandos sequenciais de inicialização não é exigido se o conjunto de comandos sequenciais nfs-server estiverinstalado.

Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/nfs-client" incluso no pacote "blfs-bootscripts-20250225" "" para iniciar os serviços do cliente na inicialização.

make install-nfs-client

Para montar automaticamente sistemas de arquivos "nfs ", os clientes também precisarão instalar o conjunto de comandos sequenciais de inicialização "netfs" conforme descrito em "Configurando para Sistemas de Arquivos de Rede de Intercomunicação".

Conteúdo

Aplicativos Instalados: exportfs, fsidd, mountstats, mount.nfs, mount.nfs4 (link para mount.nfs), nfsconf, nfsdclnts, nfsiostat, nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug, showmount, sm-notify, start-statd, umount.nfs (link para mount.nfs) e umount.nfs4 (link para mount.nfs)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /var/lib/nfs

Descrições Curtas

exportfs

mantém uma lista de sistemas de arquivos "NFS" exportados

fsidd

oferece uma interface de soquete de domínio UNIX local para todo o espaço de usuário(a) do NFS para consultar a base de dados de reexportação

mountstats

exibe estatísticas "NFS" por montagem do cliente

mount.nfs

é usado para montar um compartilhamento de rede de intercomunicação usando "NFS"

mount.nfs4

é usado para montar um compartilhamento de rede de intercomunicação usando "NFSv4"

nfsconf

pode ser usado para testar e recuperar definições de configuração a partir de uma variedade de arquivos de configuração "nfs-utils"

nfsdclnts

imprime informações relativas a clientes "NFS"

nfsiostat

informa estatísticas de entrada/saída para sistemas de arquivos de rede de intercomunicação

nfsstat

exibe estatísticas mantidas a respeito da atividade "NFS" do cliente e do servidor

rpc.mountd

implementa o protocolo de montagem "NFS" em um servidor "NFS"

rpc.nfsd

implementa a parte de nível de usuário(a) do serviço "NFS" no servidor

rpc.statd

é usado pelo serviço de bloqueio de arquivos "NFS". Execute em ambos os lados, cliente e servidor, quando desejar o bloqueio de arquivos habilitado

rpcdebug

configura ou limpa os sinalizadores de depuração do "NFS" do cliente e do servidor do núcleo

showmount

exibe informações de montagem para um servidor "NFS"

sm-notify

é usado para enviar mensagens de reinicialização do "Network Status Monitor"

start-statd

é um conjunto de comandos sequenciais chamado pelo "nfsmount" ao montar um sistema de arquivos com bloqueio habilitado, se o "statd" não parecer estar executando. Ele pode ser personalizado com quaisquer sinalizadores apropriados para o sítio

umount.nfs

é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFS"

umount.nfs4

é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFSv4"

Configurando para Sistemas de Arquivos de Rede de Intercomunicação

Embora o LFS seja capaz de montar sistemas de arquivos de rede de intercomunicação como o "NFS", eles não são montados pelo conjunto de comandos sequenciais de iniciação "mountfs". Os sistemas de arquivos de rede de intercomunicação precisam ser montados depois que a rede de intercomunicação for ativada e desmontados antes que a rede de intercomunicação fique inativa. O conjunto de comandos sequenciais de inicialização "netfs" foi escrito para lidar com a montagem em tempo de inicialização de sistemas de arquivos de rede de intercomunicação, se a entrada em "/etc/fstab" contiver a opção "_netdev", e desmontagem de todos os sistemas de arquivos de rede de intercomunicação antes que a rede seja derrubada.

Como o(a) usuário(a) "root", instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/netfs" incluído no pacote "blfs-bootscripts-20250225".

make install-netfs

ntp-4.2.8p18

Introdução ao ntp

O pacote "ntp" contém um cliente e um servidor para manter a hora sincronizada entre vários computadores em uma rede de intercomunicação. Esse pacote é a implementação de referência oficial do protocolo "NTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "ntp"

Exigidas

IO-Socket-SSL-2.089

Opcionais

libcap-2.73 com PAM, libevent-2.1.12, libedit e libopts originário do AutoGen

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ntp

Instalação do ntp

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "ntpd" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 87 ntp &&
useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \
        -g ntp -s /bin/false ntp

Corrija um problema de tipo executando

sed -e "s;pthread_detach(NULL);pthread_detach(0);" \
    -i configure \
       sntp/configure

Instale o "ntp" executando os seguintes comandos:

./configure --prefix=/usr        \
            --bindir=/usr/sbin    \
            --sysconfdir=/etc     \
            --enable-linuxcaps    \
            --with-lineeditlibs=readline \
            --docdir=/usr/share/doc/ntp-4.2.8p18 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -o ntp -g ntp -d /var/lib/ntp

Explicações do Comando

--bindir=/usr/sbin: Esse parâmetro coloca os aplicativos administrativos em "/usr/sbin".

--enable-linuxcaps: O "ntpd" é executado como usuário(a) "ntp", de forma que use os recursos do "Linux" para controle de relógio não raiz.

--with-lineeditlibs=readline: Essa chave habilita o suporte "Readline" para os aplicativos "ntpdc" e "ntpq". Se omitido, [então] "libedit" será usada se instalada; caso contrário, nenhum recurso do "Readline" será compilado.

Configurando o ntp

Arquivos de Configuração

/etc/ntp.conf

Informação de Configuração

O arquivo de configuração a seguir define primeiro vários servidores NTP com acesso aberto a partir de diferentes continentes. Segundo, ele cria um arquivo drift onde ntpd armazena o deslocamento de frequência e um arquivo pid para armazenar o ID do processo ntpd. Como a documentação incluída no pacote é escassa, visite-se o sítio do NTP em https://www.ntp.org/ e https://www.ntppool.org/ para mais informações.

cat > /etc/ntp.conf << "EOF"
# Ásia
server 0.asia.pool.ntp.org

# Austrália
server 0.oceania.pool.ntp.org

# Europa
server 0.europe.pool.ntp.org

# América do Norte
server 0.north-america.pool.ntp.org

# América do Sul
server 2.south-america.pool.ntp.org

driftfile /var/lib/ntp/ntp.drift
pidfile   /run/ntpd.pid
EOF

Você possivelmente deseje adicionar uma seção de Segurança. Para explicações, veja-se https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict.

cat >> /etc/ntp.conf << "EOF"
# Seção de segurança
restrict    default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict ::1
EOF

Sincronizando a Hora

Existem duas opções. A primeira opção é a de executar o "ntpd" continuamente e permitir que ele sincronize a hora de maneira gradual. A outra opção é a de executar o "ntpd" periodicamente (usando o "Cron") e atualizar a hora cada vez que o "ntpd" estiver agendado.

Se você escolher a opção um, então instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/ntp" incluso no pacote "blfs-bootscripts-20250225" "".

make install-ntpd

Se você preferir executar ntpd periodicamente, adicione o seguinte comando ao crontab do(a) root:

ntpd -q

Execute o seguinte comando se desejar configurar o relógio do "hardware" para a hora atual do sistema no desligamento e reinicialização:

ln -v -sf ../init.d/setclock /etc/rc.d/rc0.d/K46setclock &&
ln -v -sf ../init.d/setclock /etc/rc.d/rc6.d/K46setclock

O contrário já está configurado pelo LFS.

Conteúdo

Aplicativos Instalados: calc_tickadj, ntp-keygen, ntp-wait, ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptrace, sntp, tickadj e update-leap
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/ntp, /usr/share/doc/ntp-4.2.8 e /var/lib/ntp

Descrições Curtas

calc_tickadj

calcula o valor ideal para o "tick" dado o arquivo de mudança gradual do "NTP"

ntp-keygen

gera arquivos de dados criptográficos usados pelos esquemas de autenticação e identificação "NTPv4"

ntp-wait

é útil ao tempo da inicialização, para atrasar a sequência de inicialização até que o "ntpd" tenha configurado a hora

ntpd

é um processo de segundo plano "NTP" que executa em segundo plano e mantém a data e a hora sincronizadas baseado na resposta originária dos servidores "NTP" configurados. Também funciona como um servidor "NTP"

ntpdate

é um aplicativo cliente que configura a data e a hora baseado na resposta originária de um servidor "NTP". Esse comando está obsoleto

ntpdc

é usado para consultar o processo de segundo plano "ntp" sobre o estado atual dele e para solicitar mudanças nesse estado

ntpq

é um aplicativo utilitário usado para monitorar operações "ntpd" e determinar o desempenho

ntptime

lê e exibe variáveis do núcleo relacionadas à hora

ntptrace

rastreia uma cadeia de servidores "NTP" até a fonte primária

sntp

é um cliente "Simple Network Time Protocol" ("SNTP")

tickadj

lê e, opcionalmente, modifica várias variáveis relacionadas à cronometragem em núcleos mais antigos que não tem suporte para cronometragem de precisão

update-leap

é um conjunto de comandos sequenciais para verificar e, se necessário, atualizar o arquivo de definição de segundos bissextos.

Nota

Em novembro de 2022, na 27ª Conferência Geral de Pesos e Medidas, foi decidido abandonar o segundo bissexto. Além disso, esse conjunto de comandos sequenciais rigidamente codifica uma URL para um arquivo de atualização que não mais existe. A última vez que um segundo bissexto foi declarado foi em janeiro de 2017. Esse conjunto de comandos sequenciais provavelmente será removido em um lançamento futuro.

rpcbind-1.2.7

Introdução ao rpcbind

O aplicativo "rpcbind" é um substituto para o "portmap". Ele é exigido para importar ou exportar diretórios compartilhados do "Network File System" ("NFS").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "rpcbind"

Exigidas

libtirpc-1.3.6

Instalação do rpcbind

Para a finalidade de conseguir que o "rpcbind" funcione corretamente, primeiro corrija o pacote para usar o nome correto do serviço:

sed -i "/servname/s:rpcbind:sunrpc:" src/rpcbind.c

Instale o "rpcbind" executando os seguintes comandos:

./configure --prefix=/usr                                  \
            --bindir=/usr/sbin                             \
            --with-rpcuser=root                            \
            --enable-warmstarts                            \
            --without-systemdsystemunitdir                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--with-rpcuser=root: Isso contorna um erro no conjunto de comandos sequenciais de configuração.

--without-systemdsystemunitdir: Essa versão do BLFS não suporte o "systemd".

Configurando rpcbind

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/rpcbind" incluso no pacote "blfs-bootscripts-20250225".

make install-rpcbind

Conteúdo

Aplicativo Instalado: rpcbind e rpcinfo
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

rpcbind

é um servidor que converte números de aplicativos "RPC" em endereços universais. Ele precisa estar executando no dispositivo para estar apto a fazer chamadas "RPC" em um servidor nessa máquina

rpcinfo

faz uma chamada "RPC" para um servidor "RPC" e informa dados de acordo com as opções solicitadas

rsync-3.4.1

Introdução ao rsync

O pacote "rsync" contém o utilitário "rsync". Isso é útil para sincronizar arquivamentos grandes por intermédio de uma rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.samba.org/ftp/rsync/src/rsync-3.4.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 04ce67866db04fd7a1cde0b78168406e

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 11 MB (com testes; adicionar 24 MB para documentação HTML da API)

  • Tempo de construção estimado: 0,6 UPC (com testes)

Dependências do "rsync"

Recomendadas
Opcionais

Doxygen-1.13.2 e xxhash

Instalação do rsync

Por razões de segurança, executar o servidor "rsync" como um(a) usuário(a) e grupo sem privilégios é encorajado. Se você pretende executar o "rsync" como um processo de segundo plano, [então] crie o(a) usuário(a) e grupo "rsyncd" com os seguintes comandos emitidos pelo(a) usuário(a) "root":

groupadd -g 48 rsyncd &&
useradd -c "Processo de segundo plano rsyncd" -m -d /home/rsync -g rsyncd \
    -s /bin/false -u 48 rsyncd

Instale o "rsync" executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-xxhash \
            --without-included-zlib &&
make

Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação "HTML" da "API", [então] emita:

doxygen

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Se você construiu a documentação, [então] instale-a usando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -d         /usr/share/doc/rsync-3.4.1/api &&
install -v -m644 dox/html/*  /usr/share/doc/rsync-3.4.1/api

Explicações do Comando

--disable-xxhash: Essa chave desabilita o suporte avançado à soma de verificação "xxhash". Remova essa chave se você tiver instalado xxhash.

--without-included-zlib: Essa chave habilita a compilação com a biblioteca "zlib" instalada no sistema.

Configurando o rsync

Arquivos de Configuração

/etc/rsyncd.conf

Informação de Configuração

Para acesso de cliente a arquivos remotos, você possivelmente precise instalar o pacote "OpenSSH-9.9p2" para se conectar ao servidor remoto.

Esta é uma configuração simples somente para download para configurar a execução do rsync como um servidor. Veja-se a página de manual rsyncd.conf(5) para opções adicionais (ou seja, autenticação de usuário(a)).

cat > /etc/rsyncd.conf << "EOF"
# Este é um arquivo básico de configuração do "rsync".
# Ele exporta um módulo sem autenticação de usuário(a).

motd file = /home/rsync/welcome.msg
use chroot = yes

[localhost]
    path = /home/rsync
    comment = Default rsync module
    read only = yes
    list = yes
    uid = rsyncd
    gid = rsyncd

EOF

Você consegue encontrar informações adicionais de configuração e documentação geral a respeito do "rsync" em https://rsync.samba.org/documentation.html.

Conjunto de Comandos Sequenciais de Inicialização

Observe que você só precisa iniciar o servidor "rsync" se quiser fornecer um arquivamento "rsync" em sua máquina local. Você não precisa deste conjunto de comandos sequenciais para executar o cliente "rsync".

Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/rsyncd" incluso no pacote "blfs-bootscripts-20250225" "".

make install-rsyncd

Conteúdo

Aplicativo Instalado: rsync e rsync-ssl
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Opcionalmente, /usr/share/doc/rsync-3.4.1

Descrições Curtas

rsync

é um substituto para o "rcp" (e o "scp") que tem muito mais recursos. Ele usa o algoritmo rsync que fornece um método muito rápido de sincronização de arquivos remotos. Ele faz isso enviando apenas as diferenças nos arquivos por intermédio do link, sem exigir que ambos os conjuntos de arquivos estejam presentes em uma extremidade do link antecipadamente

rsync-ssl

é um conjunto de comandos sequenciais auxiliares usado ao conectar-se a um processo de segundo plano "rsync" que tenha suporte "SSL" integrado

Samba-4.21.4

Introdução ao Samba

O pacote "Samba" fornece serviços de arquivo e impressão para clientes "SMB"/"CIFS" e rede de intercomunicação Windows para clientes Linux. O "Samba" também pode ser configurado como um substituto do Controlador de Domínio do Windows, um servidor de arquivos/impressão atuando como membro de um domínio do "Windows Active Directory" e um servidor de nomes "NetBIOS" ("RFC" 1001/1002) (que, entre outras coisas, fornece suporte de navegação "LAN").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.samba.org/pub/samba/stable/samba-4.21.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6d0b330364e05fed58cc63fbb43037fe

  • Tamanho da transferência: 41 MB

  • Espaço em disco estimado exigido: 683 MB (adicionar 64 MB para teste rápido)

  • Tempo de construção estimado: 2,1 UPC (usando paralelismo=4; adicionar 0,4 UPC para quicktest)

Transferências Adicionais

Dependências do "Samba"

Exigidas

GnuTLS-3.8.9, libtirpc-1.3.6, Parse-Yapp-1.21 e rpcsvc-proto-1.4.4

Recomendadas
Opcionais

Avahi-0.8, BIND-9.20.6, Cups-2.4.11, Cyrus SASL-2.1.28, GDB-16.2, git-2.48.1, GnuPG-2.4.7 (exigido para ADS e a suíte de teste), libaio-0.3.113, libarchive-3.7.7 (para tar no smbclient), libcap-2.73 com PAM, libgcrypt-1.11.0, libnsl-2.0.1, libunwind-1.8.1, Markdown-3.7, nss-3.108, popt-1.19, Talloc-2.4.3 (usado pela suíte de teste), Vala-0.56.17, Valgrind-3.24.0 (opcionalmente usado pela suíte de teste), xfsprogs-6.13.0, cmocka, cryptography, ctdb (incluído), cwrap, dnspython, FAM, Gamin, GlusterFS, Heimdal (incluído), iso8601, ldb (incluído), OpenAFS, poetry-core (exigido para ADS), pyasn1, tevent (incluído), tdb (incluído) e tracker-2

Opcionais (para a Suíte de Teste de Desenvolvedor(a))

Instale na ordem listada: six-1.17.0, pytest-8.3.4, argparse, testtools, testscenarios e python-subunit

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/samba4

Instalação do Samba

Para suportar a suíte de teste, configure um ambiente virtual Python para alguns módulos Python fora do escopo do BLFS e corrija um problema na estrutura de teste que faz com que todos os testes falhem em cima do núcleo Linux 6.13 ou mais recente:

python3 -m venv --system-site-packages pyvenv         &&
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601 &&
patch -Np1 -i ../samba-4.21.4-testsuite_linux_6_13-1.patch

Instale o "Samba" executando os seguintes comandos:

PYTHON=$PWD/pyvenv/bin/python3             \
PATH=$PWD/pyvenv/bin:$PATH                 \
./configure                                \
    --prefix=/usr                          \
    --sysconfdir=/etc                      \
    --localstatedir=/var                   \
    --with-piddir=/run/samba               \
    --with-pammodulesdir=/usr/lib/security \
    --enable-fhs                           \
    --without-ad-dc                        \
    --without-systemd                      \
    --with-system-mitkrb5                  \
    --enable-selftest                      \
    --disable-rpath-install                &&
make

Para testar os resultados, emita: "PATH=$PWD/pyvenv/bin:$PATH make quicktest". A suíte de teste produzirá linhas que parecem falhas, mas são inócuas. As últimas linhas da saída gerada deveriam informar "ALL OK" para uma execução boa do teste. Um resumo de quaisquer falhas pode ser encontrado em "./st/summary".

Nota

Além disso, suítes de teste para desenvolvedores(as) estão disponíveis. Se você instalou os módulos opcionais "Python" acima no ambiente virtual "Python" para construir esse pacote, [então] você consegue executar esses testes com "make test". Não é recomendado para o(a) construtor(a) médio(a) com cerca de duzentos e noventa (290) UPC e mais que um gigabyte de espaço em disco, e você deveria esperar cerca de setenta e três (73) erros e cerca de trinta (30) falhas originários dos mais que três mil (3.000) testes.

Corrija caminhos rigidamente codificados para o interpretador Python 3:

sed '1s@^.*$@#!/usr/bin/python3@' \
    -i ./bin/default/source4/scripting/bin/*.inst

Se atualizar a partir de uma versão antiga do samba, [então] como o(a) usuário(a) "root", remova os arquivos antigos de suporte do "Python" para evitar alguns problemas:

rm -rf /usr/lib/python3.13/site-packages/samba

Ainda como o(a) usuário(a) "root", instale o pacote:

make install &&

install -v -m644    examples/smb.conf.default /etc/samba &&

sed -e "s;log file =.*;log file = /var/log/samba/%m.log;" \
    -e "s;path = /usr/spool/samba;path = /var/spool/samba;" \
    -i /etc/samba/smb.conf.default &&

mkdir -pv /etc/openldap/schema                        &&

install -v -m644    examples/LDAP/README              \
                    /etc/openldap/schema/README.samba &&

install -v -m644    examples/LDAP/samba*              \
                    /etc/openldap/schema              &&

install -v -m755    examples/LDAP/{get*,ol*} \
                    /etc/openldap/schema

Explicações do Comando

--enable-fhs: Atribui todos os outros caminhos de arquivo de maneira compatível com o "Filesystem Hierarchy Standard" ("FHS").

--without-systemd: Desabilite a integração "systemd", uma vez que ela não é construída na versão "System V" do LFS/BLFS.

--with-shared-modules='!vfs_snapper': Desabilite o módulo vfs_snapper se você quiser construir samba sem suporte a dbus, para configurações sem interfaces gráficas de usuário(a).

--without-ad-dc: Desabilita a funcionalidade do Controlador de Domínio do "Active Directory". Veja-se Configurar um Controlador de Domínio Samba do Active Directory para informações detalhadas. Remova essa chave se você tiver instalado os módulos "Python" necessários para suporte "ADS". Observe que o BLFS não fornece um conjunto de comandos sequenciais de inicialização ou unidade do "systemd" do Samba para um controlador de domínio do "Active Directory".

--with-system-mitkrb5: Habilita construir com a versão do sistema do Kerberos. Isso atenua vulnerabilidades de segurança e reduz o tempo de construção. Remova isso se você não tiver MIT Kerberos V5-1.21.3 instalado.

--disable-rpath-install: Remove o caminho de instalação da biblioteca dos caminhos incorporados de pesquisa de bibliotecas compartilhadas nos arquivos executáveis binários instalados e nas bibliotecas compartilhadas. Quando esse pacote é instalado no local padrão, o caminho de instalação da biblioteca é /usr/lib. Ele sempre é pesquisado pelo vinculador dinâmico, de forma que não existe necessidade de incorporá-lo aos arquivos instalados.

--with-selftest-prefix=SELFTEST_PREFIX: Essa opção especifica o diretório de trabalho da suíte de teste (padrão=./st).

install -v -m644 examples/LDAP/* /etc/openldap/schema: Esses comandos são usados para copiar esquemas de amostra do "Samba" para o diretório "schema" do "OpenLDAP".

install -v -m644 ../examples/smb.conf.default /etc/samba: Isso copia um arquivo padrão "smb.conf" em "/etc/samba". Essa amostra de configuração não funcionará até que você a copie para "/etc/samba/smb.conf" e faça as mudanças apropriadas para a tua instalação. Veja-se a seção de configuração para os valores mínimos que precisam estar configurados.

Configurando o Samba

Arquivos de Configuração

/etc/samba/smb.conf

Impressão para clientes SMB

Se você usa "CUPS" para serviços de impressão e deseja imprimir em uma impressora conectada a um cliente "SMB", [então] você precisa criar um dispositivo de estrutura de retaguarda "SMB". Para criar o dispositivo, emita o seguinte comando como o(a) usuário(a) "root":

install -dvm 755 /usr/lib/cups/backend &&
ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb

Informação de Configuração

Devido à complexidade e aos diversos usos do "Samba", a configuração completa para todos os recursos do pacote está bem além do escopo do livro BLFS. Esta seção fornece instruções para configurar o arquivo "/etc/samba/smb.conf" para dois cenários comuns. O conteúdo completo de "/etc/samba/smb.conf" dependerá do propósito da instalação do "Samba".

Nota

Você possivelmente ache mais fácil copiar os parâmetros de configuração mostrados abaixo em um arquivo "/etc/samba/smb.conf" vazio em vez de copiar e editar o arquivo padrão conforme mencionado na seção Explicações do Comando. Como você cria/edita o arquivo "/etc/samba/smb.conf" será deixado a seu critério. Certifique-se de que o arquivo só possa ser escrevível pelo(a) usuário(a) "root" (modo 644).

Cenário 1: instalação Mínima Autônoma Somente para Cliente

Escolha essa variante se você quiser somente transferir arquivos usando "smbclient", montar compartilhamentos do Windows e imprimir em impressoras Windows e não quiser compartilhar teus arquivos e impressoras com máquinas Windows.

Um arquivo "/etc/samba/smb.conf" com os seguintes três parâmetros é suficiente:

[global]
    workgroup = GRUPO_DE_TRABALHO
    dos charset = cp850
    unix charset = ISO-8859-1

Os valores nesse exemplo especificam que o computador pertence a um grupo de trabalho do Windows chamado GRUPO_DE_TRABALHO, que usa o conjunto de caracteres cp850 na rede ao conversar com MS-DOS e MS Windows 9x, e que os nomes dos arquivos são armazenados na codificação ISO-8859-1 no disco. Ajuste esses valores adequadamente para a tua instalação. O valor unix charset precisa ser o mesmo que a saída gerada de locale charmap quando executado com a variável LANG configurada para a tua localidade preferida, caso contrário o comando ls possivelmente não exiba nomes de arquivos corretos dos arquivos baixados.

Não existe necessidade de executar quaisquer servidores "Samba" nesse cenário; portanto, você não precisa instalar os conjuntos de comandos sequenciais de inicialização fornecidos.

Cenário 2: Servidor Autônomo de Arquivo/Impressão

Escolha essa variante se quiser compartilhar teus arquivos e impressoras com máquinas Windows em teu grupo de trabalho, além dos recursos descritos no Cenário 1.

Nesse caso, o arquivo "/etc/samba/smb.conf.default" possivelmente seja um bom modelo para começar. Além disso, você deveria adicionar os parâmetros dos charset e unix charset à seção [global] conforme descrito no Cenário 1 para a finalidade de evitar corrupção de nome de arquivo . Por razões de segurança, você possivelmente deseje definir "path = /home/alice/arquivos-compartilhados", assumindo que teu nome de usuário(a) seja alice e que você quer somente compartilhar os arquivos nesse diretório, em vez de todo o teu "home". Em seguida, substitua "homes" por "arquivos-compartilhados" e mude também o comment se usado o arquivo de configuração abaixo ou o "/etc/samba/smb.conf.default" para criar o teu.

O arquivo de configuração a seguir cria um compartilhamento separado para cada diretório inicial de usuário e também torna todas as impressoras disponíveis para máquinas Windows:

[global]
    workgroup = GRUPO_DE_TRABALHO
    dos charset = cp850
    unix charset = ISO-8859-1

[homes]
    comment = Diretórios Home
    browseable = no
    writable = yes

[printers]
    comment = Todas Impressoras
    path = /var/spool/samba
    browseable = no
    guest ok = no
    printable = yes

Outros parâmetros que você possivelmente queira personalizar na seção [global] incluem:

    server string =
    security =
    hosts allow =
    load printers =
    log file =
    max log size =
    socket options =
    local master =

Consulte os comentários no arquivo "/etc/samba/smb.conf.default" para informações relativas a esses parâmetros.

Como os processos de segundo plano smbd e nmbd são necessários nesse caso, instale o conjunto de comandos sequenciais de inicialização do samba. Certifique-se de executar smbpasswd (com a opção -a para adicionar usuários(as)) para habilitar e configurar senhas para todas as contas que precisarem de acesso ao Samba. Usando a estrutura de retaguarda passdb padrão do Samba, qualquer usuário(a) que você tentar adicionar também será exigido(a) existir no arquivo /etc/passwd.

Exigências Avançadas

Cenários mais complexos envolvendo controle de domínio ou associação são possíveis. Essas configurações são tópicos avançados e não podem ser abordadas adequadamente no BLFS. Muitos livros completos foram escritos apenas a respeito desses tópicos. Observe que, em alguns cenários de associação de domínio, o processo de segundo plano "winbindd" e o conjunto de comandos sequenciais de inicialização correspondente são necessários.

Conta de visitante

A instalação padrão do "Samba" usa o(a) usuário(a) "nobody" para acesso de visitante ao servidor. Isso pode ser substituído configurando-se o parâmetro "guest account =" no arquivo "/etc/samba/smb.conf". Se você utilizar o parâmetro "guest account =", [então] certifique-se de que esse(a) usuário(a) exista no arquivo "/etc/passwd".

Conjunto de Comandos Sequenciais de Inicialização

Para a tua conveniência, conjuntos de comandos sequenciais de inicialização foram fornecidos para o "Samba". Existem dois incluídos no pacote "blfs-bootscripts-20250225". O primeiro, "samba", iniciará os processos de segundo plano "smbd" e "nmbd" necessários para fornecer serviços "SMB"/"CIFS". O segundo conjunto de comandos sequenciais, "winbind", inicia o processo de segundo plano "winbindd", usado para fornecer serviços de domínio do Windows para clientes Linux.

make install-samba
make install-winbindd

Conteúdo

Aplicativos Instalados: cifsdd, dbwrap_tool, dumpmscat, eventlogadm, gentest, ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, locktest, masktest, mdsearch, mvxattr, ndrdump, net, nmbd, nmblookup, ntlm_auth, oLschema2ldif, pdbedit, profiles, regdiff, regpatch, regshell, regtree, rpcclient, samba-log-parser, samba-gpupdate, samba-regedit, samba-tool, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas, smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtorture, smbtree, tdbbackup, tdbdump, tdbrestore, tdbtool, testparm, wbinfo e winbindd
Bibliotecas Instaladas: libdcerpc-binding.so, libdcerpc-samr.so, libdcerpc-server-core.so, libdcerpc.so, libndr-krb5pac.so, libndr-nbt.so, libndr.so, libndr-standard.so, libnetapi.so, libnss_winbind.so, libnss_wins.so, libsamba-credentials.so, libsamba-errors.so, libsamba-hostconfig.so, libsamba-passdb.so, libsamba-policy.cpython-311-x86_64-linux-gnu.so, libsamba-util.so, libsamdb.so, libsmbclient.so, libsmbconf.so, libsmbldap.so, libtevent-util.so, libwbclient.so e módulos de sistemas de arquivos e de suporte sob /usr/lib/{python3.13,samba}
Diretórios Instalados: /etc/samba, /run/samba, /usr/include/samba-4.0, /usr/lib/python3.13/site-packages/samba, /usr/{lib,libexec,share}/samba e /var/{cache,lib,lock,log,run}/samba

Descrições Curtas

cifsdd

é o comando "dd" para "SMB"

dbwrap_tool

é usado para ler e manipular bases de dados "TDB"/"CTDB" usando a interface "dbwrap"

dumpmscat

despeja o conteúdo de arquivos de catálogo do "MS"

eventlogadm

é usado para escrever registros em registros de eventos a partir do "STDIN", adicionar a fonte especificada e entradas de registro de registro de eventos de "DLL" e exibir os nomes de registro de eventos ativos (a partir de "smb.conf")

gentest

é usado para executar operações genéricas aleatórias "SMB" contra dois servidores "SMB" e mostrar as diferenças de comportamento

ldbadd

é um utilitário de linha de comando para adicionar registros a uma base de dados "LDB"

ldbdel

é um utilitário de linha de comando para deletar registros de base de dados "LDB"

ldbedit

permite que você edite bases de dados "LDB" usando teu editor preferido

ldbmodify

permite que você modifique registros em uma base de dados "LDB"

ldbrename

permite que você renomeie bases de dados "LDB"

ldbsearch

pesquisa em uma base de dados "LDB" por registros que correspondam a uma expressão especificada

locktest

é usado para encontrar diferenças no bloqueio entre dois servidores "SMB"

masktest

é usado para encontrar diferenças na correspondência de curingas entre a implementação do Samba e aquela de um servidor remoto

mdsearch

executa pesquisas "Spotlight" em um servidor "SMB"

mvxattr

é usado para renomear recursivamente atributos estendidos

ndrdump

é um analisador e despejador de pacotes "DCE"/"RPC"

net

é uma ferramenta para administração de servidores "Samba" e "CIFS" remotos, semelhante ao utilitário "net" para "DOS"/"Windows"

nmbd

é o servidor de nomes "NetBIOS" do "Samba"

nmblookup

é usado para consultar nomes "NetBIOS" e mapeá-los para endereços "IP"

ntlm_auth

é uma ferramenta para permitir acesso externo à função de autenticação "NTLM" do "Winbind"

oLschema2ldif

converte esquemas "LDAP" em "LDIF" compatível com "LDB"

pdbedit

é uma ferramenta usada para gerenciar a base de dados "SAM"

profiles

é um utilitário que informa e muda "SIDs" em arquivos de registro do "Windows"

regdiff

é um aplicativo "Diff" para arquivos de registro do "Windows"

regpatch

aplica remendos de registro aos arquivos de registro

regshell

é um navegador de arquivos de registro do "Windows" usando "Readline"

regtree

é um visualizador de registro em modo texto

rpcclient

é usado para executar funções "MS-RPC" do lado do cliente

samba-log-parser

analisa registros do winbind gerados pelo Samba

samba-gpupdate

permite que você edite "Group Policy Objects" ("GPOs") da Microsoft

samba-regedit

é uma ferramenta baseada em "ncurses" para gerenciar o registro do Samba

samba-tool

é a principal ferramenta de administração do Samba

sharesec

manipula permissões de compartilhamento de "ACL" em compartilhamentos de arquivos "SMB"

smbcacls

é usado para manipular listas de controle de acesso do "Windows NT"

smbclient

é um utilitário de acesso "SMB"/"CIFS", semelhante ao "FTP"

smbcontrol

é usado para controlar a execução dos processos de segundo plano "smbd", "nmbd" e "winbindd"

smbcquotas

é usado para manipular cotas do "Windows NT" em compartilhamentos de arquivos "SMB"

smbd

é o principal processo de segundo plano do "Samba" o qual fornece serviços "SMB"/"CIFS" aos clientes

smbget

é um utilitário simples com semântica semelhante ao "wget", que consegue baixar arquivos a partir de servidores "SMB". Você consegue especificar os arquivos que gostaria de baixar na linha de comando

smbpasswd

muda uma senha do "Samba" de um usuário

smbspool

envia uma trabalho de impressão para uma impressora "SMB"

smbstatus

informa as conexões atuais do "Samba"

smbtar

é um conjunto de comandos sequenciais de "shell" usado para produzir cópia de segurança de compartilhamentos "SMB"/"CIFS" diretamente em unidades de fita do Linux ou em um arquivo

smbtorture

é uma suíte de teste que executa vários testes em um servidor "SMB"

smbtree

é um navegador de rede de intercomunicação "SMB" baseado em texto

tdbbackup

é uma ferramenta para produzir cópia de segurança ou para validar a integridade de arquivos .tdb do Samba

tdbdump

é uma ferramenta usada para imprimir o conteúdo de um arquivo .tdb do Samba

tdbrestore

é uma ferramenta para criar um arquivo .tdb do Samba a partir de um ntdbdump

tdbtool

é uma ferramenta que permite a manipulação simples de base de dados a partir da linha de comando

testparm

verifica um arquivo "smb.conf" quanto à sintaxe correta

wbinfo

consulta um processo de segundo "winbindd" em execução

winbindd

resolve nomes a partir de servidores "Windows NT"

libnss_winbind.so

fornece funções da "API" "Name Service Switch" para resolver nomes a partir de servidores "NT"

libnss_wins.so

fornece funções de "API" para implementação do Samba do "Windows Internet Naming Service"

libnetapi.so

fornece funções de "API" para as ferramentas de administração usadas para servidores Samba e "CIFS" remotos

libsmbclient.so

fornece funções de "API" para as ferramentas de cliente "SMB" do Samba

libwbclient.so

fornece funções de "API" para serviços de cliente de domínio do "Windows"

Wget-1.25.0

Introdução ao Wget

O pacote Wget contém um utilitário útil para transferência não interativa de arquivos a partir da "Web".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/wget/wget-1.25.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c70ba58b36f944e8ba1d655ace552881

  • Tamanho da transferência: 5,0 MB

  • Espaço em disco estimado exigido: 38 MB (adicionar 27 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (adicionar 0,4 UPC para testes)

Dependências do "Wget"

Recomendadas
Recomendadas em tempo de execução
Opcionais

GnuTLS-3.8.9, HTTP-Daemon-6.16 (para a suíte de teste), IO-Socket-SSL-2.089 (para a suíte de teste), libidn2-2.3.7, pcre2-10.45 e Valgrind-3.24.0 (para a suíte de teste)

Instalação do Wget

Instale o "Wget" executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc  \
            --with-ssl=openssl &&
make

Para testar os resultados, emita: make check.

Alguns testes possivelmente falhem quando os testes "Valgrind" estiverem habilitados.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--sysconfdir=/etc: Isso realoca o arquivo de configuração de "/usr/etc" para "/etc".

--with-ssl=openssl: Isso permite que o aplicativo use o "OpenSSL" em vez do "GnuTLS-3.8.9".

--enable-valgrind-tests: Isso permite que os testes sejam executados sob o "Valgrind".

Configurando o Wget

Arquivos de Configuração

/etc/wgetrc e ~/.wgetrc

Conteúdo

Aplicativo Instalado: wget
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

wget

recupera arquivos a partir da "Web" usando os protocolos "HTTP", "HTTPS" e "FTP". Ele foi projetado para ser não interativo, para operações em segundo plano ou autônomas

Configurando o Núcleo Linux para Sem Fios

Antes de usar qualquer ferramenta de espaço do(a) usuário(a) para conectar-se a um ponto de acesso sem fio, o núcleo Linux precisa ser configurado para controlar a NIC sem fio corretamente. Habilite as seguintes opções na configuração do núcleo, bem como controladores específicos de dispositivos para o teu hardware e recompile o núcleo, se necessário:

[*] Networking support --->                                                [NET]
  [*] Wireless --->                                                   [WIRELESS]
    <*/M>   cfg80211 - wireless configuration API                     [CFG80211]
    < /*/M>   Generic IEEE 802.11 Networking Stack (mac80211)         [MAC80211]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*] Wireless LAN --->                                                 [WLAN]

Abra o submenu Wireless LAN e selecione as opções que suportam teu hardware. lspci oriundo de pciutils-3.13.0 ou lsusb oriundo de usbutils-018 podem ser usados para visualizar tua configuração de hardware. Observe que muitas (embora nem todas) opções para as NICs sem fio dependem de CONFIG_MAC80211. Depois que os controladores corretos forem carregados, a interface aparecerá em /sys/class/net ou na saída gerada do comando ip link.

Muitos controladores de NIC sem fio exigem firmware. Se você tiver habilitado o controlador correto na configuração do núcleo, mas ele falhar para carregar (com mensagens como Direct firmware load for <nome_arquivo> failed with error -2, significa que você precisa instalar o firmware ou a NIC sem fio não funcionará. Leia-se Acerca de Firmware para mais detalhes.

iw-6.9

Introdução ao iw

"iw" é um novo utilitário de configuração "CLI" baseado em "nl80211" para dispositivos sem fio. Ele suporta todos os novos controladores que foram adicionados recentemente ao núcleo. A antiga ferramenta "iwconfig", que usa a interface "Wireless Extensions", está obsoleta e é altamente recomendado mudar para o "iw" e "nl80211".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/software/network/iw/iw-6.9.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 457c99badf2913bb61a8407ae60e4819

  • Tamanho da transferência: 156 KB

  • Espaço em disco estimado exigido: 3,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "iw"

Exigidas

libnl-3.11.0

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Configuração do Núcleo

Para usar iw, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se Configurando o Núcleo Linux para Sem Fios para detalhes.

Instalação do iw

Para instalar o "iw", use os seguintes comandos:

sed -i "/INSTALL.*gz/s/.gz//" Makefile &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed ...: Instale páginas de manual descompactadas de acordo com outras páginas de manual.

Conteúdo

Aplicativos Instalados: iw
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

iw

mostra/manipula dispositivos sem fio e a configuração deles

Wireless Tools-29

Introdução ao Wireless Tools

A "Wireless Extension" ("WE") é uma "API" genérica no núcleo Linux que permite que um controlador exponha configurações e estatísticas específicas de "LANs" sem fio comuns para o espaço de usuário(a). Um conjunto de ferramentas pode suportar todas as variações de "LANs" sem fio, independentemente do tipo delas, desde que o controlador suporte "Wireless Extensions". Os parâmetros "WE" também podem ser mudados dinamicamente sem reiniciar o controlador (ou o Linux).

O pacote "Wireless Tools" ("WT") é um conjunto de ferramentas que permite a manipulação das "Wireless Extensions". Elas usam uma interface textual para suportar as "Wireless Extensions" completas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Wireless Tools

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Configuração do Núcleo

Para usar Wireless Tools, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Além das configurações mencionadas em Configurando o Núcleo Linux para Sem Fios, também é necessário habilitar as seguintes opções na configuração do núcleo:

[*] Networking support --->                                                [NET]
  [*] Wireless --->                                                   [WIRELESS]
    <*/M> cfg80211 - wireless configuration API                       [CFG80211]
    [*]     cfg80211 wireless extensions compatibility           [CFG80211_WEXT]

Instalação do Wireless Tools

Primeiro, aplique um remendo que corrige um problema quando numerosas redes de intercomunicação estiverem disponíveis:

patch -Np1 -i ../wireless_tools-29-fix_iwlist_scanning-1.patch

Para instalar o "Wireless Tools", use os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make PREFIX=/usr INSTALL_MAN=/usr/share/man install

Explicações do Comando

INSTALL_MAN=/usr/share/man: Instala as páginas de manual em "/usr/share/man" em vez de "/usr/man".

Conteúdo

Aplicativos Instalados: ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv e iwspy
Biblioteca Instalada: libiw.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ifrename

renomeia interfaces de rede de intercomunicação baseado em vários critérios estáticos

iwconfig

configura uma interface de rede de intercomunicação sem fio

iwevent

exibe eventos sem fio gerados por controladores e mudanças de configuração

iwgetid

informa "ESSID", "NWID" ou endereço "AP"/"Cell" de redes de intercomunicação sem fio

iwlist

obtém informações sem fio detalhadas a partir de uma interface sem fio

iwpriv

configura parâmetros opcionais (privados) de uma interface de rede de intercomunicação sem fio

iwspy

obtém estatísticas sem fio a partir de um nó específico

libiw.so

contém funções exigidas pelos aplicativos sem fio e fornece uma "API" para outros aplicativos

wpa_supplicant-2.11

Introdução ao WPA Supplicant

"WPA Supplicant" é um cliente "Wi-Fi Protected Access" ("WPA") e suplicante "IEEE 802.1X". Ele implementa a negociação de chave "WPA" com um Autenticador "WPA" e a autenticação "Extensible Authentication Protocol" ("EAP") com um Servidor de Autenticação. Além disso, ele controla o deslocamento e a autenticação/associação "IEEE 802.11" do controlador de "LAN" sem fio. Isso é útil para conectar-se a um ponto de acesso sem fio protegido por senha.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://w1.fi/releases/wpa_supplicant-2.11.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 72a4a00eddb7a499a58113c3361ab094

  • Tamanho da transferência: 3,7 MB

  • Espaço em disco estimado exigido: 35 MB

  • Tempo de construção estimado: 0,3 UPC

Dependências do "WPA Supplicant"

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Recomendadas
Opcionais

dbus-1.16.0 e libxml2-2.13.6

Configuração do Núcleo

Para usar wpa_supplicant, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se Configurando o Núcleo Linux para Sem Fios para detalhes.

Instalação do WPA Supplicant

Primeiro você precisará criar um arquivo de configuração inicial para o processo de construção. Você pode ler "wpa_supplicant/README" e "wpa_supplicant/defconfig" para a explicação das opções a seguir, bem como outras opções que podem ser usadas. Crie um arquivo de configuração de construção que deveria funcionar para configurações "WiFi" padrão executando o seguinte comando:

cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF

Se você deseja usar o WPA Supplicant com o NetworkManager-1.50.0, certifique-se de ter instalado o dbus-1.16.0, então adicione as seguintes opções ao arquivo de configuração de construção do WPA Supplicant executando o seguinte comando:

cat >> wpa_supplicant/.config << "EOF"
CONFIG_CTRL_IFACE_DBUS=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y
EOF

Instale o WPA Supplicant executando os seguintes comandos:

cd wpa_supplicant &&
make BINDIR=/usr/sbin LIBDIR=/usr/lib

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

install -v -m755 wpa_{cli,passphrase,supplicant} /usr/sbin/ &&
install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ &&
install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/

Se você tiver construído o "WPA Supplicant" com suporte ao "D-Bus", [então] você precisará instalar os arquivos de configuração do "D-Bus". Instale-os executando os seguintes comandos como o(a) usuário(a) "root":

install -v -m644 dbus/fi.w1.wpa_supplicant1.service \
                /usr/share/dbus-1/system-services/ &&
install -v -d -m755 /etc/dbus-1/system.d &&
install -v -m644 dbus/dbus-wpa_supplicant.conf \
                 /etc/dbus-1/system.d/wpa_supplicant.conf

Nota

Você precisará reiniciar o processo de segundo plano "D-Bus" do sistema antes que possa usar a interface "WPA Supplicant" do "D-Bus".

Configurando o wpa_supplicant

Importante

Se você estiver usando o WPA Supplicant com NetworkManager-1.50.0 (ou qualquer coisa que se comunique com o WPA Supplicant via D-Bus), esta seção deveria ser ignorada. Executar-se uma instância de D-Bus conectado a WPA Supplicant e outra instância WPA Supplicant configurada de acordo com esta seção simultaneamente pode causar problemas sutis.

Arquivo de Configuração

/etc/sysconfig/wpa_supplicant-*.conf

Informação de Configuração

Para se conectar a um ponto de acesso que usa uma senha, você precisa colocar a chave pré compartilhada em "/etc/sysconfig/wpa_supplicant-wifi0.conf". "SSID" é a sequência de caracteres que o ponto de acesso/roteador transmite para se identificar. Execute o seguinte comando como o(a) usuário(a) "root":

wpa_passphrase SSID SENHA_SECRETA > /etc/sysconfig/wpa_supplicant-wifi0.conf

"/etc/sysconfig/wpa_supplicant-wifi0.conf " pode conter os detalhes de vários pontos de acesso. Quando o "wpa_supplicant" for iniciado, ele escaneará os "SSIDs" que conseguir ver e escolherá a senha apropriada para se conectar.

Se você deseja se conectar a um ponto de acesso que não seja protegido por senha, [então] coloque uma entrada como esta em "/etc/sysconfig/wpa_supplicant-wifi0.conf". Substitua "Algum-SSID" pelo "SSID" do ponto de acesso/roteador.

network={
  ssid="Algum-SSID"
  key_mgmt=NONE
}

Conectar-se a um novo ponto de acesso que não esteja no arquivo de configuração pode ser realizado manualmente por meio da linha de comando, mas precisa ser feito por meio de um(a) usuário(a) privilegiado(a). Para fazer isso, adicione o seguinte ao arquivo de configuração:

ctrl_interface=DIR=/run/wpa_supplicant GROUP=<grupo privilegiado>
update_config=1

Substitua o <grupo privilegiado> acima por um grupo do sistema onde os(as) membros(as) tem a capacidade de se conectarem a um ponto de acesso sem fio.

Existem muitas opções que você poderia usar para ajustar como se conecta a cada ponto de acesso. Elas estão descritas com alguns detalhes no arquivo "wpa_supplicant/wpa_supplicant.conf" na árvore do fonte.

Conectando-se a um Ponto de Acesso

Se você quiser configurar interfaces de rede de intercomunicação na inicialização usando o "wpa_supplicant", [então] você precisa instalar o conjunto de comandos sequenciais "/lib/services/wpa" incluído no pacote "blfs-bootscripts-20250225":

make install-service-wpa

Se o teu roteador/ponto de acesso usar DHCP para alocar endereços IP, você pode instalar o dhcpcd-10.2.2 e usá-lo para automaticamente obter endereços de rede de intercomunicação. Crie o /etc/sysconfig/ifconfig-wifi0 executando o seguinte comando como o(a) usuário(a) root:

cat > /etc/sysconfig/ifconfig.wifi0 << "EOF"
ONBOOT="yes"
IFACE="wlan0"
SERVICE="wpa"

# Argumentos adicionais para o "wpa_supplicant"
WPA_ARGS=""

WPA_SERVICE="dhcpcd"
DHCP_START="-b -q <insira opções de início apropriadas aqui>"
DHCP_STOP="-k <insira opções de parada adicionais aqui>"
EOF

Alternativamente, se você usar endereços estáticos em tua rede de intercomunicação local, então crie o "/etc/sysconfig/ifconfig-wifi0 " executando o seguinte comando como o(a) usuário(a) "root":

cat > /etc/sysconfig/ifconfig.wifi0 << "EOF"
ONBOOT="yes"
IFACE="wlan0"
SERVICE="wpa"

# Argumentos adicionais para o "wpa_supplicant"
WPA_ARGS=""

WPA_SERVICE="ipv4-static"
IP="192.168.1.1"
GATEWAY="192.168.1.2"
PREFIX="24"
BROADCAST="192.168.1.255"
EOF

Você consegue se conectar ao ponto de acesso sem fio executando o seguinte comando como o(a) usuário(a) "root":

ifup wifi0

Substitua "wlan0" pela interface sem fio correta e "wifi0" pelo nome desejado para o arquivo de configuração. Por favor, observe que os arquivos de configuração "wpa_supplicant-*.conf" e "ifconfig.*" precisam ter nomes idênticos, ou seja, ambos conter "wifi0" nos nomes deles.

Conteúdo

Aplicativos Instalados: wpa_supplicant, wpa_passphrase e wpa_cli
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

wpa_supplicant

é um processo de segundo plano que consegue se conectar a um ponto de acesso sem fio protegido por senha

wpa_passphrase

pega um "SSID" e uma senha e gera uma configuração simples que o "wpa_supplicant" consiga entender

wpa_cli

é uma interface de linha de comando usada para controlar um processo de segundo plano "wpa_supplicant" em execução

Capítulo 16. Utilitários de Trabalho em Rede de Intercomunicação

Este capítulo contém algumas ferramentas que serão úteis quando a rede de intercomunicação precisar de investigação.

Avahi-0.8

Introdução ao Avahi

O pacote Avahi é um sistema que facilita a descoberta de serviços em uma rede de intercomunicação local.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Avahi"

Exigidas

GLib-2.82.5 (GObject Introspection recomendado)

Recomendadas
Opcionais

D-Bus Python-1.3.2, libevent-2.1.12, Doxygen-1.13.2, GTK+-2 (obsoleto) e xmltoman (para gerar documentação)

Instalação do Avahi

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "avahi-daemon" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -fg 84 avahi &&
useradd -c "Proprietário(a) do Processo de Segundo Plano Avahi" -d /run/avahi-daemon -u 84 \
        -g avahi -s /bin/false avahi

Também deveria existir um grupo de acesso privilegiado dedicado para clientes do "Avahi". Emita o seguinte comando como o(a) usuário(a) "root":

groupadd -fg 86 netdev

Corrija uma regressão que resulta em uma condição de corrida quando o "IPv6" está em uso e vários adaptadores de rede de intercomunicação estiverem presentes no sistema:

patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch

Corrija uma vulnerabilidade de segurança no "avahi-daemon":

sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c

Instale o "Avahi" executando os seguintes comandos:

./configure \
    --prefix=/usr                  \
    --sysconfdir=/etc              \
    --localstatedir=/var           \
    --disable-static               \
    --disable-libevent             \
    --disable-mono                 \
    --disable-monodoc              \
    --disable-python               \
    --disable-qt3                  \
    --disable-qt4                  \
    --disable-qt5                  \
    --enable-core-docs             \
    --with-distro=none             \
    --with-systemdsystemunitdir=no \
    --with-dbus-system-address='unix:path=/run/dbus/system_bus_socket' &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-libevent: Esse parâmetro desabilita o uso da "libevent-2.1.12". Remova se você a tiver instalado.

--disable-mono: Esse parâmetro desabilita as ligações "Mono".

--disable-monodoc: Esse parâmetro desabilita a documentação para as ligações "Mono".

--disable-python: Esse parâmetro desabilita os conjuntos de comandos sequenciais que dependem do Python. Ele também permite que uma instalação regular complete exitosamente.

--disable-qt3: Esse parâmetro desabilita a tentativa de construir as partes obsoletas do "Qt3" do pacote.

--disable-qt4: Esse parâmetro desabilita a tentativa de construir as partes obsoletas "Qt4Core" do pacote.

--enable-core-docs: Esse parâmetro habilita a construção da documentação.

--with-distro=none: Existe um conjunto de comandos sequenciais obsoletos de inicialização na distribuição para o LFS. Essa opção o desabilita.

--with-systemdsystemunitdir=no: Sem ele, o processo de segundo plano falha ao iniciar no BLFS, que não suporta "systemd".

--with-dbus-system-address=: Essa opção evita que o pacote referencie o diretório obsoleto /var/run.

--disable-dbus: Esse parâmetro desabilita o uso do "D-Bus".

--disable-gtk: Esse parâmetro desabilita o uso do "GTK+2".

--disable-gtk3: Esse parâmetro desabilita o uso do "GTK+3".

--disable-qt5: Esse parâmetro desabilita o uso do "Qt5" e permite construir sem ele.

--disable-libdaemon: Esse parâmetro desabilita o uso do "libdaemon". Se você usar essa opção, [então] o "avahi-daemon" não será construído.

--enable-tests: Essa opção habilita a construção de testes e exemplos.

--enable-compat-howl: Essa opção habilita a camada de compatibilidade para o "HOWL".

--enable-compat-libdns_sd: Essa opção habilita a camada de compatibilidade para o "libdns_sd".

Configurando o avahi

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar automaticamente o "avahi-daemon" quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/avahi" a partir do pacote "blfs-bootscripts-20250225".

make install-avahi

Conteúdo

Aplicativos Instalados: avahi-autoipd, avahi-browse, avahi-browse-domains, avahi-daemon, avahi-discover-standalone, avahi-dnsconfd, avahi-publish, avahi-publish-address, avahi-publish-service, avahi-resolve, avahi-resolve-address, avahi-resolve-host-name, avahi-set-host-name, bshell, bssh e bvnc
Bibliotecas Instaladas: libavahi-client.so, libavahi-common.so, libavahi-core.so, libavahi-glib.so, libavahi-gobject.so, libavahi-libevent.so libavahi-ui-gtk3.so, libavahi-ui.so, libdns_sd.so e libhowl.so
Diretórios Instalados: /etc/avahi/services, /usr/include/{avahi-client,avahi-common, avahi-compat-howl, avahi-compat-libdns_sd, avahi-core, avahi-glib, avahi-gobject, avahi-libevent, avahi-ui}, /usr/lib/avahi, /usr/share/avahi

Descrições Curtas

avahi-autoipd

é um processo de segundo plano de configuração de endereço de rede de intercomunicação "IPv4LL"

avahi-browse

procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi"

avahi-browse-domains

procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi"

avahi-daemon

é o processo de segundo plano "mDNS"/"DNS-SD" "Avahi"

avahi-discover-standalone

procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi"

avahi-dnsconfd

é um servidor "DNS" "Unicast" originário do processo de segundo plano de configuração "mDNS"/"DNS-SD"

avahi-publish

registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi"

avahi-publish-address

registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi"

avahi-publish-service

registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi"

avahi-resolve

resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi"

avahi-resolve-address

resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi"

avahi-resolve-host-name

resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi"

avahi-set-host-name

muda o nome "mDNS" do dispositivo

bssh

procura servidores "SSH" na rede de intercomunicação local

bvnc

procura servidores "VNC" na rede de intercomunicação local

Utilitários BIND-9.20.6

Introdução aos Utilitários BIND

"Utilitários BIND" não é um pacote separado; é uma coleção de aplicativos do lado cliente que estão inclusos no "BIND-9.20.6". O pacote "BIND" inclui os aplicativos do lado cliente "nslookup", "dig" e "host". Se você instalar o servidor "BIND", [então] esses aplicativos serão instalados automaticamente. Esta seção é para aqueles(as) usuários(as) que não precisam do servidor "BIND" completo, mas precisam desses aplicativos do lado cliente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f

  • Tamanho da transferência: 5,4 MB

  • Espaço em disco estimado exigido: 102 MB

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4)

Dependências dos Utilitários "BIND"

Exigidas

liburcu-0.15.1 e libuv-1.50.0

Recomendadas
Opcionais

libcap-2.73 com PAM, libxml2-2.13.6 e sphinx-8.2.1

Instalação dos Utilitários BIND

Instale os "Utilitários BIND" executando os seguintes comandos:

./configure --prefix=/usr &&
make -C lib/isc      &&
make -C lib/dns      &&
make -C lib/ns       &&
make -C lib/isccfg   &&
make -C lib/isccc    &&
make -C bin/dig      &&
make -C bin/nsupdate &&
make -C bin/rndc     &&
make -C doc

Essa parte do pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make -C lib/isc      install &&
make -C lib/dns      install &&
make -C lib/ns       install &&
make -C lib/isccfg   install &&
make -C lib/isccc    install &&
make -C bin/dig      install &&
make -C bin/nsupdate install &&
make -C bin/rndc     install &&
cp -v doc/man/{dig.1,host.1,nslookup.1,nsupdate.1} /usr/share/man/man1 &&
cp -v doc/man/rndc.8 /usr/share/man/man8

Explicações do Comando

--disable-doh: Use essa opção se você não tiver instalado o "nghttp2-1.64.0" e não precisar de suporte "DNS" sobre "HTTPS".

make -C lib/...: Esses comandos constroem as bibliotecas que são necessárias para os aplicativos clientes.

make -C bin/...: Esse comando constrói os programas clientes.

make -C doc: Esse comando constrói as páginas de manual se o módulo opcional "sphinx-8.2.1" do "Python" estiver instalado.

Use cp -v doc/man/... /usr/share/man/man... para instalar as páginas de manual se elas tiverem sido construídas.

Conteúdo

Aplicativos Instalados: dig, host, nslookup, nsupdate e rndc
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

Vejam-se as descrições do aplicativo na seção "BIND-9.20.6".

NetworkManager-1.50.0

Introdução ao NetworkManager

"NetworkManager" é um conjunto de ferramentas cooperativas que tornam a operação interativa de dispositivos via rede de intercomunicação simples e direta. Quer você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager" te permite mudar rapidamente de uma rede de intercomunicação para outra: depois que uma rede de intercomunicação tiver sido configurada e conectada uma vez, ela poderá ser detectada e conectada novamente automaticamente na próxima vez que estiver disponível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do NetworkManager

Exigidas

libndp-1.9

Recomendadas
Opcionais

BlueZ-5.79, D-Bus Python-1.3.2 (para a suíte de teste), GnuTLS-3.8.9 (pode ser usado em vez de nss-3.108), GTK-Doc-1.34.0, jansson-2.14, ModemManager-1.18.12, UPower-1.90.7, Valgrind-3.24.0, dnsmasq, firewalld, libaudit, libteam, mobile-broadband-provider-info, PPP e RP-PPPoE

Configuração do Núcleo

Se desejar executar os testes, [então] verifique se pelo menos as seguintes opções estão habilitadas na configuração do núcleo. Essas opções foram consideradas necessárias, mas podem não ser suficientes. Recompile o núcleo se necessário:

[*] Networking support --->                                                [NET]
  Networking options --->
    [*]   TCP/IP networking                                               [INET]
    <*/M>   IP: tunneling                                             [NET_IPIP]
    <*/M>   IP: GRE demultiplexer                              [NET_IPGRE_DEMUX]
    <*/M>   IP: GRE tunnels over IP                                  [NET_IPGRE]
    <*>     The IPv6 protocol --->                                        [IPV6]
      <*/M>   IPv6: IPv6-in-IPv4 tunnel (SIT driver)                  [IPV6_SIT]
      <*/M>   IPv6: GRE tunnel                                        [IPV6_GRE]
      [*]     IPv6: Multiple Routing Tables               [IPV6_MULTIPLE_TABLES]
    [*]     MPTCP: Multipath TCP                                         [MPTCP]
    [*]       MPTCP: IPv6 support for Multipath TCP                 [MPTCP_IPV6]
    <*/M> 802.1Q/802.1ad VLAN Support                               [VLAN_8021Q]
    [*]   QoS and/or fair queueing --->                              [NET_SCHED]
      <*> Stochastic Fairness Queueing (SFQ)                       [NET_SCH_SFQ]
      <*> Token Bucket Filter (TBF)                                [NET_SCH_TBF]
      <*> Fair Queue Controlled Delay AQM (FQ_CODEL)          [NET_SCH_FQ_CODEL]
      <*> Ingress/classifier-action Qdisc                      [NET_SCH_INGRESS]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Bonding driver support                                     [BONDING]
    <*/M>   Dummy net driver support                                     [DUMMY]
    <*/M>   Ethernet team driver support --->                         [NET_TEAM]
    <*/M>   MAC-VLAN support                                           [MACVLAN]
    <*/M>     MAC-VLAN based tap driver                                [MACVTAP]
    <*/M>   IP-VLAN support                                             [IPVLAN]
    <*/M>   Virtual eXtensible Local Area Network (VXLAN)                [VXLAN]
    <*/M>   Virtual ethernet pair device                                  [VETH]
    <*/M>   Virtual Routing and Forwarding (Lite)                      [NET_VRF]

Instalação do NetworkManager

Corrija os conjuntos sequenciais de comandos "Python", de forma que eles usem "Python 3":

grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

Instale o NetworkManager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                    \
      --prefix=/usr               \
      --buildtype=release         \
      -D libaudit=no              \
      -D nmtui=true               \
      -D ovs=false                \
      -D ppp=false                \
      -D selinux=false            \
      -D session_tracking=elogind \
      -D modem_manager=false      \
      -D systemdsystemunitdir=no  \
      -D systemd_journal=false    \
      -D qt=false                 &&
ninja

Uma sessão gráfica já ativa com endereço de barramento é necessária para executar os testes. Para testar os resultados, emita "ninja test".

Uns poucos testes possivelmente falhem, dependendo das opções de núcleo habilitadas.

Agora, como o(a) usuário(a) "root":

ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.50.0}

Se você não passou a opção -D docs=true para meson, você consegue instalar as páginas de manual pré geradas com (como o(a) usuário(a) root):

for file in $(echo ../man/*.[1578]); do
   section=${file##*.} &&
   install -vdm 755 /usr/share/man/man$section
   install -vm 644 $file /usr/share/man/man$section/
done

Se você não tiver usado -D docs=true, a documentação HTML pré gerada também pode ser instalada com (como o(a) usuário(a) root):

cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.50.0

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D docs=true: Use essa chave para habilitar construir páginas de manual e documentação se GTK-Doc-1.34.0 estiver instalado.

-D nmtui=true: Essa chave habilita construir nmtui.

-D systemdsystemunitdir=no e -D systemd_journal=false: systemd não é usado para sistemas de inicialização SysV, de forma que evite instalar unidades e usar o diário do systemd.

-D ovs=false: Essa chave desabilita a integração do Open vSwitch porque ela precisa de jansson-2.14. Remova-a se você tiver jansson-2.14 instalado em teu sistema.

-D modem_manager=false: Essa chave é exigida se o ModemManager não estiver instalado. Omita essa chave se você tiver construído ModemManager e mobile-broadband-provider-info.

-D session_tracking=elogind: Essa chave é usada para configurar elogind como o aplicativo padrão para rastreamento de sessão.

-D ppp=false: Essa chave desabilita suporte a PPP no NetworkManager, já que os aplicativos necessários para isso não estão instalados. Remova essa chave se você precisar de suporte a PPP e tiver o PPP instalado.

-D libaudit=no e -D selinux=false: Essa chave desabilita o suporte para libaudit e SELinux, vez que ele(a) não é usado(a) no BLFS.

-D qt=false: Essa chave desabilita os exemplos do Qt 5.

-D crypto=gnutls: Use essa chave se você tiver GnuTLS instalado e quiser usá-lo para operações de certificados e chaves no NetworkManager, em vez de usar o NSS (o padrão).

-D crypto=null: Use essa chave se nem NSS nem GnuTLS estiverem instalados, mas você quiser construir NetworkManager de qualquer maneira. Essa chave fará com que NetworkManager careça de alguns recursos (por exemplo, 802.1X).

-D suspend_resume=upower: Use essa chave se você tiver UPower-1.90.7 instalado e quiser usá-lo (em vez de elogind-255.17 ) para suspender e retomar o suporte.

Configurando o NetworkManager

Arquivos de Configuração

/etc/NetworkManager/NetworkManager.conf

Informação de Configuração

Para o "NetworkManager" funcionar, pelo menos um arquivo de configuração mínima precisa estar presente. Tal arquivo não é instalado com "make install". Emita o seguinte comando como o(a) usuário(a) "root" para criar um arquivo "NetworkManager.conf" mínimo:

cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF

Esse arquivo não deveria ser modificado diretamente pelos(as) usuários(as) do sistema. Em vez disso, mudanças específicas do sistema deveriam ser feitas usando arquivos de configuração no diretório "/etc/NetworkManager/conf.d".

Para permitir que o "Polkit" gerencie autorizações, adicione o seguinte arquivo de configuração:

cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF

Para usar algo diferente do cliente DHCP integrado (recomendado se usar somente o nmcli), use a seguinte configuração (os valores válidos incluem ou dhcpcd ou internal):

cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhcpcd
EOF

Para evitar que o "NetworkManager" atualize o arquivo "/etc/resolv.conf", adicione o seguinte arquivo de configuração:

cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF

Para opções adicionais de configuração, veja-se "man 5 NetworkManager.conf".

Para permitir que usuários(as) regulares configurem conexões de rede de intercomunicação, você deveria adicioná-los(as) ao grupo "netdev" e criar uma regra do "polkit" que conceda acesso. Execute os seguintes comandos como o(a) usuário(a) "root":

groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <nome_usuário(a)>

cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;
    }
});
EOF

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar automaticamente o processo de segundo plano "NetworkManager" quando o sistema for reinicializado, instale o conjunto sequencial de comandos de inicialização "/etc/rc.d/init.d/networkmanager" a partir do pacote "blfs-bootscripts-20250225".

Nota

Se usar o "Network Manager" para gerenciar uma interface, [então] qualquer configuração anterior para essa interface deveria ser removida e a interface ser desativada antes de iniciar o "Network Manager".

make install-networkmanager

Conteúdo

Aplicativos Instalados: NetworkManager, nmcli, nm-online, nmtui e simbolicamente vinculado ao nmtui: nmtui-connect, nmtui-edit e nmtui-hostname
Bibliotecas Instaladas: libnm.so e vários módulos sob /usr/lib/NetworkManager
Diretórios Instalados: /etc/NetworkManager, /usr/include/libnm, /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.50.0, /usr/share/gtk-doc/html/{libnm,NetworkManager} (se a documentação for construída) e /var/lib/NetworkManager

Descrições Curtas

nmcli

é uma ferramenta de linha de comando para controlar o "NetworkManager" e obter a situação dele

nm-online

é um utilitário para determinar se você está online

nmtui

é uma interface interativa de usuário(a) baseada em "Ncurses" para o "nmcli"

nmtui-connect

é uma interface interativa de usuário(a) baseada em "Ncurses" para ativar/desativar conexões

nmtui-edit

é uma interface interativa de usuário(a) baseada em "Ncurses" para editar conexões

nmtui-hostname

é uma interface interativa de usuário(a) baseada em "Ncurses" para editar o nome do dispositivo

NetworkManager

é o processo de segundo plano de gerenciamento de rede de intercomunicação

libnm.so

contém funções usadas pelo "NetworkManager"

network-manager-applet-1.34.0

Introdução ao NetworkManager Applet

O "NetworkManager Applet" fornece uma ferramenta e um miniaplicativo de painel usado para configurar conexões de rede de intercomunicação com e sem fio por meio de "GUI". Ele foi projetado para uso com qualquer ambiente de área de trabalho que use "GTK+", como o "Xfce" e o "LXDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "NetworkManager Applet"

Exigidas

GTK-3.24.48, libnma-1.10.6 e libsecret-0.21.6

Recomendadas
Exigidas (tempo de execução)

Como esse pacote usa "Polkit-126" para autorização, um "Agente de Autenticação do Polkit" deveria estar em execução quando a funcionalidade desse pacote for usada.

Opcionais

gnome-bluetooth-47.1, jansson-2.14 e libindicator

Instalação do NetworkManager Applet

Instale o "NetworkManager Applet" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D appindicator=no  \
      -D selinux=false    \
      -D team=false       &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-D appindicator=no: Essa chave desabilita o suporte ao AppIndicator no network-manager-applet porque ele exige a libindicator, que não está no BLFS. A construção falhará sem essa opção.

-D selinux=false: Essa chave desabilita forçosamente o suporte ao SELinux, uma vez que ele atualmente não está no BLFS e a construção falhará sem ela.

-D team=false: Essa chave desabilita o editor de configuração de equipe, pois ele exige jansson-2.14. Se você tiver o Jansson instalado, remova essa opção ou configure-a como true.

-D wwan=false: Essa chave desabilita o suporte WWAN. Use isso se você não tiver o ModemManager-1.18.12 instalado.

Conteúdo

Aplicativos Instalados: nm-applet e nm-connection-editor
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

nm-connection-editor

permite que os(as) usuários(as) visualizem e editem configurações de conexão de rede de intercomunicação

Nmap-7.95

Introdução ao Nmap

"Nmap" é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Ele suporta varredura de "ping", varredura de porta e impressão digital "TCP"/"IP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://nmap.org/dist/nmap-7.95.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b481d293e53b20278d5370458da9a950

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 116 MB (adicionar 38 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes)

Dependências do "Nmap"

Recomendadas

Nota

Estes pacotes são recomendados porque, se não estiverem instalados, [então] o processo de construção compilará e se vinculará à própria versão deles (geralmente mais antiga).

Opcionais

libdnet

Instalação do Nmap

Primeiro, se ainda não estiver instalado, adicione um módulo Python necessário. Como o(a) usuário(a) root:

pip3 install build

Instale o "Nmap" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você deseja executar a suíte de teste, execute o seguinte comando:

sed -e '/import imp/d'                \
    -e 's/^ndiff = .*$/import ndiff/' \
    -i ndiff/ndifftest.py

Para testar os resultados, emita: "make check" como o(a) usuário(a) "root". Os testes precisam de uma sessão gráfica.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: ncat, ndiff, nmap, nping, uninstall_ndiff, uninstall_zenmap, zenmap e dois links simbólicos para zenmap: nmapfe e xnmap
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/{radialnet,zenmapCore,zenmapGUI,zenmap-7.95-py3.13.egg-info} e /usr/share/{ncat,nmap,zenmap}

Descrições Curtas

ncat

é um utilitário para ler e escrever dados entre redes de intercomunicação a partir da linha de comando

ndiff

é uma ferramenta para auxiliar na comparação de varreduras do "Nmap"

nmap

é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Suporta varredura de "ping", varredura de portas e impressão digital "TCP"/"IP"

nping

é uma ferramenta de fonte aberto para geração de pacotes de rede de intercomunicação, análise de resposta e medição de tempo de resposta

uninstall_ndiff

é um conjunto de comandos sequenciais "Python" para desinstalar o "ndiff"

uninstall_zenmap

é um conjunto de comandos sequenciais "Python" para desinstalar o "zenmap"

zenmap

é um visualizador gráfico, baseado em "Python", de estrutura de interação direta com o(a) usuário(a) do "nmap"

Traceroute-2.1.6

Introdução ao Traceroute

O pacote "Traceroute" contém um aplicativo que é usado para exibir a rota de rede de intercomunicação que os pacotes percorrem para alcançar um dispositivo especificado. Essa é uma ferramenta padrão de solução de problemas de rede de intercomunicação. Se você se encontrar inapto(a) para se conectar a outro sistema, [então] o "traceroute" pode ajudar a identificar o problema.

Nota

Esse pacote sobrescreve a versão do "traceroute" que foi instalada no pacote "inetutils" no LFS. Essa versão é mais poderosa e permite muito mais opções que a versão padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Traceroute

Instale o "Traceroute" executando os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make prefix=/usr install                                &&
ln -sv -f traceroute /usr/bin/traceroute6                &&
ln -sv -f traceroute.8 /usr/share/man/man8/traceroute6.8 &&
rm -fv /usr/share/man/man1/traceroute.1

O arquivo "traceroute.1" que foi instalado no LFS pelo "inetutils" não mais é relevante. Esse pacote sobrescreve essa versão do "traceroute" e instala a página de manual no capítulo oito (08) do manual.

Conteúdo

Aplicativo Instalado: traceroute e traceroute6 (link simbólico)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

traceroute

faz basicamente o que diz: rastreia a rota que os teus pacotes seguem a partir do dispositivo em que você estiver trabalhando para outro dispositivo em uma rede de intercomunicação, mostrando todos os saltos intermediários ("gateways") ao longo do caminho

traceroute6

é equivalente a "traceroute -6"

Whois-5.4.3

Introdução ao Whois

"Whois" é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico. Esse pacote instalará dois aplicativos por padrão: "whois" e "mkpasswd". O comando "mkpasswd" também é instalado pelo pacote "expect" no LFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Whois"

Opcionais

libidn-1.42 ou libidn2-2.3.7

Instalação do Whois

Construa o aplicativo com:

make

Você consegue instalar o aplicativo "whois", o aplicativo "mkpasswd" e os arquivos de localidade independentemente. Controle a tua escolha do que será instalado com os seguintes comandos emitidos como o(a) usuário(a) "root":

Nota

Instalar essa versão do "mkpasswd" sobrescreverá o mesmo comando instalado no LFS.

make prefix=/usr install-whois
make prefix=/usr install-mkpasswd
make prefix=/usr install-pos

Conteúdo

Aplicativos Instalados: whois e mkpasswd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

whois

é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico

mkpasswd

gera uma nova senha e, opcionalmente, aplica-a a um(a) usuário(a)

Wireshark-4.4.5

Introdução ao Wireshark

O pacote Wireshark contém um analisador de protocolo de rede de intercomunicação, também conhecido como um sniffer. Isso é útil para analisar dados capturados fora do fio a partir de uma conexão ativa de rede de intercomunicação ou dados lidos a partir de um arquivo de captura.

O "Wireshark" fornece uma estrutura de interação direta com o(a) usuário(a), gráfica e em modo TTY, para examinar pacotes de rede de intercomunicação capturados a partir de mais que quinhentos (500) protocolos, bem como a capacidade de ler arquivos de captura a partir de muitos outros analisadores populares de rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Wireshark"

Exigidas

CMake-3.31.5, c-ares-1.34.4, GLib-2.82.5, libgcrypt-1.11.0, Qt-6.8.2 e Speex-1.2.1

Recomendadas
Opcionais

asciidoctor-2.0.23, Brotli-1.1.0, Cups-2.4.11, Doxygen-1.13.2, git-2.48.1, GnuTLS-3.8.9, libnl-3.11.0, libxslt-1.1.42, libxml2-2.13.6, Lua-5.4.7, MIT Kerberos V5-1.21.3, nghttp2-1.64.0, SBC-2.0, Vulkan-Headers-1.4.304, BCG729, libilbc, libsmi, libssh, MaxMindDB, Minizip, nghttp3, Snappy e Spandsp

Configuração do Núcleo

O núcleo precisa ter o protocolo "Packet" habilitado para o "Wireshark" capturar pacotes ativos a partir da rede de intercomunicação:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> Packet socket                                                 [PACKET]

Se construído como um módulo, [então] o nome é "af_packet.ko".

Instalação do Wireshark

"Wireshark" é um aplicativo muito grande e complexo. Estas instruções fornecem medidas adicionais de segurança para garantir que somente usuários(as) confiáveis sejam permitidos(as) a visualizar o tráfego da rede de intercomunicação. Primeiro, configure um grupo do sistema para o "Wireshark". Como o(a) usuário(a) "root":

groupadd -g 62 wireshark

Continue a instalar o "Wireshark" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.4.5 \
      -G Ninja \
      .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install &&

install -v -m755 -d /usr/share/doc/wireshark-4.4.5 &&
install -v -m644   ../README.linux ../doc/README.* ../doc/randpkt.txt \
                    /usr/share/doc/wireshark-4.4.5 &&

pushd /usr/share/doc/wireshark-4.4.5 &&
   for FILENAME in ../../wireshark/*.html; do
      ln -s -v -f $FILENAME .
   done &&
popd
unset FILENAME

Se você baixou quaisquer dos arquivos de documentação a partir da página listada em "Transferências adicionais", [então] instale-os emitindo os seguintes comandos como o(a) usuário(a) "root":

install -v -m644 <Downloaded_Files> \
                /usr/share/doc/wireshark-4.4.5

Agora, configure a propriedade e as permissões de aplicativos confidenciais para permitir somente usuários(as) autorizados(as). Como o(a) usuário(a) "root ":

chown -v root:wireshark /usr/bin/tshark &&
chmod -v 6550 /usr/bin/tshark

Finalmente, adicione quaisquer usuários(as) ao grupo "Wireshark" (como o(a) usuário(a) "root"):

usermod -a -G wireshark <nome_usuário(a)>

Se você estiver instalando o "Wireshark" pela primeira vez, [então] será necessário sair da tua sessão e entrar novamente. Isso colocará o "Wireshark" em teus grupos, pois, caso contrário, o "Wireshark" não funcionará corretamente.

Configurando o Wireshark

Arquivos de Configuração

/etc/wireshark.conf e ~/.config/wireshark/* (a menos que já exista ~/.wireshark/* no sistema)

Informação de Configuração

Embora os parâmetros padrão de configuração sejam muito sensatos, consulte a seção de configuração do Guia do(a) Usuário(a) do Wireshark para informações de configuração. A maior parte da configuração do "Wireshark" pode ser realizada usando as opções de menu das interfaces gráficas do "wireshark".

Nota

Se você quiser ver os pacotes, [então] certifique-se de não filtrá-los com o "iptables-1.8.11". Se você quiser excluir certas classes de pacotes, [então] é mais eficiente fazê-lo com o "iptables" que com o "Wireshark".

Conteúdo

Aplicativos Instalados: capinfos, dumpcap, captype, editcap, idl2wrs, mergecap, randpkt, rawshark, reordercap, sharkd, text2pcap, tshark e wireshark
Bibliotecas Instaladas: libwireshark.so, libwiretap.so, libwsutil.so e numerosos módulos sob /usr/lib/wireshark/plugins
Diretórios Instalados: /usr/{lib,share}/wireshark e /usr/share/doc/wireshark-4.4.5

Descrições Curtas

capinfos

lê um arquivo salvo de captura e retorna alguma das, ou todas as, estatísticas relativas a esse arquivo. Ele é capaz de detectar e ler qualquer captura suportada pelo pacote "Wireshark"

captype

imprime os tipos de arquivos dos arquivos de captura

editcap

edita e (ou) traduz o formato dos arquivos de captura. Ele sabe como ler arquivos de captura "libpcap", incluindo aqueles do "tcpdump", "Wireshark" e outras ferramentas que escrevem capturas nesse formato

idl2wrs

é um programa que pega um arquivo CORBA IDL especificado pelo(a) usuário(a) e gera código fonte C para um plugin do Wireshark. Ele se baseia em dois programas Python, wireshark_be.py e wireshark_gen.py, os quais não são instalados por padrão. Eles tem de ser copiados manualmente a partir do diretório tools para o diretório $PYTHONPATH/site-packages/

mergecap

combina vários arquivos salvos de captura em um arquivo de saída gerada

randpkt

cria arquivos de captura de pacotes aleatórios

rawshark

despeja e analisa dados brutos da "libpcap"

reordercap

reordena os carimbos de tempo dos quadros do arquivo de entrada gerada em um arquivo de saída gerada

sharkd

é um processo de segundo plano que escuta em soquetes "UNIX"

text2pcap

lê um despejo hexadecimal "ASCII" e escreve os dados descritos em um arquivo de captura estilo "libpcap"

tshark

é um analisador de protocolo de rede de intercomunicação no modo TTY. Ele te permite capturar dados de pacotes a partir de uma rede de intercomunicação ativa ou ler pacotes a partir de um arquivo de captura salvo anteriormente

wireshark

é o analisador "GUI" "Qt" de protocolo de rede de intercomunicação. Ele te permite navegar interativamente por dados de pacotes a partir de uma rede de intercomunicação ativa ou a partir de um arquivo de captura salvo anteriormente

libwireshark.so

contém funções usadas pelos aplicativos "Wireshark" para realizar filtragem e captura de pacotes

libwiretap.so

é uma biblioteca sendo desenvolvida como uma substituta futura para a "libpcap", a atual biblioteca padrão Unix para captura de pacotes. Para mais informações, veja-se o arquivo "README" no diretório do fonte "wiretap"

Capítulo 17. Bibliotecas de Operação Interativa de Dispositivos Via Rede de Intercomunicação

Estes aplicativos são bibliotecas de suporte para outros aplicativos do livro. É improvável que você instale apenas estas bibliotecas; geralmente você descobrirá que será encaminhado(a) a este capítulo para satisfazer uma dependência de outros aplicativos.

c-ares-1.34.4

Introdução ao c-ares

"c-ares" é uma biblioteca "C" para solicitações "DNS" assíncronas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de c-ares

Exigidas

CMake-3.31.5

Instalação do c-ares

Instale c-ares executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake  -D CMAKE_INSTALL_PREFIX=/usr .. &&
make

Esse pacote não inclui uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: adig e ahost
Bibliotecas Instaladas: libcares.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

adig

consulta informações a partir de servidores "DNS"

ahost

imprime o registro "A" ou "AAAA" associado a um nome de dispositivo ou endereço "IP"

libcares.so

é uma biblioteca "C" para solicitações assíncronas "DNS"

cURL-8.12.1

Introdução ao cURL

O pacote "cURL" contém um utilitário e uma biblioteca usado(a) para transferir arquivos com sintaxe "URL" para qualquer um dos seguintes protocolos: "DICT", "FILE", "FTP", "FTPS", "GOPHER", "GOPHERS", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS", "MQTT", "POP3", "POP3S", "RTSP", "SMB", "SMBS", "SMTP", "SMPTS", "TELNET" e "TFTP". A capacidade dele(a) de baixar e de enviar arquivos pode ser incorporada a outros aplicativos para suportar funções como mídia em transmissão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://curl.se/download/curl-8.12.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7940975dd510399c4b27831165ab62e0

  • Tamanho da transferência: 2,6 MB

  • Espaço em disco estimado exigido: 53 MB (adicionar 15 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 4,9 UPC para testes (sem valgrind, adicionar 14 UPC com valgrind))

Dependências do "cURL"

Recomendadas

Nota

Embora exista uma opção para construir o pacote sem libpsl, tanto os(as) desenvolvedores(as) de fluxo de desenvolvimento quanto os(as) editores(as) do BLFS recomendam fortemente não desabilitar o suporte para libpsl devido a graves implicações de segurança.

Recomendadas em tempo de execução
Opcionais

Brotli-1.1.0, c-ares-1.34.4, GnuTLS-3.8.9, libidn2-2.3.7, libssh2-1.11.1, MIT Kerberos V5-1.21.3, nghttp2-1.64.0, OpenLDAP-2.6.9, Samba-4.21.4 (tempo de execução, para autenticação NTLM), gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche e SPNEGO

Opcionais se Executar a Suíte de Teste

Apache-2.4.63 e stunnel-5.74 (para os testes HTTPS e FTPS), OpenSSH-9.9p2 e Valgrind-3.24.0 (isso atrasará os testes e possivelmente cause falhas)

Instalação do cURL

Instale o "cURL" executando os seguintes comandos:

./configure --prefix=/usr                           \
            --disable-static                        \
            --with-openssl                          \
            --with-ca-path=/etc/ssl/certs &&
make

Para executar a suíte de teste, emita: make test. Alguns testes são instáveis, de forma que, se alguns testes falharem, é possível executar um teste novamente com: (cd tests; ./runtests.pl <ID do teste>) (o ID dos testes falhos é mostrado na mensagem These test cases failed:). Se você executar os testes depois que o pacote tiver sido instalado, alguns testes possivelmente falhem porque as páginas de manual foram deletadas pelo comando 'find' nas instruções de instalação abaixo.

Agora, como o(a) usuário(a) "root":

make install &&

rm -rf docs/examples/.deps &&

find docs \( -name Makefile\* -o  \
             -name \*.1       -o  \
             -name \*.3       -o  \
             -name CMakeLists.txt \) -delete &&

cp -v -R docs -T /usr/share/doc/curl-8.12.1

Para executar alguns testes simples de verificação sobre o recém instalado curl, emita os seguintes comandos: curl --trace-ascii debugdump.txt https://www.example.com/ e curl --trace-ascii d.txt --trace-time https://example.com/. Inspecione os arquivos de rastreamento criados localmente debugdump.txt e d.txt, que contém informações de versão, informações dos arquivos baixados, etc. Um arquivo tem a hora para cada ação registrada.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-ca-path=/etc/ssl/certs: Essa chave define o local do armazenamento da Autoridade Certificadora do BLFS.

--with-openssl: Esse parâmetro escolhe OpenSSL como implementação SSL/TLS. Essa opção não é necessária se --with-gnutls for selecionada.

--with-gssapi: Esse parâmetro adiciona suporte "Kerberos 5" à "libcurl".

--with-gnutls: Use essa chave para construir com suporte GnuTLS em vez de OpenSSL para SSL/TLS.

--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt: Use essa chave em vez de "--with-ca-path" se construir com suporte "GnuTLS" em vez de "OpenSSL" para "SSL"/"TLS".

--with-libssh2: Esse parâmetro adiciona suporte "SSH" ao "cURL". Isso é desabilitado por padrão.

--enable-ares: Esse parâmetro adiciona suporte para resolução DNS por meio da biblioteca c-ares.

find docs ... -exec rm {} \;: Esse comando remove "Makefiles" e arquivos de manual do diretório de documentação que de outra forma seriam instalados pelos comandos a seguir.

Conteúdo

Aplicativos Instalados: curl e curl-config
Biblioteca Instalada: libcurl.so
Diretórios Instalados: /usr/include/curl e /usr/share/doc/curl-8.12.1

Descrições Curtas

curl

é uma ferramenta de linha de comando para transferência de arquivos com sintaxe de "URL"

curl-config

imprime informações relativas à última compilação, como bibliotecas vinculadas e configuração de prefixo

libcurl.so

fornece as funções de "API" exigidas pelo "curl" e outros aplicativos

GeoClue-2.7.2

Introdução ao GeoClue

"GeoClue" é um serviço modular de geo informação construído sobre o sistema de mensagens "D-Bus". O objetivo do projeto "GeoClue" é o de tornar a criação de aplicativos com reconhecimento de localização o mais simples possível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "GeoClue"

Exigidas

JSON-GLib-1.10.6 e libsoup-3.6.4

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do GeoClue

Instale o "GeoClue" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk-doc=false    \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D 3g-source=false: Essa chave desabilita a estrutura de retaguarda 3G. Use-a se você não tiver instalado o pacote ModemManager.

-D modem-gps-source=false: Essa chave desabilita a estrutura de retaguarda GPS do modem. Use-a se você não tiver instalado o pacote ModemManager.

-D cdma-source=false: Essa chave desabilita a estrutura de retaguarda fonte CDMA. Use-a se você não tiver instalado o pacote ModemManager.

-D nmea-source=false: Essa chave desabilita a fonte NMEA. Use-a se você não tiver instalado o pacote Avahi.

-D demo-agent=false: Essa chave desabilita a demonstração. Use-a se você não tiver instalado o pacote libnotify.

Configurando GeoClue

Arquivos de Configuração

/etc/geoclue/conf.d/90-lfs-google.conf

Informação de Configuração

Em março de 2024, a Mozilla anunciou o encerramento do Mozilla Location Service. Geoclue usa esse serviço para determinar um local de usuário(a) quando solicitado por outras aplicações. A única alternativa suportada pelo fluxo de desenvolvimento é a de usar o Serviço de Geolocalização do Google.

Para usar o Serviço de Geolocalização do Google, uma chave de API precisa ser usada e um arquivo de configuração precisa ser criado. Esta chave de API é destinada somente para uso com LFS. Por favor, não use esta chave de API se você estiver construindo para outra distribuição ou distribuindo cópias binárias. Se precisar de uma chave de API, você pode solicitar uma em https://www.chromium.org/developers/how-tos/api-keys.

Crie a configuração necessária para usar o Serviço de Geolocalização do Google como o(a) usuário(a) root:

cat > /etc/geoclue/conf.d/90-lfs-google.conf << "EOF"
# Begin /etc/geoclue/conf.d/90-lfs-google.conf

# This configuration applies for the WiFi source.
[wifi]

# Set the URL to Google's Geolocation Service.
url=https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ

# End /etc/geoclue/conf.d/90-lfs-google.conf
EOF

Se não desejar solicitar teu local a partir de um serviço de geolocalização, você pode rigidamente codificar teu local em /etc/geolocation usando o formato descrito em geoclue(5).

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgeoclue-2.so
Diretórios Instalados: /etc/geoclue, /usr/include/libgeoclue-2.0, /usr/libexec/geoclue-2.0 e /usr/share/gtk-doc/html/{geoclue,libgeoclue}

glib-networking-2.80.1

Introdução ao GLib Networking

O pacote "GLib Networking" contém módulos "gio" relacionados à rede de intercomunicação para o "GLib".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "GLib Networking"

Exigidas

GLib-2.82.5 e GnuTLS-3.8.9

Recomendadas
Opcionais

libproxy

Instalação do GLib Networking

Instale o "GLib Networking" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup             \
   --prefix=/usr        \
   --buildtype=release  \
   -D libproxy=disabled \
   .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libgiognomeproxy.so e libgiognutls.so (Módulos GIO instalados em /usr/lib/gio/modules)
Diretórios Instalados: Nenhum(a)

kdsoap-2.2.0

Introdução ao kdsoap

O kdsoap é um componente SOAP do lado do cliente e do lado servidor baseado em Qt. Ele pode ser usado para criar aplicativos clientes para serviços web e também fornece meios para criar serviços web sem a necessidade de qualquer componente adicional, como um servidor web dedicado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do kdsoap

Exigidas

Qt-6.8.2

Instalação do kdsoap

Instale kdsoap executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D KDSoap_QT6=ON             \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/kdsoap-2.2.0 \
      .. &&
make

O pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kdwsdl2cpp-qt6
Bibliotecas Instaladas: libkdsoap-qt6.so e libkdsoap-server-qt6.so
Diretórios Instalados: /usr/lib/cmake/KDSoap-Qt6, /usr/share/doc/kdsoap-2.2.0-qt6, /usr/include/KDSoapClient-Qt6. e /usr/include/KDSoapServer-Qt6

kdsoap-ws-discovery-client-0.4.0

Introdução ao kdsoap-ws-discovery-client

O pacote kdsoap-ws-discovery-client contém uma biblioteca que fornece suporte para o protocolo WS-Discovery, um protocolo recente usado para descobrir serviços disponíveis em uma rede local de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do kdsoap-ws-discovery-client

Exigidas

Doxygen-1.13.2, extra-cmake-modules-6.11.0 e kdsoap-2.2.0

Instalação do kdsoap-ws-discovery-client

Instale kdsoap-ws-discovery-client executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr    \
      -D CMAKE_BUILD_TYPE=Release     \
      -D CMAKE_SKIP_INSTALL_RPATH=ON  \
      -D QT_MAJOR_VERSION=6           \
      -W no-dev .. &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install &&
mv -v /usr/share/doc/KDSoapWSDiscoveryClient{,-0.4.0}

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

mv -v /usr/share/doc/KDSoapWSDiscoveryClient[...]:: Esse comando move a documentação para um diretório versionado.

-D QT_MAJOR_VERSION=6: Esse parâmetro informa ao sistema de construção para construir a versão Qt6 deste pacote em vez da versão Qt5.

-D BUILD_QCH=ON: Essa opção informa ao sistema de construção para criar documentação que pode ser usada com QtCreator, QtAssistant ou KDevelop.

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libKDSoapWSDiscoveryClient.so
Diretórios Instalados: /usr/include/KDSoapWSDiscoveryClient, /usr/lib/cmake/KDSoapWSDiscoveryClient e /usr/share/doc/KDSoapWSDiscoveryClient-0.4.0

Descrições Curtas

libKDSoapWSDiscoveryClient.so

fornece uma implementação do protocolo WS-Discovery usando KDSoap

ldns-1.8.4

Introdução ao ldns

"ldns" é uma biblioteca "DNS" rápida com a meta de simplificar a programação "DNS" e permitir que os(as) desenvolvedores(as) criem facilmente o software em conformidade com os "RFCs" atuais e os rascunhos da Internet. Esses pacotes também incluem a ferramenta "drill".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.nlnetlabs.nl/downloads/ldns/ldns-1.8.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 94ea1ed8fc7095bef003b64b53b71ec7

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 31 MB (com documentos)

  • Tempo de construção estimado: 0,2 UPC (com os documentos)

Dependências do "ldns"

Opcionais

make-ca-1.15 e libpcap-1.10.5 (para programas exemplo), SWIG-4.3.0 (para ligações Python) e Doxygen-1.13.2 (para documentação HTML)

Instalação do ldns

Instale o "ldns" executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-drill            &&
make

Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação "HTML", [então] execute o seguinte comando:

make doc

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) "root":

make install

Se você construiu a documentação "HTML", [então] instale-a executando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -d /usr/share/doc/ldns-1.8.4 &&
install -v -m644 doc/html/* /usr/share/doc/ldns-1.8.4

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-drill: Essa opção habilita a construção da ferramenta "drill" (usada para obter informações de depuração a partir do "DNS(SEC)")

--disable-dane-ta-usage: Essa opção desabilita o suporte a "DANE-TA" ("DNS-Based Authentication of Named Entities"). Ele é necessário somente se o "OpenSSL-1.1.0" ou posterior não estiver instalado.

--with-examples: Essa opção habilita a construção dos aplicativos de exemplo.

--with-pyldns: Essa opção habilita construção das ligações Python. Se você usar essa opção, precisará adicionar PYTHON=/usr/bin/python3 à linha do configure também.

Conteúdo

Aplicativos Instalados: drill e ldns-config
Biblioteca Instalada: libldns.so
Diretórios Instalados: /usr/include/ldns e /usr/share/doc/ldns-1.8.4

Descrições Curtas

drill

é uma ferramenta como o "dig" oriunda de "Utilitários BIND-9.20.6" projetada para obter todo tipo de informação do "DNS"

ldns-config

mostra sinalizadores de compilador e vinculador para uso do "ldns"

libldns.so

fornece as funções da "API" do "ldns" para aplicativos

libevent-2.1.12

Introdução ao libevent

"libevent" é uma biblioteca de logiciário de notificação de eventos assíncronos. A "API" da "libevent" fornece um mecanismo para executar uma função de retorno de chamada quando um evento específico ocorre em um descritor de arquivo ou depois de um tempo limite ter sido atingido. Além disso, "libevent" também suporta retornos de chamada devido a sinais ou tempos limite regulares.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libevent"

Opcionais

Doxygen-1.13.2 (para a documentação da "API")

Instalação do libevent

Primeiro, corrija um problema que impede "event_rpcgen.py" de funcionar:

sed -i 's/python/&3/' event_rpcgen.py

Instale o "libevent" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação da "API", [então] emita:

doxygen Doxyfile

Para testar os resultados, emita: make verify. Seis testes em cada suíte relacionados a regress_ssl.c e regress_http.c são conhecidos por falharem devido a incompatibilidades com o OpenSSL-3. Alguns testes que estão relacionados a regress_dns.c também são conhecidos por falharem intermitentemente devido a tempos limite de teste insuficientes.

Agora, como o(a) usuário(a) "root":

make install

Se você construiu a documentação da "API", [então] instale-a emitindo os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -d /usr/share/doc/libevent-2.1.12/api &&
cp     -v -R       doxygen/html/* \
                    /usr/share/doc/libevent-2.1.12/api

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: event_rpcgen.py
Bibliotecas Instaladas: libevent_core.so, libevent_extra.so, libevent_openssl.so, libevent_pthreads.so e libevent.so
Diretório Instalado: /usr/include/event2 e /usr/share/doc/libevent-2.1.12

libmnl-1.0.5

Introdução ao libmnl

A biblioteca "libmnl" fornece uma biblioteca minimalista de espaço de usuário(a) orientada para desenvolvedores(as) "Netlink". Existem muitas tarefas comuns na análise, validação e construção do cabeçalho "Netlink" e dos "TLVs" que são repetitivas e fáceis de errar. Essa biblioteca visa a fornecer ajudantes simples que te permitem reusar código e evitar a reinvenção da roda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libnma"

Opcionais

Doxygen-1.13.2

Instalação do libmnl

Instale o "libmnl" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Biblioteca Instalada: libmnl.so

Descrições Curtas

libmnl.so

fornece funções para análise, validação e construção do cabeçalho "Netlink" e "TLVs"

libndp-1.9

Introdução ao libndp

O pacote "libndp" fornece um envólucro para o "Neighbor Discovery Protocol" do "IPv6". Ele também fornece uma ferramenta chamada "ndptool" para enviar e receber mensagens "NDP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://libndp.org/files/libndp-1.9.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9d486750569e7025e5d0afdcc509b93c

  • Tamanho da transferência: 368 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do libndp

Instale o "libndp" executando o seguinte comando:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-static     &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativo Instalado: ndptool
Biblioteca Instalada: libndp.so
Diretório Instalado: Nenhum(a)

Descrições Curtas

ndptool

é uma ferramenta para enviar e receber mensagens "NDP"

libndp.so

fornece um envólucro para o "Neighbor Discovery Protocol" do "IPv6"

libnl-3.11.0

Introdução ao libnl

A suíte "libnl" é uma coleção de bibliotecas que fornecem "APIs" para interfaces do núcleo Linux baseadas no protocolo "netlink".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferência Opcional

Instalação do libnl

Instale o "libnl" executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  &&
make

Nota

Se o comando make foi executado com várias tarefas paralelas habilitadas, ele poderá interromper o modo de terminal e causar alguns efeitos visuais divertidos. Na pior das hipóteses, esse problema possivelmente cause entradas geradas de teclado não exibidas na tela (mas você ainda consegue executar qualquer comando se conseguir digitá-lo corretamente). Execute o comando reset para corrigir esse problema.

Se desejar executar os testes, verifique se as seguintes opções estão habilitadas na configuração do núcleo e recompile o núcleo se necessário. Alguns deles possivelmente não sejam estritamente necessários, mas deveriam suportar uma cobertura completa de testes.

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]
    [*] Network namespace                                               [NET_NS]

[*] Networking support --->                                                [NET]
  Networking options --->
    [*]   TCP/IP networking                                               [INET]
    [*]     IP: advanced router                             [IP_ADVANCED_ROUTER]
    [*]       IP: policy routing                            [IP_MULTIPLE_TABLES]
    <*/M>   IP: tunneling                                             [NET_IPIP]
    <*/M>   IP: GRE demultiplexer                              [NET_IPGRE_DEMUX]
    <*/M>   IP: GRE tunnels over IP                                  [NET_IPGRE]
    <*/M>   Virtual (secure) IP: tunneling                           [NET_IPVTI]
    <*>     The IPv6 protocol --->                                        [IPV6]
      <*/M>   IPv6: IPv6-in-IPv4 tunnel (SIT driver)                  [IPV6_SIT]
      <*/M>   IPv6: IP-in-IPv6 tunnel (RFC2473)                    [IPV6_TUNNEL]
      [*]     IPv6: Multiple Routing Tables               [IPV6_MULTIPLE_TABLES]
    [*]   Network packet filtering framework (Netfilter) --->        [NETFILTER]
      Core Netfilter Configuration --->
        <*/M> Netfilter nf_tables support                            [NF_TABLES]
        [*]     Netfilter nf_tables netdev tables support     [NF_TABLES_NETDEV]
        {*/M}   Netfilter packet duplication support             [NF_DUP_NETDEV]
        <*/M>   Netfilter nf_tables netdev packet forwarding support
                                                           ...  [NFT_FWD_NETDEV]
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]
    <*/M> 802.1Q/802.1ad VLAN Support                               [VLAN_8021Q]
    -*-   L3 Master device support                           [NET_L3_MASTER_DEV]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Bonding driver support                                     [BONDING]
    <*/M>   Dummy net driver support                                     [DUMMY]
    <*/M>   Intermediate Functional Block support                          [IFB]
    <*/M>   MAC-VLAN support                                           [MACVLAN]
    <*/M>     MAC-VLAN based tap driver                                [MACVTAP]
    <*/M>   IP-VLAN support                                             [IPVLAN]
    <*/M>   Virtual eXtensible Local Area Network (VXLAN)                [VXLAN]
    <*/M>   IEEE 802.1AE MAC-level encryption (MACsec)                  [MACSEC]
    <*/M>   Virtual ethernet pair device                                  [VETH]
    <*/M>   Virtual Routing and Forwarding (Lite)                      [NET_VRF]

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Se você desejar instalar a documentação da "API", [então] como o(a) usuário(a) "root":

mkdir -vp /usr/share/doc/libnl-3.11.0 &&
tar -xf ../libnl-doc-3.11.0.tar.gz --strip-components=1 --no-same-owner \
   -C  /usr/share/doc/libnl-3.11.0

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-cli: Use esse parâmetro se não quiser instalar ferramentas "CLI" fornecidas pelo pacote.

Conteúdo

Aplicativos Instalados: genl-ctrl-list, idiag-socket-details, nl-class-add, nl-class-delete, nl-classid-lookup, nl-class-list, nl-cls-add, nl-cls-delete, nl-cls-list, nl-link-list, nl-pktloc-lookup, nl-qdisc-add, nl-qdisc-delete, nl-qdisc-list e quarenta e oito (48) outros aplicativos auxiliares com prefixos "nl-" e "nf-"
Bibliotecas Instaladas: libnl-3.so, libnl-cli-3.so, libnl-genl-3.so, libnl-idiag-3.so, libnl-nf-3.so, libnl-route-3.so, libnl-xfrm-3.so e módulos "CLI" sob a árvore "/usr/lib/libnl/cli"
Diretórios Instalados: /etc/libnl, /usr/include/libnl3, /usr/lib/libnl e /usr/share/doc/libnl-3.11.0

Descrições Curtas

genl-ctrl-list

consulta o controlador "Generic Netlink" no núcleo e imprime uma lista de todas as famílias "Generic Netlink" registradas, incluindo a versão da interface que tenha sido registrada

nl-class-add

adiciona, atualiza ou substitui Classes de Tráfego

nl-class-delete

deleta Classes de Tráfego

nl-classid-lookup

é usado para resolver nomes de "qdisc"/classe para valores "classid" e vice-versa

nl-class-list

lista Classes de Tráfego

nl-cls-add

adiciona um classificador

nl-cls-delete

deleta um classificador

nl-cls-list

lista classificadores

nl-link-list

despeja atributos de link

nl-pktloc-lookup

permite a consulta de definições de localização de pacotes

nl-qdisc-add

adiciona disciplinas de filas ("qdiscs") no núcleo

nl-qdisc-delete

deleta disciplinas de filas ("qdiscs") no núcleo

nl-qdisc-list

lista disciplinas de filas ("qdiscs") no núcleo

libnl*-3.so

Essas bibliotecas contêm funções de "API" usadas para acessar interfaces "Netlink" no núcleo Linux

libnma-1.10.6

Introdução ao libnma

O pacote "libnma" contém uma implementação das funções "GUI" do "NetworkManager".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libnma/1.10/libnma-1.10.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 71c7ce674fea1fae8f1368a7fcb6ff43

  • Tamanho da transferência: 688 KB

  • Espaço em disco estimado exigido: 15 MB

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com o teste)

Dependências do "libnma"

Exigidas

Gcr-3.41.2, GTK-3.24.48, ISO Codes-4.17.0 e NetworkManager-1.50.0

Recomendadas
Opcionais

mobile-broadband-provider-info

Instalação do libnma

Instale o "libnma" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                                \
      --prefix=/usr                           \
      --buildtype=release                     \
      -D gtk_doc=false                        \
      -D libnma_gtk4=true                     \
      -D mobile_broadband_provider_info=false &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Esse parâmetro desabilita gerar documentação da API usando gtk-doc. Se você tiver o GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API, omita essa chave.

-D libnma_gtk4=true: Esse parâmetro constrói a versão GTK-4 da libnma. É necessário para o gnome-control-center-47.4.

-D mobile_broadband_provider_info=false: Essa chave desabilita o suporte a WWAN porque as informações do provedor de banda larga móvel não estão no BLFS. Omita essa chave se você a tiver instalada e desejar habilitar o suporte a WWAN.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libnma.so e libnma-gtk4.so
Diretórios Instalados: /usr/include/libnma

Descrições Curtas

libnma.so

contém a biblioteca "GUI" do "NetworkManager"

libnma-gtk4.so

contém a versão "GTK-4" da biblioteca "GUI" do "NetworkManager"

libnsl-2.0.1

Introdução ao libnsl

O pacote "libnsl" contém a interface pública cliente para "NIS(YP)". Ele substitui a biblioteca "NIS" que costumava estar na "glibc".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libnsl"

Exigidas

libtirpc-1.3.6

Instalação do libnsl

Instale o "libnsl" executando os seguintes comandos:

./configure --sysconfdir=/etc --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libnsl.so
Diretórios Instalados: /usr/include/rpcsvc

Descrições Curtas

libnsl.so

fornece as funções da "API" "NIS" ("YP") exigidas por outros aplicativos

libpcap-1.10.5

Introdução ao libpcap

"libpcap" fornece funções para captura de pacotes em nível de usuário(a), usadas no monitoramento de atividade de rede de intercomunicação de baixo nível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.tcpdump.org/release/libpcap-1.10.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0dc69ed81464e7a255715fa685daf134

  • Tamanho da transferência: 952 KB

  • Espaço em disco estimado exigido: 10 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "libpcap"

Opcionais

BlueZ-5.79, libnl-3.11.0, libusb-1.0.27, distribuição de logiciário para o DAG e a gama de placas passivas de monitoramento de atividade de rede de intercomunicação Septel.

Instalação do libpcap

Instale o "libpcap" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Se você desejar desabilitar a instalação da biblioteca estática, [então] use este "sed":

sed -i '/INSTALL_DATA.*libpcap.a\|RANLIB.*libpcap.a/ s/^/#/' Makefile

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativo Instalado: pcap-config
Bibliotecas Instaladas: libpcap.so
Diretório Instalado: /usr/include/pcap

Descrições Curtas

pcap-config

fornece informações de configuração para a "libpcap"

libpcap.{a,so}

são bibliotecas usadas para captura de pacotes em nível de usuário(a)

libpsl-0.21.5

Introdução ao libpsl

O pacote "libpsl" fornece uma biblioteca para acessar e resolver informações originárias da "Public Suffix List" ("PSL"). O "PSL" é um conjunto de nomes de domínio além dos sufixos padrão, como ".com".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libpsl"

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para documentação), ICU-76.1 (pode ser usado em vez de libidn2), libidn-1.42 (pode ser usado em vez de libidn2), Valgrind-3.24.0 (para testes)

Instalação do libpsl

Instale o "libpsl" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&

ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: psl
Biblioteca Instalada: libpsl.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

psl

consulta a Lista Pública de Sufixos

libpsl.so

contém uma biblioteca usada para acessar a Lista Pública de Sufixos

libslirp-4.9.0

Introdução ao libslirp

"Libslirp" é uma biblioteca de atividade em rede de intercomunicação em modo de usuário(a) usada por máquinas virtuais, contêineres ou diversas ferramentas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libslirp"

Exigidas

GLib-2.82.5

Instalação do Libslirp

Instale o "libslirp" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson setup --prefix=/usr --buildtype=release .. &&

ninja

Para testar os resultados, emita: ninja test

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libslirp.so
Diretório Instalado: /usr/include/slirp

Descrições Curtas

libclirp.so

contém funções de emulação "TCP-IP" em modo de usuário(a)

libsoup-2.74.3

Introdução ao libsoup

A "libsoup" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8f657fd301a213629204b3320c35d75a

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 17 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)

Dependências do "libsoup"

Exigidas

glib-networking-2.80.1, libpsl-0.21.5, libxml2-2.13.6 e SQLite-3.49.1

Recomendadas
Opcionais

Apache-2.4.63 (exigido para executar a suíte de teste), Brotli-1.1.0, cURL-8.12.1 (exigido para executar a suíte de teste), MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), GTK-Doc-1.34.0, PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste) e sysprof

Instalação do libsoup

Instale o "libsoup" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D vapi=enabled     \
            -D gssapi=disabled  \
            -D sysprof=disabled \
            ..                  &&
ninja

Para testar os resultados, emita: "ninja test". Um teste chamado "ssl-test" é conhecido por falhar.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D vapi=disabled: Use isso se não tiver instalado o Vala, por exemplo, porque você não está construindo o GNOME.

-D doc=enabled: Use essa opção se quiser construir a documentação. Observe que você precisa ter o GTK-Doc-1.34.0 instalado.

-D gssapi=disabled: libsoup padroniza para construir com suporte GSSAPI, que exige Kerberos (assim como a suíte de teste). Se você estiver construindo o GNOME ou tiver o kerberos instalado, remova essa opção.

-D sysprof=disabled: libsoup baixará automaticamente uma versão git de sysprof se o git estiver disponível ou usará a versão instalada se estiver presente no sistema. Se você precisar de perfilamento, remova essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libsoup-2.4.so e libsoup-gnome-2.4.so
Diretórios Instalados: /usr/include/libsoup-2.4, /usr/include/libsoup-gnome-2.4 e /usr/share/gtk-doc/html/libsoup-2.4

Descrições Curtas

libsoup-2.4.so

fornece funções para conexões assíncronas "HTTP"

libsoup-gnome-2.4.so

fornece recursos específicos do "GNOME"

libsoup-3.6.4

Introdução ao libsoup3

A "libsoup3" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b42bfcd87a78b82272d2004976e10766

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 37 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)

Dependências do "libsoup3"

Exigidas

glib-networking-2.80.1, libpsl-0.21.5, libxml2-2.13.6, nghttp2-1.64.0 e SQLite-3.49.1

Recomendadas
Opcionais

Apache-2.4.63 (exigido para executar a suíte de teste), Brotli-1.1.0, cURL-8.12.1 (exigido para executar a suíte de teste), Gi-DocGen-2025.3, MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste), sysprof e wstest

Instalação do libsoup3

Corrija o caminho de instalação da documentação da "API":

sed 's/apiversion/soup_version/' -i docs/reference/meson.build

Instale o "libsoup3" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D docs=enabled: Se Gi-DocGen-2025.3 estiver instalado, a documentação da API será construída e instalada independentemente de essa opção ser usada ou não. Essa opção faz com que o comando meson falhe se Gi-DocGen-2025.3 não estiver instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libsoup-3.0.so
Diretórios Instalados: /usr/include/libsoup-3.0, /usr/share/doc/libsoup-3.6.4 (instalada somente se gi-docgen estiver disponível)

Descrições Curtas

libsoup-3.0.so

fornece funções para conexões assíncronas "HTTP"

libtirpc-1.3.6

Introdução ao libtirpc

O pacote "libtirpc" contém bibliotecas que suportam aplicativos que usam a "API" "Remote Procedure Call" ("RPC"). Ele substitui o "RPC", mas não as entradas da biblioteca "NIS" que costumavam estar na "glibc".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libtirpc"

Opcionais

MIT Kerberos V5-1.21.3 para a "GSSAPI"

Instalação do libtirpc

Nota

Se atualizar esse pacote, [então] você também precisará atualizar qualquer versão existente de "rpcbind-1.2.7"

./configure --prefix=/usr                                  \
            --sysconfdir=/etc                               \
            --disable-static                                \
            --disable-gssapi                                &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-gssapi: Essa chave é necessária se nenhum "GSSAPI" estiver instalado. Remova essa chave se você tiver uma instalada (por exemplo "MIT Kerberos V5-1.21.3") e desejar usá-la.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libtirpc.so
Diretório Instalado: /usr/include/tirpc

Descrições Curtas

libtirpc.so

fornece as funções da "API" "Remote Procedure Call" ("RPC") exigidas por outros aplicativos

neon-0.34.0

Introdução ao neon

"neon" é uma biblioteca cliente "HTTP" e "WebDAV", com uma interface "C".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://notroj.github.io/neon/neon-0.34.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8796f3ef99998f21465f9135b26afd40

  • Tamanho da transferência: 908 KB

  • Espaço em disco estimado exigido: 8,7 MB (adicionais 52 MB para testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,1 UPC para testes)

Dependências do "neon"

Opcionais

GnuTLS-3.8.9, libxml2-2.13.6, MIT Kerberos V5-1.21.3, nss-3.108 (para alguns testes), xmlto-0.0.29 (para regenerar a documentação), libproxy e PaKChoiS

Instalação do neon

Instale o "neon" executando os seguintes comandos:

./configure --prefix=/usr   \
            --with-ssl       \
            --enable-shared  \
            --disable-static &&
make

Para testar os resultados, emita: make check.

Se você desejar regenerar a documentação, emita:

make docs

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--with-ssl: Essa chave habilita o suporte "SSL" usando o "OpenSSL". O "GnuTLS" pode ser usado em vez disso, passando-se "--with-ssl=gnutls" e "--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt" para o conjunto de comandos sequenciais "configure".

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: neon-config
Biblioteca Instalada: libneon.so
Diretórios Instalados: /usr/include/neon e /usr/share/doc/neon-0.34.0

Descrições Curtas

neon-config

é um conjunto de comandos sequenciais que fornece informações relativas a uma cópia instalada da biblioteca "neon"

libneon.so

é usado como uma interface de alto nível para métodos comuns" HTTP" e "WebDAV"

nghttp2-1.64.0

Introdução ao nghttp2

"nghttp2" é uma implementação de "HTTP/2" e do algoritmo de compressão de cabeçalho dele, "HPACK".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "nghttp2"

Recomendadas

libxml2-2.13.6

Opcionais

Os seguintes são usados somente se construir o pacote completo em vez de somente as bibliotecas principais: Boost-1.87.0, c-ares-1.34.4, cython-3.0.12, jansson-2.14, libevent-2.1.12, sphinx-8.2.1, jemalloc, libev, mruby e Spdylay.

Instalação do nghttp2

Instale o "nghttp2" executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static  \
            --enable-lib-only \
            --docdir=/usr/share/doc/nghttp2-1.64.0 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-lib-only: constrói somente a "libnghttp2". Omita essa chave se você gostaria de construir os aplicativos de exemplo, as ligações "Python" ou a biblioteca "C++" "asio".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libnghttp2.so
Diretórios Instalados: /usr/include/nghttp2, /usr/share/nghttp2 e /usr/share/doc/nghttp2-1.64.0

Descrições Curtas

libnghttp2.so

uma implementação do "Hypertext Transfer Protocol" versão 2 em "C"

rpcsvc-proto-1.4.4

Introdução ao rpcsvc-proto

O pacote "rpcsvc-proto" contém os arquivos e cabeçalhos do protocolo "rcpsvc", anteriormente incluídos na "glibc", que não estão incluídos na substituição "libtirpc-1.3.6", junto com o aplicativo "rpcgen".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do rpcsvc-proto

Instale o "rpcsvc-proto" executando os seguintes comandos:

./configure --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: rpcgen
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/rpcsvc

Descrições Curtas

rpcgen

Gera código "C" para implementar o protocolo "RPC"

Serf-1.3.10

Introdução ao Serf

O pacote "Serf" contém uma biblioteca cliente "HTTP" baseada em "C" construída sobre a biblioteca "Apache Portable Runtime" ("APR"). Ela multiplexa conexões, executando a comunicação de leitura/escrita assincronamente. As cópias e transformações da memória são reduzidas ao mínimo para fornecer operação de alto desempenho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/serf/serf-1.3.10.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5320087299084c297eff8e1dacfab1af

  • Tamanho da transferência: 148 KB

  • Espaço em disco estimado exigido: 2,4 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "Serf"

Exigidas

Apr-Util-1.6.3 e SCons-4.8.1

Opcionais

MIT Kerberos V5-1.21.3 (para suporte GSSAPI)

Instalação do Serf

Instale o "Serf" executando os seguintes comandos:

sed -i "/Append/s:RPATH=libdir,::"          SConstruct &&
sed -i "/Default/s:lib_static,::"           SConstruct &&
sed -i "/Alias/s:install_static,::"         SConstruct &&

scons PREFIX=/usr

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) "root":

scons PREFIX=/usr install

Explicações do Comando

sed -i "...": O primeiro comando remove o caminho em tempo de execução de uma biblioteca compartilhada e os próximos dois comandos desabilitam a construção e instalação da biblioteca estática.

GSSAPI=/usr: Use essa chave se você tiver instalado uma biblioteca "GSSAPI" e quiser que o "serf" a use.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libserf-1.so
Diretório Instalado: /usr/include/serf-1

Descrições Curtas

libserf-1.so

contém as funções da "API" do "Serf"

uhttpmock-0.11.0

Introdução ao uhttpmock

O pacote "uhttpmock" contém uma biblioteca para simular "APIs" de serviços da "web" que usem "HTTP" ou "HTTPS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "uhttpmock"

Exigidas

libsoup-3.6.4

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do uhttpmock

Instale o "uhttpmock" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D gtk_doc=false    &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libuhttpmock-1.0.so
Diretórios Instalados: /usr/include/libuhttpmock-1.0 e /usr/share/gtk-doc/html/libuhttpmock-1.0

Descrições Curtas

libuhttpmock-1.0.so

contém as funções da "API" do "uhttpmock"

Capítulo 18. Navegadores da Web em Texto

Pessoas que são novas em sistemas baseados em Unix tendem a fazer a pergunta "Por que diabos eu iria querer um navegador em modo texto? Vou compilar o X e usar o Firefox/Falkon/Tanto faz!". Aqueles(as) que já conhecem sistemas há algum tempo sabem que quando (não se) você consegue bagunçar tua instalação do navegador gráfico e precisa procurar algumas informações na web, um navegador baseado em console te salvará. Além disso, existem algumas pessoas que preferem usar um desses navegadores como método principal de navegação; seja para evitar a confusão e a largura de banda que acompanha as imagens ou porque eles podem usar um sintetizador de texto para fala que consegue ler a página para eles(as) (útil, por exemplo, para usuários(as) com deficiência visual ou cegos(as)). Neste capítulo você encontrará instruções de instalação para dois navegadores de console:

Links-2.30

Introdução ao Links

"Links" é um navegador "WWW" em modo texto e gráfico. Inclui suporte para renderização de tabelas e quadros, realça transferências em segundo plano, consegue exibir cores e tem muitos outros recursos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://links.twibright.com/download/links-2.30.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: dc56041551980c74dd354cd7c2882539

  • Tamanho da transferência: 6,3 MB

  • Espaço em disco estimado exigido: 36 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "Links"

Recomendadas
Opcionais

O modo gráfico exige pelo menos um de GPM-1.20.7 (suporte de mouse para ser usado com um console baseado em framebuffer), SVGAlib, DirectFB e um ambiente gráfico

Para decodificar vários formatos de imagem, o Links consegue utilizar libavif-1.2.0, libpng-1.6.46, libjpeg-turbo-3.0.1, librsvg-2.59.2 e libtiff-4.7.0

Para descomprimir páginas da "web" que estejam comprimidas com o "Brotli", o "Links" consegue utilizar o "Brotli-1.1.0"

Instalação do Links

Instale o "Links" executando os seguintes comandos:

./configure --prefix=/usr --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -d -m755 /usr/share/doc/links-2.30 &&
install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \
   /usr/share/doc/links-2.30

Explicações do Comando

--enable-graphics: Essa chave habilita o suporte para modo gráfico.

Configurando o Links

Arquivos de Configuração

~/.links/*

Informação de Configuração

O "Links" armazena a configuração dele em arquivos por usuário(a) no diretório "~/.links". Esses arquivos são criados automaticamente quando o "links" for executado pela primeira vez.

Conteúdo

Aplicativo Instalado: links
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/links-2.30

Descrições Curtas

links

é um navegador "WWW" em modo texto e gráfico

Lynx-2.9.2

Introdução ao Lynx

"Lynx" é um navegador da "web" baseado em texto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Opcionais

GnuTLS-3.8.9 (experimental, para substituir o openssl), libarchive-3.7.7, Zip-3.0, um MTA (que forneça um comando sendmail) e Sharutils-4.15.2 (para o programa uudecode)

Instalação do Lynx

Instale o "Lynx" executando os seguintes comandos:

./configure --prefix=/usr           \
            --sysconfdir=/etc/lynx  \
            --with-zlib             \
            --with-bzlib            \
            --with-ssl              \
            --with-screen=ncursesw  \
            --enable-locale-charset \
            --datadir=/usr/share/doc/lynx-2.9.2 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install-full
chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc

Explicações do Comando

--sysconfdir=/etc/lynx: Esse parâmetro é usado para que os arquivos de configuração estejam localizados em /etc/lynx em vez de /usr/etc.

--datadir=/usr/share/doc/lynx-2.9.2: Esse parâmetro é usado para que os arquivos da documentação sejam instalados em /usr/share/doc/lynx-2.9.2 em vez de /usr/share/lynx_{doc,help}.

--with-zlib: Isso habilita o suporte para vincular a "libz" no "Lynx".

--with-bzlib: Isso habilita o suporte para vincular a "libbz2" no "Lynx".

--with-ssl: Isso habilita o suporte para vincular a "SSL" no "Lynx".

--with-screen=ncursesw: Essa chave habilita o uso do suporte avançado a caracteres largos presente na biblioteca do sistema "NCurses". Isso é necessário para a exibição adequada de caracteres e quebra de linha em localidades multi byte.

--enable-locale-charset: Essa chave permite que o "Lynx" deduza a codificação de caracteres adequada para a saída gerada de terminal a partir do local atual. Uma etapa de configuração ainda é necessária (veja-se abaixo), mas diferentemente da situação sem essa chave, a etapa de configuração se torna a mesma para todos(as) os(as) usuários(as) (sem a chave é preciso especificar explicitamente o conjunto de caracteres de exibição). Isso é importante para ambientes, como um "LiveCD", onde a quantidade de etapas específicas de configuração do sistema tem de ser reduzida ao mínimo.

--enable-ipv6: Essa chave permite que o "Lynx" use "IPv6", juntamente com "IPv4". Use-a se o teu "ISP" fornecer uma configuração de "IPv6".

--enable-nls: Essa chave permite que o "Lynx" imprima mensagens traduzidas (como perguntas relativas a "cookies" e certificados "SSL").

--with-gnutls: Isso habilita o suporte experimental para vincular o "GnuTLS" no "Lynx". Remova a chave "--with-ssl" se quiser usar o "GnuTLS".

make install-full: Além da instalação padrão, esse alvo instala a documentação e os arquivos de ajuda.

chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc : Esse comando corrige a propriedade imprópria do grupo dos arquivos de documentação instalados.

Configurando o Lynx

Arquivos de Configuração

/etc/lynx/lynx.cfg

Informação de Configuração

A maneira correta de obter o conjunto de caracteres de exibição é a de examinar a localidade atual. Entretanto, o "Lynx" não faz isso por padrão. Como o(a) usuário(a) "root", mude essa configuração:

sed -e '/#LOCALE/     a LOCALE_CHARSET:TRUE'    \
    -i /etc/lynx/lynx.cfg

O editor integrado no "Lynx" Quebra Caracteres Multi Byte. Esse problema se manifesta em localidades multi byte, por exemplo, quando a tecla "Backspace" não apaga caracteres não "ASCII" corretamente e quando dados incorretos são enviados para a rede de intercomunicação quando se edita o conteúdo de áreas de texto. A única solução para esse problema é a de configurar o "Lynx" para usar um editor externo (ligado à combinação de teclas Ctrl+X e por padrão). Ainda como o(a) usuário(a) "root":

sed -e '/#DEFAULT_ED/ a DEFAULT_EDITOR:vi'      \
    -i /etc/lynx/lynx.cfg

Lynx lida com os seguintes valores da opção DEFAULT_EDITOR especialmente adicionando argumentos de posicionamento do cursor: emacs, jed, jmacs , joe, jove, jpico, jstar, nano, pico, rjoe, vi (mas não vim: para a finalidade de posicionar o cursor no Vim-9.1.1166, configure essa opção como vi).

Por padrão, o "Lynx" não salva "cookies" entre sessões. Novamente como o(a) usuário(a) "root", mude essa configuração:

sed -e '/#PERSIST/    a PERSISTENT_COOKIES:TRUE' \
   -i /etc/lynx/lynx.cfg

Muitas outras configurações abrangentes a todo o sistema, como "proxies", também conseguem ser configuradas no arquivo "/etc/lynx/lynx.cfg".

Conteúdo

Aplicativo Instalado: lynx
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/lynx e /usr/share/doc/lynx-2.9.2

Descrições Curtas

lynx

é um navegador de informações distribuído, baseado em texto e de uso geral para a "World Wide Web"

Capítulo 19. Clientes de Mensagem/Notícias

Os Clientes de Mensagem te ajudam a recuperar ("Fetchmail"), classificar ("Procmail"), ler e redigir respostas ("Heirloom mailx", "Mutt", "Pine", "Kmail", "Balsa", "Evolution", "SeaMonkey") para mensagem eletrônica.

Os clientes de notícias também te ajudam a recuperar, classificar, ler e redigir respostas, mas essas mensagens viajam pela "USENET" (um sistema mundial de boletim informativo) usando o "Network News Transfer Protocol" ("NNTP").

Fetchmail-6.5.2

Introdução ao Fetchmail

O pacote "Fetchmail" contém um aplicativo de recuperação de mensagem. Ele recupera mensagens a partir de servidores remotos de mensagem e as encaminha para o sistema de entrega da máquina local (cliente), de forma que então possam ser lidas por agentes normais usuários de mensagem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/fetchmail/fetchmail-6.5.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c2fa268271f44f4991e6a87804c90211

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 11 MB incluindo testes

  • Tempo de construção estimado: 0,1 UPC (incluindo testes)

Dependências do "Fetchmail"

Recomendadas
Opcionais

MIT Kerberos V5-1.21.3 e libgssapi

Opcional (para executar "fetchmailconf")

Python-3.13.2, construído depois do Tk-8.6.16, com o pacote "py-future"

Instalação do Fetchmail

Crie um(a) usuário(a) dedicado(a) para o aplicativo "fetchmail". Emita os seguintes comandos como o(a) usuário(a) "root":

useradd -c "Usuário(a) Fetchmail" -d /dev/null -g nogroup \
        -s /bin/false -u 38 fetchmail

Instale o "Fetchmail" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install &&
chown -v fetchmail:nogroup /usr/bin/fetchmail

Configurando o Fetchmail

Arquivos de Configuração

~/.fetchmailrc

Informação de Configuração

Nota

Se você estiver se conectando a um servidor de mensagens que suporte "SSL"/"TLS" envolucrado ou modo "implícito" em uma porta dedicada (padrão 993), [então] você deveria usar "fetchmail --ssl" ou adicionar a opção "ssl" em um arquivo de controle de execução.

cat > ~/.fetchmailrc << "EOF"

# O arquivo de registro precisa existir quando o "fetchmail" for invocado, caso contrário ele
# despejará os detalhes na tela. Como acontece com todos os registros, você precisará girá-los
# ou limpá-los de tempos em tempos.
set logfile fetchmail.log
set no bouncemail
# Você provavelmente quer configurar teu nome de usuário(a) local como "postmaster"
set postmaster <nome_usuário(a)>

poll SERVERNAME :
    user <nome_usuário(a)_isp> pass <senha>;
    mda "/usr/bin/procmail -f %F -d %T";
EOF

touch ~/fetchmail.log       &&
chmod -v 0600 ~/.fetchmailrc

Essa é uma configuração de exemplo que deveria ser suficiente para a maioria das pessoas. Você pode adicionar quantos(as) usuários(as) e servidores precisar usando a mesma sintaxe.

man fetchmail: Procure a seção próxima ao final chamada "CONFIGURATION EXAMPLES". Ela dá alguns exemplos rápidos. Existem incontáveis outras opções de configuração quando você se acostumar.

Se espera receber pouquíssimas mensagens, [então] você pode invocar o "fetchmail" quando desejar receber alguma mensagem. Mais comumente, ele é invocado ou no modo de processo de segundo plano, com a opção "-d", ou na linha de comando ou em ".fetchmailrc" (veja-se "DAEMON MODE" em "man fetchmailconf"), ou, alternativamente, é invocado a partir de uma tarefa do "cron".

Conteúdo

Aplicativos Instalados: fetchmail e fetchmailconf
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

fetchmail

quando executado como um(a) usuário(a), isso carregará "~/.fetchmailrc" e baixará a mensagem apropriada

fetchmailconf

destina-se a ajudar você a configurar e a editar um arquivo de configuração ~/.fetchmailrc, usando uma interface GUI Tk. Ele foi escrito para Python e usa o módulo Tkinter

mailx-12.5

Introdução ao Heirloom mailx

O pacote "Heirloom mailx" (anteriormente conhecido como o pacote "Nail") contém o "mailx", um "Mail User Agent" de linha de comando derivado do "Berkeley Mail". Ele é destinado a fornecer a funcionalidade do comando "POSIX" "mailx" com suporte adicional para mensagens "MIME", "IMAP" (incluindo "cache"), "POP3", "SMTP", "S/MIME", encadeamento/classificação de mensagens, pontuação e filtragem. "Heirloom mailx" é especialmente útil para escrever conjuntos de comandos sequenciais e processamento em lote.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Heirloom mailx"

Opcionais

nss-3.108, MIT Kerberos V5-1.21.3 (para autenticação "IMAP" "GSSAPI") e um MTA

Instalação do Heirloom mailx

Nota

Esse pacote não suporta construção paralela.

Instale o "Heirloom mailx" executando os seguintes comandos.

patch -Np1 -i ../heirloom-mailx-12.5-fixes-1.patch &&

sed 's@<openssl@<openssl-1.0/openssl@' \
   -i openssl.c fio.c makeconfig      &&

make -j1 LDFLAGS+="-L /usr/lib/openssl/" \
         SENDMAIL=/usr/sbin/sendmail

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make PREFIX=/usr UCBINSTALL=/usr/bin/install install &&

ln -v -sf mailx /usr/bin/mail &&
ln -v -sf mailx /usr/bin/nail &&

install -v -m755 -d    /usr/share/doc/heirloom-mailx-12.5 &&
install -v -m644 README /usr/share/doc/heirloom-mailx-12.5

Explicações do Comando

make SENDMAIL=/usr/sbin/sendmail: Isso muda o caminho padrão do "MTA" de "/usr/lib/sendmail".

make PREFIX=/usr UCBINSTALL=/usr/bin/install install: Isso muda o caminho padrão da instalação de "/usr/local" e o caminho padrão do comando "install" de "/usr/ucb".

Configurando Heirloom mailx

Arquivos de Configuração

/etc/nail.rc e ~/.mailrc

Informação de Configuração

Para exibir mensagens, o "mailx" usa um aplicativo paginador. Como o padrão "pg" não está disponível em um sistema LFS, é exigido especificar qual paginador é para usar. Por padrão, existe o "more" e o mais confortável "less" instalados. Se a variável "PAGER" não estiver configurada em "/etc/profile" ou "~/.bash_profile", ou se deveria ser outro paginador apenas para leitura de mensagens, [então] ela pode ser configurada abrangente a todo o sistema em "/etc/nail.rc":

echo "set PAGER=<more|less>" >> /etc/nail.rc

ou individualmente para o(a) usuário(a) atual em "~/.mailrc":

echo "set PAGER=<more|less>" >> ~/.mailrc

Outras opções interessantes para configurar nos arquivos de configuração podem ser "EDITOR" e "MAILDIR".

Se não configurado no ambiente para outros pacotes, [então] o editor padrão pode ser configurado por:

echo "set EDITOR=<vim|nano|...>" >> /etc/nail.rc

Dependendo de qual tipo de "MTA" esteja instalado, pode ser exigido configurar a variável "MAILDIR" de forma que o "mailx" esteja apto a encontrar as mensagens:

echo "set MAILDIR=Maildir" >> /etc/nail.rc

Conteúdo

Aplicativos Instalados: mail, mailx e nail
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

mailx

é um "Mail User Agent" de linha de comando compatível com o comando "mailx" encontrado em versões comerciais do Unix

mail

é um link simbólico para "mailx"

nail

é um link simbólico para "mailx"

Mutt-2.2.14

Introdução ao Mutt

O pacote "Mutt" contém um "Mail User Agent". Isso é útil para ler, escrever, responder, salvar e deletar tua mensagem eletrônica.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Mutt"

Recomendadas (para uma versão de texto do manual)
Opcionais

Aspell-0.60.8.1, Cyrus SASL-2.1.28, DocBook-utils-0.6.14, GDB-16.2, GnuPG-2.4.7, GnuTLS-3.8.9, GPGME-1.24.2, libidn-1.42, MIT Kerberos V5-1.21.3, um MTA (que forneça um comando sendmail), slang-2.3.3, SQLite-3.49.1, libgssapi, Mixmaster, QDBM ou Tokyo Cabinet

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/mutt

Instalação do Mutt

Nota

O "Mutt" vem com uma versão "HTML" do manual dele, mas a versão em texto não mais é fornecida porque diferenças na formatação de diferentes navegadores de texto em comparação com a versão enviada causaram reclamações. Para obter um arquivo de texto, os seguintes são usados em ordem de preferência: "lynx" com "overstriking" ("backspaces") para ênfase, "w3m" ou "elinks": os dois últimos aparentemente fornecem texto simples. O texto simples é geralmente preferido, a menos que se leia o manual "HTML", de forma que as instruções abaixo usam o "lynx" se disponível, ou então o "links" para produzir texto simples.

Mutt exige um grupo chamado mail. Você pode adicionar esse grupo, se ele não existir, com este comando (como o(a) usuário(a) root):

groupadd -g 34 mail

Se não instalou um "MTA", [então] você precisa modificar a titularidade da propriedade de "/var/mail" com este comando:

chgrp -v mail /var/mail

Instale o "Mutt" executando os seguintes comandos:

Para garantir que um manual de texto simples seja criado ao usar o "lynx" ou, caso contrário, para usar o "links" para produzi-lo (em vez do "elinks"), execute o seguinte comando:

sed -e 's/ -with_backspaces//' \
     -e 's/elinks/links/'       \
     -e 's/-no-numbering -no-references//' \
     -i doc/Makefile.in

Agora configure e construa o aplicativo:

./configure --prefix=/usr                            \
            --sysconfdir=/etc                        \
            --with-docdir=/usr/share/doc/mutt-2.2.14 \
            --with-ssl                               \
            --enable-external-dotlock                \
            --enable-pop                             \
            --enable-imap                            \
            --enable-hcache                          \
            --enable-sidebar                         &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Nota

Se usou um método "DESTDIR" para instalar somente em um local temporário como um(a) usuário(a) regular (como parte de um processo de gerenciamento de pacotes), [então] você precisará executar o seguinte como o(a) usuário(a) "root" depois de concluir a instalação real:

chown root:mail /usr/bin/mutt_dotlock &&
chmod -v 2755 /usr/bin/mutt_dotlock

Um arquivo "info" agora está instalado, de forma que você também precisará recriar o "/usr/share/info/dir" conforme descrito quando o "Texinfo" foi instalado no LFS.

Explicações do Comando

sed ... -e 's/ -with_backspaces//' ...: Isso desliga os backspaces usados para overstriking quando o lynx for usado, resultando em texto simples legível ao usar o view.

sed ... -e 's/elinks/links/' ...: Isso permite que o links seja executado em vez do elinks que não está no livro.

sed ... -e 's/-no-numbering -no-references//' ...: Isso remove chaves que não são entendidas pelo links.

--enable-external-dotlock: Em algumas circunstâncias, o aplicativo "mutt-dotlock" não é criado. Essa chave garante que ele seja sempre criado.

--enable-pop: Essa chave habilita o suporte a "POP3".

--enable-imap: Essa chave habilita o suporte a "IMAP".

--enable-hcache: Essa chave habilita o "caching" de cabeçalho.

--enable-sidebar: Essa chave habilita o suporte para a barra lateral (uma lista de caixas de mensagens). Ela está desligado por padrão, mas pode ser ligado por ":set sidebar_visible" no "mutt" (e desligado novamente com ":unset"), ou pode ser habilitado em "~/.muttrc".

--with-ssl: Esse parâmetro adiciona suporte a "SSL"/"TLS" a partir do "OpenSSL" em "POP3"/"IMAP"/"SMTP".

--enable-autocrypt --with-sqlite3: Essas duas chaves adicionam suporte para proteção passiva contra coleta de dados, usando "gnupg" e "gpgme" ("gpgme" é habilitado por "autocrypt"). Veja-se O Manual.

--enable-gpgme: Essa chave habilita o suporte a "GPG" por meio do pacote "GPGME". Use essa chave se você quiser suporte a "GPG" no "Mutt".

--enable-smtp: Essa chave habilita o suporte a retransmissão "SMTP".

--with-idn2: Use esse parâmetro se "libidn" e "libidn2" tiverem sido instalados e você desejar usar "libidn2" aqui.

--with-sasl: Esse parâmetro adiciona suporte de autenticação a partir do "Cyrus SASL-2.1.28" em "POP3"/"IMAP"/"SMTP" se eles estiverem habilitados. Dependendo da configuração do servidor, isso possivelmente não seja necessário para "POP3" ou "IMAP". No entanto, é necessário para autenticação "SMTP".

Configurando o Mutt

Arquivos de Configuração

/etc/Muttrc, ~/.muttrc, /etc/mime.types e ~/.mime.types

Informação de Configuração

Nenhuma mudança nesses arquivos é necessária para começar a usar o "Mutt". Quando você estiver pronto(a) para fazer mudanças, a página de manual do "muttrc" é um bom ponto de partida.

Para a finalidade de utilizar o "GnuPG", use o seguinte comando:

cat /usr/share/doc/mutt-2.2.14/samples/gpg.rc >> ~/.muttrc

Conteúdo

Aplicativos Instalados: flea, mutt, mutt_dotlock, muttbug, pgpewrap, mutt_pgpring e smime_keys
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/mutt-2.2.14

Descrições Curtas

flea

é um conjunto de comandos sequenciais que mostra onde informar defeitos

mutt

é um "Mail User Agent" ("MUA") que te habilita ler, escrever e deletar teu mensagem eletrônica

mutt_dotlock

implementa o bloqueio de arquivo de "spool" de mensagem

muttbug

é um conjunto de comandos sequenciais idêntico ao "flea"

pgpewrap

prepara uma linha de comando para os utilitários do "GnuPG-2.4.7"

pgpring

é um despejador de chaveiro para o "PGP". Não é necessário para o "GnuPG-2.4.7"

smime_keys

gerencia um armazenamento de chaves para certificados "S/MIME"

Procmail-3.24

Introdução ao Procmail

O pacote "Procmail" contém um processador autônomo de mensagem. Isso é útil para filtrar e classificar as mensagens recebidas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Procmail"

Recomendadas
Opcionais

libnsl-2.0.1

Instalação do Procmail

Esse pacote não vem com uma suíte de teste.

Instale o "Procmail" executando os seguintes comandos como o(a) usuário(a) "root":

patch -Np1 -i ../procmail-3.24-consolidated_fixes-1.patch &&

make LOCKINGTEST=/tmp MANDIR=/usr/share/man install       &&
make install-suid

Explicações do Comando

make LOCKINGTEST=/tmp install: Isso evita que o "make" te pergunte onde testar os padrões de bloqueio de arquivos.

make install-suid: Modifica as permissões dos arquivos instalados.

Configurando Procmail

Arquivos de Configuração

/etc/procmailrc e ~/.procmailrc

Informação de Configuração

As receitas tem de ser escritas e colocadas em "~/.procmailrc" para execução. A página de manual do "procmailex" é o ponto de partida para aprender como escrever receitas. Para informações adicionais, veja-se também https://pm-doc.sourceforge.net/.

Conteúdo

Aplicativos Instalados: formail, lockfile, mailstat e procmail
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

formail

é um filtro que consegue ser usado para formatar mensagens no formato "mailbox"

lockfile

é um utilitário que consegue bloquear um arquivo para uso único interativamente ou em um conjunto de comandos sequenciais

mailstat

imprime um informe resumido das mensagens que tenham sido filtradas pelo "procmail" desde a última vez que o "mailstat" foi executado

procmail

é um processador autônomo de mensagem. Desempenha todas as funções de um "Mail Delivery Agent" ("MDA")

Outros Aplicativos de Mensagem e Notícias

Balsa-2.6.4 é um cliente de mensagem baseado em "GTK2".

seamonkey-2.53.20 inclui um cliente de mensagem e um leitor de notícias na instalação dele.

Thunderbird-128.7.1esr é um cliente de mensagem/notícias baseado na base do código do "Mozilla".

Evolution-3.54.3 é um cliente de mensagens e organizador originário da área de trabalho GNOME.

Parte V. Servidores

Capítulo 20. Servidores Principais

Os servidores principais são os aplicativos que fornecem conteúdo ou serviços para os(as) usuários(as) ou outros aplicativos.

Apache-2.4.63

Introdução ao Apache HTTPD

O pacote "Apache HTTPD" contém um servidor "HTTP" de fonte aberto. Ele é útil para criar sítios "web" locais de intranet ou executar grandes operações de serviço "web".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.63.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8b5ee2a61d569a3eacec5778e7f20e13

  • Tamanho da transferência: 7,2 MB

  • Espaço em disco estimado exigido: 88 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Transferências Adicionais

Dependências do "Apache HTTPD"

Exigidas

Apr-Util-1.6.3 e pcre2-10.45

Opcionais

Brotli-1.1.0, Doxygen-1.13.2, jansson-2.14, libxml2-2.13.6, Lua-5.4.7, Lynx-2.9.2 ou Links-2.30 ou ELinks, nghttp2-1.64.0, OpenLDAP-2.6.9 (Apr-Util-1.6.3 precisa ser instalado com suporte ldap), rsync-3.4.1, Berkeley DB (obsoleto) e Distcache

Instalação do Apache HTTPD

Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é fortemente encorajado. Crie o seguinte grupo e usuário(a) usando os seguintes comandos como "root":

groupadd -g 25 apache &&
useradd -c "Servidor Apache" -d /srv/www -g apache \
        -s /bin/false -u 25 apache

Construa e instale o "Apache HTTPD" executando os seguintes comandos:

patch -Np1 -i ../httpd-2.4.63-blfs_layout-1.patch             &&

sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in              &&

sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:'       \
    -e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::'   \
    -e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \
    -i configure  &&

sed -e '/encoding.h/a # include <libxml/xmlstring.h>' \
    -i modules/filters/mod_xml2enc.c  &&

./configure --enable-authnz-fcgi                              \
            --enable-layout=BLFS                              \
            --enable-mods-shared="all cgi"                    \
            --enable-mpms-shared=all                          \
            --enable-suexec=shared                            \
            --with-apr=/usr/bin/apr-1-config                  \
            --with-apr-util=/usr/bin/apu-1-config             \
            --with-suexec-bin=/usr/lib/httpd/suexec           \
            --with-suexec-caller=apache                       \
            --with-suexec-docroot=/srv/www                    \
            --with-suexec-logfile=/var/log/httpd/suexec.log   \
            --with-suexec-uidmin=100                          \
            --with-suexec-userdir=public_html                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install  &&

mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &&
chgrp apache          /usr/lib/httpd/suexec &&
chmod 4754             /usr/lib/httpd/suexec &&

chown -v -R apache:apache /srv/www

Explicações do Comando

sed '/dir.*CFG_PREFIX/s@^@#@'...: Força o utilitário "apxs" a usar nomes absolutos de caminho para módulos, quando instruído a fazê-lo.

sed -e '/HTTPD_ROOT/s ...: Corrige alguns caminhos.

sed -e '/encoding.h/a ...; Corrigir construção contra a libxml-2.12.x.

--enable-authnz-fcgi: Construa autenticação e autorização baseada no autorizador "FastCGI" (módulo CGI rápido "mod_authnz_fcgi.so").

--enable-mods-shared="all cgi": Os módulos deveriam ser compilados e usados como "Dynamic Shared Objects" ("DSOs") de forma que possam ser incluídos e excluídos a partir do servidor usando as diretivas de configuração de tempo de execução.

--enable-mpms-shared=all: Essa chave garante que todos os "Multi Processing Modules" ("MPM") sejam construídos como "Dynamic Shared Objects" ("DSOs"), de forma que o(a) usuário(a) consiga escolher qual usar em tempo de execução.

--enable-suexec: Essa chave habilita a construção do módulo "suEXEC" do "Apache" que pode ser usado para permitir que os(as) usuários(as) executem conjuntos de comandos sequenciais "CGI" e "SSI" sob "IDs" de usuário(a) diferentes do "ID" de usuário(a) do servidor web chamante.

--with-suexec-*: Essas chaves controlam o comportamento do módulo "suEXEC", tais como a raiz padrão do documento, "UID" mínimo que pode ser usado para executar o conjunto de comandos sequenciais sob o "suEXEC". Por favor, observe que, com "UID" mínimo de 100, você não consegue executar conjuntos de comandos sequenciais "CGI" ou "SSI" sob o s"uEXEC" como o(a) usuário(a) "apache".

... /usr/lib/httpd/suexec: Esses comandos colocam o envólucro "suexec" no local apropriado, já que ele não se destina a ser executado diretamente. Eles também ajustam as permissões adequadas do binário, tornando-o "setgid" do "apache".

chown -R apache:apache /srv/www: Por padrão, o processo de instalação instala arquivos (documentação, mensagens de erro, ícones padrão, etc.) com a titularidade de propriedade do(a) usuário(a) que extraiu os arquivos a partir do arquivo "tar". Se quiser mudar a titularidade de propriedade para outro(a) usuário(a), [então] você deveria fazê-lo neste ponto. O único requisito é o de que os diretórios de documentos precisam ser acessíveis pelo processo "httpd" com permissões ("r-x") e os arquivos precisam ser legíveis ("r--") pelo(a) usuário(a) "apache".

Configurando o Apache

Arquivos de Configuração

/etc/httpd/httpd.conf e /etc/httpd/extra/*

Informação de Configuração

Veja-se file:///usr/share/httpd/manual/configuring.html para instruções detalhadas relativas a personalizar o teu arquivo de configuração do servidor de "HTTP" "Apache".

Não existe razão, pelo menos para sítios voltados para a Internet, para não usar encriptação SSL. Configurar um sítio seguro não custa nada, exceto instalar uma pequena ferramenta adicional e alguns minutos de trabalho de configuração. Use esta diretriz em https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website para criar certificados aceitos mundialmente e renová-los regularmente.

Conjunto de Comandos Sequenciais de Inicialização

Se você quiser que o servidor "Apache" inicie automaticamente quando o sistema for inicializado, [então] instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/httpd" incluído no pacote "blfs-bootscripts-20250225" "":

make install-httpd

Conteúdo

Aplicativos Instalados: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve e rotatelogs
Bibliotecas Instaladas: Várias bibliotecas sob "/usr/lib/httpd/modules/"
Diretórios Instalados: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd e /var/run/httpd

Descrições Curtas

ab

é uma ferramenta para avaliar comparativamente o teu servidor de "HTTP" "Apache"

apachectl

é uma estrutura de interação direta com o(a) usuário(a) para o servidor de "HTTP" "Apache" o qual foi projetado para ajudar o(a) administrador(a) a controlar o funcionamento do processo de segundo plano "httpd" do "Apache"

apxs

é uma ferramenta para construir e instalar módulos de extensão para o servidor de "HTTP" "Apache"

checkgid

é um aplicativo que verifica se pode "setgid" para o grupo especificado. Isso é para ver se é um grupo válido para o "Apache2" usar em tempo de execução. Se o(a) usuário(a) (deveria ser executado como superusuário(a)) estiver nesse grupo, ou puder "setgid" para ele, [então] ele retornará 0

dbmmanage

é usado para criar e atualizar os arquivos no formato "DBM" usados para armazenar nomes de usuário(a) e senhas para autenticação básica de usuários(as) "HTTP"

fcgistarter

é uma ferramenta para iniciar um aplicativo "FastCGI"

htcacheclean

é usado para limpar o "cache" do disco

htdbm

é usado para manipular as bases de dados de senha "DBM"

htdigest

é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuário(a), domínios e senhas para autenticação de resumo dos(as) usuários(as) "HTTP"

htpasswd

é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuários(as) e senhas para autenticação básica dos(as) usuários(as) "HTTP"

httpd

é o aplicativo servidor de "HTTP" "Apache"

httxt2dbm

é usado para gerar arquivos "DBM" a partir de texto, para uso no "RewriteMap"

logresolve

é um aplicativo de pós-processamento para resolver endereços "IP" nos arquivos de registro de acesso do "Apache"

rotatelogs

é um aplicativo simples para uso em conjunto com o recurso de arquivo de registro canalizado do "Apache"

suexec

permite que os(as) usuários(as) executem aplicativos "CGI" e "SSI" como um(a) usuário(a) diferente

BIND-9.20.6

Introdução ao BIND

O pacote BIND fornece um servidor DNS e utilitários clientes. Se você estiver interessado(a) somente nos utilitários, [então] consulte Utilitários BIND-9.20.6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f

  • Tamanho da transferência: 5,4 MB

  • Espaço em disco estimado exigido: 137 MB (22 MB instalado)

  • Tempo de construção estimado: 0,4 UPC (com paralelismo=4; cerca de 40 minutos, um tanto independente do processador, para executar a suíte completa de teste)

Dependências do "BIND"

Exigidas

liburcu-0.15.1 e libuv-1.50.0

Recomendadas
Opcionais

cURL-8.12.1, libidn2-2.3.7, libxml2-2.13.6, lmdb-0.9.31, MIT Kerberos V5-1.21.3, pytest-8.3.4, sphinx-8.2.1 (exigido para construir documentação), cmocka, geoip, jemalloc, w3m

Opcional (para executar a suíte de teste)

Net-DNS-1.50 e hypothesis

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/bind

Instalação do BIND

Instale o "BIND" executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --localstatedir=/var    \
            --mandir=/usr/share/man \
            --disable-static        &&
make

Emita os seguintes comandos para executar a suíte completa de teste. Primeiro, como o(a) usuário(a) "root", configure algumas interfaces de teste:

Nota

Se o "IPv6" não estiver habilitado no núcleo, [então] existirão diversas mensagens de erro: "RTNETLINK answers: Operation not permitted". Essas mensagens não afetam os testes.

bin/tests/system/ifconfig.sh up

A suíte de teste pode indicar alguns testes ignorados, dependendo de quais opções de configuração forem usadas. Alguns testes são marcados com UNTESTED ou até mesmo falham se Net-DNS-1.50 não estiver instalado. Um teste, dnssec, é conhecido por falhar. Os testes exigem o módulo Python hypothesis, que não está no BLFS. Para contornar isso, as instruções abaixo criam um ambiente virtual Python e, em seguida, instalam o módulo nele antes de executar os testes. Para executar os testes, como um(a) usuário(a) sem privilégios, execute:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install hypothesis                        &&
make -k check                                  &&
deactivate

Novamente como "root", limpe as interfaces de teste:

bin/tests/system/ifconfig.sh down

Finalmente, instale o pacote como o(a) usuário(a) "root":

make install

Explicações do Comando

--sysconfdir=/etc: Esse parâmetro força o "BIND" a procurar arquivos de configuração em "/etc" em vez de "/usr/etc".

--with-libidn2: Esse parâmetro habilita o suporte a "Internationalized Domain Names in Applications" ("IDNA2008").

--enable-fetchlimit: Use essa opção se você quiser estar apto(a) a limitar a taxa de consultas recursivas do cliente. Isso possivelmente seja útil em servidores que recebem um grande número de consultas.

--disable-doh: Use essa opção se você não tiver nghttp2-1.64.0 instalado e não precisar de suporte para DNS sobre HTTPS.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Configurando o BIND

Arquivos de Configuração

named.conf, root.hints, 127.0.0, rndc.conf e resolv.conf

Informação de Configuração

O BIND será configurado para executar em uma jaula chroot como um(a) usuário(a) sem privilégios (named). Essa configuração é mais segura naquilo que um comprometimento do DNS consegue afetar somente uns poucos arquivos no diretório HOME do(a) usuário(a) named.

Crie o(a) usuário(a) sem privilégios e grupo "named":

groupadd -g 20 named &&
useradd -c "Proprietário(a) do BIND" -g named -s /bin/false -u 20 named &&
install -d -m770 -o named -g named /srv/named

Configure alguns arquivos, diretórios e dispositivos necessários ao "BIND":

mkdir -p /srv/named &&
cd      /srv/named &&
mkdir -p dev etc/named/{slave,pz} usr/lib/engines var/run/named &&
mknod /srv/named/dev/null c 1 3 &&
mknod /srv/named/dev/urandom c 1 9 &&
chmod 666 /srv/named/dev/{null,urandom} &&
cp /etc/localtime etc

O arquivo "rndc.conf" contém informações para controlar as operações do "named" com o utilitário "rndc". Gere uma chave para uso no "named.conf" e "rndc.conf" com o comando "rndc-confgen":

rndc-confgen -a -b 512 -t /srv/named

Crie o arquivo named.conf a partir do qual o named lerá o local dos arquivos de zona, servidores raiz de nomes e chaves seguras DNS:

cat >> /srv/named/etc/named.conf << "EOF"
options {
    directory "/etc/named";
    pid-file "/var/run/named.pid";
    statistics-file "/var/run/named.stats";

};
zone "." {
    type hint;
    file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
    type master;
    file "pz/127.0.0";
};

// O "Bind" 9 agora registra por padrão por intermédio do "syslog" (exceto depuração).
// Estas são as regras padrão de registro.

logging {
    category default { default_syslog; default_debug; };
    category unmatched { null; };

  channel default_syslog {
      syslog daemon;                      // Envia para o recurso de processo de segundo plano
                                          // do "syslog"
      severity info;                      // Envia somente informações prioritárias
                                          // e superiores
  };

  channel default_debug {
      file "named.run";                   // Escreve para "named.run" no 
                                          // diretório de trabalho. 
                                          // Observação: "stderr" é 
                                          // usado em vez de "named.run" 
                                          // se o servidor for iniciado 
                                          // com a opção "-f".
      severity dynamic;                   // Registra no nível de 
                                          // depuração atual do servidor.
  };

  channel default_stderr {
      stderr;                             // Escreve para "stderr"
      severity info;                      // Envia somente informações prioritárias
                                          // e superiores
  };

  channel null {
      null;                               // Descarta tudo enviado para
                                          // esse canal
  };
};
EOF

Crie um arquivo de zona com o seguinte conteúdo:

cat > /srv/named/etc/named/pz/127.0.0 << "EOF"
$TTL 3D
@     IN      SOA     ns.local.domain. hostmaster.local.domain. (
                        1       ; Serial
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.local.domain.
1               PTR     localhost.
EOF

Crie o arquivo "root.hints" com os seguintes comandos:

Nota

Deve-se ter cuidado para garantir que não existam espaços iniciais neste arquivo.

cat > /srv/named/etc/named/root.hints << "EOF"
.                       6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
A.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:503:ba3e::2:30
B.ROOT-SERVERS.NET.     6D  IN      A       170.247.170.2
B.ROOT-SERVERS.NET.     6D  IN      AAAA    2801:1b8:10::b
C.ROOT-SERVERS.NET.     6D  IN      A       192.33.4.12
C.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:2::c
D.ROOT-SERVERS.NET.     6D  IN      A       199.7.91.13
D.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:2d::d
E.ROOT-SERVERS.NET.     6D  IN      A       192.203.230.10
E.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:a8::e
F.ROOT-SERVERS.NET.     6D  IN      A       192.5.5.241
F.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:2f::f
G.ROOT-SERVERS.NET.     6D  IN      A       192.112.36.4
G.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:12::d0d
H.ROOT-SERVERS.NET.     6D  IN      A       198.97.190.53
H.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:1::53
I.ROOT-SERVERS.NET.     6D  IN      A       192.36.148.17
I.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:7fe::53
J.ROOT-SERVERS.NET.     6D  IN      A       192.58.128.30
J.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:503:c27::2:30
K.ROOT-SERVERS.NET.     6D  IN      A       193.0.14.129
K.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:7fd::1
L.ROOT-SERVERS.NET.     6D  IN      A       199.7.83.42
L.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:9f::42
M.ROOT-SERVERS.NET.     6D  IN      A       202.12.27.33
M.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:dc3::35
EOF

O arquivo "root.hints" é uma lista de servidores raiz de nomes. Esse arquivo precisa ser atualizado periodicamente com o utilitário "dig". Uma cópia atual do "root.hints" pode ser obtida a partir de https://www.internic.net/domain/named.root. Para detalhes, consulte-se o "Manual de Referência do(a) Administrador(a) do BIND 9".

Crie ou modifique o "resolv.conf" para usar o novo servidor de nomes com os seguintes comandos:

Nota

Substitua <teudomínio.com> pelo teu próprio nome de domínio válido.

cp /etc/resolv.conf /etc/resolv.conf.bak &&
cat > /etc/resolv.conf << "EOF"
search <teudomínio.com>
nameserver 127.0.0.1
EOF

Configure as permissões relativas à jaula "chroot" com o seguinte comando:

chown -R named:named /srv/named

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar o servidor "DNS" na inicialização, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/bind" incluso no pacote "blfs-bootscripts-20250225" "":

make install-bind

Agora inicie o "BIND" com o seguinte comando:

/etc/rc.d/init.d/bind start

Testando o BIND

Teste a nova instalação do "BIND" 9. Primeiro consulte o endereço local do dispositivo com o "dig":

dig -x 127.0.0.1

Agora tente uma pesquisa externa de nome, observando a diferença de velocidade em pesquisas repetidas devido ao cache. Execute o comando "dig" duas vezes relativo ao mesmo endereço:

dig www.linuxfromscratch.org &&
dig www.linuxfromscratch.org

Você pode ver resultados quase instantâneos com as pesquisas de cache do "named". Consulte-se o Manual de Referência do(a) Administrador(a) do "BIND" (veja-se abaixo) para mais opções de configuração.

Manual de Referência do(a) Administrador(a) (MRA)

A documentação ARM (não confunda com a arquitetura do processador) está incluída no pacote do fonte. A documentação está no formato .rst, o que significa que ela pode ser convertida em formatos legíveis por humanos se o sphinx-8.2.1 estiver instalado.

Quando o BIND estiver configurado, especialmente se ele for operar em um cenário da vida real, é altamente recomendado consultar a documentação ARM. O ISC fornece um conjunto atualizado de excelente documentação junto com cada lançamento, de forma que possa ser facilmente visualizada e (ou) baixada – então, não existe desculpa para não ler os documentos. Os formatos que o ISC fornece são epub e HTML em https://downloads.isc.org/isc/bind9/9.20.6/doc/arm/.

Conteúdo

Aplicativos Instalados: arpaname, ddns-confgen, delv, dig, dnssec-cds, dnssec-dsfromkey, dnssec-importkey, dnssec-keyfromlabel, dnssec-keygen, dnssec-ksr, dnssec-revoke, dnssec-settime, dnssec-signzone, dnssec-verify, host, mdig, named, named-checkconf, named-checkzone, named-compilezone, named-journalprint, named-nzd2nzf, named-rrchecker, nsec3hash, nslookup, nsupdate, rndc, rndc-confgen e tsig-keygen (link simbólico)
Bibliotecas Instaladas: libdns.so, libisc.so, libisccc.so, libisccfg.so e libns.so
Diretórios Instalados: /usr/include/{dns,dst,irs,isc,isccc,isccfg,ns}, /usr/lib/bind e /srv/named

Descrições Curtas

arpaname

traduz endereços "IP" para os nomes "ARPA" correspondentes

ddns-confgen

gera uma chave para uso pelo "nsupdate" e pelo "named"

delv

é uma nova ferramenta de depuração que é uma sucessora do "dig"

dig

interroga servidores "DNS"

dnssec-cds

muda os registros "DS" para uma zona filha baseado em "CDS"/"CDNSKEY"

dnssec-dsfromkey

gera o Registro de Recurso ("RR") do "Delegation Signer" ("DS")

dnssec-importkey

lê um registro público "DNSKEY" e gera um par de arquivos ".key"/".private"

dnssec-keyfromlabel

obtém chaves com o rótulo dado a partir de um dispositivo de "hardware" de criptografia e constrói arquivos de chave para "DNSSEC"

dnssec-keymgr

garante a cobertura correta "DNSKEY" baseada em uma política definida

dnssec-ksr

cria arquivos de resposta de chave assinada (SKR) para configurações KSK offline

dnssec-revoke

configura o bit "REVOKED" em uma chave "DNSSEC"

dnssec-settime

configura os metadados de hora da chave para uma chave "DNSSEC"

dnssec-signzone

gera versões assinadas de arquivos de zona

dnssec-verify

verifica se uma zona está totalmente assinada para cada algoritmo encontrado no conjunto "RR" do "DNSKEY" para a zona e se as cadeias "NSEC"/"NSEC3" estão completas

host

é um utilitário para pesquisas de "DNS"

mdig

é uma versão do "dig" que permite múltiplas consultas ao mesmo tempo

named

é o processo de segundo plano do servidor de nomes

named-checkconf

verifica a sintaxe dos arquivos "named.conf"

named-checkzone

verifica a validade do arquivo de zona

named-compilezone

é semelhante ao "named-checkzone", mas sempre despeja o conteúdo da zona em um arquivo especificado em um formato especificado

named-journalprint

imprime o diário da zona em formato legível por humanos(as)

named-rrchecker

lê um registro individual de recurso "DNS" a partir da entrada padrão e verifica se ele está sintaticamente correto

named-nzd2nzf

converte uma base de dados "NZD" para o formato de texto "NZF"

nsec3hash

gera um resumo "NSEC3" baseado em um conjunto de parâmetros "NSEC3"

nslookup

é um aplicativo usado para consultar servidores de nomes de domínio da Internet

nsupdate

é usado para submeter solicitações de atualização de "DNS"

rndc

controla a operação do "BIND"

rndc-confgen

gera arquivos "rndc.conf"

tsig-keygen

é um link simbólico para o "ddns-confgen"

Servidor DHCP Kea 2.6.1

Introdução ao Servidor DHCP Kea do ISC

O pacote ISC Kea contém os aplicativos de servidor para DHCP. É o sucessor do antigo servidor DHCP do ISC, que está em fim de vida desde dezembro de 2022.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.isc.org/isc/kea/2.6.1/kea-2.6.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5f4fe79ed29f5ff2802e2961d1827b25

  • Tamanho da transferência: 9,9 MB

  • Espaço em disco estimado exigido: 1,5 GB (332 MB instalado; adicionar 4 GB para testes)

  • Tempo de construção estimado: 4,1 UPC (com paralelismo=4; adicionar 12 UPC para testes)

Transferências Adicionais

Dependências do Kea

Exigidas

Boost-1.87.0 e log4cplus-2.1.2

Opcionais

MIT Kerberos V5-1.21.3, Valgrind-3.24.0; para documentação: Doxygen-1.13.2, Graphviz-12.2.1 e sphinx_rtd_theme-3.0.2; para testes: GoogleTest

Estruturas opcionais de retaguarda de base de dados

MariaDB-11.4.5 ou MySQL e PostgreSQL-17.4

Configuração do Núcleo

Você precisa ter suporte a Packet Socket. Suporte a IPv6 é opcional.

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> Packet socket                                                 [PACKET]
    [*]   TCP/IP networking                                               [INET]
    <*>     The IPv6 protocol --->                                        [IPV6]

Instalação do Servidor DHCP Kea do ISC

Primeiro, aplique um remendo que corrige um problema com a versão mais recente do boost:

patch -Np1 -i ../kea-2.6.1-fix_boost_1_87-1.patch

Instale o Servidor DHCP Kea do ISC executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --enable-shell       \
            --with-openssl       \
            --disable-static     \
            --docdir=/usr/share/doc/kea-2.6.1 &&
make

Para testar os resultados, você precisa ter instalado o GoogleTest e mantido o fonte dele. Você também deveria ter passado --with-gtest-source=/caminho/para/diretório_fonte/googletest para configure acima. Execute os testes com make check. Três testes na suíte TLSTest são conhecidos por falharem.

Para instalar a suíte Servidor DHCP Kea do ISC, emita os seguintes comandos como o(a) usuário(a) root:

make -j1 install

Explicações do Comando

--enable-shell: Permite construir kea-shell, uma interface de linha de comando para o agente de controle.

--with-openssl: Permite usar OpenSSL para comunicação com o agente de controle e para atualizações de DNS.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-pgsql ou --with-mysql: Kea do ISC consegue armazenar as concessões em uma base de dados. Isso pode ser útil em ambientes grandes executando um cluster de servidores DHCP. Usar a estrutura de retaguarda memfile (que é um arquivo CSV armazenado localmente) é possível de qualquer maneira.

--enable-generate-docs: Se a documentação for para ser reconstruída, adicione essa opção. Diversas dependências precisam estar instaladas para gerar a documentação.

make -j1 install: O ISC não recomenda nenhuma forma de paralelismo ou opções de tarefa de servidor ao fazer a instalação.

Configurando o Servidor DHCP Kea do ISC

O suporte de IPv4, IPv6 e DDNS foi dividido em servidores separados que executam independentemente um do outro. Cada um deles tem o próprio arquivo dele de configuração. Arquivos adicionais de configuração vem oriundos do agente keactrl, que é usado para controlar os servidores de maneira fácil.

Consulte-se o Manual de Referência do(a) Administrador(a) do Kea para informações detalhadas acerca da configuração do Kea do ISC, pois ele é um sistema bastante capaz. A configuração mostrada abaixo é o mínimo para colocar um servidor DHCP em execução, mas já inclui configuração para DDNS (Dynamic DNS). Essa configuração poderia estar funcionando para redes de intercomunicação pequenas com poucos clientes e baixo tráfego. Para instalações maiores com milhares de clientes, o Kea do ISC pode ser configurado para usar bases de dados (mariadb ou postgresql) para armazenar as concessões e construir um cluster com múltiplos nós. Ele pode ser integrado ao Stork do ISC, que é um painel de gerenciamento para o Kea do ISC.

Se você quiser iniciar o Servidor DHCP na inicialização, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/kea-dhcpd incluído no pacote blfs-bootscripts-20250225 :

make install-kea-dhcpd

Arquivos de Configuração

/etc/kea/keactrl.conf, /etc/kea/kea-ctrl-agent.conf, /etc/kea/kea-dhcp4.conf, /etc/kea/kea-dhcp6.conf e /etc/kea/kea-dhcp-ddns.conf

Configuração do Controle do Kea

keactrl é usado para controlar os servidores independentes (IPv4, IPv6, DDNS). O arquivo de configuração dele, /etc/kea/keactrl.conf, é instalado por padrão e inclui muitas configurações de caminho que são definidas devido ao configure ao tempo da construção. Também inclui configurações para especificar qual dos servidores deveria ser iniciado.

  • Agente de Controle

    O Agente de Controle é um processo de segundo plano que permite a (re)configuração do serviço DHCP do Kea via API REST. Configure ctrl_agent=yes para iniciar o agente de controle (serviço que fornece uma API REST); configure ctrl_agent=no caso o agente de controle não seja necessário.

  • Servidor DHCP de IPv4

    Esse processo de segundo plano lida com solicitações de endereços IPv4. Configure dhcp4=yes para iniciá-lo; configure dhcp4=no caso o serviço DHCP para IPv4 não seja desejado.

  • Servidor DHCP de IPv6

    Esse processo de segundo plano lida com solicitações de endereços IPv6. Configure dhcp6=yes para iniciá-lo; configure dhcp6=no caso o serviço DHCP para IPv6 não seja desejado.

  • DNS Dinâmico

    Esse processo de segundo plano é usado para atualizar um servidor DNS dinamicamente quando Kea atribui um endereço IP a um dispositivo. Configure dhcp_ddns=yes para habilitá-lo; configure dhcp_ddns=no caso as atualizações dinâmicas de DNS não sejam desejadas.

O serviço Netconf não é instalado porque as dependências exigidas não são abrangidas pelo atual livro do BLFS. .

Com o seguinte comando, o Kea será configurado para iniciar o serviço DHCP para IPv4 e a atualização dinâmica do DNS, enquanto o agente de controle e o serviço DHCP para IPv6 permanecerão inativos. Ajuste o comando para atender às tuas necessidades nos serviços iniciados e execute como o(a) usuário(a) root:

sed -e "s/^dhcp4=.*/dhcp4=yes/" \
    -e "s/^dhcp6=.*/dhcp6=no/" \
    -e "s/^dhcp_ddns=.*/dhcp_ddns=yes/" \
    -e "s/^ctrl_agent=.*/ctrl_agent=no/" \
    -i /etc/kea/keactrl.conf

Configuração do Agente de Controle

A configuração fornecida poderia ser usada sem mudanças, mas, no BLFS, objetos como soquetes são armazenados em /run em vez de em /tmp.

cat > /etc/kea/kea-ctrl-agent.conf << "EOF"
// Inicia /etc/kea/kea-ctrl-agent.conf
{
  // Esta é uma configuração básica para o Agente de Controle do Kea.
  // Interface RESTful para estar disponível em http://127.0.0.1:8000/
  "Control-agent": {
    "http-host": "127.0.0.1",
    "http-port": 8000,
    "control-sockets": {
      "dhcp4": {
        "socket-type": "unix",
        "socket-name": "/run/kea4-ctrl-socket"
      },
      "dhcp6": {
        "socket-type": "unix",
        "socket-name": "/run/kea6-ctrl-socket"
      },
      "d2": {
        "socket-type": "unix",
        "socket-name": "/run/kea-ddns-ctrl-socket"
      }
    },

    "loggers": [
      {
        "name": "kea-ctrl-agent",
        "output_options": [
          {
            "output": "/var/log/kea-ctrl-agent.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// Termina /etc/kea/kea-ctrl-agent.conf
EOF

Configuração do Servidor DHCP de IPv4

Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp4.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o executando o seguinte comando como o(a) usuário(a) root (você precisará editar esse arquivo de qualquer maneira: pelo menos o campo interfaces, o campo ddns-qualifying-suffix e quase todos os campos em Subnet4:

cat > /etc/kea/kea-dhcp4.conf << "EOF"
// Begin /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    // Add names of your network interfaces to listen on.
    "interfaces-config": {
      "interfaces": [ "eth0", "eth2" ]
    },

    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea4-ctrl-socket"
    },

    "lease-database": {
      "type": "memfile",
      "lfc-interval": 3600
    },

    "expired-leases-processing": {
      "reclaim-timer-wait-time": 10,
      "flush-reclaimed-timer-wait-time": 25,
      "hold-reclaimed-time": 3600,
      "max-reclaim-leases": 100,
      "max-reclaim-time": 250,
      "unwarned-reclaim-cycles": 5
    },

    "renew-timer": 900,
    "rebind-timer": 1800,
    "valid-lifetime": 3600,

    // Enable DDNS - Kea will dynamically update the DNS
    "ddns-send-updates" : true,
    "ddns-qualifying-suffix": "your.domain.tld",
    "dhcp-ddns" : {
      "enable-updates": true
    },

    "subnet4": [
      {
        "id": 1001,   // Each subnet requires a unique numeric id
        "subnet": "192.168.56.0/24",
        "pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ],
        "option-data": [
          {
            "name": "domain-name",
            "data": "your.domain.tld"
          },
          {
            "name": "domain-name-servers",
            "data": "192.168.56.2, 192.168.3.7"
          },
          {
            "name": "domain-search",
            "data": "your.domain.tld"
          },
          {
            "name": "routers",
            "data": "192.168.56.2"
          }
        ]
      }
    ],

    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "/var/log/kea-dhcp4.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// End /etc/kea/kea-dhcp4.conf
EOF

Configuração do Servidor DHCP de IPv6

A configuração para IPv6 é semelhante à configuração do IPv4. O arquivo de configuração é /etc/kea/kea-dhcp6.conf.

Configuração do DNS Dinâmico

Se existir um servidor BIND-9.20.6 executando, o Kea do ISC poderá atualizar o DNS quando fornecer um endereço IP para um cliente. Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp-ddns.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o executando o seguinte comando como o(a) usuário(a) root:

cat > /etc/kea/kea-dhcp-ddns.conf << "EOF"
// Inicia /etc/kea/kea-dhcp-ddns.conf
{
  "DhcpDdns": {
    "ip-address": "127.0.0.1",
    "port": 53001,
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea-ddns-ctrl-socket"
    },

    "tsig-keys": [
      {
        "name"      : "rndc-key",
        "algorithm" : "hmac-sha256",
        "secret"    : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM="
      }
    ],

    "forward-ddns" : {
      "ddns-domains" : [
        {
          "name" : "your.domain.tld.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "reverse-ddns" : {
      "ddns-domains" : [
        {
          "name" : "56.168.192.in-addr.arpa.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "loggers": [
      {
        "name": "kea-dhcp-ddns",
        "output_options": [
          {
            "output": "/var/log/kea-ddns.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// Termina /etc/kea/kea-dhcp-ddns.conf
EOF

Nota

O valor de secret é apenas um exemplo. Gere a chave para tua instalação usando o comando rndc-confgen -a ou o comando tsig-keygen, ambos fornecidos por BIND-9.20.6.

Nessa configuração de exemplo, é presumido que o servidor DNS executa na mesma máquina que o Kea (acessível via 127.0.0.1) e que essa máquina tenha o IP 192.168.56.2.

Conteúdo

Aplicativos Instalados: keactrl, kea-admin, kea-ctrl-agent, kea-dhcp4, kea-dhcp6, kea-dhcp-ddns, kea-lfc, kea-shell
Bibliotecas Instaladas: libkea-asiodns.so, libkea-asiolink.so, libkea-cc.so, libkea-cgfclient.so, libkea-cryptolink.so, libkea-d2srv.so, libkea-database.so, libkea-dhcp_ddns.so, libkea-dhcp++.so, libkea-dhcpsrv.so, libkea-dns++.so, libkea-eval.so, libkea-exceptions.so, libkea-hooks.so, libkea-http.so, libkea-log.so, libkea-process.so, libkea-stats.so, libkea-tcp.so, libkea-util.so e libkea-util-io.so
Diretórios Instalados: /etc/kea, /usr/include/kea, /usr/lib/kea, /usr/lib/python3.13/site-packages/kea, /usr/share/kea, /usr/share/doc/kea-2.6.1 e /var/lib/kea

Descrições Curtas

keactrl

Ferramenta para controlar (iniciar/parar) os processos do servidor.

kea-admin

kea-admin é um conjunto de comandos sequenciais de shell que oferece manutenção de base de dados.

kea-ctrl-agent

Processo de segundo plano que expõe uma interface de controle RESTful para gerenciar servidores Kea.

kea-dhcp4

O processo de segundo plano do servidor que fornece endereços IPv4.

kea-dhcp6

O processo de segundo plano do servidor que fornece endereços IPv6.

kea-dhcp-ddns

O processo de segundo plano do servidor que realiza as atualizações dinâmicas de DNS.

kea-lfc

O processo de serviço kea-lfc remove informações redundantes dos arquivos usados para fornecer armazenamento persistente para a estrutura de retaguarda de base de dados memfile. Ele é executado pelo servidor DHCP do Kea.

keashell

Cliente RESTful para os serviços do Kea do ISC.

ProFTPD-1.3.8b

Introdução ao ProFTPD

O pacote "ProFTPD" contém um processo de segundo plano "FTP" seguro e altamente configurável. Isso é útil para servir arquivamentos grandes de arquivos em uma rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "ProFTPD"

Opcionais

libcap-2.73 com PAM, libssh2-1.11.1, Linux-PAM-1.7.0, MariaDB-11.4.5 ou MySQL, pcre2-10.45, PostgreSQL-17.4 e Net::SSH2

Instalação do ProFTPD

Por motivos de segurança, você deveria instalar o "ProFTPD" usando um(a) usuário(a) e grupo sem privilégios. Como o(a) usuário(a) "root":

groupadd -g 46 proftpd                            &&
useradd -c proftpd -d /srv/ftp -g proftpd \
        -s /usr/bin/proftpdshell -u 46 proftpd     &&

install -v -d -m775 -o proftpd -g proftpd /srv/ftp &&
ln -v -s /usr/bin/false /usr/bin/proftpdshell      &&
echo /usr/bin/proftpdshell >> /etc/shells

Instale o "ProFTPD" como um(a) usuário(a) sem privilégios executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run &&
make

Esses pacotes não vem com uma suíte de teste usável.

Agora, como o(a) usuário(a) root:

make install                                   &&
install -d -m755 /usr/share/doc/proftpd-1.3.8b &&
cp -Rv doc/*     /usr/share/doc/proftpd-1.3.8b

Explicações do Comando

install -v -d -m775 -o proftpd -g proftpd /srv/ftp: Crie o diretório lar para o "ProFTPD".

ln -v -s /usr/bin/false /usr/bin/proftpdshell: Configure o "shell" padrão como um link para um "shell" inválido.

echo /usr/bin/proftpdshell >> /etc/shells: Falsifique um "shell" válido para fins de compatibilidade.

Nota

Os dois comandos acima podem ser omitidos se a seguinte diretiva for colocada no arquivo de configuração:

RequireValidShell off

Por padrão, o "proftpd" exigirá que os(as) usuários(as) se logando tenham "shells" válidos. A diretiva "RequireValidShell" desliga esse requisito. Isso é recomendado somente se você estiver configurando o teu servidor "FTP" exclusivamente para transferências anônimas.

Nota

O suporte para a maioria dos pacotes de dependências exige usar opções passadas para o conjunto de comandos sequenciais configure. Veja-se a saída gerada a partir de ./configure --help para informações completas relativas a habilitar pacotes de dependências.

Configurando o ProFTPD

Arquivos de Configuração

/etc/proftpd.conf

Informação de Configuração

Esta é uma configuração de amostra simples, somente para baixar. Veja-se a documentação do "ProFTPD" em "/usr/share/doc/proftpd" e consulte o sítio da "web" em http://www.proftpd.org/ para configurações de exemplo.

cat > /etc/proftpd.conf << "EOF"
# Este é um arquivo básico de configuração do "ProFTPD".
# Ele estabelece um servidor e um login anônimo.

ServerName                      "Instalação Padrão do ProFTPD"
ServerType                      standalone
DefaultServer                   on

# A porta 21 é a porta padrão do "FTP".
Port                            21
# "Umask" 022 é um bom padrão de "umask" para evitar que novos 
# diretórios e arquivos sejam escrevíveis por grupo e mundialmente.
Umask                           022

# Para evitar ataques "DoS", configure o número máximo de processos descendentes
# como trinta (30). Se precisar permitir mais que trinta (30) conexões simultâneas,
# [então] simplesmente aumente esse valor. Observe que isso funciona SOMENTE no modo
# autônomo; no modo "inetd", você deveria usar um servidor "inetd" que te permita
# limitar o número máximo de processos por serviço.

MaxInstances                    30

# Configure o(a) usuário(a) e o grupo em que o servidor normalmente executa.
User                            proftpd
Group                           proftpd

# Para fazer com que cada usuário(a) "FTP" esteja "enjaulado(a)" (em "chroot") no
# diretório inicial dele(a), descomente esta linha.
#DefaultRoot ~


# Normalmente, os arquivos deveriam ser sobrescrevíveis.
<Directory /*>
  AllowOverwrite                on
</Directory>

# Uma configuração básica anônima, sem diretórios de "upload".
<Anonymous ~proftpd>
  User                          proftpd
  Group                         proftpd
  # Os clientes deveriam estar aptos a se logarem com "anonymous" bem como com "proftpd"
  UserAlias                     anonymous proftpd

  # Limite o número máximo de "logins" anônimos
  MaxClients                    10

  # 'welcome.msg' deveria ser exibida ao "login", e '.message' exibida
  # a cada novo diretório acessado.
  DisplayLogin                  welcome.msg
  DisplayChdir                  .message

  # Limite o "WRITE" em todos os lugares no "chroot" anônimo.
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
EOF

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/proftpd" incluso no pacote "blfs-bootscripts-20250225" "":

make install-proftpd

Conteúdo

Aplicativos Instalados: ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut, ftptop, ftpwho, in.proftpd (link simbólico para "proftpd"), proftpd e prxs
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/{include,lib}/proftpd, /usr/share/doc/proftpd-1.3.8b e /srv/ftp

Descrições Curtas

proftpd

é o processo de segundo plano de "FTP"

ftpcount

mostra o número atual de conexões

ftpdctl

é usado para controlar o processo de segundo plano "proftpd" enquanto ele está em execução

ftpasswd

é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar "AuthUserFiles" e "AuthGroupFiles" no formato correto para o "proftpd"

ftpmail

é um conjunto de comandos sequenciais "Perl" para envio de mensagens eletrônicas baseado no "TransferLog" do "proftpd"

ftpquota

é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar limites e arquivos de contagem para a combinação de módulos "mod_quotatab" + "mod_quotatab_file" para o "proftpd"

ftpscrub

fornece uma maneira de limpar o arquivo do placar sob demanda

ftpshut

desliga todos os servidores "proftpd" em uma dada hora

ftptop

exibe a situação de execução relativa às conexões

ftpwho

mostra informações atuais do processo para cada sessão

prxs

é um conjunto de comandos sequenciais "Perl" projetado para compilar e instalar módulos de terceiros(as), a partir do fonte, como módulos "DSO" para o "proftpd" instalado

Capítulo 21. Logiciário de Servidor de Mensagens

"MTAs" são os aplicativos que transportam mensagens de uma máquina para outra. O "MTA" tradicional é o "Sendmail", porém existem várias outras escolhas.

Em adição aos servidores SMTP, também existe um servidor POP/IMAP (Dovecot).

Dovecot-2.4.0

Introdução ao Dovecot

O "Dovecot" é um servidor "Internet Message Access Protocol" ("IMAP") e "Post Office Protocol" ("POP"), escrito principalmente com a segurança em mente. "Dovecot" pretende ser leve, rápido e fácil de configurar, bem como altamente configurável e facilmente extensível com "plug-ins".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.dovecot.org/releases/2.4/dovecot-2.4.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5a0b3aaaf0adc1278d2611ff5f1593cd

  • Tamanho da transferência: 7,5 MB

  • Espaço em disco estimado exigido: 253 MB

  • Tempo de construção estimado: 4,8 UPC

Dependências do "Dovecot"

Exigidas

libtirpc-1.3.6 e Linux-PAM-1.7.0

Opcionais

Cyrus SASL-2.1.28, ICU-76.1, libcap-2.73 com PAM, libunwind-1.8.1, Lua-5.4.7, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, Valgrind-3.24.0, xapian-1.4.27, xfsprogs-6.13.0, Cassandra, stemmer e libsodium

Instalação do Dovecot

Atenção

Existem mudanças significativas na configuração deste pacote que são exigidas ao atualizar para o Dovecot 2.4.0. Por favor, revise a documentação em Dovecot Upgrade Guide antes de continuar se você estiver atualizando este pacote a partir de uma versão anterior.

Deveria existir usuários(as) e grupos dedicados(as) para processos sem privilégios do "Dovecot" e para processamento de "logins" de usuários(as). Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 42 dovecot &&
useradd -c "Usuário(a) sem privilégios do Dovecot" -d /dev/null -u 42 \
        -g dovecot -s /bin/false dovecot &&
groupadd -g 43 dovenull &&
useradd -c "Usuário(a) de login do Dovecot" -d /dev/null -u 43 \
        -g dovenull -s /bin/false dovenull

Instale o "Dovecot" executando os seguintes comandos:

./configure --prefix=/usr                          \
            --sysconfdir=/etc                      \
            --localstatedir=/var                   \
            --with-systemd=no                      \
            --with-lua=no                          \
            --docdir=/usr/share/doc/dovecot-2.4.0  \
            --disable-static &&
make

Para testar os resultados, emita "make -k check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-ldap: Essa chave habilita o suporte a autenticação "OpenLDAP".

--with-pgsql: Essa chave habilita o suporte a base de dados "PostgreSQL".

--with-mysql: Essa chave habilita o suporte a base de dados "MySQL".

--with-sqlite: Essa chave habilita o suporte a base de dados "SQLite".

--with-lua=no: Essa chave habilita o suporte ao plugin Lua. Isso inclui um plugin de notificação de mensagem e envio. O suporte atualmente está quebrado com Lua 5.4.

Configurando o Dovecot

Arquivos de Configuração

/etc/dovecot/dovecot.conf

Informação de Configuração

A configuração a seguir é uma prova de conceito simples com serviço IMAP usando usuários(as) locais para autenticação e localização de caixa de correio.

mv -v /etc/dovecot/dovecot.conf{,.orig} &&
chmod -v 1777 /var/mail &&
cat > /etc/dovecot/dovecot.conf << "EOF"

# The dovecot configuration requires a minimum version to be set. The server
# will refuse to start if the version set here is older than the version of
# Dovecot installed. This option allows the Dovecot server to set reasonable
# default values based on what version is set here.
dovecot_config_version = 2.4.0

# This option sets the minimum version that is able to read data files from
# the Dovecot server. This is primarily for a cluster which may have several
# different versions of Dovecot installed, but is required for the server to
# run.
dovecot_storage_version = 2.4.0

protocols = imap
ssl = no
# The next line is only needed if you have no IPv6 network interfaces
listen = *
mail_inbox_path = /var/mail/%{user}
mail_driver = mbox
mail_path = ~/Mail
userdb users {
  driver = passwd
}
passdb passwords {
  driver = pam
}
EOF

A configuração acima também exige que um arquivo de configuração seja instalado para Linux-PAM para que o dovecot consiga autenticar usuários(as). Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux-PAM:

cat > /etc/pam.d/dovecot << "EOF"
# Begin /etc/pam.d/dovecot

auth     include system-auth
account  include system-account
password include system-password

# End /etc/pam.d/dovecot
EOF

Você definitivamente vai querer ler a documentação oficial em https://doc.dovecot.org/2.4.0/ se planeja usar o Dovecot em um ambiente de produção.

Conjunto de Comandos Sequenciais de Inicialização

Se você quer que o servidor "Dovecot" inicie automaticamente quando o sistema for inicializado, [então] instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/dovecot" incluso no pacote "blfs-bootscripts-20250225".

make install-dovecot

Conteúdo

Aplicativos Instalados: doveadm, doveconf, dovecot e dovecot-sysreport
Bibliotecas Instaladas: vários "plugins" internos em "/usr/lib/dovecot"
Diretórios Instalados: /etc/dovecot, /usr/{include,lib,libexec,share}/dovecot e /usr/share/doc/dovecot-2.4.0

Descrições Curtas

doveadm

é a ferramenta de administração do "Dovecot"

doveconf

é o utilitário de despejo da configuração do "Dovecot"

dovecot

é o servidor "IMAP" e "POP"

dovecot-sysreport

imprime informações do sistema que são úteis para os(as) desenvolvedores(as) do "Dovecot" ao submeter informes de defeitos

Exim-4.98.1

Introdução ao Exim

O pacote "Exim" contém um "Mail Transport Agent" escrito pela Universidade de Cambridge, lançado sob a Licença Pública "GNU".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.exim.org/pub/exim/exim4/exim-4.98.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7465a700b17ce3c01d59d7e0d59be5a1

  • Tamanho da transferência: 1,9 MB

  • Espaço em disco estimado exigido: 19 MB

  • Tempo de construção estimado: 0,1 UPC

Transferências Adicionais

  • Formatos adicionais da documentação (documentos baseados em texto são enviados com os fontes) podem ser baixados seguindo-se os links mostrados em https://exim.org/docs.html.

Dependências do "Exim"

Exigidas

libnsl-2.0.1, File-FcntlLock-0.22 e pcre2-10.45

Opcionais

TDB (alternativa ao GDBM, construído no LFS), Cyrus SASL-2.1.28, libidn-1.42, Linux-PAM-1.7.0, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, GnuTLS-3.8.9, PostgreSQL-17.4, SQLite-3.49.1, um ambiente gráfico, Heimdal GSSAPI, libspf2 e OpenDMARC

Instalação do Exim

Antes de construir o "Exim", como o(a) usuário(a) "root", você deveria criar o grupo e o(a) usuário(a) "exim" os quais executarão o processo de segundo plano "exim":

groupadd -g 31 exim &&
useradd -d /dev/null -c "Processo de Segundo Plano Exim" -g exim -s /bin/false -u 31 exim

Configure o "Exim" com os seguintes comandos:

sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,'    \
    -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \
    -e 's,^EXIM_USER.*$,EXIM_USER=exim,'           \
    -e '/# USE_OPENSSL/s,^#,,' src/EDITME > Local/Makefile &&

printf "USE_GDBM = yes\nDBMLIB = -lgdbm\n" >> Local/Makefile

Se você quiser adicionar suporte ao "Linux PAM", [então] execute também os seguintes comandos:

sed -i '/# SUPPORT_PAM=yes/s,^#,,' Local/Makefile
echo "EXTRALIBS=-lpam" >> Local/Makefile

Construa o "Exim" com o seguinte comando:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install                                    &&
install -v -m644 doc/exim.8 /usr/share/man/man8 &&

install -vdm 755    /usr/share/doc/exim-4.98.1 &&
cp      -Rv doc/*   /usr/share/doc/exim-4.98.1 &&

ln -sfv exim /usr/sbin/sendmail                 &&
install -v -d -m750 -o exim -g exim /var/spool/exim

Explicações do Comando

sed -e ... > Local/Makefile: A maioria das opções de configuração do "Exim" é definida no "Local/Makefile", que é criado a partir do arquivo "src/EDITME". Esse comando especifica o conjunto mínimo de opções. As descrições das opções estão listadas abaixo.

printf ... > Local/Makefile: Configurar essas variáveis permite usar GDBM em vez do padrão Berkeley DB. Remova esse comando se você tiver instalado Berkeley DB (obsoleto).

BIN_DIRECTORY=/usr/sbin: Isso instala todos os binários e conjuntos de comandos sequenciais do "Exim" em "/usr/sbin".

CONFIGURE_FILE=/etc/exim.conf: Isso instala o principal arquivo de configuração do "Exim" em "/etc".

EXIM_USER=exim: Isso informa ao "Exim" que, depois que o processo de segundo plano não mais precisar de privilégios de "root", o processo precisa transferir o processo de segundo plano para o(a) usuário(a) "exim".

USE_OPENSSL: descomentar USE_OPENSSL=yes e USE_OPNSSL_PC=yes informa ao sistema de construção para usar OpenSSL e encontrar o bibliotecas necessárias com pkg-config.

Descomentar EXIM_MONITOR: Isso permite construir o aplicativo monitor do Exim, o qual exige suporte X Window System e é comentado por padrão.

ln -sfv exim /usr/sbin/sendmail: Cria um link para "sendmail" para aplicativos que precisam dele. O "Exim" aceitará a maioria das opções de linha de comando do "Sendmail".

install -v -m750 -o exim -g exim /var/spool/exim: Como "/var/spool" é propriedade do "root" e essa versão do "exim" elimina os privilégios de "root" antecipadamente, para executar como usuário(a) "exim", ele não consegue criar o diretório "/var/spool/exim". Como solução alternativa, ele é criado manualmente.

Adicionando Funcionalidade Adicional

Para utilizar alguns ou todos os pacotes de dependências, você precisará modificar "Local/Makefile" para incluir as diretivas e parâmetros apropriadas para vincular bibliotecas adicionais antes de construir o "Exim". O "Local/Makefile" é bastante comentado com instruções relativas a como fazer isso. Listadas abaixo estão informações adicionais para te ajudar a vincular esses pacotes de dependências ou adicionar funcionalidades adicionais.

Se você deseja construir e instalar a documentação ".info", [então] consulte https://exim.org/exim-html-4.98.1/doc/ html/spec_html/ch04.html#SECTinsinfdoc.

Se você deseja construir interfaces do "Exim" para chamar logiciário de verificação de vírus e de "spam" diretamente a partir de listas de controle de acesso, [então] descomente o parâmetro "WITH_CONTENT_SCAN=yes" e revise as informações encontradas em https://exim .org/exim-html-4.98.1/doc/html/spec_html/ch45.html.

Para usar uma base de dados de estrutura de retaguarda diferente do GDBM, vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECTdb.

Para funcionalidade "SSL", vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECTinctlsssl e https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch42.html.

Para a funcionalidade "tcpwrappers", vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECID27.

Para informações relativas a adicionar mecanismos de autenticação para a construção, vejam-se os capítulos 33—41 de https://exim.org/exim-html-4.98.1/doc/html/spec_html/index.html .

Para informações relativas a vincular o "Linux-PAM", consulte as instruções https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch11.html#SECTexpcond.

Para informações relativas a vincular bibliotecas de mecanismo de base de dados usadas para pesquisas de nome do Exim, vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/ spec_html/ch09.html.

Se você deseja adicionar suporte "Readline" ao "Exim" quando invocado no modo expansão de teste ("-be"), [então] vejam-se as informações na seção "-be" de https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch05.html#id2525974 .

Você possivelmente deseje modificar a configuração padrão e enviar arquivos de registro para o "syslog" em vez do diretório padrão "/var/spool/exim/log". Vejam-se as informações em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch-log_files.html.

Muitas informações também podem ser encontradas na Wiki do Exim.

Configurando o Exim

Arquivos de Configuração

/etc/exim.conf e /etc/aliases

Informação de Configuração

Revise o arquivo "/etc/exim.conf" e modifique quaisquer configurações para atender às suas necessidades. Observe que a configuração padrão assume que o diretório "/var/mail" é escrevível mundialmente, mas tem o bit "sticky" configurado. Se você quiser usar a configuração padrão, [então] emita como o(a) usuário(a) "root":

chmod -v a+wt /var/mail

Um arquivo "/etc/aliases" padrão (nada além de comentários) é instalado durante a instalação do pacote se esse arquivo não existir em seu sistema. Crie os apelidos necessários e inicie o processo de segundo plano "Exim" usando os seguintes comandos:

cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
/usr/sbin/exim -bd -q15m

Nota

Para proteger um arquivo "/etc/aliases" existente, o comando acima anexa esses apelidos a ele. Esse arquivo deveria ser verificado e os apelidos duplicados removidos, se presentes.

O comando "/usr/sbin/exim -bd -q15m" inicia o processo de segundo plano "Exim" com um intervalo de quinze (15) minutos no processamento da fila de mensagens. Ajuste esse parâmetro para atender aos teus desejos.

Configuração do Linux PAM

Se tiver construído o "Exim" com suporte ao "Linux PAM", [então] você precisa criar um arquivo de configuração "PAM" para fazê-lo funcionar corretamente com o BLFS.

Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM:

cat > /etc/pam.d/exim << "EOF"
# Inicia /etc/pam.d/exim

auth    include system-auth
account include system-account
session include system-session

# Termina /etc/pam.d/exim
EOF

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar automaticamente o "exim" na inicialização, instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/exim" incluso no pacote "blfs-bootscripts-20250225" "":

make install-exim

O script de inicialização também inicia o processo de segundo plano "Exim" e despacha um processo executor de fila a cada quinze (15) minutos. Modifique o parâmetro "-q<time interval>" em "/etc/rc.d/init.d/exim", se necessário para a tua instalação.

Conteúdo

Aplicativos Instalados: exicyclog, exigrep, exim, exim-4.98.1-2, exim_checkaccess, exim_dbmbuild, exim_dumpdb, exim_fixdb, exim_id_update, exim_lock, exim_msgdate, exim_tidydb, eximstats, exinext, exipick, exiqgrep, exiqsumm, exiwhat e, opcionalmente, eximon, eximon.bin e sendmail (link simbólico)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/exim-4.98.1 e /var/spool/exim

Descrições Curtas

exicyclog

circula arquivos de registro do "Exim"

exigrep

pesquisa arquivos de registro do "Exim"

exim

é um link simbólico para o processo de segundo plano "MTA" "exim-4.98.1-2"

exim-4.98.1-2

é o processo de segundo plano do agente de transporte de mensagens "Exim"

exim_checkaccess

declara se um dado endereço de destinatário a partir de um dado dispositivo é aceitável ou não

exim_dbmbuild

cria e reconstrói bases de dados do "Exim"

exim_dumpdb

escreve o conteúdo das bases de dados do "Exim" na saída gerada padrão

exim_fixdb

modifica dados em bases de dados do "Exim"

exim_update_id

atualiza e desatualiza formatos de message-id do Exim em arquivos de spool

exim_lock

tranca um arquivo de caixa de mensagens

exim_msgdate

converte uma message-id do Exim em um formato legível por humanos

exim_tidydb

remove registros antigos de bases de dados do "Exim"

eximstats

gera estatísticas de mensagens a partir de arquivos de registro do "Exim"

exinext

consulta tempos de re tentativa do dispositivo remoto

exipick

seleciona mensagens baseadas em vários critérios

exiqgrep

é um utilitário para listagem seletiva de filas

exiqsumm

produz um resumo das mensagens na fila de mensagens

exiwhat

consulta executando processos "Exim"

eximon

é um conjunto de comandos sequenciais de "shell" de inicialização para "eximon.bin" usado para configurar as variáveis de ambiente exigidas antes de executar o aplicativo

eximon.bin

é um aplicativo monitor que exibe informações atuais em uma janela do "X" e também contém uma interface de menu para as opções de administração de linha de comando do "Exim"

Postfix-3.10.1

Introdução ao Postfix

O pacote "Postfix" contém um "Mail Transport Agent" ("MTA"). Isso é útil para enviar mensagem eletrônica para outros(as) usuários(as) da tua máquina anfitriã. Ele também pode ser configurado para ser um servidor central de mensagens para o teu domínio, um agente de retransmissão de mensagens ou simplesmente um agente de entrega de mensagens para o teu Provedor local de Serviços de Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Postfix"

Recomendadas
Opcionais

ICU-76.1 para suporte a Internacionalização de Endereços de Mensagens Eletrônicas (SMTPUTF8), MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, pcre2-10.45, PostgreSQL-17.4, SQLite-3.49.1, Berkeley DB (obsoleto) e CDB ou TinyCDB

Observe que "SQLite", "MySQL", "PostgreSQL" e "CDB" são úteis somente se existir uma necessidade conhecida deles.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postfix

Instalação do Postfix

Adicionando Usuários(as) e Grupos

Antes de compilar o aplicativo, você precisa criar usuários(as) e grupos que serão esperados estarem no lugar durante a instalação. Adicione os(as) usuários(as) e grupos com os seguintes comandos emitidos pelo(a) usuário(a) "root":

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Usuário(a) do Processo de Segundo Plano do Postfix" -d /var/spool/postfix -g postfix \
        -s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail

Configurando a Construção

Os arquivos README são formatados para serem lidos com um paginador como less ou more. Se você quiser usar um editor de texto, torne-os legíveis com o seguinte sed:

sed -i 's/.\x08//g' README_FILES/*

A árvore do fonte do "Postfix" não contém um conjunto de comandos sequenciais "configure", em vez disso, o "makefile" no diretório de nível superior contém um alvo "makefiles" que regenera todos os outros "makefiles" na árvore de construção. Se desejar usar software adicional, como uma estrutura de retaguarda de base de dados para usuários(as) virtuais ou autenticação "TLS"/"SSL", [então] você precisará regenerar os "makefiles" usando uma ou mais das configurações apropriadas "CCARGS" e "AUXLIBS" listadas abaixo.

Nota

Para todas as variantes do CCARGS, você deveria garantir que '-DNO_NIS' esteja especificado, de forma que a construção não tente acessar um cabeçalho de rpcsvc que não existe no BLFS. Se Berkeley DB (obsoleto) não estiver instalado, '-DNO_DB' também precisa ser especificado.

Para mais detalhes, leiam-se os arquivos "readme".

Inicialize a CCARGS e AUXLIBS de acordo com a observação acima:

CCARGS="-DNO_NIS -DNO_DB"
AUXLIBS=""

A seguir, as variáveis CCARGS e AUXLIBS são preenchidas com configurações dependendo da atual configuração do sistema. Se um pacote opcional estiver instalado, mas deveria não estar incluído na construção do Postfix, simplesmente ignore os correspondentes fragmentos de script if [ ... ]; then.

Cyrus-SASL

Para usar o "Cyrus-SASL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libsasl2.so ]; then
  CCARGS="$CCARGS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl"
  AUXLIBS="$AUXLIBS -lsasl2"
fi
LMDB

Para usar o LMDB com o Postfix, use os seguintes argumentos:

if [ -r /usr/lib/liblmdb.so ]; then
  CCARGS="$CCARGS -DHAS_LMDB"
  AUXLIBS="$AUXLIBS -llmdb"
fi
OpenLDAP

Para usar o "OpenLDAP" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libldap.so -a -r /usr/lib/liblber.so ]; then
  CCARGS="$CCARGS -DHAS_LDAP"
  AUXLIBS="$AUXLIBS -lldap -llber"
fi
Sqlite

Para usar o "Sqlite" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libsqlite3.so ]; then
  CCARGS="$CCARGS -DHAS_SQLITE"
  AUXLIBS="$AUXLIBS -lsqlite3 -lpthread"
fi
MySQL

Para usar o "MySQL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libmysqlclient.so ]; then
  CCARGS="$CCARGS -DHAS_MYSQL -I/usr/include/mysql"
  AUXLIBS="$AUXLIBS -lmysqlclient -lz -lm"
fi
PostgreSQL

Para usar o "PostgreSQL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libpq.so ]; then
  CCARGS="$CCARGS -DHAS_PGSQL -I/usr/include/postgresql"
  AUXLIBS="$AUXLIBS -lpq -lz -lm"
fi
CDB/TinyCDB

Para usar o "CDB" ou o "TinyCDB" com o "Postfix", use os seguintes argumentos:

if [ -r </path/to/CDB>/libcdb.a ]; then
  CCARGS="$CCARGS -DHAS_CDB"
  AUXLIBS="$AUXLIBS </path/to/CDB>/libcdb.a"
fi
Autenticação StartTLS

Para usar o "OpenSSL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libssl.so -a -r /usr/lib/libcrypto.so ]; then
  CCARGS="$CCARGS -DUSE_TLS -I/usr/include/openssl/"
  AUXLIBS="$AUXLIBS -lssl -lcrypto"
fi

OpenSSL é instalado pelo LFS, de forma que ele deveria estar sempre lá. O if ... then está aqui apenas para consistência.

Instalando o Postfix

Podem existir configurações duplicadas em AUXLIBS, como -lm, quando ambos, MariaDB e PostgreSQL são usados. Elas não danificam. Instale o Postfix executando os seguintes comandos:

make CCARGS="$CCARGS" AUXLIBS="$AUXLIBS" makefiles &&
make

Esse pacote não vem com uma suíte de teste útil.

Agora, como o(a) usuário(a) "root":

sh postfix-install -non-interactive \
  daemon_directory=/usr/lib/postfix \
  manpage_directory=/usr/share/man \
  html_directory=/usr/share/doc/postfix-3.10.1/html \
  readme_directory=/usr/share/doc/postfix-3.10.1/readme

Explicações do Comando

make makefiles: Esse comando reconstrói os "makefiles" em toda a árvore fonte para usar as opções contidas nas variáveis "CCARGS" e "AUXLIBS".

sh postfix-install -non-interactive: Isso evita que o conjunto de comandos sequenciais de instalação faça perguntas, aceitando assim os diretórios de destino padrão em todos os casos, exceto em uns poucos. Se as opções "html_directory" e "readme_directory" não estiverem configuradas, [então] a documentação não será instalada.

CCARGS="-DNO_EAI ...": isso desligará o suporte a SMTPUTF8, por exemplo, se o restante da tua infraestrutura de endereço de correio eletrônico não puder lidar com endereços UTF-8 de correio eletrônico e valores de cabeçalho de mensagem.

Configurando o Postfix

Arquivos de Configuração

/etc/aliases, /etc/postfix/main.cf e /etc/postfix/master.cf

Informação de Configuração

Crie (ou anexe a um existente) "/etc/aliases" com o seguinte comando. Mude "<LOGIN>" para a tua identidade de login não "root" de forma que as mensagens endereçadas para o(a) "root" possam ser encaminhadas para você. Como o(a) usuário(a) "root":

cat >> /etc/aliases << "EOF"
# Inicia /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             <LOGIN>
# Termina /etc/aliases
EOF

Para proteger um arquivo "/etc/aliases" existente, o comando acima anexa esses apelidos a ele, se existir. Esse arquivo deveria ser verificado e os apelidos duplicados removidos, se presentes.

Os(As) editores(as) do BLFS recomendam usar LMDB em vez de Berkeley DB para tabelas do Postfix. Adicione três linhas em /etc/postfix/main.cf para fazer com que postmap codifique as tabelas de pesquisa no formato do LMDB por padrão e para mudar a configuração padrão de resumo das tabelas de apelidos:

echo 'default_database_type = lmdb'       >> /etc/postfix/main.cf &&
echo 'alias_database = lmdb:/etc/aliases' >> /etc/postfix/main.cf &&
echo 'alias_maps = lmdb:/etc/aliases'     >> /etc/postfix/main.cf

Para proteger teu servidor contra os recentes ataques de contrabando de SMTP, etapas adicionais são exigidas. Adicione duas linhas em /etc/postfix/main.cf para desconectar clientes SMTP remotos que enviem novas linhas simples na seção DATA, ao mesmo tempo que permite que clientes em tua rede de intercomunicação com implementações SMTP não padrão ainda enviem mensagens:

echo 'smtpd_forbid_bare_newline = normalize' >> /etc/postfix/main.cf &&
echo 'smtpd_forbid_bare_newline_exclusions = $mynetworks' >> /etc/postfix/main.cf

Observe que se você estiver seguindo um tutorial online para configurar o Postfix, o tutorial pode se referir a uma tabela de pesquisa com hash:/caminho/para/tabela_pesquisa. Você deveria substituir hash por lmdb para a finalidade de usar uma tabela de pesquisa codificada no formato do LMDB.

Nota

Os arquivos "/etc/postfix/main.cf" e "/etc/postfix/master.cf" precisam ser personalizados para o teu sistema. O arquivo "main.cf" precisa do teu nome de dispositivo totalmente qualificado. Você descobrirá que "main.cf" é auto documentado, de forma que carregue-o em teu editor para fazer as mudanças necessárias para a tua situação.

Nota

O "Postfix" também pode ser configurado para executar em uma jaula "chroot". Veja-se o arquivo no fonte "examples/chroot-setup/LINUX2" para detalhes.

Para garantir que todas as permissões sejam configuradas corretamente, o postfix fornece uma ferramenta que é para ser executada como o(a) usuário(a) root:

/usr/sbin/postfix -c /etc/postfix set-permissions

Se você tiver uma configuração existente, [então] poderá executar o utilitário "postfix" para adicionar quaisquer definições necessárias aos teus arquivos existentes. Como o(a) usuário(a) "root":

/usr/sbin/postfix upgrade-configuration

Antes de iniciar o "Postfix", você deveria verificar se a tua configuração e permissões de arquivo funcionarão adequadamente. Execute os seguintes comandos como o(a) usuário(a) "root" para verificar e iniciar o teu servidor "Postfix":

/usr/sbin/postfix check &&
/usr/sbin/postfix start

Conjunto de Comandos Sequenciais de Inicialização

Para automatizar a execução do "Postfix" na inicialização, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/postfix" incluso no pacote "blfs-bootscripts-20250225" "":

make install-postfix

Conteúdo

Aplicativos Instalados: mailq (link simbólico), newaliases (link simbólico), postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper e sendmail
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /{etc,usr/lib}/postfix, /usr/share/doc/postfix-3.10.1 e /var/{lib,spool}/postfix

Descrições Curtas

mailq

Um link simbólico para "sendmail"

newaliases

Um link simbólico para "sendmail"

postalias

é um utilitário para manutenção de base de dados de apelidos do "Postfix"

postcat

Imprime o conteúdo dos arquivos originários da fila do "Postfix" em formato legível por humanos(as)

postconf

Exibe ou muda o valor dos parâmetros de configuração do "Postfix"

postdrop

Cria um arquivo no diretório "maildrop" e copia a entrada gerada padrão dele para o arquivo

postfix

é o aplicativo de controle do "Postfix"

postkick

Envia solicitações para o serviço especificado por intermédio de um canal local de transporte

postlock

Tranca uma pasta de mensagens para uso exclusivo e executa comandos passados para ela

postlog

Uma interface de registro compatível com o "Postfix" para uso, por exemplo, em conjuntos de comandos sequenciais de "shell"

postmap

Cria ou consulta uma ou mais tabelas de pesquisa do "Postfix" ou atualiza uma existente

postmulti

é o gerenciador de múltiplas instâncias do "Postfix". Ele permite que um(a) administrador(a) de sistema gerencie múltiplas instâncias do "Postfix" em um dispositivo

postqueue

A interface de usuário(a) do "Postfix" para gerenciamento de filas

postsuper

A interface de usuário(a) do "Postfix" para gerenciamento de filas de superusuário(a)

sendmail

é a interface de compatibilidade do "Postfix" com o "Sendmail"

sendmail-8.18.1

Introdução ao sendmail

O pacote "sendmail" contém um "Mail Transport Agent" ("MTA").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.sendmail.org/sendmail.8.18.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b6b332295b5779036d4c9246f96f673c

  • Tamanho da transferência: 2,3 MB

  • Espaço em disco estimado exigido: 21 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do "sendmail"

Exigidas

OpenLDAP-2.6.9 (cliente)

Recomendadas
Opcionais

ghostscript-10.04.0 (para criar a documentação em "PDF"), Procmail-3.24 (a configuração proposta abaixo exige que o "procmail" esteja presente em tempo de execução) e nph

Instalação do sendmail

Antes de construir o "sendmail", crie o(a) usuário(a), grupo e diretório necessários com os seguintes comandos emitidos como o(a) usuário(a) "root":

groupadd -g 26 smmsp                               &&
useradd -c "Processo de Segundo Plano Sendmail" -g smmsp -d /dev/null \
        -s /bin/false -u 26 smmsp                  &&
chmod -v 1777 /var/mail                            &&
install -v -m700 -d /var/spool/mqueue

Nota

Veja-se o arquivo "sendmail/README" da árvore do fonte para informações relativas a vincular pacotes opcionais à construção. Use o exemplo abaixo, que adiciona suporte para "SASL", "StartTLS" ("OpenSSL") e "OpenLDAP", como um ponto de partida. Claro, modifique-o para atender às tuas necessidades específicas.

cat >> devtools/Site/site.config.m4 << "EOF"
APPENDDEF(`confENVDEF',`-D STARTTLS -D SASL -D LDAPMAP -D HASFLOCK')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber')
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl')
EOF

Instale o "sendmail" com os seguintes comandos:

cat >> devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF

sed -i 's|/usr/man/man|/usr/share/man/man|' \
    devtools/OS/Linux          &&

cd sendmail                     &&
sh Build                        &&
cd ../cf/cf                     &&
cp generic-linux.mc sendmail.mc &&
sh Build sendmail.cf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

install -v -d -m755 /etc/mail &&
sh Build install-cf &&

cd ../..            &&
sh Build install    &&

install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail &&
cp -v -R cf/* /etc/mail                              &&

install -v -m755 -d /usr/share/doc/sendmail-8.18.1/{cf,sendmail} &&

install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
        /usr/share/doc/sendmail-8.18.1 &&

install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
        /usr/share/doc/sendmail-8.18.1/sendmail &&

install -v -m644 cf/README /usr/share/doc/sendmail-8.18.1/cf &&

for manpage in sendmail editmap mailstats makemap praliases smrsh
do
    install -v -m644 $manpage/$manpage.8 /usr/share/man/man8
done &&

install -v -m644 sendmail/aliases.5    /usr/share/man/man5 &&
install -v -m644 sendmail/mailq.1      /usr/share/man/man1 &&
install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 &&
install -v -m644 vacation/vacation.1   /usr/share/man/man1

Instale o Guia de Instalação e Operações do "sendmail" com os seguintes comandos:

Nota

Remova "op.pdf" dos comandos "make" e "install" abaixo se você não tiver o "Ghostscript" instalado.

cd doc/op                                      &&
sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile &&
make op.txt op.pdf

Agora, como o(a) usuário(a) "root":

install -v -d -m755 /usr/share/doc/sendmail-8.18.1 &&
install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.18.1 &&
cd ../..

Explicações do Comando

cat > devtools/Site/site.config.m4 << "EOF": Isso cria um arquivo de configuração mudando algumas das configurações padrão.

sed ... devtools/OS/Linux: O "site.config.m4" não respeita uma mudança no diretório do manual, de forma que corrija-o nas definições do "OS".

sh Build; sh Build sendmail.cf; sh Build install-cf; sh Build install: o "sendmail" usa um conjunto de comandos sequenciais de construção baseado no "m4" para criar os vários "Makefiles". Esses comandos constroem e instalam o pacote.

for manpage in...;do...;done; install ...: As páginas de manual são instaladas já formatadas e o "man" as exibe um tanto distorcidas. Esses comandos substituem as páginas formatadas por páginas que o "man" consegue exibir adequadamente.

Configurando o sendmail

Arquivos de Configuração

/etc/mail/*

Informação de Configuração

Nota

Certifique-se de que você tenha um nome de domínio totalmente qualificado definido em "/etc/hosts" para o teu sistema antes de continuar.

Crie os arquivos "/etc/mail/local-host-names" e "/etc/mail/aliases" usando os seguintes comandos como o(a) usuário(a) "root":

echo $(hostname) > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root

EOF
# Does not work if there is no database backend compiled in:
#newaliases

O arquivo de configuração principal do "sendmail", "/etc/mail/sendmail.cf", é complexo e não é destinado a ser editado diretamente. O método recomendado para mudá-lo é o de modificar "/etc/mail/sendmail.mc" e vários arquivos do "m4" e, em seguida, executar o processador de macro "m4" a partir de dentro de "/etc/mail" como segue:

cd /etc/mail &&
m4 m4/cf.m4 sendmail.mc > sendmail.cf

Uma explicação completa dos arquivos a modificar e os parâmetros disponíveis pode ser encontrada em "/etc/mail/README".

Conjunto de Comandos Sequenciais de Inicialização

Para automatizar a execução do "sendmail" na inicialização, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/sendmail" incluso no pacote "blfs-bootscripts-20250225" "":

make install-sendmail

Nota

A opção "-qNm" para o "sendmail", onde "N" é o número de minutos, controla a frequência com que o "sendmail" processará a fila de mensagens. Um padrão de cinco (05) minutos é usado no conjunto de comandos sequenciais de inicialização. Usuários(as) individuais de estações de trabalho possivelmente queiram configurar isso para tão baixo quanto um (01) minuto; grandes instalações que lidam com mais mensagens possivelmente queiram configurá-lo mais alto.

Conteúdo

Aplicativos Instalados: editmap, mailstats, makemap, praliases, sendmail, smrsh e vacation; links simbólicos para "/usr/sbin/sendmail": hoststat, mailq, newaliases e purgestat
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/mail, /usr/share/doc/sendmail-8.18.1 e /var/spool/clientmqueue

Descrições Curtas

editmap

consulta e edita arquivos de mapas do "sendmail"

hoststat

imprime a situação do dispositivo persistente do "sendmail"

mailstats

exibe estatísticas do "sendmail"

mailq

imprime um resumo das mensagens de correio de saída aguardando entrega

makemap

cria arquivos de mapa do "sendmail"

newaliases

reconstrói "/etc/mail/aliases.db" a partir do conteúdo de "/etc/mail/aliases"

praliases

exibe os apelidos atuais do "sendmail"

purgestat

faz com que o "sendmail" limpe (purgue) todas as informações dele de situação do dispositivo

sendmail

é o agente de transporte de mensagens "sendmail"

smrsh

é um "shell" restrito para o "sendmail"

vacation

é uma respostador automático de mensagens eletrônicas

Capítulo 22. Bases de Dados

Este capítulo inclui bases de dados que vão desde leitura/escrita de usuário(a) único(a) até servidores industriais de base de dados com suporte a transações. Geralmente, você será enviado(a) aqui para satisfazer dependências de outras aplicações, embora construir um servidor "SQL" em um sistema básico LFS seja inteiramente possível.

Observações Importantes Relativas a Atualização do Logiciário do Servidor de Base de Dados

Nota

Esta seção é sobre reinstalar logiciário de base de dados quando uma base de dados existente estiver em uso. Ela não é aplicável para instalações iniciais ou se não existir base de dados para o pacote sendo atualizado, mas os(as) usuários(as) deveriam lê-la para ficarem cientes dos problemas que podem surgir no futuro.

Vamos começar este capítulo com uma captura de tela dramática de um erro que realmente aconteceu. Este erro não ocorrerá se você estiver instalando o logiciário de base de dados pela primeira vez:

$ sudo systemctl status postgresql
-- postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2021-10-26 17:11:53 CDT; 2min 49s ago
    Process: 17336 ExecStart=/usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120 (code=exited, status=1/FAILURE)
         CPU: 7ms

Oct 26 17:11:53 SVRNAME systemd[1]: Starting PostgreSQL database server...
Oct 26 17:11:53 SRVNAME postgres[17338]: 2021-10-26 17:11:53.420 CDT [17338] FATAL:
                database files are incompatible with server
Oct 26 17:11:53 SRVNAME postgres[17338]: 2021-10-26 17:11:53.420 CDT [17338] DETAIL:
                The data directory was initialized by PostgreSQL version 13,
                which is not compatible with this version 14.0.
Oct 26 17:11:53 SRVNAME postgres[17336]: pg_ctl: could not start server
Oct 26 17:11:53 SRVNAME postgres[17336]: Examine the log output.
Oct 26 17:11:53 SRVNAME systemd[1]: postgresql.service: Control process exited, code=exited, status=1/FAILURE
Oct 26 17:11:53 SRVNAME systemd[1]: postgresql.service: Failed with result 'exit-code'.
Oct 26 17:11:53 SRVNAME systemd[1]: Failed to start PostgreSQL database server.

Para evitar situações como essa (ou seja, o teu logiciário do servidor de base de dados se recusa a iniciar), leia a discussão a seguir relativa a melhor maneira de atualizar um Sistema de Gerenciamento de Base de Dados (SGBD).

A causa raiz do erro mostrado acima foi uma atualização do logiciário do servidor para uma versão principal mais recente que deixou os arquivos de dados intactos. Nesse caso, o(a) administrador(a) conseguiu recuperar o SGBD sem qualquer perda de dados.

Mesmo se você estiver fazendo uma instalação inicial do SGBD, leia esta seção. Ela fornece informações relativas a implementação de procedimentos de cópia de segurança e restauração (ou pelo menos uma estratégia para criá-las) que irão satisfazer as tuas necessidades e garantir a segurança dos teus dados.

Atualização de Pacotes do Servidor de Base de Dados

Os sistemas de base de dados funcionam em arquivos que contém os metadados da base de dados e os próprios dados. A estrutura interna desses arquivos é otimizada para uso pelo logiciário do servidor. Quando esse logiciário de servidor for atualizado, o novo logiciário poderá utilizar um formato de arquivo diferente do usado anteriormente. Às vezes, o novo logiciário pode funcionar tanto com o formato antigo quanto com o novo‐mas sem as melhorias de desempenho que o novo formato oferece. Outras vezes, o novo logiciário de servidor reformatará os arquivos de dados automaticamente após a atualização.

Infelizmente, o caso mais provável é o de que o novo logiciário de servidor reclame dos formatos desatualizados de arquivos e saia. Quando isso acontece e você sobrescreveu o antigo logiciário do servidor, você possivelmente acabe com um sistema quebrado e perda de dados.

As mudanças nos formatos dos arquivos de dados geralmente ocorrem em mudanças da versão principal, mas também podem ocorrer em outros momentos. Antes de atualizar qualquer logiciário de SGBD, verifique a documentação para ver se essa atualização faz mudanças que exigem reformatar a base de dados.

Claro, se você tiver bases de dados com conteúdo que não seja reconstruível facilmente, [então] é sempre uma boa ideia criar cópias de segurança da base de dados de tempos em tempos. Antes de atualizar o logiciário do servidor, você deveria executar outra cópia de segurança.

Atualização por Cópia de Segurança e Restauração

Nota

Uma cópia de segurança é inútil se não existir um processo verificado para restaurar os dados a partir dessa cópia de segurança. Ao executar um servidor de base de dados, você não deveria somente criar cópias de segurança; você também deveria verificar se o processo de restauração realmente funciona. O momento de testar o procedimento de restauração é antes de você precisar recuperar urgentemente os dados perdidos.

A maioria dos logiciários de servidor de base de dados fornece algumas ferramentas básicas para criar cópias de segurança dos dados deles. Normalmente, as cópias de segurança criadas com essas ferramentas conseguem ser lidas por versões mais recentes do logiciário (por meio de uma ferramenta de restauração). Usar ferramentas mais antigas de restauração com dados de cópia de segurança mais recentes é uma má ideia; você nunca deveria assumir cegamente que isso funcionará. Pode ser, mas geralmente não.

A maneira mais fácil de atualizar teus arquivos de base de dados é a de

  • Criar uma cópia completa de segurança da base de dados usando as ferramentas antigas.

    Essa etapa cria uma cópia fora de linha dos arquivos da base de dados—para arquivamento de longo prazo, para recuperação de desastres ou como preparação para uma atualização. Essa cópia de segurança fora de linha consiste ou em (1) uma cópia completa um-para-um dos arquivos atuais da base de dados ou (2) uma cópia completa de segurança dos arquivos da base de dados a partir de um determinado ponto no tempo, além de todos os dados do diário (ou seja, na terminologia da "Oracle®", é chamado de "Arquivamento Contínuo" ou "write ahead log" ("WAL") no "Postgresql") descrevendo as mudanças feitas depois desse ponto no tempo. Essa segunda forma leva menos tempo para ser criada (se o logiciário da Base de Dados fornecer esse tipo de registro em diário) porque você tem de salvar somente os dados que foram mudados desde quando a cópia completa de segurança mais recente foi criada.

    Ao atualizar o logiciário do servidor de base de dados, uma cópia completa de segurança (que pode ser usada para cópias incrementais de segurança subsequentes) deveria ser criada; mas se existirem muitos dados, [então] uma cópia incremental de segurança será suficiente. A melhor estratégia para você depende da quantidade de dados armazenados em tua base de dados (são algumas centenas de linhas da tabela ou centenas de terabytes?). Uma cópia completa de segurança nesse último caso não pode ser feita rapidamente. Para proteger totalmente teus dados, crie uma cópia de segurança dos aplicativos antigos (e(ou) dos fontes deles) e salve-a, junto com os arquivos de dados, para ter certeza de que existe uma solução alternativa caso o novo logiciário não consiga ler os dados antigos.

  • Atualizar o logiciário do servidor

    Nessa etapa, as instruções para construir o logiciário do servidor de base de dados são executadas exatamente como são mostradas nas seções subsequentes falando sobre "GBDs" como "MariaDB" ou "Postgresql". Ou seja, construa o logiciário normalmente usando as instruções do BLFS.

  • Restaurar a base de dados usando as novas ferramentas.

    Para restaurar os dados, as ferramentas do logiciário de servidor recém-instalado deveriam ser usadas. Durante o processo de restauração, as novas ferramentas criarão e (ou) atualizarão os arquivos de dados no formato que o novo logiciário exige. Supõe-se que o logiciário mais recente seja capaz de ler os dados antigos.

Como você já tem um procedimento de cópia de segurança em vigor (e testou teu procedimento de restauração, certo?), essa pode ser a maneira mais fácil de atualizar, pois você pode usar teus processos bem conhecidos para atualizar como sempre faz—pelo menos em termos de cópia de segurança e de restauração.

Atualização dos Arquivos da Base de Dados Usando Ferramentas do Sistema

Alguns sistemas de base de dados (por exemplo, o "Postgresql") fornecem uma ferramenta que pode reformatar (atualizar) os arquivos existentes de base de dados para o novo formato. Se precisar restaurar a partir de uma cópia de segurança (por exemplo, executar a ferramenta de atualização falhou), [então] você terá que reinstalar o logiciário antigo para recuperar os teus dados.

Mesmo que as ferramentas de reformatação funcionem conforme anunciado, você deveria criar uma cópia completa de segurança antes de executá-las. Uma falha poderia causar sérios danos à base de dados.

Observações para SGBDs Específicos

PostgreSQL

Documentação do(a) desenvolvedor(a) para Cópia de Segurança/Restauração: https://www.postgresql.org/docs/current/backup.html

MariaDB

Documentação do(a) desenvolvedor(a) para Cópia de Segurança/Restauração: https://mariadb.com/kb/en/backup-and-restore-overview/

Sqlite

Não subestime o "Sqlite". Ele é um SGBD rico em recursos. A principal diferença para os dois grandes concorrentes acima é a de que o "SQLite" não fornece acesso por meio de uma "API" de rede de intercomunicação. As bases de dados "SQLite" são sempre armazenadas na máquina que executa o aplicativo que usa a base de dados. A manipulação do conteúdo dos dados é feita por meio de chamadas de "API" para funções de biblioteca diretamente no aplicativo.

Na documentação do(a) desenvolvedor(a) você possivelmente ache o seguinte útil:

Documentação da ferramenta de linha de comando "sqlite3": https://www.sqlite.org/cli.html

Documentação de chamadas da "API" de cópia de segurança: https://www.sqlite.org/backup.html

Infelizmente, não existe nenhum capítulo dedicado na documentação do(a) desenvolvedor(a) falando a respeito de cópia de segurança/restauração, mas existem vários artigos referentes a isso na Internet. Aqui está um exemplo.

Documentação para Cópia de Segurança/Restauração: https://database.guide/backup-sqlite-database/

LMDB

Assim como o Sqlite, esse logiciário atua em arquivos locais de base de dados; não existe interface de rede de intercomunicação.

Os recursos relevantes para produzir cópia de segurança/restaurar uma base de dados LMDB são as páginas de manual para mdb_dump e a contraparte dele mdb_load.

lmdb-0.9.31

Introdução ao lmdb

O pacote "lmdb" é um armazenamento de dados incorporado de valor-chave, rápido e compacto. Ele usa arquivos mapeados em memória, de forma que tem o desempenho de leitura de uma pura base de dados em memória, ao mesmo tempo que oferece a persistência de bases de dados padrão baseadas em disco e é limitado somente ao tamanho do espaço virtual de endereço

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/LMDB/lmdb/archive/LMDB_0.9.31.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9d7f059b1624d0a4d4b2f1781d08d600

  • Tamanho da transferência: 144 KB

  • Espaço em disco estimado exigido: 4,7 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do lmdb

Nota

Esse pacote extrai para "lmdb-LMDB_0.9.31".

Instale o "lmdb" executando os seguintes comandos:

cd libraries/liblmdb &&
make                &&
sed -i 's| liblmdb.a||' Makefile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make prefix=/usr install

Explicações do Comando

sed ... liblmdb.a ... Makefile: Os executáveis do pacote usam uma biblioteca estática, de forma que ela precisa ser criada. Esse comando suprime a instalação da biblioteca estática.

Conteúdo

Aplicativo Instalado: mdb_copy, mdb_dump, mdb_load e mdb_stat
Biblioteca Instalada: liblmdb.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

mdb_copy

copia um ambiente LMDB a partir de uma base de dados para outra, incluindo a opção para compactar a base de dados

mdb_dump

lê uma base de dados e escreve o conteúdo dela na saída padrão usando um formato de texto simples portável, que consegue ser interpretado por mdb_load

mdb_load

importa uma base de dados a partir da entrada padrão ou a partir de um arquivo

mdb_stat

exibe a situação de um ambiente LMDB

liblmdb.so

fornece funções para acessar uma base de dados LMDB

MariaDB-11.4.5

Introdução ao MariaDB

"MariaDB" é uma bifurcação desenvolvida pela comunidade e um substituto imediato para o sistema de gerenciamento de bases de dados relacionais "MySQL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

O tamanho instalado do MariaDB é de 745 MB, mas isso pode ser reduzido em cerca de 265 MB, se desejado, removendo-se o diretório /usr/share/mariadb/test depois da instalação.

Dependências do "MariaDB"

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

Boost-1.87.0, libaio-0.3.113, libxml2-2.13.6, Linux-PAM-1.7.0, LZO-2.10, MIT Kerberos V5-1.21.3, pcre2-10.45, Ruby-3.4.2, sphinx-8.2.1, unixODBC-2.3.12, Valgrind-3.24.0, Groonga, KyTea, Judy, MeCab, MessagePack, mruby, MyRocks, Snappy e ZeroMQ

Instalação do MariaDB

Atenção

"MariaDB" e "MySQL" não podem ser instalados no mesmo sistema sem grandes mudanças na configuração de construção de um dos dois aplicativos.

Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é altamente encorajado. Emita o seguinte (como "root") para criar o(a) usuário(a) e o grupo:

groupadd -g 40 mariadb &&
useradd -c "MariaDB Server" -d /srv/mariadb -g mariadb -s /bin/false -u 40 mariadb

Instale o "MariaDB" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release                       \
      -D CMAKE_INSTALL_PREFIX=/usr                      \
      -D GRN_LOG_PATH=/var/log/groonga.log              \
      -D INSTALL_DOCDIR=share/doc/mariadb-11.4.5        \
      -D INSTALL_DOCREADMEDIR=share/doc/mariadb-11.4.5  \
      -D INSTALL_MANDIR=share/man                       \
      -D INSTALL_MYSQLSHAREDIR=share/mariadb            \
      -D INSTALL_MYSQLTESTDIR=share/mariadb/test        \
      -D INSTALL_PAMDIR=lib/security                    \
      -D INSTALL_PAMDATADIR=/etc/security               \
      -D INSTALL_PLUGINDIR=lib/mariadb/plugin           \
      -D INSTALL_SBINDIR=sbin                           \
      -D INSTALL_SCRIPTDIR=bin                          \
      -D INSTALL_SQLBENCHDIR=share/mariadb/bench        \
      -D INSTALL_SUPPORTFILESDIR=share/mariadb          \
      -D MYSQL_DATADIR=/srv/mariadb                     \
      -D MYSQL_UNIX_ADDR=/run/mariadb/mariadb.sock      \
      -D WITH_EXTRA_CHARSETS=complex                    \
      -D WITH_EMBEDDED_SERVER=ON                        \
      -D SKIP_TESTS=ON                                  \
      -D TOKUDB_OK=0                                    \
      .. &&
make

Para testar os resultados, emita: make test. Dois testes, my_tzinfo e test-connect, são conhecidos por falharem.

Nota

Um conjunto mais extenso de testes pode ser executado com o seguinte:

pushd mysql-test
./mtr --parallel <N> --mem --force
popd

Onde N é o número de testes a executar em paralelo. Mais que cinco mil e quatrocentos (5.400) testes são executados em cerca de 24 UPC com N=4. Uns poucos testes possivelmente falhem, principalmente devido a problemas no conjunto de caracteres.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D WITH_EMBEDDED_SERVER=ON: Essa chave habilita compilar a biblioteca incorporada do servidor necessária para determinados aplicativos, como o "Amarok".

-D WITH_EXTRA_CHARSETS=complex: Essa chave habilita suporte para os conjuntos de caracteres complexos.

-D SKIP_TESTS=ON: Essa chave desabilita testes para Connector/C do MariaDB que não são suportados sem configuração adicional.

-D WITHOUT_SERVER=ON: Use essa chave se você não quiser o servidor e gostaria de construir somente o cliente.

Nota

Existem numerosas opções disponíveis para o "cmake". Verifique a saída gerada do "cmake . -LH" para opções adicionais de personalização.

Configurando o MySQL

Arquivos de Configuração

/etc/mariadb/my.cnf e ~/.my.cnf

Informação de Configuração

Crie um arquivo /etc/mariadb/my.cnf básico usando o seguinte comando como o(a) usuário(a) root:

install -v -dm 755 /etc/mariadb &&
cat > /etc/mariadb/my.cnf << "EOF"
# Begin /etc/mariadb/my.cnf

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /run/mariadb/mariadb.sock

# The MySQL server
[mariadb]
port            = 3306
socket          = /run/mariadb/mariadb.sock
datadir         = /srv/mariadb
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all.
skip-networking

# required unique id between 1 and 2^32 - 1
server-id       = 1

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# InnoDB tables are now used by default
innodb_data_home_dir = /srv/mariadb
innodb_log_group_home_dir = /srv/mariadb
# All the innodb_xxx values below are the default ones:
innodb_data_file_path = ibdata1:12M:autoextend
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mariadbdump]
quick
max_allowed_packet = 16M

[mariadb]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mariadbhotcopy]
interactive-timeout

# End /etc/mariadb/my.cnf
EOF

Você pode agora instalar uma base de dados e mudar a titularidade da propriedade para o(a) usuário(a) e grupo sem privilégios (realize como o(a) usuário(a) "root"):

mariadb-install-db --basedir=/usr --datadir=/srv/mariadb --user=mariadb &&
chown -R mariadb:mariadb /srv/mariadb

A configuração adicional exige que o servidor "MariaDB" esteja em execução. Inicie o servidor usando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -o mariadb -g mariadb -d /run/mariadb &&
mariadbd-safe --user=mariadb 2>&1 >/dev/null &

Uma instalação padrão não configura uma senha para o(a) administrador(a), portanto, use o seguinte comando como o(a) usuário(a) "root" para configurar uma.

mariadb-admin -u root password

A configuração do servidor agora está finalizada. Encerre o servidor usando o seguinte comando como o(a) usuário(a) "root":

mariadb-admin -p shutdown

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/mariadb incluso no pacote blfs-bootscripts-20250225 como o(a) usuário(a) root para iniciar o servidor MariaDB durante a inicialização do sistema.

make install-mariadb

Nota

Se você já tem uma base de dados existente e essa instalação de binários foi apenas uma atualização para uma versão mais recente, [então] verifique a documentação do(a) desenvolvedor(a) para atualização. É recomendado executar:

mariadb-upgrade

Conteúdo

Aplicativos Instalados: aria_chk, aria_dump_log, aria_ftdump, aria_pack, aria_read_log, aria_s3_copy, galera_new_cluster, galera_recovery, innochecksum, mariabackup, mariadb, mariadbd, mariadb-access, mariadb-admin, mariadb-backup, mariadb-binlog, mariadb-check, mariadb-client-test, mariadb-client-test-embedded, mariadb-conv, mariadb-convert-table-format, mariadb-find-rows, mariadbd-multi, mariadbd-safe, mariadbd-safe-helper, mariadb-dump, mariadb-dumpslow, mariadb-embedded, mariadb-fix-extensions, mariadb-hotcopy, mariadb-import, mariadb-install-db, mariadb-ldb, mariadb-plugin, mariadb-secure-installation, mariadb-setpermission, mariadb-service-convert, mariadb-show, mariadb-slap, mariadb-test, mariadb-test-embedded, mariadb-tzinfo-to-sql, mariadb-upgrade, mariadb-waitpid, mariadb_config, mbstream, msql2mysql, my_print_defaults, myisamchk, myisam_ftdump, myisamlog, myisampack, mysql_config, mytop, perror, replace, resolve_stack_dump, resolveip, sst_dump, wsrep_sst_common, wsrep_sst_mariabackup, wsrep_sst_mysqldump e wsrep_sst_rsync
Bibliotecas Instaladas: libmariadb.a, libmariadb.so, libmariadbclient.a, libmariadbd.a, libmariadbd.so, libmariadb.so.3, libmysqlclient.a, libmysqlclient.so, libmysqlclient_r.a, libmysqlclient_r.so, libmysqld.a, libmysqld.so, libmysqlservices.a e cerca de 70 módulos sob /usr/lib/mysql/plugin/
Diretórios Instalados: /usr/{include,lib,share}/mysql, /usr/share/groonga{,-normalizer-mysql} e /usr/share/doc/mariadb-11.4.5

Descrições Curtas

Existem vários links simbólicos de "mysql*" para as contrapartes deles do "mariadb". Eles são mantidos para compatibilidade.

Os módulos "DBI" do "Perl" precisam estar instalados para que alguns dos aplicativos de suporte do "MariaDB" funcionem corretamente.

Descrições Curtas

aria_chk

é usado para verificar, reparar, otimizar, classificar e obter informações relativas a tabelas "Aria"

aria_dump_log

é uma ferramenta para despejar o conteúdo das páginas de registro do "Aria"

aria_ftdump

exibe informações de índice de texto completo

aria_pack

é uma ferramenta para gerar tabelas "Aria" comprimidas e somente leitura

aria_read_log

exibe o conteúdo do arquivo de registro do "Aria"

aria_s3_copy

copia uma tabela "Aria" de e para "AWS S3"

galera_new_cluster

inicializa um novo agrupamento "Galera"

galera_recovery

recupera dados a partir de um agrupamento "Galera"

innochecksum

imprime somas de verificação para arquivos "InnoDB"

mariabackup

é uma ferramenta de fonte aberto de cópia de segurança para "InnoDB" e "XtraDB"

mariadb

é um "shell" simples "SQL" com recursos de edição de linha de entrada

mariadbd

é o processo de segundo plano do servidor "MySQL"

mariadb-access

verifica os privilégios de acesso para uma combinação de nome de dispositivo, nome de usuário(a) e base de dados

mariadb-admin

é um cliente para realizar operações administrativas

mariadb-binlog

lê arquivos binários de registro

mariadb-check

realiza manutenção de tabelas: verifica, repara, otimiza ou analisa tabelas

mariadb-client-test

é usado para testar aspectos da API do cliente do MySQL que não podem ser testados usando o mariadb-test e a linguagem de teste dele

mariadb-client-test-embedded

é uma ferramenta para testar a "API" do cliente para o servidor incorporado

mariadb-conv

converte conjuntos de caracteres para uso com "MariaDB"

mariadb-convert-table-format

converte as tabelas em uma base de dados para usar um mecanismo específico de armazenamento

mariadbd-multi

foi projetado para gerenciar vários processos do mariadb que escutam conexões em diferentes arquivos de soquete Unix e portas TCP/IP

mariadbd-safe

é a maneira recomendada de iniciar um servidor mariadb em Unix e NetWare

mariadb-dump

é um aplicativo de cópia de segurança

mariadb-dumpslow

analisa arquivos de registro de consulta lenta do "MySQL" e imprime um resumo do conteúdo deles

mariadb-embedded

é um cliente "MySQL" vinculado estaticamente à "libmariadbd"

mariadb-find-rows

lê arquivos contendo instruções "SQL" e extrai instruções que correspondem a uma determinada expressão regular ou que contém instruções "USE" nome_base_dados ou "SET"

mariadb-fix-extensions

converte as extensões dos arquivos de tabela "MyISAM" (ou "ISAM") para as formas canônicas delas

mariadb-hotcopy

trava a tabela, libera a tabela e então realiza uma cópia da base de dados

mariadb-import

lê uma variedade de formatos de dados e insere os dados em uma base de dados

mariadb-install-db

inicializa o diretório de dados "MySQL" e cria as tabelas de sistema que ele contém, se elas não existirem

mariadb-ldb

é a ferramenta "RocksDB"

mariadb-plugin

é um utilitário que habilita os(as) administradores(as) "MySQL" a gerenciar quais "plugins" um servidor "MySQL" carrega

mariadb-secure-installation

é uma ferramenta para melhorar a segurança da instalação do "MySQL"

mariadb-service-convert

gera uma unidade do "systemd" baseada nas configurações atuais do "mariadb"

mariadb-setpermission

configura permissões nas tabelas de concessão do "MySQL"

mariadb-show

mostra a estrutura de uma base de dados "MariaDB"

mariadb-slap

é um aplicativo de diagnóstico projetado para emular a carga do cliente para um servidor "MySQL" e informar o tempo de cada estágio

mariadb-test

executa um caso de teste em um servidor "MySQL" e, opcionalmente, compara a saída gerada com um arquivo de resultado

mariadb-test-embedded

é semelhante ao comando mariadb-test, mas é construído com suporte para o servidor incorporado libmariadb

mariadb-tzinfo-to-sql

carrega as tabelas de fuso horário na base de dados mariadb

mariadb-upgrade

examina todas as tabelas em todas as bases de dados em busca de incompatibilidades com a versão atual do Servidor "MySQL"

mariadb-waitpid

sinaliza um processo para terminar e espera que o processo saia

mariadb_config

obtém sinalizadores do compilador para usar o "Connector/C" do "MariaDB"

mbstream

é um utilitário para enviar cópias de segurança "InnoDB" e "XTraDB" por meio de um fluxo

msql2mysql

é uma ferramenta para converter aplicativos "mSQL" para uso com "MySQL"

my_print_defaults

exibe as opções a partir de grupos de opções de arquivos de opções

myisam_ftdump

exibe informações relativas a índices "FULLTEXT" em tabelas "MyISAM"

myisamchk

obtém informações relativas às tabelas da tua base de dados ou as verifica, repara ou otimiza

myisamlog

exibe o conteúdo do arquivo de registro do "MyISAM"

myisampack

é uma ferramenta para comprimir tabelas "MyISAM"

mysql_config

fornece informações úteis para compilar o teu cliente "MySQL" e conectá-lo ao "MySQL"

mytop

é uma ferramenta baseada em console para monitorar as camadas e o desempenho geral de um servidor "MySQL"

perror

é um utilitário que exibe descrições de códigos de erro do sistema ou do mecanismo de armazenamento

replace

é uma extensão "MariaDB"/"MySQL" para o padrão "SQL"

resolve_stack_dump

resolve um despejo numérico de pilha em símbolos

resolveip

é um utilitário para resolver endereços "IP" em nomes de dispositivo e vice-versa

sst_sump

despeja o conteúdo dos arquivos "sst" (o formato usado pelo "RocksDB")

PostgreSQL-17.4

Introdução ao PostgreSQL

"PostgreSQL" é um avançado sistema de gerenciamento de bases de dados objeto relacional ("SAGBDOR"), derivado do sistema de gerenciamento de bases de dados "Berkeley Postgres".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4d5f4119cabe4adeb5ce8b5377928578

  • Tamanho da transferência: 21 MB

  • Espaço em disco estimado exigido: 247 MB (Adicionar 86 MB para testes)

  • Tempo de construção estimado: 0,7 UPC (com paralelismo=4, adicionar 0,1 UPC para testes)

Dependências do "PostgreSQL"

Opcionais

ICU-76.1, libxml2-2.13.6, libxslt-1.1.42, OpenLDAP-2.6.9, Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3 e Bonjour

Opcionais (Para Regenerar a Documentação)

fop-2.10, docbook-4.5-dtd, docbook-dsssl-1.79, DocBook-utils-0.6.14, OpenJade-1.3.2 e SGMLSpm-1.1

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postgresql

Instalação do PostgreSQL

Para maior segurança, é melhor ter um grupo e usuário(a) dedicado para executar o servidor "PostgreSQL". Primeiro, emita como o(a) usuário(a) "root":

groupadd -g 41 postgres &&
useradd -c "Servidor PostgreSQL" -g postgres -d /srv/pgsql/data \
        -u 41 postgres

Nota

Existem vários itens de configuração que adicionam funcionalidade adicional com pacotes opcionais ao "PostgreSQL". Use "./configure --help" para ver uma lista.

Instale o "PostgreSQL" com os seguintes comandos:

sed -i '/DEFAULT_PGSOCKET_DIR/s@/tmp@/run/postgresql@' src/include/pg_config_manual.h &&

./configure --prefix=/usr \
            --docdir=/usr/share/doc/postgresql-17.4 &&
make

Existem vários aplicativos no diretório "contrib/". Se você for executar essa instalação como um servidor e desejar construir alguns deles, [então] digite "make -C contrib" ou "make -C contrib/<NOME-SUB-DIRETÓRIO>" para cada subdiretório.

Os testes precisam ser executados como um(a) usuário(a) sem privilégios porque precisam iniciar um servidor temporário e isso é evitado como o(a) usuário(a) "root". Pela mesma razão, você precisa parar todos os servidores "PostgreSQL", se algum estiver em execução. Se uma versão anterior do "PostgreSQL" estiver instalada, [então] possivelmente seja necessário usar "--disable-rpath" com o "configure" para evitar falhas, mas instalar os binários criados usando essa chave não é recomendado. Para testar os resultados, emita: "make check".

Nota

Se você estiver instalando o PostgreSQL para atualizar uma instalação existente, existem etapas importantes que você precisa seguir. Se a versão principal da nova construção for superior à versão anterior, existe uma chance de que o formato do arquivo de dados tenha mudado. O novo software não consegue usar os existentes arquivos de dados. Nesse caso, o servidor não iniciará porque os antigos programas foram sobrescritos, de forma que os dados estão indisponíveis até que o formato do arquivo deles tenha sido convertido.

Antes de atualizar uma instalação existente do PostgreSQL, verifique a documentação para quaisquer considerações que você precisa ter em mente durante a atualização. Observe que as novas versões principais podem usar um formato diferente de binário nos objetos de dados, causando potenciais incompatibilidades. Para mais informações, por favor, revise a documentação do fluxo de desenvolvimento relativa a atualizar o PostgreSQL aqui: https://www.postgresql.org/docs/current/upgrading.html.

Neste ponto, você possivelmente tenha os binários antigo e novo instalados em seu sistema de arquivos. Esses binários podem ser usados para realizar uma atualização dos teus arquivos de base de dados existentes. Para as instruções a seguir, presume-se que

  • Os arquivos de dados atuais estão armazenados em "/srv/pgsql/data"

  • Os arquivos de dados atualizados serão armazenados em "/srv/pgsql/newdata"

  • Existe espaço em disco suficiente para armazenar os arquivos de dados atuais duas vezes. A atualização não é uma atualização em linha, mas copiará os dados para novos arquivos de base de dados.

Primeiro, faça uma instalação temporária que torna o acesso aos novos binários muito mais fácil:

make DESTDIR=$(pwd)/DESTDIR install

Em seguida, crie um diretório que seja escrevível pelo(a) usuário(a) "postgres", como o(a) usuário(a) "root":

install -d -o postgres $(pwd)/DESTDIR/tmp

Agora, pare a instância existente do "PostgreSQL" e inicie o processo de atualização como o(a) usuário(a) "root":

pushd $(pwd)/DESTDIR/tmp
/etc/rc.d/init.d/postgresql stop
su postgres -c "../usr/bin/initdb -D /srv/pgsql/newdata"
su postgres -c "../usr/bin/pg_upgrade \
                    -d /srv/pgsql/data   -b /usr/bin \
                    -D /srv/pgsql/newdata -B ../usr/bin"
popd

Neste ponto, os teus arquivos da base de dados estão disponíveis em dois locais no disco. Os dados antigos estão localizados em /srv/pgsql/data e os novos dados estão em /srv/pgsql/newdata. Produzir uma cópia de segurança dos arquivos antigos da base de dados é recomendado antes de continuar.

Em seguida, remova os arquivos antigos de base de dados e renomeie o novo diretório de dados como o(a) usuário(a) "root":

rm -rf /srv/pgsql/data
mv /srv/pgsql/newdata /srv/pgsql/data

Agora, como o(a) usuário(a) "root":

make install     &&
make install-docs

Se você criou qualquer um dos aplicativos "contrib/", como o(a) usuário(a) "root":

make -C contrib/<NOME-SUB-DIRETÓRIO> install

Dica

Se você pretende usar o "PostgreSQL" somente como um cliente para conectar-se a um servidor em outra máquina, [então] a tua instalação está completa e você não deveria executar os comandos restantes.

Se você atualizou uma base de dados existente, [então] ignore o restante dos comandos porque a tua base de dados está pronta para uso. Se essa for a primeira vez que você instala o "PostgreSQL", [então] continue com a inicialização.

Inicialize um agrupamento de bases de dados com os seguintes comandos emitidos pelo(a) usuário(a) "root":

install -v -dm700 /srv/pgsql/data &&
install -v -dm755 /run/postgresql &&
chown -Rv postgres:postgres /srv/pgsql /run/postgresql

Agora, inicialize a base de dados como o(a) usuário(a) "root":

su - postgres -c '/usr/bin/initdb -D /srv/pgsql/data'

Explicações do Comando

sed -i ...: Esse "sed" muda o local do soquete do servidor de "/tmp" para "/run/postgresql".

--with-openssl: constrói o pacote com suporte para conexões encriptadas "OpenSSL".

--with-perl: constrói a linguagem "PL"/"Perl" do lado do servidor.

--with-python: constrói a linguagem PL/Python do lado do servidor.

--with-tcl: constrói a linguagem "PL"/"Tcl" do lado do servidor.

Configurando o PostgreSQL

Arquivos de Configuração

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf e $PGDATA/postgresql.conf

A variável de ambiente "PGDATA" é usada para distinguir agrupamentos de bases de dados uns dos outros, configurando-a com o valor do diretório que contém o agrupamento desejado. Os três arquivos de configuração existem em cada diretório "PGDATA/". Detalhes relativos ao formato dos arquivos e as opções que podem ser configuradas em cada um podem ser encontrados em /usr/share/doc/postgresql-17.4/html/index.html.

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/postgresql" incluso no pacote "blfs-bootscripts-20250225" "":

make install-postgresql

Iniciando o Servidor PostgreSQL e Criando uma Base de Dados de Amostra

O servidor de base de dados pode ser iniciado manualmente com o seguinte comando (como o(a) usuário(a) "root"):

su - postgres -c '/usr/bin/postgres -D /srv/pgsql/data > \
                 /srv/pgsql/data/logfile 2>&1 &'

Nota

Se você estiver automatizando esta parte, [então] você deveria esperar o servidor iniciar antes de continuar, adicionando, por exemplo, "sleep 2" depois do comando acima.

As instruções abaixo mostram como criar uma base de dados, adicionar uma tabela nela, inserir algumas linhas na tabela e selecioná-las, para verificar se a instalação está funcionando corretamente. Ainda como usuário(a) "root", emita:

su - postgres -c '/usr/bin/createdb test' &&
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Billy', 'NewYork');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Evanidus', 'Quebec');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Jesse', 'Ontario');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test')

Quando terminar o teste, você pode desligar o servidor, emitindo como "root":

su - postgres -c "/usr/bin/pg_ctl stop -D /srv/pgsql/data"

Conteúdo

Aplicativos Instalados: clusterdb, createdb, createuser, dropdb, dropuser, ecpg, initdb, pg_amcheck, pg_archivecleanup, pg_basebackup, pg_checksums, pg_config, pg_controldata, pg_ctl, pg_dump, pg_dumpall, pg_isready, pg_receivewal, pg_recvlogical, pg_resetwal, pg_restore, pg_rewind, pg_test_fsync, pg_test_timing, pg_upgrade, pg_verifybackup, pg_waldump, pgbench, postgres, psql, reindexdb, vacuumdb, opcionalmente, se suporte a Tcl tiver sido construído, pltcl_delmod, pltcl_listmod, pltcl_loadmod e, opcionalmente (em contrib/), oid2name, pg_standby, vacuumlo e muitos outros
Bibliotecas Instaladas: libecpg.{so,a}, libecpg_compat.{so,a}, libpgcommon.a, libpgcommon_shlib.a, libpgfeutils.a, libpgport.a, libpgport_shlib.a, libpgtypes.{so,a}, libpq.{so,a}, vários módulos de conjuntos de caracteres e opcionalmente módulos de linguagem de programação em "/usr/lib/postgresql"
Diretórios Instalados: /usr/include/{libpq,postgresql}, /usr/lib/postgresql, /usr/share/{doc/postgresql-17.4,postgresql} e /srv/pgsql

Descrições Curtas

clusterdb

é um utilitário para reagrupar tabelas em uma base de dados "PostgreSQL"

createdb

cria uma nova base de dados "PostgreSQL"

createuser

define uma nova conta de usuário(a) "PostgreSQL"

dropdb

remove uma base de dados "PostgreSQL"

dropuser

remove uma conta de usuário(a) "PostgreSQL"

ecpg

é o pré processador incorporado "SQL"

initdb

cria um novo agrupamento de bases de dados

oid2name

resolve "OIDs" ("Object IDs") e nós de arquivo em um diretório de dados do "PostgreSQL"

pg_amcheck

verifica se existe corrupção em uma ou mais bases de dados "PostgreSQL"

pg_archivecleanup

limpa arquivos de arquivamento "write-ahead log" ("WAL") do "PostgreSQL"

pg_basebackup

faz cópias básicas de segurança de um agrupamento do PostgreSQL em execução

pg_checksums

habilita, desabilita ou verifica somas de verificação de dados em um agrupamento de bases de dados do "PostgreSQL"

pg_config

recupera informações de versão do "PostgreSQL"

pg_controldata

retorna informações inicializadas durante o "initdb", como a versão do catálogo e a localidade do servidor

pg_ctl

controla a parada e inicialização do servidor de base de dados

pg_dump

despeja dados e metadados da base de dados em conjuntos de comandos sequenciais que são usados para recriar a base de dados

pg_dumpall

chama recursivamente "pg_dump" para cada base de dados em um agrupamento

pg_isready

verifica a situação da conexão de um servidor "PostgreSQL"

pg_receivewal

é usado para transmitir "write-ahead logs" a partir de um servidor "PostgreSQL"

pg_recvlogical

controla fluxos de decodificação lógica do "PostgreSQL"

pg_resetwal

reconfigura o "write-ahead log" e outras informações de controle de um agrupamento de bases de dados "PostgreSQL"

pg_restore

cria bases de dados a partir de arquivos de despejo criados pelo "pg_dump"

pg_rewind

sincroniza um diretório de dados do "PostgreSQL" com outro diretório de dados que foi bifurcado a partir do primeiro

pg_standby

suporta a criação de um servidor de espera quente do "PostgreSQL"

pg_test_fsync

determina o método "wal_sync" mais rápido para o "PostgreSQL"

pg_test_timing

mede a sobrecarga de tempo

pg_upgrade

atualiza uma instância do servidor "PostgreSQL"

pg_verifybackup

verifica a integridade de uma cópia básica de segurança de um agrupamento do "PostgreSQL"

pg_waldump

exibe uma renderização legível por humanos(as) do "write-ahead log" de um agrupamento de bases de dados do "PostgreSQL"

pgbench

executa um teste de avaliação comparativa no "PostgreSQL"

pltcl_delmod

é um conjunto de comandos sequenciais de suporte usado para deletar um módulo originário de uma tabela "PL"/"Tcl". O comando exige que o pacote "Pgtcl" esteja instalado

pltcl_listmod

é um conjunto de comandos sequenciais de suporte usado para listar os módulos em uma tabela "PL"/"Tcl". O comando exige que o pacote "Pgtcl" esteja instalado

pltcl_loadmod

é um conjunto de comandos sequenciais de suporte usado para carregar um módulo em uma tabela PL/Tcl. O comando exige que o pacote Pgtcl esteja instalado

postgres

é o servidor de base de dados "PostgreSQL"

psql

é um "shell" de base de dados baseado em console

reindexdb

é um utilitário para reconstruir índices em uma base de dados

vacuumdb

compacta bases de dados e gera estatísticas para o analisador de consultas

vacuumlo

remove objetos grandes órfãos a partir de uma base de dados do "PostgreSQL"

libecpg.{so,a}

contém funções para suportar "SQL" incorporado em aplicativos "C"

libecpg_compat.{so,a}

é a biblioteca de compatibilidade "ecpg"

libgport.a

é o subsistema específico da porta da estrutura de retaguarda do "Postgres"

libpgtypes.{so,a}

contém funções para lidar com tipos de dados "Postgres"

libpq.{so,a}

é a "API" do(a) programador(a) "C" para "Postgres"

SQLite-3.49.1

Introdução ao SQLite

O pacote "SQLite" é uma biblioteca de logiciário que implementa um mecanismo de base de dados "SQL" transacional independente, sem servidor e com configuração zero.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://sqlite.org/2025/sqlite-autoconf-3490100.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8d77d0779bcd9993eaef33431e2e0c30

  • Tamanho da transferência: 3,1 MB

  • Espaço em disco estimado exigido: 123 MB (com documentação)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Transferências Adicionais

Documentação Opcional

Dependências do "SQLite"

Opcionais

libarchive-3.7.7 (exigido para deszipar a documentação) e libedit

Instalação do SQLite

Se você baixou a documentação opcional, [então] emita o seguinte comando para instalar a documentação na árvore do fonte:

unzip -q ../sqlite-doc-3490100.zip

Instale o "SQLite" executando os seguintes comandos:

./configure --prefix=/usr     \
            --disable-static  \
            --enable-fts{4,5} \
            CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 \
                      -D SQLITE_ENABLE_UNLOCK_NOTIFY=1   \
                      -D SQLITE_ENABLE_DBSTAT_VTAB=1     \
                      -D SQLITE_SECURE_DELETE=1"         &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Se você baixou a documentação opcional, [então] emita os seguintes comandos como o(a) usuário(a) "root" para instalá-la:

install -v -m755 -d /usr/share/doc/sqlite-3.49.1 &&
cp -v -R sqlite-doc-3490100/* /usr/share/doc/sqlite-3.49.1

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-fts{4,5}: Essas chaves habilitam o suporte para as versões 3, 4 e 5 da extensão de pesquisa de texto completo (FTS). Observe que a chave --enable-fts4 habilita suporte para versão 4 do FTS e versão 3 do FTS.

CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 ... : Alguns aplicativos exigem que essas opções estejam ativadas. A única maneira de fazer isso é a de incluí-las nas CFLAGS ou CPPFLAGS. Nós usamos a última, de forma que o valor padrão (ou qualquer valor configurado pelo(a) usuário(a)) de CFLAGS não seria afetado. Para mais informações a respeito do que pode ser especificado, veja-se https://www.sqlite.org/compile.html.

Conteúdo

Aplicativo Instalado: sqlite3
Biblioteca Instalada: libsqlite3.so
Diretório Instalado: /usr/share/doc/sqlite-3.49.1

Descrições Curtas

sqlite3

é uma estrutura de interação direta com o(a) usuário(a) baseada em terminal para a biblioteca "SQLite" que consegue avaliar consultas interativamente e exibir os resultados

libsqlite3.so

contém as funções da "API" do "SQLite"

Capítulo 23. Outro Logiciário de Servidor

Aqui você encontrará muitas maneiras de compartilhar a tua máquina com o resto do mundo ou com a tua rede de intercomunicação local. Antes de instalar quaisquer pacotes neste capítulo, você precisa ter certeza de que entende o que o pacote faz e como configurá-lo corretamente. Também pode ser útil aprender a respeito das consequências de uma configuração inadequada, de forma que você consiga analisar os riscos.

OpenLDAP-2.6.9

Introdução ao OpenLDAP

O pacote "OpenLDAP" fornece uma implementação de fonte aberto do "Lightweight Directory Access Protocol".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "OpenLDAP"

Recomendadas
Opcionais

GnuTLS-3.8.9, unixODBC-2.3.12, MariaDB-11.4.5 ou PostgreSQL-17.4 ou MySQL, OpenSLP, WiredTiger e Berkeley DB (obsoleto) (para slapd, também obsoleto)

Instalação do OpenLDAP

Nota

Se você precisar instalar somente os binários "ldap*" do lado cliente, páginas de manual, bibliotecas e arquivos de cabeçalho correspondentes (referidos como instalação client-only), [então] emita estes comandos, em vez dos seguintes (nenhuma suíte de teste disponível):

patch -Np1 -i ../openldap-2.6.9-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-static     \
            --enable-dynamic     \
            --disable-debug      \
            --disable-slapd &&

make depend &&
make

Em seguida, como o(a) usuário(a) "root":

make install

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "slapd" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 83 ldap &&
useradd  -c "Proprietário(a) do Processo de Segundo Plano OpenLDAP" \
         -d /var/lib/openldap -u 83 \
         -g ldap -s /bin/false ldap

Instale o "OpenLDAP" executando os seguintes comandos:

patch -Np1 -i ../openldap-2.6.9-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr         \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --libexecdir=/usr/lib \
            --disable-static      \
            --disable-debug       \
            --with-tls=openssl    \
            --with-cyrus-sasl     \
            --without-systemd     \
            --enable-dynamic      \
            --enable-crypt        \
            --enable-spasswd      \
            --enable-slapd        \
            --enable-modules      \
            --enable-rlookups     \
            --enable-backends=mod \
            --disable-sql         \
            --disable-wt          \
            --enable-overlays=mod &&

make depend &&
make

Os testes são frágeis e erros podem fazer com que os testes abortem antes de finalizarem. Alguns erros podem ocorrer devido a problemas de temporização. Os testes duram cerca de uma hora e o tempo independe da CPU devido a atrasos nos testes. Na maioria dos sistemas, os testes executarão até o teste test065-proxyauth for mdb. Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) "root":

make install &&

sed -e "s/\.la/.so/" -i /etc/openldap/slapd.{conf,ldif}{,.default} &&

install -v -dm700 -o ldap -g ldap /var/lib/openldap    &&

install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d &&
chmod   -v    640     /etc/openldap/slapd.{conf,ldif}   &&
chown   -v  root:ldap /etc/openldap/slapd.{conf,ldif}   &&

install -v -dm755 /usr/share/doc/openldap-2.6.9 &&
cp      -vfr      doc/{drafts,rfc,guide} \
                  /usr/share/doc/openldap-2.6.9

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-debug: Essa chave desabilita o código de depuração no "OpenLDAP".

--enable-dynamic: Essa chave força as bibliotecas do "OpenLDAP" a serem vinculadas dinamicamente aos aplicativos executáveis.

--enable-crypt: Essa chave habilita usar senhas do crypt(3).

--enable-spasswd: Essa chave habilita a verificação de senha do "SASL".

--enable-modules: Essa chave habilita o suporte a módulo dinâmico.

--enable-rlookups: Essa chave habilita pesquisas reversas de nomes de dispositivos clientes.

--enable-backends: Essa chave habilita todas as estruturas de retaguarda disponíveis.

--enable-overlays: Essa chave habilita todas as sobreposições disponíveis.

--disable-sql: Essa chave desabilita explicitamente a estrutura "SQL" de retaguarda. Omita essa chave se um servidor "SQL" estiver instalado e você for usar uma estrutura "SQL" de retaguarda.

--disable-wt: Essa chave desabilita explicitamente a estrutura "WiredTiger" de retaguarda. Omita essa chave se o "WiredTiger" estiver instalado e você for usar uma estrutura "WiredTiger" de retaguarda.

--libexecdir=/usr/lib: Essa chave controla onde o diretório "/usr/lib/openldap" está instalado. Tudo nesse diretório é uma biblioteca, de forma que ele pertence a "/usr/lib" em vez de "/usr/libexec".

--enable-slp: Essa chave habilita o suporte a "SLPv2". Use-a se você tiver instalado o "OpenSLP".

--disable-versioning: Essa chave desabilita o versionamento de símbolos nas bibliotecas do OpenLDAP. O padrão é o de ter versionamento de símbolos. Observe que se você tiver construído aplicativos usando esse pacote com versionamento de símbolos e removeu os símbolos, os aplicativos possivelmente falhem na execução.

Nota

Você pode executar "./configure --help" para ver se existe outra chave que você possa passar para o comando "configure" para habilitar outras opções ou pacotes de dependência.

"install ...", "chown ..." e "chmod ...": Ter arquivos de configuração do "slapd" e bases de dados "ldap" em "/var/lib/openldap" legíveis por qualquer pessoa é um PROBLEMA DE SEGURANÇA, especialmente porque um arquivo armazena a senha do(a) administrador(a) em TEXTO SIMPLES. É por isso que o modo 640 e a titularidade de propriedade "root:ldap" foi usado. O proprietário é o(a) "root", de forma que somente o(a) "root" consegue modificar o arquivo, e o grupo é o "ldap", de forma que o grupo que titulariza o processo de segundo plano "slapd" consiga ler, mas não modificar o arquivo em caso de uma brecha de segurança.

Configurando o OpenLDAP

Arquivos de Configuração

  • Para o cliente do "LDAP": "/etc/openldap/ldap.conf" e "~/.ldaprc"

  • Para o servidor do "LDAP", dois mecanismos de configuração são usados: um arquivo legado de configuração "/etc/openldap/slapd.conf" e o sistema recomendado "slapd-config", usando uma base de dados "LDIF" armazenada em "/etc/openldap/slapd.d".

Informação de Configuração

Configurar os servidores "slapd" pode ser complexo. Proteger o diretório do "LDAP", especialmente se você estiver armazenando dados não públicos, como bases de dados de senhas, também pode ser uma tarefa desafiadora. Para a finalidade de configurar o "OpenLDAP", você precisará modificar ou o arquivo "/etc/openldap/slapd.conf" (método antigo) ou o arquivo "/etc/openldap/slapd.ldif" e, em seguida, usar o "ldapadd" para criar a base de dados de configuração do "LDAP" em "/etc/openldap/slapd.d" (recomendado pela documentação do "OpenLDAP").

Atenção

As instruções acima instalam uma estrutura vazia do "LDAP" e um arquivo "/etc/openldap/slapd.conf" padrão, que são adequados para testar a construção e outros pacotes que usem o "LDAP". Não os use em um servidor de produção.

Recursos para te ajudar com tópicos como escolha de configuração de diretório, definições de estrutura de retaguarda e base de dados, configurações de controle de acesso, execução como um(a) usuário(a) diferente de "root" e configuração de um ambiente "chroot" incluem:

Conjunto de Comandos Sequenciais de Inicialização

Para automatizar a inicialização do servidor do "LDAP" na inicialização do sistema, instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/slapd" incluso no pacote "blfs-bootscripts-20250225" "" usando o seguinte comando:

make install-slapd

Nota

Você precisará modificar o "/etc/sysconfig/slapd" para incluir os parâmetros necessários para a tua configuração específica. Veja-se a página de manual do "slapd" para informações de parâmetros.

Testando a Configuração

Inicie o servidor do "LDAP" usando o conjunto de comandos sequenciais de iniciação:

/etc/rc.d/init.d/slapd start

Verifique o acesso ao servidor do "LDAP" com o seguinte comando:

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

O resultado esperado é:

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=my-domain,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Conteúdo

Aplicativos Instalados: ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapurl, ldapvc, ldapwhoami, slapacl, slapadd, slapauth, slapcat, slapd, slapdn, slapindex, slapmodify, slappasswd, slapschema e slaptest
Bibliotecas Instaladas: liblber.so, libldap.so e diversas sob "/usr/lib/openldap"
Diretórios Instalados: /etc/openldap, /{usr,var}/lib/openldap e /usr/share/doc/openldap-2.6.9

Descrições Curtas

ldapadd

abre uma conexão com um servidor do "LDAP", vincula e adiciona entradas

ldapcompare

abre uma conexão com um servidor do "LDAP", vincula e realiza uma comparação usando parâmetros especificados

ldapdelete

abre uma conexão com um servidor do "LDAP", vincula e deleta uma ou mais entradas

ldapexop

emite a operação estendida do "LDAP" especificada por "oid" ou uma das palavras-chave especiais" whoami", "cancel" ou "refresh"

ldapmodify

abre uma conexão com um servidor do "LDAP", vincula e modifica entradas

ldapmodrdn

abre uma conexão com um servidor do "LDAP", vincula e modifica o "RDN" das entradas

ldappasswd

é uma ferramenta usada para configurar a senha de um(a) usuário(a) do "LDAP"

ldapsearch

abre uma conexão com um servidor do "LDAP", vincula e realiza uma pesquisa usando parâmetros especificados

ldapurl

é um comando que permite ou compor ou decompor "URIs" do "LDAP"

ldapvc

verifica credenciais de "LDAP"

ldapwhoami

abre uma conexão com um servidor do "LDAP", vincula e exibe informações "whoami"

slapacl

é usado para verificar o comportamento do "slapd" verificando o acesso aos dados do diretório de acordo com as diretivas da lista de controle de acesso definidas na configuração dele

slapadd

é usado para adicionar entradas especificadas no "LDAP Directory Interchange Format" ("LDIF") a uma base de dados do "LDAP"

slapauth

é usado para verificar o comportamento do "slapd" no mapeamento de identidades para fins de autenticação e autorização, conforme especificado no "slapd.conf"

slapcat

é usado para gerar uma saída "LDIF" do "LDAP" baseada no conteúdo de uma base de dados do "slapd"

slapd

é o servidor autônomo do "LDAP"

slapdn

verifica uma lista de "DNs" representados por sequências de caracteres baseadas na sintaxe do esquema

slapindex

é usado para regenerar índices do "slapd" baseados no conteúdo atual de uma base de dados

slapmodify

modifica entradas em uma base de dados do "slapd"

slappasswd

é um utilitário de senha "OpenLDAP"

slapschema

é usado para verificar a conformidade do esquema do conteúdo de uma base de dados do "slapd"

slaptest

verifica a sanidade do arquivo "slapd.conf"

liblber.so

é um conjunto de rotinas de Regras Leves de Codificação Básicas. Essas rotinas são usadas pelas rotinas da biblioteca do "LDAP" para codificar e decodificar elementos do protocolo "LDAP" usando as Regras Básicas de Codificação (ligeiramente simplificadas) definidas pelo "LDAP". Elas normalmente não são usadas diretamente por um programa aplicativo do "LDAP", exceto no manuseio de controles e operações estendidas

libldap.so

suporta os aplicativos do "LDAP" e fornece funcionalidade para outros aplicativos que interajam com o "LDAP"

Unbound-1.22.0

Introdução ao Unbound

"Unbound" é um resolvedor de "DNS" validador, recursivo e de cache. Ele foi projetado como um conjunto de componentes modulares que incorporam recursos modernos, como validação de segurança aprimorada ("DNSSEC"), protocolo de Internet versão 6 (IPv6) e uma "API" de biblioteca de resolvedor cliente como uma parte integral da arquitetura.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://nlnetlabs.nl/downloads/unbound/unbound-1.22.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: be0e5ae64c6619a638c116addd4da670

  • Tamanho da transferência: 6,4 MB

  • Espaço em disco estimado exigido: 151 MB (com documentos; adicionar 11 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com documentos; adicionar 0,3 UPC para testes)

Dependências do "Unbound"

Opcionais

libevent-2.1.12, Nettle-3.10.1, Protobuf-c-1.5.1 (para dnstap), sphinx-8.2.1 (para documentação de ligações Python), SWIG-4.3.0 (para ligações Python), Doxygen-1.13.2 (para documentação HTML), dnstap e Python2

Instalação do Unbound

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano do "unbound" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 88 unbound &&
useradd -c "Resolvedor DNS Unbound" -d /var/lib/unbound -u 88 \
        -g unbound -s /bin/false unbound

Instale o "Unbound" executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  \
            --with-pidfile=/run/unbound.pid &&
make

Se você tiver o pacote "Doxygen-1.13.2" instalado e quiser construir a documentação "HTML", [então] execute o seguinte comando:

make doc

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) "root":

make install &&
mv -v /usr/sbin/unbound-host /usr/bin/

Se você construiu a documentação, [então] instale-a executando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -d /usr/share/doc/unbound-1.22.0 &&
install -v -m644 doc/html/* /usr/share/doc/unbound-1.22.0

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-libevent: Essa opção habilita o suporte a libevent, o que permite o uso de grandes intervalos de portas de saída.

--with-pyunbound: Essa opção habilita construir as ligações Python. Se você quiser construir as ligações, você também precisa passar a variável de ambiente PYTHON_VERSION=3.13 para configurar.

Configurando o Unbound

Arquivos de Configuração

/etc/unbound/unbound.conf

Informação de Configuração

Na configuração padrão, o "unbound" irá vincular-se ao dispositivo local (endereço "IP" 127.0.0.1) e permitirá consultas recursivas somente a partir de clientes do dispositivo local. Se você quiser usar o "unbound" para resolução de "DNS" local, [então] execute o seguinte comando como o(a) usuário(a) "root":

echo "nameserver 127.0.0.1" > /etc/resolv.conf

Para configuração avançada, veja-se o arquivo "/etc/unbound/unbound.conf" e a documentação.

Quando o "Unbound" é instalado, algumas construções de pacotes falham se o arquivo "/etc/unbound/root.key" não for encontrado. Esse arquivo é criado executando-se o conjunto de comandos sequenciais de inicialização (instruções de instalação abaixo). Alternativamente, ele pode ser criado executando-se o seguinte comando como o(a) usuário(a) "root":

unbound-anchor

Conjunto de Comandos Sequenciais de Inicialização

Se você quiser que o servidor "Unbound" inicie automaticamente quando o sistema for inicializado, [então] instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/unbound" incluso no pacote "blfs-bootscripts-20250225" "":

make install-unbound

Conteúdo

Aplicativos Instalados: unbound, unbound-anchor, unbound-checkconf, unbound-control, unbound-control-setup e unbound-host
Biblioteca Instalada: libunbound.so
Diretórios Instalados: /etc/unbound e /usr/share/doc/unbound-1.22.0 (opcional)

Descrições Curtas

unbound

é um processo de segundo plano de resolvedor "DNS"

unbound-anchor

inicializa ou atualiza a âncora de confiança raiz para validação DNSSEC

unbound-checkconf

verifica o arquivo de configuração do "unbound" para sintaxe e outros erros

unbound-control

realiza administração remota no resolvedor "DNS" "unbound"

unbound-control-setup

gera um certificado autoassinado e chaves privadas para o servidor e cliente

unbound-host

é um utilitário de pesquisa "DNS" semelhante ao "host" originário do "Utilitários BIND-9.20.6"

libunbound.so

fornece as funções da "API" do "Unbound" para aplicativos

Parte VI. Componentes Gráficos

Capítulo 24. Ambientes Gráficos

Este capítulo contém instruções para construir e configurar um ambiente gráfico de usuário(a).

Por muito tempo o único ambiente gráfico usável com GNU/Linux foi o Sistemas de Janelas X. Ele usa um modelo cliente/servidor que permite escrever aplicações completamente independentes do hardware gráfico. Isso tem a desvantagem de que acessar a aceleração moderna de hardware é dificultoso, de forma que outra abordagem chamada Wayland está desenvolvida. Ele é um substituto mais simples para o X, mais fácil de desenvolver e manter, usando o estrutura OpenGL. Os principais ambientes de área de trabalho, GNOME e KDE, foram portados para ele.

Este capítulo fornece os componentes básicos do "Sistema de Janelas X" e do "Wayland". Para o "X", a implementação escolhida foi o "Xorg", que é uma implementação modular e exige que mais que cem (100) pacotes sejam instalados. Para a distribuição do "Xorg" é dado um número de lançamento pelos(as) desenvolvedores(as), nesse caso "Xorg-7". Os pacotes individuais são atualizados conforme necessário, sem mudar esse número.

Introdução ao Xorg-7

O "Xorg" é uma implementação de fonte aberto e redistribuível livremente do Sistema de Janelas "X". Esse sistema fornece uma interface cliente/servidor entre o hardware de exibição (mouse, teclado e monitores de vídeo) e o ambiente de área de trabalho, ao mesmo tempo que fornece a infraestrutura de janelas e uma interface padronizada de aplicativo ("API").

Transferência do "Xorg" e Instruções de Instalação

O "Xorg-7.0" introduziu um sistema de construção modular totalmente equipado com ferramentas automáticas. Com o novo sistema de construção modular, não mais é possível baixar o pacote inteiro em um arquivo. Na verdade, existirão bem mais que cem (100) pacotes que precisam ser obtidos a partir do local de transferência. Para ajudar com uma tarefa tão grande, instalar o "Wget-1.25.0" é fortemente recomendado para baixar os arquivos necessários. Uma lista completa de arquivos "wget" é fornecida para cada página que incluir vários pacotes.

Dado o número de pacotes disponíveis, decidir quais pacotes você precisa instalar para a tua configuração específica possivelmente pareça um pouco complicado no início. Dê uma olhada nesta página e neste tópico para ter uma ideia do que você precisará. Se não tiver certeza, [então] você deveria instalar todos os pacotes ao custo de espaço extra em disco.

Nota

Mesmo se você pretende baixar somente os pacotes necessários, você deveria baixar as listas de arquivos wget. A lista dos arquivos é ordenada por dependência e as versões dos pacotes listadas nos arquivos são conhecidas por funcionarem bem entre elas. Além disso, as listas de arquivos wget contém comentários para pacotes específicos que estão obsoletos ou não são recomendados para instalação. Pacotes mais recentes provavelmente serão destinados para o próximo lançamento do Xorg e já provaram ser incompatíveis com as versões atuais do software instalado no BLFS. O tamanho instalado do Xorg pode ser reduzido consideravelmente instalando-se somente os pacotes que você precisará e usará, no entanto, o livro BLFS não pode levar em conta todas as dependências e opções de construção para os pacotes individuais do Xorg. As instruções assumem que todos os pacotes tenham sido construídos.

Além disso, devido ao grande número de comandos repetitivos, você é encorajado(a) a automatizar parcialmente a construção. Instruções foram fornecidas que utilizam o pacote "Sudo-1.9.16p2". É recomendado que você use a opção de configuração ":NOPASSWD" para o(a) usuário(a) que irá construir os pacotes do "Xorg".

Configurando o Ambiente da Construção do Xorg

Nota

As instruções a seguir assumem que os arquivos de inicialização do "shell" tenham sido configurados conforme descrito em "Os Arquivos de Iniciação do Shell Bash".

Conforme com lançamentos anteriores do "X Window System", possivelmente seja desejável instalar o "Xorg" em um prefixo alternativo. Essa não mais é uma prática comum entre as distribuições do Linux. O prefixo comum de instalação para o "Xorg" no Linux é "/usr". Não existe prefixo padrão alternativo, nem existe nenhuma exceção na revisão atual do Padrão de Hierarquia do Sistema de Arquivos para o Lançamento 7 do "X Window System". Alan Coopersmith, da Sun Microsystems, declarou certa vez: "Na Sun, estávamos usando "/usr/X11" e planejamos continuar com ele". Somente o prefixo "/opt/*" ou o prefixo "/usr" aderem às diretrizes atuais da "FHS".

Os(As) editores(as) do BLFS recomendam usar o prefixo "/usr".

Escolha o teu prefixo de instalação e configure a variável "XORG_PREFIX" com o seguinte comando:

export XORG_PREFIX="<PREFIXO>"

Ao longo destas instruções, você usará as seguintes chaves do "configure" para todos os pacotes. Crie a variável "XORG_CONFIG" para usar nessa substituição de parâmetro:

export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
    --localstatedir=/var --disable-static"

Nota

Nós usaremos $XORG_CONFIG nas instruções para muitos pacotes pertencentes ou relacionados ao Xorg. Essas instruções não funcionarão corretamente com o comportamento padrão de zsh-5.9. Então, se você estiver usando zsh-5.9 como o shell interativo e construindo um pacote para o qual a instrução usa essa variável, faça o comportamento do zsh-5.9 expandir $XORG_CONFIG da mesma forma que o bash:

set -o shwordsplit

Se você quiser tornar essa configuração persistente, adicione esse comando ao arquivo de iniciação do zsh.

Crie um arquivo de configuração "/etc/profile.d/xorg.sh" contendo essas variáveis como o(a) usuário(a) "root":

cat > /etc/profile.d/xorg.sh << EOF
XORG_PREFIX="$XORG_PREFIX"
XORG_CONFIG="--prefix=\$XORG_PREFIX --sysconfdir=/etc --localstatedir=/var --disable-static"
export XORG_PREFIX XORG_CONFIG
EOF
chmod 644 /etc/profile.d/xorg.sh

Nota

Existe alguma confusão relativa ao documento 'here' acima. A barra invertida na frente do cifrão está correta. O "Bash" irá removê-la ao criar o "/etc/profile.d/xorg.sh". No entanto, se você estiver criando o arquivo com um editor, [então] uma operação de copiar e colar não removerá a barra invertida. Ela precisa então ser removida manualmente.

Se você tiver instalado o "Sudo-1.9.16p2", [então] certifique-se de que "XORG_PREFIX" e "XORG_CONFIG" estejam disponíveis no ambiente do "sudo". Como o(a) usuário(a) "root", execute o seguinte comando:

cat > /etc/sudoers.d/xorg << EOF
Defaults env_keep += XORG_PREFIX
Defaults env_keep += XORG_CONFIG
EOF

Se você não estiver usando o prefixo padrão do "Xorg"...

Atenção

Se tiver decidido usar o prefixo padrão "/usr", [então] você precisa omitir o restante desta página e continuar em "util-macros-1.20.2".

Se você tiver decidido não usar o prefixo padrão, [então] certifique-se de adicionar "$XORG_PREFIX/bin" à tua variável de ambiente "PATH" e " $XORG_PREFIX/lib/pkgconfig" e " $XORG_PREFIX/share/pkgconfig" à tua variável "PKG_CONFIG_PATH". Também é útil especificar caminhos adicionais de pesquisa para o "gcc" e um diretório de inclusão para o aplicativo "aclocal". Emita os seguintes comandos como o(a) usuário(a) "root":

cat >> /etc/profile.d/xorg.sh << "EOF"

pathappend $XORG_PREFIX/bin            PATH
pathappend $XORG_PREFIX/lib/pkgconfig   PKG_CONFIG_PATH
pathappend $XORG_PREFIX/share/pkgconfig PKG_CONFIG_PATH

pathappend $XORG_PREFIX/lib             LIBRARY_PATH
pathappend $XORG_PREFIX/include         C_INCLUDE_PATH
pathappend $XORG_PREFIX/include         CPLUS_INCLUDE_PATH

ACLOCAL="aclocal -I $XORG_PREFIX/share/aclocal"

export PATH PKG_CONFIG_PATH ACLOCAL LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
EOF

O conjunto de comandos sequenciais acima precisa ser ativado. Normalmente será automático ao "login", mas para ativá-lo agora, como um(a) usuário(a) normal, execute:

source /etc/profile.d/xorg.sh

Você também deveria adicionar "$XORG_PREFIX/lib" ao arquivo "/etc/ld.so.conf". Novamente, como o(a) usuário(a) "root", emita o seguinte comando:

echo "$XORG_PREFIX/lib" >> /etc/ld.so.conf

Você também deveria modificar o "/etc/man_db.conf", adicionando as entradas apropriadas "MANDATORY_MANPATH", "MANPATH_MAP" e "MANDB_MAP" seguindo os exemplos para o "/usr/X11R6". Emita o seguinte comando como o(a) usuário(a) "root":

sed -e "s@X11R6/man@X11R6/share/man@g" \
    -e "s@/usr/X11R6@$XORG_PREFIX@g"  \
    -i /etc/man_db.conf

Alguns aplicativos procuram por arquivos compartilhados em "/usr/share/X11". Crie um link simbólico para o local apropriado como o(a) usuário(a) "root":

ln -svf $XORG_PREFIX/share/X11 /usr/share/X11

Se construir o "KDE", [então] alguns arquivos do "cmake" procuram o "Xorg" em locais diferentes de "$XORG_PREFIX". Permita que o "cmake" encontre o "Xorg" com:

ln -svf $XORG_PREFIX /usr/X11R6

util-macros-1.20.2

Introdução ao util-macros

O pacote "util-macros" contém as macros do "m4" usadas por todos os pacotes do "Xorg".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "util-macros"

Exigidas

Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)

Instalação do util-macros

Instale o "util-macros" executando os seguintes comandos:

./configure $XORG_CONFIG

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/pkgconfig e $XORG_PREFIX/share/util-macros

xorgproto-2024.1

Introdução ao xorgproto

O pacote "xorgproto" fornece os arquivos de cabeçalho exigidos para construir o Sistema de Janelas "X" e para permitir que outros aplicativos construam contra o Sistema de Janelas "X" instalado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "xorgproto"

Exigidas

util-macros-1.20.2

Opcionais

fop-2.10, libxslt-1.1.42, xmlto-0.0.29 e asciidoc-10.2.1 (para construir documentação adicional)

Nota

Existe uma dependência recíproca com o "fop-2.10". Se desejar construir a documentação, [então] você precisará reinstalar os Cabeçalhos de Protocolo depois da instalação estar completa e o "fop-2.10" ter sido instalado.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders

Instalação do xorgproto

Instale o "xorgproto" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install &&
mv -v $XORG_PREFIX/share/doc/xorgproto{,-2024.1}

Explicações do Comando

-D legacy=true: Instala cabeçalhos legados necessários para aplicativos antigos (como o LessTif).

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $XORG_PREFIX/include/GL, $XORG_PREFIX/include/X11 e $XORG_PREFIX/share/doc/xorgproto-2024.1

libXau-1.0.12

Introdução ao libXau

O pacote "libXau" contém uma biblioteca que implementa o Protocolo de Autorização X11. Isso é útil para restringir o acesso do cliente ao monitor.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/lib/libXau-1.0.12.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4c9f81acf00b62e5de56a912691bd737

  • Tamanho da transferência: 276 KB

  • Espaço em disco estimado exigido: 2,9 MB (com teste)

  • Tempo de construção estimado: menos que 0,1 UPC (com o teste)

Dependências do "libXau"

Exigidas

xorgproto-2024.1

Instalação do libXau

Instale o "libXau" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libXau.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libXau.so

é a biblioteca de rotinas da base de dados de autoridade do "X"

libXdmcp-1.1.5

Introdução ao libXdmcp

O pacote "libXdmcp" contém uma biblioteca que implementa o "X Display Manager Control Protocol". Isso é útil para permitir que os clientes interajam com o "X Display Manager".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/lib/libXdmcp-1.1.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ce0af51de211e4c99a111e64ae1df290

  • Tamanho da transferência: 292 KB

  • Espaço em disco estimado exigido: 3,0 MB (com teste)

  • Tempo de construção estimado: menos que 0,1 UPC (com o teste)

Dependências do "libXdmcp"

Exigidas

xorgproto-2024.1

Opcionais

xmlto-0.0.29, fop-2.10, libxslt-1.1.42 e Xorg-SGML-doctools (para a documentação)

Instalação do libXdmcp

Instale o "libXdmcp" executando os seguintes comandos:

./configure $XORG_CONFIG --docdir=/usr/share/doc/libXdmcp-1.1.5 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libXdmcp.so
Diretório Instalado: $XORG_PREFIX/share/doc/libXdmcp-1.1.5

Descrições Curtas

libXdmcp.so

é a biblioteca do Protocolo de Controle do Gerenciador de Monitor do "X"

xcb-proto-1.17.0

Introdução ao xcb-proto

O pacote "xcb-proto" fornece as descrições do protocolo "XML-XCB" que a "libxcb" usa para gerar a maior parte do código e "API" dela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "xcb-proto"

Recomendadas
Opcionais

libxml2-2.13.6 (exigido para executar os testes)

Instalação do xcb-proto

Instale o "xcb-proto" executando os seguintes comandos:

PYTHON=python3 ./configure $XORG_CONFIG

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Se você estiver atualizando a partir da versão 1.15.1 ou inferior, [então] o arquivo antigo do "pkgconfig" precisará ser removido. Emita, como o(a) usuário(a) "root":

rm -f $XORG_PREFIX/lib/pkgconfig/xcb-proto.pc

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/xcb e $XORG_PREFIX/lib/python3.13/site-packages/xcbgen

libxcb-1.17.0

Introdução ao libxcb

O pacote "libxcb" fornece uma interface para o protocolo do Sistema de Janelas "X", que substitui a interface "Xlib" atual. "Xlib" também pode usar "XCB" como camada de transporte, permitindo que o logiciário faça solicitações e receba respostas com ambos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.17.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 96565523e9f9b701fcb35d31f1d4086e

  • Tamanho da transferência: 448 KB

  • Espaço em disco estimado exigido: 30 MB (com testes, adicionar 62 MB para documentos do doxygen)

  • Tempo de construção estimado: 0,2 UPC (com os testes, adicionar 1,4 UPC para os documentos do "doxygen")

Dependências do "libxcb"

Exigidas

libXau-1.0.12 e xcb-proto-1.17.0

Recomendadas
Opcionais

Doxygen-1.13.2 (para gerar a documentação da "API") e libxslt-1.1.42

Instalação do libxcb

Instale o "libxcb" executando os seguintes comandos:

./configure $XORG_CONFIG      \
            --without-doxygen \
            --docdir='${datadir}'/doc/libxcb-1.17.0 &&
LC_ALL=en_US.UTF-8 make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Se o pacote foi construído como um(a) usuário(a) não-root, a documentação instalada agora é titularizada por esse usuário(a). Como o(a) usuário(a) root, corrija a titularidade da propriedade:

chown -Rv root:root $XORG_PREFIX/share/doc/libxcb-1.17.0

Explicações do Comando

LC_ALL=en_US.UTF-8: Alguns conjuntos de comandos sequenciais do Python 3 no sistema de construção desse pacote possivelmente falhem com certas configurações de localidades do sistema. Essa variável de ambiente força uma configuração de localidade conhecida por funcionar.

--without-doxygen: Não use "doxygen" para gerar documentação da "API" (padrão: automático). Sem ele, se o "Doxygen-1.13.2" estiver instalado, [então] a documentação da "API" será gerada e instalada.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libxcb.so, libxcb-composite.so, libxcb-damage.so, libxcb-dbe.so, libxcb-dpms.so, libxcb-dri2.so, libxcb-dri3.so, libxcb-glx.so, libxcb-present.so, libxcb-randr.so, libxcb-record.so, libxcb-render.so, libxcb-res.so, libxcb-screensaver.so, libxcb-shape.so, libxcb-shm.so, libxcb-sync.so, libxcb-xf86dri.so, libxcb-xfixes.so, libxcb-xinerama.so, libxcb-xinput.so, libxcb-xkb.so, libxcb-xtest.so, libxcb-xvmc.so e libxcb-xv.so
Diretórios Instalados: $XORG_PREFIX/include/xcb e $XORG_PREFIX/share/doc/libxcb-1.17.0

Descrições Curtas

libxcb.so

é uma interface para o protocolo do Sistema de Janelas "X"

Bibliotecas do Xorg

Introdução às Bibliotecas do Xorg

As bibliotecas do "Xorg" fornecem rotinas de biblioteca que são usadas em todos os aplicativos do Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/lib/

  • Transferência (FTP):

  • Tamanho da transferência: 12 MB

  • Espaço em disco estimado exigido: 274 MB (47 MB instalado) - se os diretórios dos fontes não deletados

  • Tempo de construção estimado: 1,8 UPC

Dependências das Bibliotecas do Xorg

Exigidas

Fontconfig-2.16.0 e libxcb-1.17.0

Opcionais

asciidoc-10.2.1, xmlto-0.0.29 com um ou mais do seguinte: fop-2.10, Links-2.30, Lynx-2.9.2, ncompress (para alguns testes) e W3m (para gerar documentação adicional "PDF" ou texto para o pacote "libXfont").

Transferindo as Bibliotecas do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > lib-7.md5 << "EOF"
1155b410c778f805659baf4373db2b92  xtrans-1.5.2.tar.xz
e12f988eb037b978071e21b2d58d1d70  libX11-1.8.11.tar.xz
e59476db179e48c1fb4487c12d0105d1  libXext-1.3.6.tar.xz
c5cc0942ed39c49b8fcd47a427bd4305  libFS-1.0.10.tar.xz
d1ffde0a07709654b20bada3f9abdd16  libICE-1.1.2.tar.xz
ef6167bfcb675f65a790e0f517a87455  libSM-1.2.5.tar.xz
e613751d38e13aa0d0fd8e0149cec057  libXScrnSaver-1.2.4.tar.xz
9acd189c68750b5028cf120e53c68009  libXt-1.3.1.tar.xz
85edefb7deaad4590a03fccba517669f  libXmu-1.2.1.tar.xz
05b5667aadd476d77e9b5ba1a1de213e  libXpm-3.5.17.tar.xz
2a9793533224f92ddad256492265dd82  libXaw-1.0.16.tar.xz
65b9ba1e9ff3d16c4fa72915d4bb585a  libXfixes-6.0.1.tar.xz
af0a5f0abb5b55f8411cd738cf0e5259  libXcomposite-0.4.6.tar.xz
4c54dce455d96e3bdee90823b0869f89  libXrender-0.9.12.tar.xz
5ce55e952ec2d84d9817169d5fdb7865  libXcursor-1.2.3.tar.xz
ca55d29fa0a8b5c4a89f609a7952ebf8  libXdamage-1.1.6.tar.xz
8816cc44d06ebe42e85950b368185826  libfontenc-1.1.8.tar.xz
66e03e3405d923dfaf319d6f2b47e3da  libXfont2-2.0.7.tar.xz
cea0a3304e47a841c90fbeeeb55329ee  libXft-2.3.8.tar.xz
95a960c1692a83cc551979f7ffe28cf4  libXi-1.8.2.tar.xz
228c877558c265d2f63c56a03f7d3f21  libXinerama-1.1.5.tar.xz
24e0b72abe16efce9bf10579beaffc27  libXrandr-1.5.4.tar.xz
66c9e9e01b0b53052bb1d02ebf8d7040  libXres-1.2.2.tar.xz
b62dc44d8e63a67bb10230d54c44dcb7  libXtst-1.2.5.tar.xz
8a26503185afcb1bbd2c65e43f775a67  libXv-1.0.13.tar.xz
a90a5f01102dc445c7decbbd9ef77608  libXvMC-1.0.14.tar.xz
74d1acf93b83abeb0954824da0ec400b  libXxf86dga-1.1.6.tar.xz
d3db4b6dc924dc151822f5f7e79ae873  libXxf86vm-1.1.6.tar.xz
57c7efbeceedefde006123a77a7bc825  libpciaccess-0.18.1.tar.xz
229708c15c9937b6e5131d0413474139  libxkbfile-1.1.3.tar.xz
9805be7e18f858bed9938542ed2905dc  libxshmfence-1.3.3.tar.xz
bdd3ec17c6181fd7b26f6775886c730d  libXpresent-1.0.1.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:

mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7.md5 | awk '{print $2}' | wget -i- -c \
   -B https://www.x.org/pub/individual/lib/ &&
md5sum -c ../lib-7.md5

Instalação das Bibliotecas do Xorg

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Algumas bibliotecas vem com uma suíte de teste. Se desejar executá-las, [então] comente o "rm -rf ..." abaixo, para que, depois que todas as bibliotecas estiverem instaladas, você consiga voltar ao diretório correspondente e executar "make check ", ou fazer construções individuais, executando os testes para cada um daqueles distribuídos com suítes funcionais de teste. Alternativamente, você pode descomentar a linha "#make check ..." e, no final, verificar os resultados do teste com:

grep -A9 summary *make_check.log

Os(As) desenvolvedores(as) do BLFS confirmaram que "libX11", "libXt", "libXmu", "libXpm" e "libxshmfence" são distribuídos com suítes funcionais de testes.

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../lib-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  echo "Construindo $packagedir"

  tar -xf $package
  pushd $packagedir
  docdir="--docdir=$XORG_PREFIX/share/doc/$packagedir"
  
  case $packagedir in
    libXfont2-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-devel-docs
    ;;

    libXt-[0-9]* )
      ./configure $XORG_CONFIG $docdir \
                  --with-appdefaultdir=/etc/X11/app-defaults
    ;;

    libXpm-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-open-zfile
    ;;
  
    libpciaccess* )
      mkdir build
      cd    build
        meson setup --prefix=$XORG_PREFIX --buildtype=release ..
        ninja
        #teste ninja
        as_root ninja install
      popd     # $packagedir
      continue # para loop
    ;;

    * )
      ./configure $XORG_CONFIG $docdir
    ;;
  esac

  make
  #make check 2>&1 | tee ../$packagedir-make_check.log
  as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Explicações do Comando

--disable-open-zfile: Permitir que a "libXpm" construa sem o comando opcional "compress" presente.

--disable-devel-docs: Desabilite a geração de documentação de texto no pacote "libXfont2", se o "xmlto-0.0.29" estiver instalado, sem um navegador de texto. Omita esse parâmetro (ou toda a instrução "case") se um navegador de texto estiver instalado.

--with-fop: Use o "fop-2.10" para gerar documentação em "PDF" (somente para o pacote "libXfont").

Configuração das Bibliotecas do Xorg

Se tiver escolhido instalar o "Xorg" em "/usr", então nenhuma configuração adicional será necessária e você poderá ignorar o restante desta seção. Se tiver optado por um prefixo alternativo, [então] você deveria criar dois links simbólicos para satisfazer o ambiente esperado de vários pacotes. Execute os seguintes comandos como o(a) usuário(a) "root":

ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
ln -sv $XORG_PREFIX/include/X11 /usr/include/X11

Conteúdo

Aplicativos Instalados: cxpm e sxpm
Bibliotecas Instaladas: libfontenc.so, libFS.so, libICE.so, libpciaccess.so, libSM.so, libX11.so, libX11-xcb, libXaw6.so, libXaw7.so, libXaw.so, libXcomposite.so, libXcursor.so, libXdamage.so, libXext.so, libXfixes.so, libXfont2.so, libXft.so, libXinerama.so, libXi.so, libxkbfile.so, libXmu.so, libXmuu.so, libXpm.so, libXpresent.so, libXrandr.so, libXrender.so, libXRes.so, libxshmfence.so, libXss.so, libXt.so, libXtst.so, libXvMC.so, libXvMCW.so, libXv.so, libXxf86dga.so e libXxf86vm.so
Diretórios Instalados: $XORG_PREFIX/include/X11/fonts, $XORG_PREFIX/include/X11/ICE, $XORG_PREFIX/include/X11/SM, $XORG_PREFIX/include/X11/Xmu, $XORG_PREFIX/include/X11/Xtrans, $XORG_PREFIX/share/doc/libFS, $XORG_PREFIX/share/doc/libICE-1.1.2, $XORG_PREFIX/share/doc/libSM-1.2.5, $XORG_PREFIX/share/doc/libX11-1.8.11, $XORG_PREFIX/share/doc/libXaw, $XORG_PREFIX/share/doc/libXext, $XORG_PREFIX/share/doc/libXi, $XORG_PREFIX/share/doc/libXmu-1.2.1, $XORG_PREFIX/share/doc/libXrender, $XORG_PREFIX/share/doc/libXt, $XORG_PREFIX/share/doc/libXtst, $XORG_PREFIX/share/doc/libXvMC, $XORG_PREFIX/share/doc/xtrans e $XORG_PREFIX/share/X11/locale

Descrições Curtas

cxpm

verifica o formato de um arquivo "XPM"

sxpm

mostra um arquivo "XPM" e(ou) converte arquivos "XPM" 1 ou 2 em "XPM" 3

libfontenc.so

é a biblioteca de codificação de fontes "X11"

libFS.so

é a interface da biblioteca para o Servidor de Fontes do "X"

libICE.so

é a Biblioteca de Intercâmbio "Inter Client" do "X"

libpciaccess.so

é a biblioteca genérica Acesso "PCI" para o "X"

libSM.so

é a Biblioteca de Gerenciamento de Sessões do "X"

libX11.so

é a biblioteca "Xlib"

libXaw6.so

é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 6

libXaw7.so

é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7

libXaw.so

são links simbólicos para a atual Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7

libXcomposite.so

é a Biblioteca Composta do "X"

libXcursor.so

é a biblioteca de gerenciamento de Cursor do "X"

libXdamage.so

é a Biblioteca Danos do "X"

libXext.so

é a Biblioteca de Extensão Misc do "X"

libXfixes.so

fornece versões aumentadas de solicitações de protocolo principais

libXfont2.so

é a biblioteca de fontes do "X"

libXft.so

é a biblioteca de interface "FreeType" do "X"

libXinerama.so

é a Biblioteca "Xinerama"

libXi.so

é a Biblioteca de Extensão de Entrada do "X"

libxkbfile.so

é a Biblioteca "xkbfile"

libXmu.so

é a biblioteca de interface do "X" para utilitários diversos não partes do padrão "Xlib"

libXmuu.so

é a Biblioteca "Mini Xmu"

libXpm.so

é a Biblioteca "Pixmap" do "X"

libXpresent.so

é a interface da biblioteca para a extensão X Present

libXrandr.so

é a biblioteca de extensões "Resize", "Rotate" e "Reflection" do "X"

libXrender.so

é a Biblioteca de Renderização do "X"

libXRes.so

é a biblioteca cliente de extensão "X-Resource"

libxshmfence.so

expõe uma "API" de eventos no topo de "futexes" do Linux

libXss.so

é a biblioteca cliente da extensão Protetor de Tela "X11"

libXt.so

é a Biblioteca Kit de Ferramentas do "X"

libXtst.so

é a Biblioteca "Xtst"

libXvMC.so

é a Biblioteca de Compensação de Movimento de Vídeo do "X"

libXvMCW.so

é o Envólucro "XvMC" incluindo a extensão "VLD" não padrão

libXv.so

é a biblioteca de extensão de vídeo do Sistema de Janelas "X"

libXxf86dga.so

é a biblioteca cliente para a extensão "DGA" do "XFree86"

libXxf86vm.so

é a biblioteca cliente para a extensão "VidMode" do "XFree86" do "X"

libxcvt-0.1.3

Introdução ao libxcvt

"libxcvt" é uma biblioteca que fornece uma versão autônoma da implementação do servidor "X" do gerador de modelos de temporização padrão "VESA" "CVT". Ela pretende ser uma substituição direta da versão anteriormente fornecida pelo servidor "Xorg".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/lib/libxcvt-0.1.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7fb9c51d33a680f724f34da41768b1d0

  • Tamanho da transferência: 12 KB

  • Espaço em disco estimado exigido: 440 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "libxcvt"

Exigidas

Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)

Instalação do libxcvt

Instale o "libxcvt" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: cvt
Biblioteca Instalada: libxcvt.so
Diretório Instalado: $XORG_PREFIX/include/libxcvt

Descrições Curtas

cvt

calcula modelos de Temporização de Vídeo Coordenado "VESA" ("CVT") para uso com o "X"

libxcvt.so

contém funções para calcular "VESA" "CVT"

xcb-util-0.4.1

Introdução ao xcb-util

O pacote "xcb-util" fornece extensões adicionais para a biblioteca "XCB", muitas das quais eram encontradas anteriormente no "Xlib", mas não são parte do protocolo principal do "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://xcb.freedesktop.org/dist/xcb-util-0.4.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 34d749eab0fd0ffd519ac64798d79847

  • Tamanho da transferência: 261 KB

  • Espaço em disco estimado exigido: 2,6 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xcb-util"

Exigidas

libxcb-1.17.0

Opcionais

Doxygen-1.13.2 (para documentação)

Instalação do xcb-util

Instale o "xcb-util" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libxcb-util.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-util.so

Fornece funções utilitárias para outros utilitários do "XCB"

Utilitários XCB

Introdução aos Utilitários XCB

Os utilitários XCB fornecem extensões que os(as) desenvolvedores(as) conseguem usar ao criar software do X Window. xcb-util-0.4.1 foi instalado recentemente, mas estes utilitários oferecem ainda mais extensões das quais o software do X Window possivelmente dependa.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://xcb.freedesktop.org/dist/

  • Transferência (FTP):

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 13,3 MB

  • Tempo de construção estimado: 0,1 UPC (ignorando o tempo para transferência)

Dependências dos Utilitários XCB

Exigidas

libxcb-1.17.0 e xcb-util-0.4.1

Baixando Utilitários XCB

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > xcb-utils.md5 << "EOF"
a67bfac2eff696170259ef1f5ce1b611  xcb-util-image-0.4.1.tar.xz
fbdc05f86f72f287ed71b162f1a9725a  xcb-util-keysyms-0.4.1.tar.xz
193b890e2a89a53c31e2ece3afcbd55f  xcb-util-renderutil-0.3.10.tar.xz
581b3a092e3c0c1b4de6416d90b969c3  xcb-util-wm-0.4.2.tar.xz
bc30cd267b11ac5803fe19929cabd230  xcb-util-cursor-0.1.5.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:

mkdir xcb-utils &&
cd xcb-utils &&
grep -v '^#' ../xcb-utils.md5 | awk '{print $2}' | wget -i- -c \
    -B https://xcb.freedesktop.org/dist/ &&
md5sum -c ../xcb-utils.md5

Instalação dos Utilitários XCB

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../xcb-utils.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
     ./configure $XORG_CONFIG
     make
     as_root make install
  popd
  rm -rf $packagedir
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libxcb-image.so, libxcb-keysyms.so, libxcb-render-util.so, libxcb-ewmh.so, libxcb-icccm.so e libxcb-cursor.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-image.so

É uma portagem das funções XImage e XShmImage do Xlib

libxcb-keysyms.so

fornece as constantes padrões de teclas do X e funções de API para conversão para/de códigos de teclas

libxcb-render-util.so

fornece funções convenientes para a extensão Render

libxcb-ewmh.so

fornece o cliente e ajudantes de gerenciador de janelas para EWMH

libxcb-icccm.so

fornece o cliente e ajudantes do gerenciador de janelas para ICCCM

libxcb-cursor.so

é uma portagem das funções libXcursor do Xlib

Mesa-24.3.4

Introdução ao Mesa

Mesa é uma biblioteca gráfica 3D compatível com OpenGL.

Nota

Mesa é atualizada relativamente muitas vezes. Você possivelmente queira usar a versão 24.3.x do Mesa mais recente disponível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://mesa.freedesktop.org/archive/mesa-24.3.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c64b7e2b4f1c7782c41bf022edbb365c

  • Tamanho da transferência: 30 MB

  • Espaço em disco estimado exigido: 1,3 GB (com documentos, adicionar 569 MB para testes)

  • Tempo de construção estimado: 3,8 UPC (com documentos; adicionar 1,2 UPC para testes; ambos com paralelismo=4)

Transferências Adicionais

Dependências do Mesa

Exigidas

Bibliotecas do Xorg, libdrm-2.4.124, Mako-1.3.9 e PyYAML-6.0.2

Recomendadas

Nota

Uma conexão de Internet é necessária para construir o controlador Nouveau Vulkan.

Nota

Escolhendo Controladores Mesa

Nas instruções abaixo, todos os controladores disponíveis são construídos. Isso quase sempre funcionará. No entanto, não é eficiente. Dependendo do teu hardware de vídeo, você provavelmente precisará somente de controladores específicos.

A primeira coisa que você precisa saber é qual tipo de dispositivo de vídeo você tem. Em alguns casos, ele está construído na CPU. Em outros, é uma placa PCI separada. Em ambos os casos, você pode saber qual hardware de vídeo tem instalando pciutils-3.13.0 e executando:

lspci | grep VGA

O dispositivo de vídeo é provavelmente uma das três famílias: AMD, Intel ou NVIDIA. Vejam-se as Explicações do Comando para -D gallium-drivers=auto abaixo para ver quais opções estão disponíveis para teu hardware de vídeo específico (ou hardware emulado de vídeo). Você provavelmente deveria adicionar a opção softpipe ou llvmpipe como um controlador de apoio.

Para 'platforms' você pode selecionar x11 e (ou) wayland. Observe que atualmente no BLFS somente o Gnome e o KDE podem usar o wayland. Se você não for usar um desses ambientes de área de trabalho, então provavelmente desejará somente o x11.

Para 'vulkan-drivers' você pode querer limitar a seleção ao teu hardware atual. Esses controladores são usados por alguns aplicativos específicos. Por exemplo, ffmpeg (incluindo ffplay) usará Vulkan em vez de OpenGL para renderizar vídeo na GPU. Se você não quiser fazer isso, você pode ou não querer instalá-los. Vejam-se as Explicações do Comando para -D vulkan-drivers=auto abaixo para ver quais opções estão disponíveis para teu hardware de vídeo específico (ou hardware emulado de vídeo). Você provavelmente deveria adicionar a opção swrast como um controlador residual, a menos que não precise do Vulkan.

Opcionais

libgcrypt-1.11.0, libunwind-1.8.1, lm-sensors-3-6-0, Nettle-3.10.1, Valgrind-3.24.0, mesa-demos (fornece mais que 300 extra demos para testar Mesa; isso inclui os mesmos programas adicionados pelo remendo acima), Bellagio OpenMAX Integration Layer (para plataformas móveis) e libtizonia,

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      # For r300 or r600:
      < /*/M> ATI Radeon                                            [DRM_RADEON]
      # For radeonsi:
      < /*/M> AMD GPU                                               [DRM_AMDGPU]
      [*]       Enable amdgpu support for SI parts               [DRM_AMDGPU_SI]
      [*]       Enable amdgpu support for CIK parts             [DRM_AMDGPU_CIK]
        Display Engine Configuration --->
        [*]   AMD DC - Enable new display engine                    [DRM_AMD_DC]
      # For nouveau:
      < /*/M> Nouveau (NVIDIA) cards                               [DRM_NOUVEAU]
      [*]       Use GSP firmware for Turing/Ampere (needs firmware installed)
                                                  ...  [DRM_NOUVEAU_GSP_DEFAULT]
      # For i915, crocus, or iris:
      < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                       [DRM_I915]
      # For llvmpipe or softpipe:
      < /*>   Virtual GEM provider                                    [DRM_VGEM]
      # For svga:
      < /*/M> DRM driver for VMware Virtual GPU                     [DRM_VMWGFX]

Nota

O correspondente nome do controlador Gallium3D do Mesa é fornecido como comentário para as entradas de configuração. Se você não sabe o nome do controlador Gallium3D do Mesa para tua GPU, veja Mesa Gallium3D Drivers abaixo.

CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU, CONFIG_DRM_NOUVEAU e CONFIG_DRM_I915 possivelmente exijam firmware. Veja-se Acerca de Firmware para detalhes.

Selecionar CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU ou CONFIG_DRM_NOUVEAU como y não é recomendado. Se for, qualquer firmware exigido precisa ser construído como parte da imagem do núcleo ou do initramfs para o controlador funcionar corretamente.

As subentradas sob CONFIG_DRM_AMDGPU são usadas para garantir que o controlador de núcleo AMDGPU suporte todas as GPUs usando o controlador radeonsi. Elas não são necessárias se você não precisasse da própria CONFIG_DRM_AMDGPU. Elas possivelmente sejam desnecessárias para alguns modelos de GPU.

Para llvmpipe ou softpipe, CONFIG_DRM_VGEM é exigido ou os clientes do X podem falhar ao iniciar com uma mensagem enigmática Error: couldn't get an RGB, Double-buffered visual. Falando estritamente, ele pode ser compilado como um módulo. Mas o módulo não será carregado automaticamente, de forma que é mais conveniente construí-lo como parte da imagem do núcleo.

Instalação do Mesa

Se você baixou o remendo xdemos (necessário se testar a instalação do Xorg de acordo com as instruções do BLFS), aplique-o executando o seguinte comando:

patch -Np1 -i ../mesa-add_xdemos-4.patch

Instale o Mesa executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                 \
      --prefix=$XORG_PREFIX    \
      --buildtype=release      \
      -D platforms=x11,wayland \
      -D gallium-drivers=auto  \
      -D vulkan-drivers=auto   \
      -D valgrind=disabled     \
      -D video-codecs=all      \
      -D libunwind=disabled    &&

ninja

Atenção

Por favor, consulte teu(tua) advogado(a) ou remova a opção -D video-codecs=all se você distribuirá as bibliotecas e controladores compiladas do Mesa para outros(as).

Para testar os resultados, emita: meson configure -D build-tests=true && ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Se desejado, instale a documentação opcional executando os seguintes comandos como o(a) usuário(a) root:

cp -rv ../docs -T /usr/share/doc/mesa-24.3.4

Explicações do Comando

--buildtype=release: Essa chave garante uma construção totalmente otimizada e desabilita asserções de depuração que desacelerarão severamente as bibliotecas em certos casos de uso. Sem essa chave, os tamanhos de construção podem atingir a faixa de 2 GB.

-D gallium-drivers=auto: Esse parâmetro controla quais controladores Gallium3D deveriam ser construídos:

  • auto seleciona todos os controladores Gallium3D disponíveis para x86. Com uma lista separada por vírgulas, somente um subconjunto desses controladores será construído. Se você souber exatamente quais controladores precisa, poderá selecioná-los explicitamente. Por exemplo, -D gallium-drivers=radeonsi,iris,llvmpipe.

  • r300 (para séries Radeon 9000 ou Radeon X da ATI)

  • r600 (para séries Radeon HD 2000-6000 da AMD/ATI)

  • radeonsi (para Radeon HD 7000 da AMD ou modelos mais recentes de GPU da AMD)

  • nouveau (para GPUs suportadas da NVIDIA, elas estão listadas como todos os recursos 3D ou DONE ou N/A na página de situação Nouveau)

  • virgl (para uma GPU virtual do QEMU com suporte a virglrender; observe que o qemu-9.2.2 do BLFS não é construído com virglrender)

  • svga (para uma GPU virtual do VMWare)

  • llvmpipe (usar CPU para rasterização 3D. Observe que ele é muito mais lento que usar uma GPU moderna com capacidade 3D, de forma que ele deveria ser usado somente se a GPU não for suportada por outros controladores)

  • softpipe (também usa CPU para rasterização 3D, porém mais lento que llvmpipe. Não existe muita razão para usá-lo, a menos que LLVM não esteja disponível)

  • iris (para GPUs da Intel fornecidas com CPUs Broadwell ou mais recentes, ou como uma placa dedicada PCIe)

  • crocus (para GPUs da Intel GMA 3000, série X3000, série 4000 ou série X4000 fornecidas com chipsets ou GPUs HD da Intel fornecidas com CPUs pré Broadwell)

  • i915 (para GPUs da Intel GMA 900, 950, 3100 ou 3150 fornecidas com chipsets ou CPUs Atom D/N 4xx/5xx)

  • zink (usa Vulkan para implementar OpenGL e, embora instável às vezes, pode ser um substituto decente para controladores Gallium de baixo desempenho, como o Nouveau)

-D vulkan-drivers=auto: Esse parâmetro controla quais controladores Vulkan deveriam ser construídos:

  • auto seleciona todos os controladores Vulkan disponíveis para x86. Com uma lista separada por vírgulas, somente um subconjunto desses controladores será construído. Se você souber exatamente quais controladores precisa, poderá selecioná-los explicitamente. Por exemplo, -D vulkan-drivers=amd,nouveau,swrast.

  • amd (para Radeon HD 7730 da AMD ou GPUs mais recentes da AMD)

  • intel (para GPUs da Intel fornecidas com Skylake ou CPUs mais recentes, ou como uma placa dedicada PCIe)

  • intel_hasvk (para GPUs da Intel fornecidas com CPUs Ivy Bridge, Haswell ou Broadwell)

  • nouveau (para GTX 16XX, RTX 20XX ou GPUs mais recentes da NVIDIA)

  • swrast (para usar a CPU para rasterização 3D). Observe que ele é muito mais lento que usar uma GPU moderna com capacidade 3D, de forma que ele deveria ser usado somente se a GPU não for suportada por outros controladores.

  • "" (lista vazia, use -D vulkan-drivers="" se você não tiver instalado e não planeja instalar Vulkan-Loader-1.4.304)

-D platforms=...: Esse parâmetro controla quais sistemas de janelas serão suportados. As plataformas Linux disponíveis são x11 e wayland.

-D valgrind=disabled: Esse parâmetro desabilita o uso do Valgrind durante o processo de construção. Remova esse parâmetro se você tiver o Valgrind instalado e desejar verificar vazamentos de memória.

-D video-codecs=all: Esse parâmetro habilita construir codificadores/decodificadores para formatos de vídeo cobertos por patentes de terceiros(as).

-D libunwind=disabled: Esse parâmetro desabilita o uso da libunwind.

meson configure -D build-tests=true: Esse comando reconfigurará a construção para configurar -D build-tests=true, mas manterá as outras opções especificadas no comando meson setup sem mudanças. Ele permite que ninja test construa e execute testes unitários.

-D egl-native-platform="...": Esse parâmetro controla qual suporte da Biblioteca de Gráficos Incorporados será construído. As opções de Linux disponíveis são auto (padrão), x11, wayland, surfaceless e drm.

-D legacy-x11="..." Esse parâmetro controla quais recursos legados do X11 recebem suporte integrado. As opções disponíveis do Linux são none (padrão) e dri2. Esses recursos raramente são mais necessários.

Conteúdo

Aplicativos Instalados: glxgears, glxinfo, mme_fermi_sim_hw_test e mme_tu104_sim_hw_test
Bibliotecas Instaladas: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so, libgallium-24.3.4.so e libxatracker.so
Sobras Instaladas de Controlador DRI: libdril_dri.so e links simbólicos para ela: crocus_dri.so, i915_dri.so, iris_dri.so, kms_swrast_dri.so, nouveau_dri.so, r300_dri.so, r600_dri.so, r600_drv_video.so, radeonsi_dri.so, swrast_dri.so, virtio_gpu_dri.so, vmwgfx_dri.so e zink_dri.so
Controladores VA-API Instalados: nouveau_drv_video.so, radeonsi_drv_video.so e virtio_gpu_drv_video.so,
Estruturas GBM de Retaguarda Instaladas: dri_gbm.so
Controladores VDPAU Instalados: libvdpau_nouveau.so, libvdpau_r600.so, libvdpau_radeonsi.so e libvdpau_virtio_gpu.so (Muitos desses controladores estão rigidamente lincados).
Controladores Vulkan Instalados: libvulkan_intel_hasvk.so, libvulkan_intel.so, libvulkan_lvp.so, libvulkan_nouveau.so e libvulkan_radeon.so
Diretórios Instalados: $XORG_PREFIX/{include/{EGL,GLES,GLES2,GLES3,KHR}, $XORG_PREFIX/lib/{dri,gbm,vdpau}}, $XORG_PREFIX/share/drirc.d (contém soluções alternativas para vários aplicativos, particularmente navegadores e jogos), $XORG_PREFIX/share/vulkan e /usr/share/doc/mesa-24.3.4

Descrições Curtas

glxgears

é uma demonstração GL útil para solucionar problemas gráficos

glxinfo

é um aplicativo de diagnóstico que exibe informações relativas ao hardware gráfico e bibliotecas GL instaladas

dri_gbm.so

implementa funções de Graphics Buffer Management necessitadas pela libgbm em cima da libdrm

libdril_dri.so

é uma sobra que permite que o servidor Xorg coopere com os controladores Gallium3D

libEGL.so

fornece uma interface gráfica de plataforma nativa conforme definido pela especificação EGL-1.4

libgallium-24.3.4.so

contém todos os controladores Gallium3D

libgbm.so

é a biblioteca Graphics Buffer Manager do Mesa

libglapi.so

é a implementação Mesa da API OpenGL

libGLESv1_CM.so

é a biblioteca OpenGL ES 1.1 do Mesa

libGLES2.so

é a biblioteca OpenGL ES 2.0 do Mesa

libGL.so

é a principal biblioteca OpenGL do Mesa

libxatracker.so

é o rastreador de estado XA para o controlador VMWare vmwgfx

xbitmaps-1.1.3

Introdução ao xbitmaps

O pacote "xbitmaps" contém imagens de mapa de bit usadas por vários aplicativos construídos no capítulo do "Xorg".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/data/xbitmaps-1.1.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2b03f89d78fb91671370e77d7ad46907

  • Tamanho da transferência: 108 KB

  • Espaço em disco estimado exigido: 1,6 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xbitmaps"

Exigidas

util-macros-1.20.2

Instalação do xbitmaps

Instale o "xbitmaps" executando os seguintes comandos:

./configure $XORG_CONFIG

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/include/X11/bitmaps

Aplicativos do Xorg

Introdução aos Aplicativos do Xorg

Os aplicativos do "Xorg" fornecem os aplicativos esperados disponíveis em implementações anteriores do Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/app/

  • Transferência (FTP):

  • Tamanho da transferência: 4,9 MB

  • Espaço em disco estimado exigido: 48 MB

  • Tempo de construção estimado: 1,5 UPC (ignorando o tempo para transferir)

Dependências dos Aplicativos do "Xorg"

Exigidas

libpng-1.6.46, Mesa-24.3.4, xbitmaps-1.1.3 e xcb-util-0.4.1

Opcionais

Linux-PAM-1.7.0 e ambos cairo-5c e Nickle (somente se você desejar tentar executar o não documentado conjunto de comandos sequenciais xkeyhost).

Transferindo os Aplicativos do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > app-7.md5 << "EOF"
30f898d71a7d8e817302970f1976198c  iceauth-1.0.10.tar.xz
7dcf5f702781bdd4aaff02e963a56270  mkfontscale-1.2.3.tar.xz
05423bb42a006a6eb2c36ba10393de23  sessreg-1.1.3.tar.xz
1d61c9f4a3d1486eff575bf233e5776c  setxkbmap-1.3.4.tar.xz
9f7a4305f0e79d5a46c3c7d02df9437d  smproxy-1.0.7.tar.xz
595c941d9aff6f6d6e038c4e42dcff58  xauth-1.1.3.tar.xz
37063ccf902fe3d55a90f387ed62fe1f  xcmsdb-1.0.7.tar.xz
89e81a1c31e4a1fbd0e431425cd733d7  xcursorgen-1.0.8.tar.xz
933e6d65f96c890f8e96a9f21094f0de  xdpyinfo-1.3.4.tar.xz
34aff1f93fa54d6a64cbe4fee079e077  xdriinfo-1.0.7.tar.xz
f29d1544f8dd126a1b85e2f7f728672d  xev-1.2.6.tar.xz
41afaa5a68cdd0de7e7ece4805a37f11  xgamma-1.0.7.tar.xz
45c7e956941194e5f06a9c7307f5f971  xhost-1.0.10.tar.xz
8e4d14823b7cbefe1581c398c6ab0035  xinput-1.6.4.tar.xz
83d711948de9ccac550d2f4af50e94c3  xkbcomp-1.4.7.tar.xz
543c0535367ca30e0b0dbcfa90fefdf9  xkbevd-1.1.6.tar.xz
07483ddfe1d83c197df792650583ff20  xkbutils-1.0.6.tar.xz
f62b99839249ce9a7a8bb71a5bab6f9d  xkill-1.0.6.tar.xz
da5b7a39702841281e1d86b7349a03ba  xlsatoms-1.1.4.tar.xz
ab4b3c47e848ba8c3e47c021230ab23a  xlsclients-1.1.5.tar.xz
ba2dd3db3361e374fefe2b1c797c46eb  xmessage-1.0.7.tar.xz
0d66e07595ea083871048c4b805d8b13  xmodmap-1.0.11.tar.xz
ab6c9d17eb1940afcfb80a72319270ae  xpr-1.2.0.tar.xz
5ef4784b406d11bed0fdf07cc6fba16c  xprop-1.2.8.tar.xz
dc7680201afe6de0966c76d304159bda  xrandr-1.5.3.tar.xz
c8629d5a0bc878d10ac49e1b290bf453  xrdb-1.2.2.tar.xz
55003733ef417db8fafce588ca74d584  xrefresh-1.1.0.tar.xz
18ff5cdff59015722431d568a5c0bad2  xset-1.2.5.tar.xz
fa9a24fe5b1725c52a4566a62dd0a50d  xsetroot-1.1.3.tar.xz
d698862e9cad153c5fefca6eee964685  xvinfo-1.1.5.tar.xz
b0081fb92ae56510958024242ed1bc23  xwd-1.0.9.tar.xz
c91201bc1eb5e7b38933be8d0f7f16a8  xwininfo-1.1.6.tar.xz
3e741db39b58be4fef705e251947993d  xwud-1.0.7.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:

mkdir app &&
cd app &&
grep -v '^#' ../app-7.md5 | awk '{print $2}' | wget -i- -c \
    -B https://www.x.org/pub/individual/app/ &&
md5sum -c ../app-7.md5

Instalação dos Aplicativos do Xorg

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../app-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
     ./configure $XORG_CONFIG
     make
     as_root make install
  popd
  rm -rf $packagedir
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

A menos que você tenha instalado as dependências opcionais, remova um conjunto de comandos sequenciais não documentado que é informado que está quebrado ("xkeystone" fornecido pelo pacote "xrandr").

as_root rm -f $XORG_PREFIX/bin/xkeystone

Conteúdo

Aplicativos Instalados: iceauth, mkfontdir, mkfontscale, sessreg, setxkbmap, smproxy, xauth, xcmsdb, xcursorgen, xdpr, xdpyinfo, xdriinfo, xev, xgamma, xhost, xinput, xkbbell, xkbcomp, xkbevd, xkbvleds, xkbwatch, xkill, xlsatoms, xlsclients, xmessage, xmodmap, xpr, xprop, xrandr, xrdb, xrefresh, xset, xsetroot, xvinfo, xwd, xwininfo e xwud
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

iceauth

é o utilitário "ICE" de arquivo de autoridade

mkfontdir

cria um índice de arquivos de fontes do "X" em um diretório

mkfontscale

cria um índice de arquivos de fontes escaláveis para o "X"

sessreg

gerencia entradas "utmp"/"wtmp" para clientes não "init"

setxkbmap

configura o teclado usando a Extensão de Teclado do "X"

smproxy

é o "Proxy" do Gerenciador de Sessão

xauth

é o utilitário de arquivo de autoridade do "X"

xcmsdb

é o utilitário "Device Color Characterization" para o Sistema de Gerenciamento de Cores do "X"

xcursorgen

cria um arquivo de cursor "X" a partir de uma coleção de imagens "PNG"

xdpr

despeja uma janela do "X" diretamente em uma impressora

xdpyinfo

é um utilitário de exibição de informações para o "X"

xdriinfo

consulta informações de configuração de controladores "DRI"

xev

imprime o conteúdo de eventos do "X"

xgamma

altera a correção gama de um monitor por intermédio do servidor "X"

xhost

é um aplicativo de controle de acesso ao servidor para o "X"

xinput

é um utilitário para configurar e testar dispositivos de entrada do "X"

xkbbell

é um aplicativo utilitário "XKB" que gera um evento de campainha

xkbcomp

compila uma descrição do teclado do "XKB"

xkbevd

é o processo de segundo plano de eventos do "XKB"

xkbvleds

mostra a situação do "XKB" dos "LEDs" do teclado

xkbwatch

monitora teclas modificadoras e "LEDs"

xkill

mata um cliente por recurso dele do "X"

xlsatoms

lista átomos internos definidos no servidor

xlsclients

lista aplicativos cliente em execução em um "display"

xmessage

exibe uma mensagem ou consulta em uma janela

xmodmap

é um utilitário para modificar mapas de teclado e mapeamentos de botões de ponteiro no "X"

xpr

imprime um despejo da janela do "X"

xprop

é um exibidor de propriedades para o "X"

xrandr

é uma interface primitiva de linha de comando para a extensão "RandR"

xrdb

é o utilitário de base de dados de recursos do servidor "X"

xrefresh

atualiza toda ou parte de uma tela do "X"

xset

é o utilitário de preferência do(a) usuário(a) para o "X"

xsetroot

é o utilitário de configuração de parâmetros da janela raiz para o "X"

xvinfo

imprime informações do adaptador de extensão "X-Video"

xwd

despeja uma imagem de uma janela do "X"

xwininfo

é um utilitário de informações de janela para o "X"

xwud

é um exibidor de imagens para o "X"

luit-20240910

Introdução ao luit

O pacote luit é um filtro que pode ser executado entre uma aplicação arbitrária e um emulador de terminal UTF-8. Ele converterá a saída do aplicativo da codificação da localidade para UTF-8 e converterá a entrada do terminal de UTF-8 para codificação da localidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://invisible-mirror.net/archives/luit/luit-20240910.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c9db8c12a3ad697a075179f07b099eaf

  • Tamanho da transferência: 208 KB

  • Espaço em disco estimado exigido: 1,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências de luit

Exigidas

Aplicativos do Xorg

Instalação do luit

Instale luit executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: luit
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

xcursor-themes-1.0.7

Introdução ao xcursor-themes

O pacote "xcursor-themes" contém os temas de cursor animados "redglass" e "whiteglass".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "xcursor-themes"

Exigidas

Aplicativos do Xorg

Instalação do xcursor-themes

Nota

Nós instalamos explicitamente os temas de cursor em "/usr" em vez de "$XORG_PREFIX", de forma que ambientes de área de trabalho não "Xorg" consigam encontrá-los.

Instale o "xcursor-themes" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/icons/handhelds, /usr/share/icons/redglass e /usr/share/icons/whiteglass

Fontes do Xorg

Introdução às Fontes do Xorg

Os pacotes de fontes do "Xorg" fornecem algumas fontes escaláveis e pacotes de suporte para aplicações do "Xorg". Muitas pessoas vão querer instalar outras fontes "TTF" ou "OTF" além ou em vez delas. Algumas estão listadas em "“Fontes TTF e OTF”".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/font/

  • Transferência (FTP):

  • Tamanho da transferência: 3,0 MB

  • Espaço em disco estimado exigido: 8,8 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências das fontes do "Xorg"

Exigidas

xcursor-themes-1.0.7

Baixando as Fontes do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > font-7.md5 << "EOF"
a6541d12ceba004c0c1e3df900324642  font-util-1.4.1.tar.xz
a56b1a7f2c14173f71f010225fa131f1  encodings-1.1.0.tar.xz
79f4c023e27d1db1dfd90d041ce89835  font-alias-1.0.5.tar.xz
546d17feab30d4e3abcf332b454f58ed  font-adobe-utopia-type1-1.0.5.tar.xz
063bfa1456c8a68208bf96a33f472bb1  font-bh-ttf-1.0.4.tar.xz
51a17c981275439b85e15430a3d711ee  font-bh-type1-1.0.4.tar.xz
00f64a84b6c9886040241e081347a853  font-ibm-type1-1.0.4.tar.xz
fe972eaf13176fa9aa7e74a12ecc801a  font-misc-ethiopic-1.0.5.tar.xz
3b47fed2c032af3a32aad9acc1d25150  font-xfree86-type1-1.0.5.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:

mkdir font &&
cd font &&
grep -v '^#' ../font-7.md5 | awk '{print $2}' | wget -i- -c \
    -B https://www.x.org/pub/individual/font/ &&
md5sum -c ../font-7.md5

Instalação das Fontes do Xorg

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../font-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
    ./configure $XORG_CONFIG
    make
    as_root make install
  popd
  as_root rm -rf $packagedir
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Quando todas as fontes tiverem sido instaladas, o sistema precisará ser configurado de forma que o "Fontconfig" consiga encontrar as fontes "TrueType". Como as fontes estão fora do caminho padrão de pesquisa de vários pacotes se o "XORG_PREFIX" não for "/usr", [então] crie links simbólicos para os diretórios de fontes "TrueType" do "Xorg" em "/usr/share/fonts" executando os seguintes comandos como o(a) usuário(a) "root":

install -v -d -m755 /usr/share/fonts                              &&
ln -svfn $XORG_PREFIX/share/fonts/X11/OTF /usr/share/fonts/X11-OTF &&
ln -svfn $XORG_PREFIX/share/fonts/X11/TTF /usr/share/fonts/X11-TTF

Conteúdo

Aplicativos Instalados: bdftruncate e ucs2any
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $XORG_PREFIX/share/fonts

Descrições Curtas

bdftruncate

gera uma fonte "BDF" truncada a partir de uma fonte "BDF" codificada "ISO 10646-1"

ucs2any

gera fontes "BDF" em qualquer codificação a partir de uma fonte "BDF" codificada "ISO 10646-1"

XKeyboardConfig-2.44

Introdução ao XKeyboardConfig

O pacote "XKeyboardConfig" contém a base de dados de configuração do teclado para o Sistema de Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "XKeyboardConfig"

Exigidas

Bibliotecas do Xorg

Opcionais (exigidas para testes)

libxkbcommon-1.8.0, pytest-8.3.4 e Aplicativos do Xorg

Instalação do XKeyboardConfig

Instale o "XKeyboardConfig" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/X11/xkb

Xwayland-24.1.6

Introdução ao Xwayland

O pacote "Xwayland" é um servidor "Xorg" executando sobre o servidor "wayland". Ele foi separado do pacote principal do servidor "Xorg". Permite executar clientes do "X" dentro de uma sessão "wayland".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/xserver/xwayland-24.1.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 78067c218323fe2a496ca5f2145fe7ab

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 28 MB (adicionar 362 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 1,7 UPC para testes, não incluindo o tempo de clonagem)

Dependências do "Xwayland"

Exigidas

libxcvt-0.1.3, Pixman-0.44.2, wayland-protocols-1.40, Aplicativos do Xorg (tempo de execução) e Fontes do Xorg (somente font-util)

Recomendadas
Opcionais

git-2.48.1 (para baixar pacotes necessários para os testes), libei-1.3.0, libgcrypt-1.11.0, Nettle-3.10.1, xmlto-0.0.29, Fontes Legadas do Xorg (somente bdftopcf, para construir fontes exigidas para os testes), rendercheck (para testes) e weston (para testes)

Instalação do Xwayland

Instale o "xwayland" executando os seguintes comandos:

sed -i '/install_man/,$d' meson.build &&

mkdir build &&
cd    build &&

meson setup ..                       \
      --prefix=$XORG_PREFIX          \
      --buildtype=release            \
      -D xkb_output_dir=/var/lib/xkb &&
ninja

Construir a estrutura de teste precisa de algum trabalho. Primeiro, weston traz várias dependências, mas o número pode ser reduzido desabilitando recursos desnecessários. O comando meson para uma construção simplificada do weston é mostrado em construção da integração contínua do(a) desenvolvedor(a).

Executar os testes envolve transferir outras duas estruturas, em adição às mencionadas dependências opcionais:

mkdir tools &&
pushd tools &&

git clone https://gitlab.freedesktop.org/mesa/piglit.git --depth 1 &&
cat > piglit/piglit.conf << EOF                                    &&
[xts]
path=$(pwd)/xts
EOF

git clone https://gitlab.freedesktop.org/xorg/test/xts --depth 1   &&

export DISPLAY=:22           &&
../hw/vfb/Xvfb $DISPLAY &
VFB_PID=$!                   &&
cd xts                      &&
CFLAGS=-fcommon ./autogen.sh &&
make                         &&
kill $VFB_PID                &&
unset DISPLAY VFB_PID        &&
popd

Então os testes podem ser executados com:

XTEST_DIR=$(pwd)/tools/xts PIGLIT_DIR=$(pwd)/tools/piglit ninja test

Agora, como o(a) usuário(a) "root":

ninja install &&
cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.X11-unix dir 1777 root root
EOF

Se o "Xorg-Server-21.1.16" não estiver instalado e você não planeja instalá-lo mais tarde, [então] você pode instalar o "Xvfb" a partir deste pacote. Como o(a) usuário(a) "root":

install -vm755 hw/vfb/Xvfb /usr/bin

Explicações do Comando

sed -i '/install_man/,$d' meson.build: Impede a instalação de uma página de manual para o "Xserver", que também é fornecida pelo "Xorg-Server-21.1.16". Remova esse comando se o "Xorg-Server-21.1.16" não estiver instalado e você não planejar instalá-lo mais tarde.

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D secure-rpc=false: Essa opção desabilita construir suporte RPC se libtirpc-1.3.6 não estiver instalado.

cat >> /etc/sysconfig/createfiles...: Esse comando cria o diretório "/tmp/.X11-unix" na inicialização e garante que as permissões e titularidade da propriedade estejam corretas conforme exigido pelos aplicativos que usam o "Xwayland".

Conteúdo

Aplicativo Instalado: Xwayland
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

Xwayland

Permite que clientes do "X" executem sob o "wayland"

Xorg-Server-21.1.16

Introdução ao Servidor Xorg

O Servidor "Xorg" é o núcleo do Sistema de Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/xserver/xorg-server-21.1.16.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f1a5ec0939c0efd7fde1418989b579db

  • Tamanho da transferência: 4,8 MB

  • Espaço em disco estimado exigido: 151 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4; com testes)

Transferências Adicionais

  • Com a remoção dos controladores xf86-video-*, a opção TearFree não mais está funcional. Para contornar isso, o fluxo de desenvolvimento adicionou a opção TearFree ao controlador padrão de configuração de modo. Este remendo reimplementa esse recurso. Aplique este remendo se você for usar o Xorg em um ambiente sem um compositor (como TWM, IceWM, Openbox ou Fluxbox).

    Remendo opcional: https://www.linuxfromscratch.org/patches/blfs/12.3/xorg-server-21.1.16-tearfree_backport-1.patch

Dependências do Servidor Xorg

Exigidas

libxcvt-0.1.3, Pixman-0.44.2, Fontes do Xorg (somente "font-util") e, ao tempo da execução, xkeyboard-config-2.44

Recomendadas

Nota

Embora seja possível construir esse pacote sem dbus-1.16.0 instalado ou executar o servidor Xorg sem elogind-255.17 funcionando, exigiria executar o servidor Xorg como o(a) usuário(a) root, ou o servidor Xorg funcionará mal ou até mesmo falhará ao iniciar. Os(As) editores(as) do BLFS fortemente desencorajam ignorar essas duas dependências. Não tente fazer isso a menos que você realmente saiba o que está fazendo.

Opcionais

acpid-2.0.34 (tempo de execução), Doxygen-1.13.2 (para construir documentação da API), fop-2.10 (para construir documentação), libunwind-1.8.1, Nettle-3.10.1, libgcrypt-1.11.0, Utilitários XCB (para construir Xephyr), xmlto-0.0.29 (para construir documentação), xkeyboard-config-2.44 (para testes), rendercheck (para testes) e xorg-sgml-doctools (para construir documentação)

Configuração do Núcleo

Os controladores tradicionais Device Dependent X (DDX) foram removidos do BLFS em favor do controlador modesetting_drv que será construído como parte desse pacote. Para usar o controlador modesetting_drv, o núcleo precisa fornecer um controlador Direct Rendering Manager (DRM) para a tua GPU.

Se a tua GPU suporta aceleração 3D e Mesa-24.3.4 fornece um controlador Gallium3D para utilizar a capacidade 3D dele, você já deveria ter habilitado as necessárias opções de configuração de núcleo em Configuração de Núcleo do Mesa. Caso contrário, você precisa encontrar a opção de configuração do núcleo do controlador DRM para a GPU e habilitá-la. Notavelmente, as GPUs virtuais fornecidas por alguns gerenciadores de máquinas virtuais:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      < /*/M> DRM driver for VMware Virtual GPU                     [DRM_VMWGFX]
      < /*/M> DRM Support for bochs dispi vga interface (qemu stdvga)
                                                                ...  [DRM_BOCHS]
      < /*/M> Virtual Box Graphics Card                          [DRM_VBOXVIDEO]

Se o núcleo não fornecer um controlador DRM para a tua GPU, na maioria dos sistemas x86 o controlador DRM simple frame buffer executando em VESA ou UEFI frame buffer pode ser usado como substituto. Habilite as seguintes opções nas configurações do núcleo, se você não tiver um controlador DRM dedicado para a GPU ou quiser manter o controlador simple frame buffer como um substituto caso o controlador dedicado falhe:

Device Drivers --->
  Firmware Drivers --->
    [*] Mark VGA/VBE/EFI FB as generic system framebuffer       [SYSFB_SIMPLEFB]
  Graphics support --->
    <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      <*> Simple framebuffer driver                              [DRM_SIMPLEDRM]

Para permitir que o núcleo imprima mensagens de depuração em um estágio inicial da inicialização, CONFIG_DRM e CONFIG_DRM_SIMPLEDRM não deveriam ser construídos como módulos do núcleo, a menos que um initramfs seja usado.

Se você quiser usar o controlador simple frame buffer em um sistema inicializado via BIOS (em vez de UEFI), adicione a seguinte linha antes do primeiro bloco menuentry no arquivo /boot/grub/grub. cfg para inicializar o VESA frame buffer:

set gfxpayload=1024x768x32

Você pode substituir 1024, 768 e 32 por uma configuração de resolução e profundidade de cor adequada ao teu monitor.

Se todos esses controladores DRM não funcionarem para você e você precisar usar um controlador DDX com um controlador de GPU de núcleo não DRM (geralmente chamado de CONFIG_FB_* na configuração do núcleo, ou existente como módulos do núcleo fora da árvore) ou você precisar de uma funcionalidade específica do dispositivo que exige um controlador DDX, consulte uma versão anterior do BLFS ou uma versão ainda mais anterior para mais controladores DDX.

Instalação do Servidor Xorg

Primeiro, se você precisar da opção TearFree para contornar o rasgo de tela, aplique o remendo reimplementado:

patch -Np1 -i ../xorg-server-21.1.16-tearfree_backport-1.patch

Instale o servidor executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..               \
      --prefix=$XORG_PREFIX  \
      --localstatedir=/var   \
      -D glamor=true         \
      -D systemd_logind=true \
      -D xkb_output_dir=/var/lib/xkb &&
ninja

Para testar os resultados, emita: "ninja test". Você precisará executar "ldconfig" como o(a) usuário(a) "root" primeiro ou alguns testes possivelmente falhem.

Agora como o(a) usuário(a) "root":

ninja install &&
mkdir -pv /etc/X11/xorg.conf.d &&
install -v -d -m1777 /tmp/.{ICE,X11}-unix &&
cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.ICE-unix dir 1777 root root
/tmp/.X11-unix dir 1777 root root
EOF

Explicações do Comando

-D glamor=true: Certifique-se de construir o módulo Glamour. Ele é necessário para construir o controlador modesetting_drv que substitui os tradicionais controladores Device Dependent X (DDX).

-D secure-rpc=false: Essa opção desabilita construir suporte RPC se libtirpc-1.3.6 não estiver instalado.

-D systemd_logind=true: Essa chave faz com que o sistema de construção apresente erro se dbus-1.16.0 não estiver instalado. Os(As) editores(as) do BLFS desencorajam construir esse pacote sem dbus-1.16.0 instalado.

-D suid_wrapper=true: Constrói o involucrador suid-root para suporte de controlador legado DDX em sistemas xserver sem raiz.

cat >> /etc/sysconfig/createfiles...: Esse comando cria os diretórios /tmp/.ICE-unix e /tmp/.X11-unix na inicialização e garante que as permissões e titularidade da propriedade estejam corretas conforme exigido pelo servidor.

-D xephyr=true: Essa opção permite construir Xephyr se as dependências dele forem atendidas.

Conteúdo

Aplicativos Instalados: gtf, X, Xnest, Xorg, Xvfb e, opcionalmente, Xephyr
Bibliotecas Instaladas: várias sob $XORG_PREFIX/lib/xorg/modules/ incluindo o controlador modesetting_drv
Diretórios Instalados: /etc/X11/xorg.conf.d, $XORG_PREFIX/include/xorg, $XORG_PREFIX/lib/xorg e $XORG_PREFIX/share/X11/xorg.conf.d

Descrições Curtas

gtf

calcula linhas do modo "GTF" do "VESA"

X

é um link simbólico para o "Xorg"

Xephyr

é um servidor aninhado "X" que suporta extensões modernas "X"

Xnest

é um servidor aninhado "X"

Xorg

é o Servidor "X11R7" "X"

Xvfb

é o servidor virtual de "framebuffer" "X" para o X Versão 11

modesetting_drv.so

fornece um controlador de vídeo para máquinas que usam "Kernel Mode Setting" ("KMS"). Isso usará o "glamour" se esse tiver sido habilitado e o "hardware" oferecer aceleração

Controladores de Entrada do Xorg

Introdução aos Controladores de Entrada do Xorg

A página Xorg Input Drivers contém as instruções para construir controladores de entrada do Xorg que são necessários para a finalidade de que o Servidor Xorg responda às entradas geradas de usuário(a).

libevdev 1.13.3

Introdução ao libevdev

O pacote libevdev contém funções comuns para controladores de entrada do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
  • Transferência (HTTP): https://www.freedesktop.org/software/libevdev/libevdev-1.13.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 57ee77b7d4c480747e693779bb92fb84

  • Tamanho da transferência: 452 KB

  • Espaço em disco estimado exigido: 6,2 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do libevdev
Opcionais

Doxygen-1.13.2 e Valgrind-3.24.0 (opcional para testes)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Input device support --->
    -*-   Generic input layer (needed for keyboard, mouse, ...)          [INPUT]
    <*/M>   Event interface                                        [INPUT_EVDEV]

Se você quiser testar esse pacote com cobertura total, as seguintes opções serão necessárias também:

Device Drivers --->
  Input device support --->
    -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
    [*]   Miscellaneous devices --->                                [INPUT_MISC]
      <*/M>   User level driver support                           [INPUT_UINPUT]

Se você construir isso como um módulo, ele precisará ser inserido antes que a suíte de teste execute.

Instalação do libevdev

Instale o libevdev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                  \
      --prefix=$XORG_PREFIX     \
      --buildtype=release       \
      -D documentation=disabled &&
ninja

Os testes de regressão podem ser executados como o(a) usuário(a) root, com ninja test, em uma sessão gráfica. Você precisa ter habilitado a configuração CONFIG_INPUT_UINPUT no núcleo para cobertura completa do teste. Se estiver habilitado como um módulo, o módulo será chamado uinput e precisa ser carregado antes de se executar os testes. Observe que, em alguns sistemas, os testes possivelmente causem um travamento total e exijam uma reinicialização. Em laptops, o sistema entrará em suspensão e precisará ser despertado para finalizar as suítes de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados do Xorg: libevdev-tweak-device, mouse-dpi-tool e touchpad-edge-detector
Biblioteca Instalada do Xorg: libevdev.so
Diretório Instalado do Xorg: $XORG_PREFIX/include/libevdev-1.0
Descrições Curtas

libevdev-tweak-device

é uma ferramenta para mudar algumas propriedades de dispositivo do núcleo

mouse-dpi-tool

é uma ferramenta para estimar a resolução de um mouse

touchpad-edge-detector

touchpad-edge-detector é uma ferramenta que lê os eventos do touchpad oriundos do núcleo e calcula o mínimo e o máximo para as coordenadas x e y, respectivamente

libevdev.so

é uma biblioteca de funções de entrada do controlador do Xorg

Controlador Evdev do Xorg-2.11.0

Introdução ao Controlador Evdev do Xorg

O pacote "Controlador Evdev do Xorg" contém um controlador genérico de entrada do Linux para o servidor "Xorg X". Ele lida com teclado, mouse, "touchpads" e dispositivos "wacom", embora para manuseio avançado de "touchpad" e "wacom" controladores adicionais sejam exigidos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Controlador "Evdev" do "Xorg"
Exigidas

libevdev-1.13.3, mtdev-1.1.7 e Xorg-Server-21.1.16

Instalação do Controlador Evdev do Xorg

Instale o Controlador "Evdev" do" Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Controlador Instalado do Xorg: evdev_drv.so
Descrições Curtas

evdev_drv.so

é um controlador de entrada do "Xorg" para dispositivos genéricos de eventos do Linux

libinput-1.27.1

Introdução ao Libinput

libinput é uma biblioteca que manuseia dispositivos de entrada para servidores de exibição e outras aplicações que precisam lidar diretamente com dispositivos de entrada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do libinput
Exigidas

libevdev-1.13.3 e mtdev-1.1.7

Opcionais

Valgrind-3.24.0 (para executar os testes), GTK-3.24.48 (para construir o visualizador de eventos da GUI), libunwind-1.8.1 (exigido para testes), libwacom-2.14.0, Doxygen-1.13.2, Graphviz-12.2.1, recommonmark-0.7.1 e sphinx_rtd_theme-3.0.2 (exigido para construir documentação), pyparsing-3.2.1 (para um teste de não root), e pytest-8.3.4 (para outro teste de não root)

Configuração do Núcleo para Executar a Suíte de Teste do Libinput

Embora a libinput funcione com a mesma configuração de núcleo usada pela libevdev-1.13.3, a suíte de teste padrão e mais abrangente dela exige a presença de /dev/uinput (assim como Valgrind-3.24.0 e libunwind-1.8.1).

Se você desejar executar a suíte padrão de teste, habilite a seguinte opção na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Input device support --->
    -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
    [*]   Miscellaneous devices --->                                [INPUT_MISC]
      <*/M>   User level driver support                           [INPUT_UINPUT]

Se você construir isso como um módulo, ele precisará ser inserido antes que a suíte de teste execute.

Instalação do Libinput

Instale o libinput executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                  \
      --prefix=$XORG_PREFIX     \
      --buildtype=release       \
      -D debug-gui=false        \
      -D tests=false            \
      -D libwacom=false         \
      -D udev-dir=/usr/lib/udev &&
ninja

Nota

Se você quiser executar a suíte de teste padrão, remova -D tests do comando meson acima. Por favor, leia Configuração do Núcleo para Executar a Suíte de Teste da Libinput (acima).

Se tiver decidido executar a suíte de teste padrão, você pode executar os testes como o(a) usuário(a) root executando: ninja test. Existem mais de 30 testes e todos deveriam passar se você instalou as dependências opcionais. No entanto, você consegue executar 6 testes menores como o(a) usuário(a) regular executando o mesmo comando, embora você não precise remover o parâmetro -D tests. As medições de teste são baseadas somente nesses testes.

Agora, como o(a) usuário(a) root:

ninja install

Se você tiver passado -D documentation=true para meson, você pode instalar a documentação gerada executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755      /usr/share/doc/libinput-1.27.1/html &&
cp -rv Documentation/* /usr/share/doc/libinput-1.27.1/html

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D debug-gui=false: Essa chave desabilita a criação de um auxiliar visual de depuração para libinput. Remova se o quiser e você tiver o GTK-3.24.48 instalado.

-D tests=false: Essa chave desabilita a compilação da suíte de teste padrão. Mesmo com os testes definidos como false, você ainda consegue executar os seis primeiros testes menores como um(a) usuário(a) regular, mas um será ignorado se pyparsing-3.2.1 não estiver instalado, e outro se pytest-8.3.4 não estiver instalado.

-D libwacom=false: Remova essa opção se você tiver libwacom-2.14.0 instalado ou se estiver instalando o GNOME.

-D udev-dir=/usr/lib/udev: Caso o valor de XORG_PREFIX não esteja configurado como /usr, essa opção evita que o pacote instale regras e auxiliares do Udev em $XORG_PREFIX/lib/udev, que não é pesquisado pelo processo de segundo plano do Udev. Essa opção não é necessária para sistemas com XORG_PREFIX configurado como /usr, mas não causa danos.

-D documentation=true: Essa chave habilita a geração da documentação. Adicione-a se quiser gerar a documentação. Você precisa ter Doxygen-1.13.2 e Graphviz-12.2.1 instalados.

Conteúdo

Aplicativos Instalados: libinput
Bibliotecas Instaladas: libinput.so
Diretórios Instalados: /etc/libinput, $XORG_PREFIX/libexec/libinput, $XORG_PREFIX/share/libinput e (opcionalmente) $XORG_PREFIX/share/doc/libinput-1.27.1

Descrições Curtas

libinput

é um conjunto de ferramentas para interfacear com a biblioteca libinput

libinput.so

contém funções de API para manusear dispositivos de entrada

Controlador-1.5.0 Libinput do Xorg

Introdução ao Controlador Libinput do Xorg

O Controlador Libinput do X.Org é um involucrador fino em torno da libinput e permite que a libinput seja usada para dispositivos de entrada no X. Esse controlador pode ser usado como substituto imediato para o evdev e o synaptics.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Controlador "Libinput" do "Xorg"
Exigidas

libinput-1.27.1 e Xorg-Server-21.1.16

Instalação do Controlador Libinput do Xorg

Instale o Controlador "Libinput" do "Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Controlador Instalado do Xorg: libinput_drv.so
Descrições Curtas

libinput_drv.so

é um controlador de entrada do "Xorg" para dispositivos de mouse, teclado, "touchpad", tela de toque e "tablets"

Controlador Synaptics do Xorg-1.10.0

Introdução ao Controlador Synaptics do Xorg

O pacote Controlador "Synaptics" do "Xorg" contém o Controlador de Entrada "X.Org", aplicativos de suporte e "SDK" para "touchpads" "Synaptics". Embora o controlador "evdev" consiga lidar muito bem com "touchpads", esse controlador é exigido se você quiser usar recursos avançados como toque múltiplo, rolagem com "touchpad", desligar o "touchpad" durante a digitação, etc.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Controlador "Synaptics" do "Xorg"
Exigidas

libevdev-1.13.3 e Xorg-Server-21.1.16

Instalação do Controlador Synaptics do Xorg

Instale o Controlador "Synaptics" do "Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: synclient e syndaemon
Controlador Instalado do Xorg: synaptics_drv.so
Descrições Curtas

synclient

é um utilitário de linha de comando usado para consultar e modificar as opções do controlador "Synaptics"

syndaemon

é um aplicativo que monitora a atividade do teclado e desabilita o "touchpad" quando o teclado está sendo usado

synaptics_drv.so

é um controlador de entrada do "Xorg" para "touchpads"

Controlador Wacom do Xorg-1.2.3

Introdução ao Controlador Wacom do Xorg

O pacote Controlador "Wacom" do "Xorg" contém o controlador "X11" do "X.Org" e "SDK" para "Wacom" e "tablets" semelhantes a "Wacom". Não é exigido usar um "tablet" "Wacom"; o controlador "xf86-input-evdev" consegue lidar com esses dispositivos sem problemas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote
Dependências do Controlador "Wacom" do "Xorg"
Exigidas

Xorg-Server-21.1.16

Opcionais

Doxygen-1.13.2 e Graphviz-12.2.1

Configuração do Núcleo

Para usar um "tablet" "Wacom" com interface "USB", habilite as seguintes opções na tua configuração do núcleo e recompile. Observe que outras opções de configuração podem ser exigidas para "tablets" com uma interface serial ou "bluetooth":

Device Drivers --->
  [*] HID bus support --->                                         [HID_SUPPORT]
    {*/M} HID bus core support                                             [HID]
      Special HID drivers --->
      <*/M>   Wacom Intuos/Graphire tablet support (USB)             [HID_WACOM]
    USB HID support --->
      <*/M> USB HID transport layer                                    [USB_HID]
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> Support for Host-side USB                                        [USB]

Instalação do Controlador Wacom do Xorg

Instale o Controlador "Wacom" do "Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG --with-systemd-unit-dir=no &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: isdv4-serial-debugger, isdv4-serial-inputattach e xsetwacom
Controlador Instalado do Xorg: wacom_drv.so
Descrições Curtas

xsetwacom

é um utilitário de linha de comando usado para consultar e modificar as configurações do controlador "wacom"

wacom_drv.so

é um controlador de entrada do "Xorg" para dispositivos "Wacom"

twm-1.0.12

Introdução ao "twm"

O pacote "twm" contém um gerenciador de janelas extremamente mínimo.

Esse pacote é fornecido para testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/app/twm-1.0.12.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 805ee08b5a87e1103dfe2eb925b613b4

  • Tamanho da transferência: 260 KB

  • Espaço em disco estimado exigido: 3,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "twm"

Exigidas

Xorg-Server-21.1.16

Instalação do twm

Instale o "twm" executando os seguintes comandos:

sed -i -e '/^rcdir =/s,^\(rcdir = \).*,\1/etc/X11/app-defaults,' src/Makefile.in &&
./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i -e '/^rcdir =/s...: Esse comando garante que o arquivo de configuração do "twm" seja instalado no local apropriado.

Conteúdo

Aplicativos Instalados: twm
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /etc/X11/app-defaults

Descrições Curtas

twm

é o "Tab Window Manager" para o Sistema de Janelas "X"

xterm-397

Introdução ao xterm

"xterm" é um emulador de terminal para o Sistema de Janelas "X".

Esse pacote é fornecido para testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://invisible-mirror.net/archives/xterm/xterm-397.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f8bffb37b6dcbb9757c2a8f7484e5085

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 19 MB

  • Tempo de construção estimado: 0,1 UPC (com paralelismo=4)

Dependências do "xterm"

Exigidas

luit-20240910

Exigidas (em tempo de execução)

Uma fonte mono espaçada "TTF" ou "OTF", como "Fontes Dejavu"

Opcionais

Emacs-30.1, pcre2-10.45, Valgrind-3.24.0 e man2html

Instalação do xterm

Instale o "xterm" executando os seguintes comandos:

sed -i '/v0/{n;s/new:/new:kb=^?:/}' termcap &&
printf '\tkbs=\\177,\n' >> terminfo &&

TERMINFO=/usr/share/terminfo \
./configure $XORG_CONFIG      \
    --with-app-defaults=/etc/X11/app-defaults &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&

mkdir -pv /usr/share/applications &&
cp -v *.desktop /usr/share/applications/

Explicações do Comando

sed -i ... termcap, printf ... >> terminfo: Esses comandos modificam a descrição do terminal de forma que se espere que a tecla "Backspace" envie o caractere com código "ASCII" "127". Isso é feito para consistência com o console do Linux.

TERMINFO=/usr/share/terminfo: Isso garante que os arquivos "terminfo" do "xterm" sejam instalados na base de dados "terminfo" do sistema.

--with-app-defaults=...: Configura o local para o diretório "app-defaults".

Configurando o xterm

Existem duas maneiras de configurar o "xterm". Você pode adicionar as definições de recursos do "X" ao arquivo "~/.Xresources" do(a) usuário(a) ou adicioná-las ao arquivo abrangente a todo o sistema "$XORG_PREFIX/share/X11/app-defaults/Xterm".

Para a finalidade de que o "xterm" siga as configurações de localidade no ambiente, use fontes "TrueType" e siga a convenção do Linux a respeito do código enviado pela tecla "Backspace", adicione as seguintes definições como o(a) usuário(a) "root":

cat >> /etc/X11/app-defaults/XTerm << "EOF"
*VT100*locale: true
*VT100*faceName: Monospace
*VT100*faceSize: 10
*backarrowKeyIsErase: true
*ptyInitialErase: true
EOF

Conteúdo

Aplicativos Instalados: koi8rxterm, resize, uxterm e xterm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

koi8rxterm

é um conjunto de comandos sequenciais involucrador para configurar o "xterm" com uma localidade "KOI8-R"

resize

imprime um comando de "shell" para configurar as variáveis de ambiente "TERM" e "TERMCAP" para indicar o tamanho atual da janela do "xterm"

uxterm

é um conjunto de comandos sequenciais involucrador que modifica a localidade atual para usar "UTF-8" e inicia o "xterm" com as configurações adequadas

xterm

é um emulador de terminal para o Sistema de Janelas "X"

xclock-1.1.1

Introdução ao xclock

O pacote "xclock" contém um aplicativo simples de relógio que é usado na configuração padrão do "xinit".

Esse pacote é fornecido para testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/app/xclock-1.1.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1273e3f4c85f1801be11a5247c382d07

  • Tamanho da transferência: 156 KB

  • Espaço em disco estimado exigido: 1,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xclock"

Exigidas

Bibliotecas do Xorg

Instalação do xclock

Instale o "xclock" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: xclock
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

xclock

é um relógio analógico/digital para o "X"

xinit-1.4.3

Introdução ao xinit

O pacote "xinit" contém um conjunto usável de comandos sequenciais para iniciar o "xserver".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/app/xinit-1.4.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2f82c02a9408cbb5a6191c4b62763438

  • Tamanho da transferência: 156 KB

  • Espaço em disco estimado exigido: 1,6 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xinit"

Exigidas

Bibliotecas do Xorg

Recomendadas (tempo de execução somente)

Instalação do xinit

Instale o "xinit" executando os seguintes comandos:

./configure $XORG_CONFIG --with-xinitdir=/etc/X11/app-defaults &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&
ldconfig

Nota

Se iniciar o "Xorg" a partir da linha de comando, [então] as instruções padrão acima iniciarão o "Xorg" no terminal virtual atual. Possivelmente seja conveniente ver as mensagens do "Xorg" e do aplicativo associado no terminal virtual atual, normalmente "tty1", e iniciar o ambiente gráfico no primeiro terminal virtual não usado disponível, normalmente "tty7". Para fazer isso, configure o bit "suid" no aplicativo "Xorg" como o(a) usuário(a) "root":

chmod u+s $XORG_PREFIX/bin/Xorg

Neste ponto você consegue iniciar o "Xorg" no terminal virtual 7 com "startx <argumentos do cliente> --vt7". Agora você pode alternar entre "tty1" e "tty7" com as combinações de teclas "Ctrl-Alt-F1" e "Ctrl-Alt-F7".

Para iniciar automaticamente o "Xorg" no primeiro terminal virtual disponível, modifique o conjunto de comandos sequenciais "startx" como o(a) usuário(a) "root" com:

sed -i '/$serverargs $vtarg/ s/serverargs/: #&/' $XORG_PREFIX/bin/startx

Depois dessa mudança, o terminal virtual não precisa ser especificado na linha de comando do startx.

Conteúdo

Aplicativos Instalados: xinit e startx
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

startx

inicializa uma sessão do "X"

xinit

é o inicializador do Sistema de Janelas "X"

Testagem e Configuração do Xorg-7

Testando o Xorg

Nota

Antes de iniciar o Xorg pela primeira vez, é útil reconstruir o cache da biblioteca executando-se o ldconfig como o(a) usuário(a) root.

Nota

Antes de iniciar o Xorg pela primeira vez, muitas vezes é necessário reinicializar o sistema para garantir que todos os processos de segundo plano apropriados sejam iniciados e que os problemas de segurança apropriados estejam configurados adequadamente. Como alternativa, sair e logar-se novamente possivelmente funcione, mas ao tempo deste texto, não foi testado.

Atenção

Se o "Xorg" travar por algum motivo (por exemplo, ausência de um controlador de entrada adequado), [então] o sistema poderá parar de responder a qualquer entrada gerada de usuário(a). Como precaução, você pode habilitar uma tecla mágica "SysRq" antes de testar o "Xorg". Como o(a) usuário(a) "root", emita:

echo 4 > /proc/sys/kernel/sysrq

Então, se o "Xorg" travar, é possível usar "Alt+SysRq+R" para reconfigurar o modo do teclado. Agora ele deveria ser capaz de usar "Ctrl+Alt+Fx" (substitua o "x" por um número de "VT") para comutar para outro "VT". Se funcionar, [então] logue-se e mate o "Xorg" usando a linha de comando no novo "VT".

Para testar a instalação do "Xorg", emita "startx". Esse comando traz um gerenciador de janelas rudimentar chamado "twm" com três janelas do "xterm" e uma janela do "xclock". A janela do "xterm" no canto superior esquerdo é um terminal de "login" e executar-se "exit" a partir desse terminal sairá da sessão do "Janelas X". A terceira janela do "xterm" possivelmente esteja obscurecida em teu sistema pelos outros dois "xterms".

Nota

Ao testar o "Xorg" com o gerenciador de janelas "twm", existirão vários avisos no arquivo de registro do "Xorg", "$HOME/.local/share/xorg/Xorg.0.log", a respeito de arquivos de fontes ausentes. Além disso, existirão vários avisos no terminal de modo texto (geralmente "tty1") a respeito de fontes ausentes. Esses avisos não afetam a funcionalidade, mas podem ser removidos, se desejado, instalando-se o "Fontes Legadas do Xorg".

Nota

Em sistemas com GPUs NVIDIA que estão usado o controlador de núcleo Nouveau, você pode encontrar congelamentos e travamentos ocasionais da GPU. Se esse problema ocorrer, rebaixe para a versão mais recente do núcleo Linux 6.1.

Geralmente, não existe configuração específica exigida para o "Xorg", mas a personalização é possível. Para detalhes, veja-se "“Configurando Dispositivos do Xorg”" abaixo.

Verificando a Instalação da Direct Rendering Infrastructure (DRI)

"DRI" é uma estrutura que permite que logiciário acesse "hardware" gráfico de maneira segura e eficiente. Ela é instalada no "X" por padrão (usando "Mesa") se você tiver uma placa de vídeo suportada.

Para verificar se os controladores da "DRI" estão instalados adequadamente, verifique o arquivo de registro "$HOME/.local/share/xorg/Xorg.0.log" (ou "/var/log/Xorg.0.log" se você tiver construído o "Xorg-Server-21.1.16" com o "bit" "suid") para declarações como:

(II) modeset(0): [DRI2] Setup complete
(II) modeset(0): [DRI2]   DRI driver: crocus
(II) modeset(0): [DRI2]   VDPAU driver: va_gl

Nota

A configuração da DRI possivelmente difira se você estiver usando controladores alternativos, como tradicionais controladores DDX ou os controladores proprietários oriundos da NVIDIA ou da AMD.

Outra maneira de determinar se a DRI está funcionando adequadamente é a de usar um dos dois aplicativos de demonstração OpenGL instalados opcionalmente no Mesa-24.3.4. A partir de um terminal do X, execute glxinfo -B e procure pela frase:

name of display: :0
display: :0  screen: 0
direct rendering: Yes

Se a Renderização Direta estiver habilitada, [então] você poderá adicionar detalhamento executando "LIBGL_DEBUG=verbose glxinfo". Isso mostrará os controladores, nós de dispositivos e arquivos usados pelo sistema da "DRI".

Para confirmar se a aceleração de "hardware" "DRI2" está funcionando, você pode (ainda no terminal do "X") executar o comando glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)". Se isso informar algo diferente de "Software Rasterizer", então você tem aceleração funcional para o(a) usuário(a) que executou o comando.

Se o teu "hardware" não tiver nenhum controlador "DRI2" disponível, [então] ele usará um "Software Rasterizer" para Renderização Direta. Nesses casos, você pode usar um novo "Software Rasterizador", acelerado por "LLVM", chamado "LLVMPipe". Para a finalidade de construir o "LLVMPipe", apenas certifique-se de que o "LLVM-19.1.7" esteja presente ao tempo da construção do "Mesa". Observe que toda a decodificação é feita na "CPU" e não na "GPU", de forma que a exibição ficará mais lenta que com aceleração de "hardware". Para verificar se você está usando o "LLVMpipe", revise a saída gerada do comando "glxinfo" acima. Um exemplo de saída gerada usando o "Software Rasterizer" é mostrado abaixo:

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)
OpenGL version string: 3.0 Mesa 10.4.5

Você também consegue forçar o "LLVMPipe" exportando a variável de ambiente "LIBGL_ALWAYS_SOFTWARE=1" ao iniciar o "Xorg".

Novamente, se você tiver construído os demonstrativos "OpenGL" do "Mesa", [então] também poderá executar o aplicativo de teste "glxgears". Esse aplicativo abre uma janela com três engrenagens girando. O terminal do "X" exibirá quantos quadros foram desenhados a cada cinco segundos, de forma que isso dará uma avaliação comparativa aproximada. A janela é escalonável e os quadros desenhados por segundo são altamente dependentes do tamanho da janela. Em alguns "hardwares", o "glxgears" executará sincronizado com o sinal de atualização vertical e a taxa de quadros será aproximadamente a mesma que a taxa de atualização do monitor.

Depurando o Xorg

Ao iniciar o "Xorg", existem algumas maneiras de verificar quaisquer problemas que você possa ter. Se o sistema funcionar, [então] você poderá ver qual controlador está sendo usado executando o "xdriinfo". Se existirem problemas ou você quiser apenas verificar, {então} consulte Xorg.0.log.

O local do Xorg.0.log depende de como o Xorg está instalado. Se as instruções no livro forem seguidas à risca e o Xorg for iniciado a partir da linha de comando, ele estará localizado no diretório $HOME/.local/share/xorg/. Se o Xorg for iniciado por um gerenciador de telas (por exemplo, lightdm-1.32.0, sddm-0.21.0 ou GDM-47.0) ou se $XORG_PREFIX/bin/Xorg tiver o bit suid configurado, ele estará localizado no diretório /var/log/.

Problemas do Xorg.0.log

Ao olhar para o "Xorg.0.log", verifique entradas como ("EE") ou ("WW"). Abaixo estão algumas entradas comuns:

(WW) Open ACPI failed (/var/run/acpid.socket)

Esse aviso ocorre porque o "acpid-2.0.34" não está instalado. Se você não estiver em um "laptop", [então] ele pode ser seguramente ignorado. Em um "laptop", instale o "acpid-2.0.34" para habilitar ações como reconhecer quando a tampa está fechada.

(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support

Esse aviso é exibido quando um(a) usuário(a) normal inicia o Xorg. A biblioteca libpciaccess.so emite esse aviso quando ela tenta abrir o /dev/vga_arbiter. Se existir não mais que uma placa gráfica PCI legada (não PCIe) no sistema, ele pode ser seguramente ignorado. Se realmente necessário, as permissões desse dispositivo podem ser mudadas adicionando-se uma regra do Udev e adicionando-se o(a) usuário(a) local ao grupo de vídeo. Como o(a) usuário(a) root:

cat > /etc/udev/rules.d/99-vga-arbiter.rules << EOF
# /etc/udev/rules.d/99-vga-arbiter.rules: Configura grupo/modo do "vga_arbiter"

ACTION=="add", KERNEL=="vga_arbiter", GROUP="video" MODE="0660"
EOF

usermod -a -G video <usuário(a) executando o Xorg>

Gráficos Híbridos

Os Gráficos Híbridos ainda estão em estado experimental para o Linux. Os(As) desenvolvedores(as) do "Xorg" desenvolveram uma tecnologia chamada "PRIME" que pode ser usada para comutar entre "GPU" discreta integrada e sem "mux" à vontade. A comutação automática não é possível no momento.

Para a finalidade de usar a "PRIME" para comutação de "GPU", certifique-se de que está usando o Núcleo Linux 3.4 ou posterior (recomendado). Você precisará dos controladores "DRI" e "DDX" mais recentes para o teu "hardware" e do Servidor "Xorg" 1.13 ou posterior.

O Servidor "Xorg" deveria carregar ambos os controladores de "GPU" automaticamente. Você pode verificar isso executando:

xrandr --listproviders

Deveria existir dois (ou mais) provedores listados, por exemplo:

Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:modesetting

Para a finalidade de poder executar um aplicativo GLX em uma GPU discreta, você precisará executar o seguinte comando, onde <provider> é o ID da placa discreta mais poderosa e <sink> é o ID da placa que tiver uma tela conectada:

xrandr --setprovideroffloadsink <provider> <sink>

Nota

Com o controlador de configuração de modo do Xorg, que é compatível com DRI3, o comando acima não mais é necessário. No entanto, ele não danifica.

Então, você precisará exportar a variável de ambiente "DRI_PRIME=1" toda vez que quiser que a poderosa "GPU" seja usada. Por exemplo,

DRI_PRIME=1 glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"

mostrará o fornecedor, o renderizador e a versão do "OpenGL" para a "GPU" discreta.

Se o último comando informar o mesmo renderizador "OpenGL" com e sem "DRI_PRIME=1", [então] você precisará verificar a tua instalação.

Configurando Dispositivos do Xorg

Para a maioria das configurações de "hardware", o "Xorg" moderno corrigirá automaticamente a configuração do servidor sem qualquer intervenção do(a) usuário(a). Existem, no entanto, alguns casos em que a configuração automática estará incorreta. A seguir estão alguns de itens de configuração manual de exemplo que possivelmente sejam de uso nesses casos.

Configurando Dispositivos de Entrada do X

Para a maioria dos dispositivos de entrada, nenhuma configuração adicional será necessária. Esta seção é fornecida somente para fins informativos.

Uma amostra de configuração padrão do "XKB" poderia ser semelhante ao seguinte (executado como o(a) usuário(a) "root"):

cat > /etc/X11/xorg.conf.d/xkb-defaults.conf << "EOF"
Section "InputClass"
     Identifier "XKB Defaults"
     MatchIsKeyboard "yes"
     Option "XkbLayout" "fr"
     Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
EOF

A linha XkbLayout é um exemplo para um teclado francês ("AZERTY"). Mude-a para o modelo do teu teclado. Essa linha não é necessária para um teclado "QWERTY" ("EUA").

Configurações de Ajuste Fino de Exibição

Se você deseja configurar a resolução do monitor para o Xorg, primeiro execute xrandr em um terminal do X para listar as resoluções suportadas e as correspondentes taxas de atualização. Por exemplo, ele gera o seguinte para um monitor:

Screen 0: minimum 16 x 16, current 5760 x 2160, maximum 32767 x 32767
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
   3840x2160     59.98*+
   2048x1536     59.95
   1920x1440     59.90
   1600x1200     59.87
   1440x1080     59.99
   1400x1050     59.98
   1280x1024     59.89
   1280x960      59.94
   1152x864      59.96
   1024x768      59.92
   800x600       59.86
   640x480       59.38

A partir da saída gerada podemos ver que o monitor está identificado como DP-1. Selecione uma resolução adequada a partir da lista da saída gerada, por exemplo 1920x1440. Então, como o(a) usuário(a) root, crie um arquivo de configuração para o servidor Xorg:

cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
    Identifier  "DP-1"
    Option      "PreferredMode" "1920x1440"
EndSection
EOF

Às vezes, o xrandr pode falhar para detectar algumas configurações de resolução suportadas pelo monitor. Isso geralmente acontece com monitores virtuais de gerenciadores de máquinas virtuais, como qemu-9.2.2 ou VMWare: um monitor virtual na verdade suporta todos os pares de números inteiros em um intervalo conforme a resolução, mas xrandr só listará alguns. Para usar uma resolução não listada por xrandr, primeiro execute cvt para obter a linha de modo para a resolução. Por exemplo:

cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

Como o(a) usuário(a) root, crie um arquivo de configuração do servidor Xorg contendo essa linha de modo e especifique o modo como modo preferido:

cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
    Identifier  "DP-1"
    Modeline    "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
    Option      "PreferredMode"   "1600x900_60.00"
EndSection
EOF

Alguns monitores LCD de última geração suportam uma taxa de atualização superior a 100 Hz, mas xrandr pode falhar para reconhecer a taxa de atualização suportada e usar 60 Hz. Esse problema impediria você de utilizar a capacidade completa do monitor e poderia fazer com que a tela piscasse ou mostrasse artefatos como malhas ou grades. Para resolver o problema, use novamente cvt para obter a linha de modo com uma taxa de atualização personalizada:

cvt 3840 2160 144
# 3840x2160 143.94 Hz (CVT) hsync: 338.25 kHz; pclk: 1829.25 MHz
Modeline "3840x2160_144.00"  1829.25  3840 4200 4624 5408  2160 2163 2168 2350 -hsync +vsync

Em seguida, cole-a no arquivo de configuração do servidor Xorg e configure-a como modo preferido.

Outra configuração comum é ter vários esquemas de servidor para uso em ambientes diferentes. Apesar de que o servidor automaticamente detectará a presença de outro monitor, ele possivelmente obtenha a ordem incorreta:

cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF"
Section "ServerLayout"
     Identifier     "DefaultLayout"
     Screen      0  "Screen0" 0 0
     Screen      1  "Screen1" LeftOf "Screen0"
     Option         "Xinerama"
EndSection
EOF

Quando você arrasta uma janela no TWM (ou em qualquer gerenciador de janelas não de composição) horizontalmente, você poderá observar que as bordas verticais da janela são quebradas em vários segmentos. Esse é um exemplo dos artefatos visuais chamados rasgamento de tela. Para resolver os problemas de rasgamento de tela, crie um arquivo de configuração que habilite a opção TearFree. Observe que você precisa ter o remendo Tearfree aplicado a partir de Xorg-Server-21.1.16 para isso funcionar corretamente e isso pode aumentar a alocação de memória e reduzir o desempenho.

cat > /etc/X11/xorg.conf.d/20-tearfree.conf << "EOF"
Section "Device"
   Identifier "Graphics Adapter"
   Driver     "modesetting"
   Option     "TearFree" "true"
EndSection
EOF

Com o moderno Xorg, pouca ou nenhuma configuração adicional de placa gráfica é necessária. Se você devesse precisar de opções extras passadas para o teu controlador de vídeo, adicione-as na seção Device também. As opções suportadas pelo controlador de configuração de modo estão documentadas na página de manual modesetting(4).

Ajustando Fontconfig

Visão Geral do Fontconfig

Se você ler texto somente em inglês e estiver feliz com as fontes livres comuns listadas na próxima página, possivelmente nunca precise se preocupar com os detalhes do como Fontconfig funciona. Mas, existem muitas coisas que podem ser alteradas se não atenderem às tuas necessidades.

No entanto, antes de passar muito tempo experimentando configurações diferentes, por favor, esteja ciente de que aplicativos modernos e ambientes de área de trabalho podem ignorar as configurações do fontconfig - veja-se Itens que conseguem substituir Fontconfig.

Embora esta página seja longa, ela mal arranha a superfície e você estará apto(a) a encontrar muitas visões alternativas na web (mas, por favor, lembre-se de que algumas coisas mudaram ao longo dos anos; por exemplo, o autohinter não mais é o padrão). O objetivo aqui é o de te fornecer informações suficientes para entender as mudanças que você está fazendo, por que elas nem sempre funcionam e para identificar informações on-line que não mais são apropriadas.

Infelizmente, parte da terminologia é ambígua (por exemplo, 'face da fonte' pode significar um nome conhecido pelo Fontconfig, ou as variações comuns, condensadas, etc. de uma fonte) e 'estilo' pode ser usado para diferenciar 'comum' de 'itálico' ou na descrição de algumas classes de fontes Serif.

Os links a seguir são para auxiliar a navegação nesta página.

O Protocolo de Fonte Xft

O protocolo de fonte Xft fornece renderização de fonte suavizada por intermédio do freetype, e as fontes são controladas a partir do lado cliente usando o Fontconfig (exceto para o rxvt-unicode-9.31, que consegue usar fontes listadas em ~/.Xresources e o AbiWord-3.0.5 que usa somente a fonte especificada). O caminho de pesquisa padrão é /usr/share/fonts e ~/.local/share/fonts, embora, no momento, o antigo e obsoleto local ~/.fonts ainda funcione. O Fontconfig pesquisa diretórios no caminho dele recursivamente e mantém um cache das características da fonte em cada diretório. Se o cache parecer desatualizado, ele será ignorado e as informações serão obtidas a partir das próprias fontes (isso pode levar alguns segundos se você tiver muitas fontes instaladas).

Se você tiver instalado o Xorg em qualquer prefixo diferente de /usr, quaisquer fontes do X não foram instaladas em um local conhecido para o Fontconfig. Links simbólicos foram criados a partir dos diretórios de fontes OTF e TTF do X para /usr/share/fonts/X11-{OTF,TTF} em Fontes do Xorg. Isso permite que o Fontconfig use as fontes OpenType e TrueType fornecidas pelo X, embora muitas pessoas preferirão usar fontes mais modernas.

O "Fontconfig" usa nomes para definir fontes. Os aplicativos geralmente usam nomes genéricos de fontes, como "Monospace", "Sans" e "Serif". O "Fontconfig" resolve esses nomes para uma fonte que tenha todos os caracteres que cubram a ortografia do idioma indicado pelas configurações de localidade.

Comandos Úteis

Os comandos a seguir podem ser úteis ao se trabalhar com Fontconfig, especialmente se você estiver interessado(a) em substituir qual fonte será escolhida.

fc-list | less : mostra uma lista de todas as fontes disponíveis (/caminho/para/nome_do_arquivo: Nome da Fonte:estilo). Se você instalou uma fonte e ela não aparecer, então o diretório onde ela está contida não está legível pelo(a) teu(ua) usuário(a).

fc-match 'Nome da Fonte' : informa qual fonte será usada se a fonte nomeada for solicitada. Normalmente você usaria isso para ver o que acontece se uma fonte que não tenha instalada fosse solicitada, mas você também pode usá-lo se o sistema estiver fornecendo uma fonte diferente da que esperava (talvez porque o Fontconfig não pense que a fonte suporte o teu idioma).

fc-match TIPO : mostra qual fonte será usada no idioma atual para esse TIPO (Monospace, Sans, Serif (letra maiúscula inicial é opcional)). Se essa fonte não mapear um ponto de código, Fontconfig poderá obter um glifo a partir de qualquer fonte disponível, mesmo se ela não for do tipo especificado. Qualquer outro valor para TIPO será presumido que seja Sans.

fc-match 'Serif :lang=ja:weight=bold' informará qual fonte e espessura serão escolhidas para o texto japonês em negrito. Isso não significa que a fonte informada será necessariamente capaz de mostrar ideogramas japoneses, de forma que uma substituta poderá ser usada ou alguns glifos possivelmente estarão ausentes. Para códigos de idioma, use valores ISO-639 como 'fr', 'ja', 'zh-cn'. Observe que um valor não reconhecido como apenas 'zh' não retornará nenhuma correspondência. Para ilustrar a substituta, em um sistema onde Noto Sans Mono e DejaVu Sans Mono estejam instaladas, fc-match 'monospace :lang=en mostrará que Noto Sans Mono será usada, mas se o idioma for mudado para 'ar' (árabe) DejaVu Sans será usada.

Se você quiser determinar se um arquivo de fonte tem dicas (muitas fontes mais antigas não tem, porque foram patenteadas) use fc-query /caminho/para/arquivo_fonte | grep 'fonthashint:': que informará 'True(s)' ou 'False(s)'. Algumas fontes recentes com versões TTF e OTF terão dicas nos arquivos TTF.

Se você deseja saber qual fonte será usada para uma sequência de caracteres de texto (ou seja, um ou mais glifos, precedidos por um espaço), {então} cole o seguinte comando e substitua o "xyz" pelo texto de teu interesse:

FC_DEBUG=4 pango-view --font=monospace -t xyz | grep family : isso exige o Pango-1.56.1 e o ImageMagick-7.1.1-43 - ele invocará display para mostrar o texto em uma pequena janela, e, depois de fechá-la, a última linha da saída gerada mostrará qual fonte foi escolhida. Isso é particularmente útil para idiomas CJK, e você também pode passar um idioma, por exemplo, PANGO_LANGUAGE=en;ja (inglês, então assuma o japonês) ou apenas zh-cn (ou outras variantes, como zh-sg ou zh-tw).

Os arquivos de configuração

Os arquivos principais estão em "/etc/fonts/conf.d/", que foi destinado a ser um diretório povoado por links simbólicos para alguns dos arquivos em "/usr/share/fontconfig/conf.avail/". Mas, muitas pessoas, e alguns pacotes, criam os arquivos diretamente. Cada nome de arquivo precisa estar na forma de dois dígitos, um travessão, "algumnome.conf" e eles são lidos em sequência.

Por convenção, os números são atribuídos conforme segue:

  • 00-09 diretórios extras de fontes

  • 10-19 padrões de renderização do sistema (tais como suavização)

  • 20-29 opções de renderização de fontes

  • 30-39 substituição de família

  • 40-49 mapeiam família para tipo genérico

  • 50-59 carregar arquivos alternativos de configuração

  • 60-69 apelidos genéricos, mapeia genérico para família

  • 70-79 ajustar quais fontes estão disponíveis

  • 80-89 correspondência de varredura de alvo (modificar padrões escaneados)

  • 90-99 síntese de fontes

Você também pode ter um fonts.conf pessoal em $XDG_CONFIG_HOME (que é ~/.config/fontconfig/).

As regras para escolher uma fonte

Se a fonte solicitada estiver instalada e desde que contenha os pontos de código exigidos para o idioma atual (no fonte, veja-se os arquivos ".orth" no diretório "fc-lang/"), [então] ela será usada.

No entanto, se o documento ou página solicitou uma fonte que não está instalada (ou, ocasionalmente, não contém todos os pontos de código exigidos), as seguintes regras entram em jogo: Primeiro, 30-metric-aliases.conf é usado para mapear apelidos para algumas fontes com as mesmas métricas (mesmo tamanho, etc.). Observe que existem apelidos fracos e fortes, de modo que os apelidos para uma forma, como Helvetica ou Times New Roman, podem ser satisfeitos pelo outro estilo, ou seja, qualquer coisa que seja um apelido de Arial ou Times nesses exemplos. Alguns exemplos de fontes latinas com as mesmas métricas podem ser encontrados nos PDFs 'Substitutes' em typosetting.co.uk.

Depois disso, uma fonte desconhecida será procurada em 45-latin.conf: 'Latin' cobre cirílico e grego, e agora também mapeia fontes system-ui que são usadas para mensagens da interface de usuário(a) em outros alfabetos. Se a fonte for encontrada, ela será mapeada como serif, sans-serif, monospace, fantasy, cursive ou system-ui. Caso contrário, 49-sansserif.conf assumirá que é Sans.

Então 60-latin.conf fornece listas ordenadas de substitutas - Fontes Noto será usada se você as instalou. O cirílico e o grego parecem ser tratados da mesma maneira. Todos esses arquivos preferem fontes comerciais, se estiverem presentes, embora as fontes livres modernas sejam frequentemente pelo menos iguais. Finalmente, se um ponto de código ainda não for encontrado, ele poderá ser obtido a partir de qualquer fonte disponível do sistema. Os detalhes a seguir mencionam somente fontes livremente disponíveis.

As fontes persas padrão são tratadas em 65-fonts-persian.conf. Parece como se todas as fontes listadas sejam comerciais. Usar fontes que suportam persa (que tem a própria variante dele do alfabeto árabe e os próprios estilos dele de fonte) está fora das habilidades dos(as) editores(as) do BLFS.

Todos os conjuntos de comandos sequenciais restantes para os quais Fontconfig tem preferências (scripts CJK, scripts índicos) são tratados em 65-nonlatin.conf. Esses são novamente agrupados nominalmente como Serif, Sans-Serif, Monospace. Das fontes livres, WenQuanYi Zen Hei (Pan-CJK Sans) vem em primeiro lugar, tanto para Serif quanto para Sans. Portanto, se você instalar isso como substituta, mas quiser usar fontes diferentes para japonês ou coreano, precisará configurar uma preferência. Da mesma forma, a antiga fonte fireflysung Serif também está listada para Sans.

Depois das fontes Pan-CJK e chinesas, vem várias fontes japonesas e, em seguida, várias fontes coreanas (ambas divididas apropriadamente entre Sans e Serif). Finalmente vem as várias famílias Lohit Indic (um arquivo de fonte por conjunto de comandos sequenciais), rotuladas como Sans e Serif.

As fontes Monospace listadas em 65-nonlatin.conf não incluem WenQuanYi Zen Hei, embora elas estejam disponíveis como substitutas se instaladas. Várias fontes góticas japonesas estão listadas, seguidas por AR PL KaitiM GB (uma fonte zh-sc 'Brush'), fontes AR PL Serif para zh-sc (SungtiL) e zh-tw (Mingti2L), algumas fontes coreanas Sans e as várias Famílias Lohit Indic.

Para fontes de Interface de Usuário(a), várias fontes de Interface de Usuário(a) Noto Sans são as únicas fontes livres listadas.

As diversas fontes Noto CJK não estão entre as fontes listadas; possivelmente os(as) desenvolvedores(as) do RedHat preferiram outras fontes. Agora elas vem em muitas variações, e a maioria dos(as) usuários(as) que as usam não instalará quaisquer outras fontes CJK.

Antes do Fontconfig-2.14, a primeira família de fontes latinas preferida era a Bitstream Vera. Na prática, isso raramente era usado porque cobria pouquíssimo. Depois disso, DejaVu foi a próxima família preferida, de forma que as pessoas foram recomendadas a instalá-la. Isso agora mudou; Bitstream Vera foi substituída pelas fontes Noto relevantes (Serif, Sans, Sans Mono), portanto essas serão preferidas se tiverem sido instaladas, seguidas pela DejaVu.

Para serif, Times New Roman poderia ter sido apelidado a partir de Liberation Serif ou Tinos, e Times a partir de TeX Gyre Termes, de forma que, embora as fontes nomeadas não sejam livres, as fontes compatíveis em métricas podem ser usadas. Ignorando outras fontes não livres, a ordem restante para serif é: Times New Roman, Luxi Serif, Nimbus Roman No9 L e Times. Na prática, isso significa que é improvável que as fontes no final da lista sejam usadas, a menos que uma página da web as solicite.

Para sans-serif, a ordem restante é qualquer coisa mapeada para Arial, Luxi Sans, Nimbus Sans L e qualquer coisa mapeada para Helvetica.

As alternativas restantes para monospace são Inconsolata, qualquer coisa mapeada para Courier New, Luxi Mono, Nimbus Mono e qualquer coisa mapeada para Courier.

Para 'fantasy' não existem fontes livres, portanto Fontconfig retornará para sans-serif.

Para 'cursive', a única fonte livre é TeX Gyre Chorus como um apelido para a chancelaria ITC Zapf, caso contrário Fontconfig novamente retornará para sans-serif.

A categoria system-ui é incomum. É para mensagens de interface, portanto alguns conjuntos de comandos sequenciais precisam de versões especiais para caber no espaço disponível. Para latim, grego e cirílico, uma fonte sans comum deveria caber sem problemas. No entanto, a primeira fonte preferida é Cantarell, seguida por Noto Sans UI. Cantarell começou como uma fonte latina sans-serif, que foi bifurcada no Gnome sob o mesmo nome, mas eles(as) fornecem somente o fonte. As fontes Noto Sans UI são para outros idiomas.

Desde Fontconfig-2.12.5, também existe correspondência genérica de família para algumas fontes de emoji e matemáticas; por favor, veja-se {45,60}-generic.conf.

Nos raros casos em que uma fonte não contém todos os pontos de código esperados, veja-se "Trial the First:" em "Eu olhei fixamente para o "fontconfig"" para os detalhes longos.

Dicas e Suavização

É possível mudar como, ou se, as fontes são sugeridas. O arquivo de exemplo a seguir contém as configurações padrão, mas com comentários. As configurações dependem muito das preferências do(a) usuário(a) e da escolha das fontes, de forma que uma mudança que melhora algumas páginas possivelmente piore outras. O local preferido para esse arquivo é: "~/.config/fontconfig/fonts.conf"

Para testar configurações diferentes, você pode precisar sair do Xorg e então executar startx novamente, de forma que todos os aplicativos usem as novas configurações. Várias coisas podem substituir as configurações do fontconfig; veja-se Itens que conseguem substituir Fontconfig abaixo para mais detalhes. Para explorar as possibilidades, crie um arquivo para teu(tua) usuário(a):

mkdir -pv ~/.config/fontconfig &&
cat > ~/.config/fontconfig/fonts.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

  <match target="font" >
    <!-- autohint era o antigo prompt automático quando as dicas eram protegidas
    por patente, de forma que desligue-o para garantir que qualquer informação de
    dicas na própria fonte seja usada; esse é o padrão -->
    <edit mode="assign" name="autohint">  <bool>false</bool></edit>

    <!-- a dica está habilitada por padrão -->
    <edit mode="assign" name="hinting">   <bool>true</bool></edit>

    <!-- para o "lcdfilter", veja-se https://www.spasche.net/files/lcdfiltering/ -->
    <edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>

    <!-- opções para estilo de dica:
    hintfull: é presumido fornecer uma fonte nítida que se alinha bem à
    grade de células de caracteres, mas ao custo do formato adequado
    dela. No entanto, qualquer coisa que use Pango >= 1.44 não suportará
    dicas completas; o Pango agora usa harfbuzz para dicas. Aplicativos que
    usam Skia (por exemplo, Chromium, Firefox) não deveriam ser afetados por isso.

    hintmedium: é informado que está quebrado.
    hintslight é o padrão: - presumido ser mais confuso, mas mantém a forma.

    hintnone: parece desligar a dica.
    As variações são marginais e os resultados variam com diferentes fontes -->
    <edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>

    <!-- a suavização está ligada por padrão e realmente ajuda para caracteres fracos
    e também para fontes "xft": fontes usadas em "rxvt-unicode" -->
    <edit mode="assign" name="antialias"> <bool>true</bool></edit>

    <!-- subpixels são usualmente "rgb"; veja-se
    http://www.lagom.nl/lcd-test/subpixel.php -->
    <edit mode="assign" name="rgba">      <const>rgb</const></edit>

    <!-- agradecimentos ao "wiki" da "Arch" pelos links "lcd" e subpixel -->
  </match>

</fontconfig>
EOF

Agora você precisará editar o arquivo no teu editor preferido. Muitas das diferentes configurações apresentam diferenças muito sutis e os resultados podem diferir para algumas das fontes que você usar.

Nota

A dica, se habilitada, é feita em FreeType. Desde o FreeType-2.7, o interpretador TrueType padrão é v40. O hinter v35 original poderia ser habilitado por uma variável de ambiente, mas só é realmente apropriado para fontes originais TTF da Microsoft (Arial, etc). O hinter v38 (Infinality) não é construído por padrão e todas as opções para ajustá-lo foram removidas. Para detalhes completos, veja-se subpixel-hinting (Spoiler: NÃO existem dicas de subpixel; o código simplesmente ignora todas as instruções de dicas horizontais).

O Xorg assume que as telas tem 96 pontos por polegada (DPI). A maioria das telas LCD está próxima disso, mas algumas pessoas detectam distorções de cores se a tela delas divergir desse tamanho. Veja-se calc-dpi.

Se você tiver uma tela de alto DPI (geralmente descrita como '4K' ou maior), provavelmente usará tamanhos de fonte maiores e se beneficiará ao desabilitar as dicas.

Para mais exemplos, veja-se o tópico do "blfs-support" que começou em "2016-09/00128", particularmente o "2016-09/00137", e a solução preferida do postador original em "2016-09/00147". Existem outros exemplos em ""Fontconfig" no "wiki" do "Arch"" e ""Fontconfig" no "wiki" do "Gentoo"".

Desabilitando as Fontes "Bitmap"

Nas versões anteriores do BLFS, as feias e antigas fontes de bitmap do Xorg foram instaladas. Agora, muitas pessoas não precisarão instalar nenhuma delas. Mas, se por algum motivo, você tiver instalado uma ou mais fontes de bitmap, você consegue evitar que elas sejam usadas pelo Fontconfig criando o seguinte arquivo como o(a) usuário(a) root:

cat > /etc/fonts/conf.d/70-no-bitmaps.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Rejeita fontes de "bitmap" -->
 <selectfont>
  <rejectfont>
   <pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
   </pattern>
  </rejectfont>
 </selectfont>
</fontconfig>
EOF

Mudanças sintéticas

Em 90-synthetic.conf existem exemplos de aplicação de inclinamento e negritamento sintéticos a uma fonte. O negritamento sintético pode ser aplicado a uma fonte visivelmente esmaecida, mas os resultados nem sempre são os esperados: apenas com o negritado, o Epiphany mostrou fontes mais escuras, enquanto o Firefox não - então, embora Cairo agora seja usado pelo firefox, o comentário acerca da configuração do Peso ainda é válido. Mas configurando ambos, Epiphany mostrará texto em negrito por padrão, mas mostrará texto pesado se a marcação para negrito for usada. Em ambos os casos, nem o libreOffice nem o falkon mostraram texto mais negritado.

Adicionando diretórios extras de fontes

Normalmente, as fontes do sistema e as fontes do(a) usuário(a) são instaladas em diretórios abaixo dos locais especificados em "O Protocolo de Fonte Xft" e não existe razão óbvia para colocá-las em outro lugar. No entanto, uma instalação completa do BLFS do "texlive-20240312" coloca muitas fontes em "/opt/texlive/2024/texmf-dist/fonts/" nos subdiretórios "opentype/" e "truetype/". Embora extrair todos esses arquivos possivelmente pareça útil (permite usá-los em aplicativos que não sejam do "TeX"), existem vários problemas com essa abordagem:

  1. Existem centenas de arquivos, o que torna difícil selecionar fontes.

  2. Alguns dos arquivos fazem coisas estranhas, como exibir sinalizadores de semáforo em vez de letras "ASCII" ou mapear pontos de código cirílicos para formas de caracteres apropriadas ao antigo eslavo eclesiástico em vez das formas atuais esperadas: ótimo se for isso que você precisa, mas doloroso para uso normal.

  3. Várias fontes tem vários tamanhos e nomes curtos impenetráveis, o que torna ainda mais difícil selecionar a fonte correta.

  4. Quando uma fonte é adicionada ao CTAN, ela é acompanhada por pacotes do TeX para usá-la nos motores antigos (xelatex normalmente não precisa disso), e então a versão frequentemente é congelada enquanto a fonte é mantida separadamente. Algumas dessas fontes, como as Fontes Dejavu, provavelmente já estão instaladas em teu sistema BLFS em uma versão mais recente, e se você tiver múltiplas versões de uma fonte, não fica claro qual delas será usada pelo Fontconfig.

No entanto, às vezes é útil olhar para essas fontes em aplicativos não "TeX", se somente para ver se você deseja instalar uma versão atual. Se você tiver instalado todo o "texlive", [então] o exemplo a seguir disponibilizará uma das fontes "Arkandis Open Type" para outros aplicativos e todas as três fontes "TrueType" "ParaType". Ajuste ou repita as linhas conforme desejado para, ou disponibilizar todas as fontes "opentype/" ou "truetype", ou para selecionar diferentes diretórios de fontes. Como o(a) usuário(a) "root":

cat > /etc/fonts/conf.d/09-texlive.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>/opt/texlive/2024/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
  <dir>/opt/texlive/2024/texmf-dist/fonts/truetype/paratype</dir>
</fontconfig>
EOF

Se você fizer isso, [então] lembre-se de mudar todas as instâncias do ano nesse arquivo ao atualizar o "texlive" para um lançamento posterior.

Preferindo certas fontes

Com exceção de páginas da web que usam fontes WOFF e as fornecem ou vinculam ao Google para baixá-las, as páginas da web tradicionalmente sugerem uma lista de nomes de famílias de fontes preferidas, se assim o desejarem (por exemplo, Times New Roman, Serif). Existem muitos motivos pelos quais as pessoas podem desejar que páginas que especificam uma fonte preferida usem uma fonte diferente ou prefiram fontes específicas em Monospace, Sans ou Serif. Como você esperará, existem várias maneiras de conseguir isso.

Documentação de usuário(a) do Fontconfig

O "Fontconfig" instala a documentação de usuário(a) que inclui um exemplo de "Arquivo de usuário(a) de configuração" que, entre outras coisas, prefere a "WenQuanYi ZenHei" (uma fonte "Sans") se uma fonte "Serif" for solicitada para chinês (essa parte pode ser anacrônica, a menos que você tenha fontes chinesas não-livres, porque em "65-nonlatin.conf" essa fonte já está entre as fontes preferidas quando "Serif" é especificada para chinês) e prefere a moderna fonte "VL Gothic" se uma fonte "Sans" for especificada em uma página em japonês (caso contrário, algumas outras fontes seriam preferidas se tivessem sido instaladas).

Se você tiver instalado a versão atual, a documentação de usuário(a) estará disponível em versões HTML, PDF e texto em /usr/share/doc/fontconfig-2.16.0/: mude a versão se você instalou uma diferente.

Prefira uma fonte específica

Como um exemplo, se por algum motivo você desejou usar a fonte "Nimbus Roman No9 L" sempre que a "Times New Roman" for referenciada (ela é metricamente semelhante e preferida para "Times Roman", mas a fonte "Serif" originária das "Fontes Liberation" será preferida para a fonte "Times New Roman" se instalada), como um(a) usuário(a) individual, você poderia instalar a fonte e então criar o seguinte arquivo:

mkdir -pv ~/.config/fontconfig/conf.d &&
cat >  ~/.config/fontconfig/conf.d/35-prefer-nimbus-for-timesnew.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- prefira Nimbus Roman No9 L para Times New Roman, bem como para Times;
sem isso, Tinos e Liberation Serif tem precedência para Times New Roman antes
que o Fontconfig volte para o que corresponde a Times -->
    <alias binding="same">
        <family>Times New Roman</family>
        <accept>
            <family>Nimbus Roman No9 L</family>
        </accept>
    </alias>
</fontconfig>
EOF

Isso é algo que você normalmente faria nas configurações de um(a) usuário(a) individual, mas o arquivo nesse caso recebeu o prefixo "35-", de forma que pudesse, se desejado, ser usado abrangente a todo o sistema em "/etc/fonts/conf.d/".

Prefira fontes escolhidas "CJK"

O exemplo a seguir de uma configuração local (ou seja, uma que se aplica a todos os(as) usuários(as) da máquina) faz várias coisas. Ela é particularmente apropriada onde nenhum idioma for especificado, ou para leitura de texto CJK em uma localidade não CJK, e onde as formas japonesas dos pontos de código compartilhados com o chinês são preferidas. Em particular, abordagens alternativas seriam especificar uma fonte chinesa antes da fonte japonesa, significando que somente símbolos Kana serão usados a partir da fonte japonesa, ou não especificar DejaVu, de forma que a primeira fonte em cada conjunto de preferências seja preferida para texto usando alfabetos latinos.

  1. Se uma fonte Serif for especificada, ela prefere Fontes Dejavu. Se pontos de código Han forem encontrados ou o idioma japonês for especificado, a fonte Mincho oriunda de Fontes IPAex será usada. Se pontos de código Hangul forem encontrados ou o idioma coreano for especificado, UnBatang (veja-se Fontes coreanas) será usado: Mude essa linha se você instalou uma fonte serif coreana diferente. Depois disso, WenQuanYi ZenHei (Sans, mas um padrão para Serif e monospace) é usado. Uma versão anterior desta página mencionou o uso de UMing, que é uma fonte do chinês tradicional que vem com um antigo arquivo de configuração, preferindo-a para códigos de idioma zh-tw e zh-hk (e para sans-serif e monospace). Mas sem o arquivo de configuração, Fontconfig somente a tratará como adequada para zh-hk. O arquivo de configuração precisa ser editado para o estilo atual e então será anexado; portanto, especificar UMing não pertence a esse arquivo local.conf.

  2. Para preferências de Sans Serif, comece novamente com Fontes Dejavu, depois VL Gothic para japonês antes de voltar para WenQuanYi Zen Hei, que é Sans e abrange Hangul chinês e coreano.

  3. As fontes Monospace são forçadas para as fontes preferidas Sans. Se o texto estiver em chinês ou coreano, então a WenQuanYi ZenHei será usada.

Em uma localidade não CJK, o resultado é que fontes adequadas serão usadas para todas as variantes de chinês, japonês e coreano Hangul (mas variantes japonesas dos glifos compartilhados com o chinês Han serão usadas). Todos os outros idiomas já deveriam funcionar se uma fonte estiver presente. Como o(a) usuário(a) root:

cat > /etc/fonts/local.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>DejaVu Serif</family>
            <family>IPAexMincho</family>
            <!-- WenQuanYi é preferida como Serif em 65-nonlatin.conf;
            substitua isso, de forma que uma fonte real Coreana possa ser usada para Serif -->
            <family>UnBatang</family>
        </prefer>
    </alias>
    <alias>
         <family>sans-serif</family>
         <prefer>
             <family>DejaVu Sans</family>
             <family>VL Gothic</family>
         <!-- Isto assume WenQuanYi; é boa o suficiente para Sans Coreana -->
         </prefer>
    </alias>
    <alias>
         <family>monospace</family>
         <prefer>
             <family>DejaVu Sans Mono</family>
             <family>VL Gothic</family>
         <!-- Isto assume WenQuanYi; é boa o suficiente para Monospace Coreana -->
         </prefer>
    </alias>
</fontconfig>
EOF

Editando Arquivos de Configuração no Estilo Antigo

Algumas fontes, especialmente fontes chinesas, vem com arquivos de configuração que podem ser instalados em /etc/fonts/conf.d. No entanto, se você fizer isso e então usar um terminal para executar qualquer comando que use o Fontconfig, você possivelmente veja mensagens de erro como:

Aviso do Fontconfig: "/etc/fonts/conf.d/69-odofonts.conf", linha 14: Ter-se várias <famílias> em <apelido> não é suportado e possivelmente não funcione conforme o esperado.

Na prática, essas regras antigas não funcionam. Para usuários(as) não CJK, o Fontconfig geralmente fará um bom trabalho sem essas regras. A origem delas remonta a quando os(as) usuários(as) CJK precisavam que os bitmaps feitos à mão fossem legíveis em tamanhos pequenos, e eles pareciam feios perto dos glifos latinos suavizados - eles(as) preferiam usar a mesma fonte CJK para os glifos latinos. Existe um efeito colateral em fazer isso: a fonte (Serif) frequentemente também é usada para Sans, e em tal situação o texto (em inglês) nos menus do Gtk usará essa fonte - comparadas às fontes do sistema, além de ser serifada, é fraca e bastante pequena. Isso pode tornar desconfortável ler.

No entanto, esses antigos arquivos de configuração podem ser corrigidos se você desejar usá-los. O seguinte exemplo é a primeira parte do 64-arphic-uming.conf, originário de UMing - existem muitos outros itens semelhantes que também precisam de mudanças:

   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-cn</string>
           <string>zh-sg</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
   </match>

O processo para corrigir isso é simples, mas tedioso - para cada item que produzir uma mensagem de erro, usando o teu editor (como o(a) usuário(a) root) edite o arquivo instalado para repetir o bloco inteiro, tantas vezes quantas forem as múltiplas variáveis, então reduza cada exemplo para ter somente uma delas. Você possivelmente deseje trabalhar em um erro de cada vez, salvar o arquivo depois de cada correção e, a partir de um terminal separado, executar um comando como fc-list 2>&1 | less para ver se a correção funcionou. Para o bloco acima, a versão corrigida será:

   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-cn</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
    </match>
   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-sg</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
    </match>

Acerca de espessuras de fonte

Quando esta página e a próxima foram criadas, as fontes latinas vinham com no máximo duas espessuras - Regular ou Livro (Livro normalmente tem uma altura X maior para facilitar a leitura em grandes blocos de texto) e Negrito - e talvez um estilo itálico (ou inclinado). Algumas fontes também tinham faces condensadas (para caber mais texto em uma linha e geralmente usadas somente quando especificado). Sem a marcação CSS (Cascading Style Sheets), o texto usava a espessura Regular ou Book, exceto quando marcação <b> ... </b> era usada para texto em negrito. Os estilos em itálico seriam invocados por marcação <i> ... </i>, juntamente com a marcação em negrito para Bold Italic.

Algumas faces agora contêm até 9 espessuras, possivelmente também com uma fonte variável (para economizar espaço incluindo todas as alternativas em um arquivo e possivelmente permitindo espessuras intermediárias). Para a maioria dos(as) usuários(as) de área de trabalho que não precisam dessa ampla gama de espessuras para criar conteúdo, é mais simples instalar somente uma ou duas espessuras. Se uma face tiver espessuras individuais mais uma fonte variável, a fonte variável geralmente estará no nível superior do diretório fornecido, com espessuras individuais em um subdiretório static/. Exceto na revisão inicial de uma fonte, não faz sentido instalar estática e variável, nem todas as espessuras possíveis.

As espessuras são rotuladas de 100 (fina) a 900 (preta ou pesada) na terminologia CSS, sendo 400 normal e 700 negrito. O conjunto completo de espessuras está descrito em Tabela de espessuras CSS de fontes.

Se você tiver instalado uma fonte com várias espessuras, você pode copiar font-weights.html para a tua máquina local. Conforme enviado, ele usará tua fonte Serif padrão, presumindo que você tenha uma. Edite-o para apontar para uma fonte específica instalada usando o nome conhecido para Fontconfig (também nos itens de texto *EDITME FONTNAME*) e abra-o a partir do teu navegador da área de trabalho. Você também pode usá-lo para visualizar uma fonte com apenas duas espessuras instaladas, por exemplo, para testar para ver se você prefere outras espessuras.

Apesar dos detalhes naquele link da Mozilla, parece que se apenas as espessuras normal e negrito forem instaladas, SemiBold (600) será mostrada usando negrito.

Parece haver pouca margem para mudar quais espessuras são usadas para normal e negrito se apenas duas espessuras tiverem sido instaladas. O Firefox, e provavelmente outros navegadores, procurarão a próxima espessura mais pesada que o normal. Se for menor que negrito (Médio, talvez SemiBold - incerto) será usada para normal e então a próxima espessura maior, se houver, será usada para negrito, permitindo que você deixe as fontes um pouco mais escuras. Por outro lado, se apenas uma espessura menor que o normal tiver sido instalada, como Light, ela será usada tanto para espessura normal quanto para negrito (a busca ascendente acontece primeiro).

Se remover algumas espessuras de uma fonte do sistema, você possivelmente necessitará executar fc-cache como o(a) usuário(a) root e, em seguida, deslogar-se completamente para limpar os caches associados ao teu(tua) usuário(a).

Itens que conseguem substituir Fontconfig

Vários ambientes de área de trabalho, assim como alguns programas, usarão Fontconfig para achar fontes, mas possivelmente substituam certas coisas.

GNOME: As configurações em org.gnome.desktop.interface podem ser atualizadas com dconf-editor. Você pode configurar as fontes de acordo com tua preferência e tamanho desejado de ponto. Para usar as fontes escolhidas pelo Fontconfig especifique, por exemplo, 'Sans 12', 'Serif 11', 'Mono 10' conforme desejado. Revise também as configurações de antialiasing, dicas e rgba. Alternativamente, gnome-tweaks-46.1 também pode atualizar as configurações de fonte em um formato de GUI.

LXQt: Mude as configurações de fonte conforme necessário para corresponder ao Fontconfig em lxqt-config-appearance.

KDE Plasma: As configurações podem ser ajustadas em Configurações do Sistema sob Aparência -> Fontes ou em Editar -> Preferências do aplicativo individual.

Xfce desktop: As configurações podem ser ajustadas em Configurações -> Aparência -> Fontes. Especifique tuas fontes preferidas, por exemplo. 'Sans Regular' (para usar a face e espessura normais em vez de Negrito e (ou) Itálico) e ajuste o tamanho do ponto na opção. Revise as opções de renderização e DPI.

Firefox: Esse navegador te permite especificar as fontes padrão dele. Para a série 128esr use o menu 'Hamburger' para ir para Preferências, Geral e sob Fontes -> Avançado selecione Sans Serif, Serif ou Monospace conforme apropriado, se você desejar usar as fontes que correspondam ao Fontconfig. Configure os tamanhos dos pontos conforme desejado. Nas versões posteriores, as configurações estão em Preferências -> Fontes.

Libreoffice: Testes usando texto em inglês com uma antiga fonte japonesa (HanaMinA), que suporta vários idiomas europeus, mas tinha somente uma espessura e sem itálico ou inclinação, mostraram que, embora o Libreoffice use Fontconfig para encontrar a fonte, ele criou o próprio texto dele em negrito ou inclinado. Não está claro se fará o mesmo quando uma fonte realmente tiver espessura de negrito ou um estilo de itálico. Além disso, a documentação mostra que o Libreoffice tem as próprias regras dele de substituição para quando um ponto de código não é encontrado na fonte selecionada, mas não está claro se essas regras se aplicam no Linux usando Fontconfig.

Pango: conforme observado no exemplo ~/.config/fontconfig acima, qualquer coisa que use Pango-1.44 (a partir de 2019) ou posterior agora usa Harfbuzz para dicas, não FreeType, e hintfull não é suportado.

Thunderbird: As configurações de fonte podem ser mudadas indo-se para "Editar -> Configurações" e, a seguir, rolando para baixo até "Fontes & Cores".

Links Externos

Eu olhei fixamente para o "fontconfig" ...

As entradas do blog de Eevee são particularmente úteis se o Fontconfig não pensar que tua fonte escolhida suporta teu idioma e para preferir algumas fontes japonesas não MS quando uma fonte feia MS já estiver instalada.

subpixel-hinting

A documentação do interpretador FreeType v40 em documentos do freetype explica como o hinter atual funciona e por que o intérprete Infinality anterior (lento) foi substituído.

Calculando DPI

Uma resposta antiga em askubuntu fornece alguns detalhes acerca de como calcular pontos por polegada de uma tela, mas essencialmente você apenas mede a largura e a altura do painel visível, converte para polegadas se usar medidas métricas e divide pelo número de pixeis. Você pode então passar -dpi 90 ao iniciar o Xorg, usando teu próprio valor.

Tabela de espessuras CSS de fontes

Talvez mais que você gostaria de saber esteja em documentos CSS da Mozilla.

Aplicando dicas automáticas para uma fonte

Se você estiver usando dicas e tiver uma fonte TTF (não OTF) que carece de dicas, mas te permite bifurcá-la, você poderá aplicar dicas usando ttfautohint que é baseado no antigo autohinter. A partir da versão 1.8.4, ele falha para construir sem o Qt5.

"Fontconfig" no "wiki" do "Arch"

"Arch" tem muitas informações no "wiki" dela em "font_configuration".

"Fontconfig" no "wiki" do "Gentoo"

"Gentoo" tem algumas informações no "wiki" dela em "Fontconfig", embora muitos detalhes (o que habilitar e "Infinality") sejam específicos para "Gentoo".

Fontes TTF e OTF

Acerca das fontes TTF e OTF

Originalmente, o Xorg fornecia somente fontes bitmap. Mais tarde, algumas fontes escaláveis Type1 foram adicionadas, mas o mundo da área de trabalho passou a usar fontes TrueType e Open Type. Para suportá-las, o Xorg usa Xft, a biblioteca de interface FreeType do X, com Fontconfig (veja-se a página anterior para detalhes, incluindo como fontes são selecionadas e vários motivos pelos quais uma fonte pode ser ignorada).

Algumas fontes são fornecidas como coleções (TTC ou OTC) onde os dados das fontes são compartilhados entre diferentes fontes, o que economiza espaço em disco. Essas deverias ser tratadas exatamente da mesma maneira que os arquivos individuais TTF ou OTF.

Se uma fonte fornecer ambos os formatos TTF e OTF, você deveria preferir o formato OTF no Linux, pois ele pode fornecer mais recursos para programas que sabem como usá-los (como xelatex). Os arquivos TTF dessas fontes geralmente contém dicas, veja-se Dicas e Suavização e Itens que conseguem substituir Fontconfig para motivos pelos quais as dicas podem ser indesejáveis ou não usáveis.

Uma fonte possivelmente tenha múltiplas variações. Por exemplo, Noto Sans tem nove gramaturas (ExtraLight, Light, Thin, Normal, Medium, SemiBold, Bold, ExtraBold e Black) e dois estilos (Regular e Italic), portanto dezoito (18) variações no total. Normalmente, cada variação é fornecida como um arquivo TTF ou OTF separado. Para cobertura completa, você precisa instalar todos esses arquivos TTF ou OTF. Mesmo se você estiver com pouco espaço em disco, você ainda deveria instalar duas gramaturas (Regular e Bold) por dois estilos (Normal e Italic) se a fonte tiver essas variações. Algumas fontes não tem estilo itálico (por exemplo, a maioria das fontes CJK e algumas fontes mono espaçadas), e algumas fontes tem somente uma variação (por exemplo, Noto Sans Math, ela fornece somente o glifo de alguns símbolos matemáticos).

Algumas fontes também estão disponíveis como arquivos de fontes variáveis. Ao contrário de um arquivo de fonte normal, que contém somente uma variação, um arquivo de fonte variável contém variações infinitas. Cada variação pode ser definida pelo aplicativo usando essa fonte, atribuindo número(s) para uma ou mais variáveis. Existem também instâncias nomeadas predefinidas análogas às variações tradicionais. Por exemplo, com a versão variável da Noto Sans, a variável espessura pode receber qualquer número não inferior a cem (100) e não superior a novecentos (900), e nove (9) instâncias nomeadas são predefinidas: ExtraLight para espessura = 100, Regular para espessura = 400, Negrito para espessura = 700, etc. Assim, uma vez que um arquivo de fonte variável para Noto Sans seja instalado, todas as nove (9) instâncias nomeadas (ou variações) estarão disponíveis. Observe que a inclinação não é definida como uma variável na versão variável da Noto Sans, de forma que Regular e Itálico ainda são variações tradicionais e um arquivo separado de fonte variável é necessário para a variação Itálico.

Um arquivo de fonte variável obviamente é mais flexível que os arquivos de fonte normais (estáticos). Ele é extremamente útil para ajuste fino da fonte para páginas da Web ou publicações. E o tamanho de um arquivo de fonte variável geralmente é significativamente menor que o tamanho total de vários arquivos de fonte estática para múltiplas variações. Por exemplo, o arquivo de fonte variável para Noto Sans SC tem somente 11M, enquanto o tamanho total de nove arquivos de fonte estática para Noto Sans SC é 91M. Mas você precisa ter certeza de que teus aplicativos realmente suportam fontes variáveis antes de instalar uma. Por exemplo, o lualatex suporta fonte variável, mas o xelatex não. Portanto, se você quiser usar uma fonte para um artigo e usar o xelatex para composição tipográfica, você não deve instalar os arquivos de fontes variáveis.

Para informações acerca de fontes variáveis, por favor, veja-se Fontes Variáveis.

Para alguns conjuntos de comandos sequenciais, o Pango é exigido para renderizar as coisas corretamente, seja selecionando diferentes formas de glifos ou combinando glifos - em ambos os casos, de acordo com o contexto. Isso se aplica particularmente aos conjuntos de comandos sequenciais Arábico e Índico.

Fontes escaláveis padrão que vem com o X fornecem uma cobertura Unicode muito fraca. Você possivelmente note em aplicações que usam o Xft que alguns caracteres aparecem como uma caixa com quatro dígitos binários dentro. Nesse caso, uma fonte com os glifos exigidos não foi encontrada. Outras vezes, os aplicativos que não usam outras famílias de fontes por padrão e não aceitam substituições originárias do Fontconfig exibirão linhas em branco quando a fonte padrão não cobrir a ortografia do idioma do(a) usuário(a).

As fontes disponíveis para um aplicativo são aquelas que estavam presentes quando ele foi iniciado, de forma que, se adicionar uma fonte extra e desejar usá-la em um aplicativo que esteja em execução, [então] você terá que fechar e reiniciar esse aplicativo.

Algumas pessoas ficam felizes em ter dezenas, ou mesmo centenas, de arquivos de fontes disponíveis, mas se você quiser selecionar uma fonte específica em um aplicativo de área de trabalho (por exemplo, em um processador de texto), [então] navegar por várias fontes para encontrar a certa é lento e desajeitado - menos é melhor. Portanto, para alguns pacotes de fontes você pode decidir instalar somente uma das fontes - mas mesmo assim instalar as diferentes variantes (itálico, negrito, etc.), pois todas são variações para o mesmo nome de fonte.

No passado, todos(as) recomendavam executar fc-cache como o(a) usuário(a) root depois de instalar ou remover fontes, mas isso não mais é necessário no Linux; o Fontconfig fará isso automaticamente se necessário, bem como se os caches de fonte forem mais antigos que trinta (30) segundos. Entretanto, se você adicionar uma fonte e quiser usá-la imediatamente, poderá executar esse comando como um(a) usuário(a) normal.

Existem várias referências abaixo aos caracteres CJK. Isso significa Chinês, Japonês e Coreano, embora o Coreano moderno agora seja quase todo escrito usando os glifos fonéticos Hangul (às vezes costumava-se usar glifos Hanja que são semelhantes ao Chinês e ao Japonês). O Unicode decidiu optar pela Unificação Han e mapear alguns glifos Chineses e Japoneses para os mesmos pontos de código. Isso era muito impopular no Japão e o resultado é que fontes diferentes renderizariam alguns pontos de código em formatos bastante diferentes. Além disso, o Chinês Simplificado às vezes usará o mesmo ponto de código que o Chinês Tradicional, mas o mostrará diferentemente, um tanto análogo às diferentes formas usadas para as letras 'a' e 'g' em Inglês (um andar e dois andares), exceto que, em um contexto de idioma, alguém parecerá "errado" em vez de apenas "diferente".

Ao contrário da maioria dos outros pacotes neste livro, os(as) editores(as) do BLFS não monitoram as versões das fontes nesta página - uma vez que uma fonte é boa o suficiente para uso geral, as adições típicas em uma nova versão são menores (por exemplo, novos símbolos de moeda ou glifos não para um idioma moderno, como emojis ou cartas de baralho). Portanto, nenhuma dessas fontes mostra informações de versão ou de MD5.

A lista abaixo não fornecerá cobertura completa Unicode. O Unicode é atualizado a cada ano e a maioria das adições agora é para sistemas históricos de escrita. Para uma cobertura quase completa, você pode instalar o conjunto completo das Fontes Noto (existem fontes separadas para diferentes sistemas de escrita). Nós costumávamos recomendar o Guia de Fontes Unicode, mas ele não tem sido atualizado desde 2008 e muitos dos links dele estão mortos.

Exemplos renderizados da maioria dessas fontes, e muitas outras, com detalhes de quais idiomas elas cobrem, podem ser encontrados em um sítio web de comparação de fontes.

As fontes frequentemente são fornecidas em arquivos zip, exigindo ferramentas originárias do libarchive-3.7.7 ou do 7zip-24.09 para listá-las e extraí-las, mas mesmo que o lançamento atual seja um tarball, você ainda deveria verificar para ver se ele criará um diretório (espalhar-se o conteúdo de um arquivo zip ou tarball ao longo do diretório atual pode ser muito confuso, e algumas fontes criam diretórios __MACOSX/). Além disso, muitas fontes são fornecidas com permissões que não permitem que 'outros(as)' usuários(as) as leiam - se uma fonte é para ser instalada para uso abrangente a todo o sistema, quaisquer diretórios precisam estar no modo 755 e todos os arquivos no modo 644, de forma que você precisa mudá-los se as permissões forem diferentes. Se você se esquecer, o(a) usuário(a) root possivelmente esteja apto(a) a ver uma fonte específica em fc-list, mas um(a) usuário(a) normal não estará apto(a) a usá-las.

Como um exemplo de instalação de fontes, considere a instalação das Fontes Dejavu. Nesse pacote específico, os arquivos TTF estão em um subdiretório. A partir do diretório desempacotado do fonte, execute os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/fonts/dejavu &&
install -v -m644 ttf/*.ttf /usr/share/fonts/dejavu &&
fc-cache -v /usr/share/fonts/dejavu

Se desejar, você também pode instalar quaisquer licenças ou outra documentação, seja junto com a fonte ou em um diretório correspondente sob /usr/share/doc/.

Umas poucas fontes vem com o fonte, bem como com o(s) arquivo(s) completo(s) TTF ou OTF. A menos que você pretenda modificar a fonte e tenha as ferramentas corretas (às vezes FontForge-20230101, mas frequentemente ferramentas comerciais), o fonte não fornecerá nenhum benefício, de forma que não o instale. Uma ou duas fontes até mesmo vem com arquivos Web Open Font Format (WOFF) - isso é útil se você executar um servidor web e desejar usar essa fonte em teu sítio da web, mas não é útil para um sistema de área de trabalho.

Para fornecer maior cobertura Unicode, você deveria instalar algumas das seguintes fontes, dependendo de quais sítios da web e idiomas você desejar ler. A próxima parte desta página detalha algumas fontes que cobrem pelo menos os alfabetos Latinos; a parte final lida com alguns problemas do CJK.

Nota

A instalação das Fontes Dejavu é fortemente recomendada.

Caladea

Caladea (criada como uma fonte extra do Chrome OS) é metricamente compatível com a MS Cambria e pode ser usada se você tiver de editar um documento que alguém iniciou no Microsoft Office usando Cambria.

Fontes Cantarell

Fontes Cantarell – A família de fontes Cantarell fornece uma contemporânea Humanist Sans Serif. Ela é particularmente otimizada para legibilidade em tamanhos pequenos e é a família de fontes preferida para a interface de usuário(a) do GNOME.

Carlito

Carlito (criada como outra fonte extra do Chrome OS) é metricamente compatível com MS Calibri e pode ser usada se você tiver de editar um documento que alguém iniciou no Microsoft Office usando Calibri.

Fontes DejaVu

Fontes DejaVu – Essas fontes são uma extensão das, e substituição para as, fontes Bitstream Vera e fornecem conjuntos de comandos sequenciais baseados em Latim com acentos e pontuação, como "aspas inteligentes" e caracteres de espaçamento variantes, bem como Cirílico, Grego, Árabe, Hebraico, Armênio, Georgiano e alguns outros glifos. Na ausência das fontes Bitstream Vera (que tinham muito menos cobertura), essas eram as fontes substitutas padrão para idiomas 'Latinos'. A partir do Fontconfig-2.14, se as fontes Noto 'Latinas' tiverem sido instaladas, elas serão priorizadas antes das DejaVu.

GNU FreeFont

GNU FreeFont – Esse conjunto de fontes cobre muitos caracteres não CJK, mas os glifos são comparativamente pequenos (ao contrário das fontes Noto e DejaVu que são comparativamente grandes) e bastante finos ("menos preto" quando preto sobre branco for usado), o que significa que, em alguns contextos, como terminais, eles não serão visualmente agradáveis, por exemplo, quando a maioria dos outros glifos for fornecida por outra fonte. Por outro lado, algumas fontes usadas principalmente para saída gerada impressa, e muitas fontes CJK, também são finas.

Gelasio

Gelasio é metricamente compatível com MS Georgia e o Fontconfig irá usá-la se a MS Georgia for solicitada, mas não estiver instalada.

Fontes Liberation

As fontes Liberation fornecem substitutos livres para Arial, Courier New e Times New Roman. O Fontconfig as usará como substitutas para essas fontes e também para as semelhantes Helvetica, Courier e Times Roman, embora para essas ele possa preferir uma fonte diferente (vejam-se os exemplos nos PDFs em typosetting.co.uk).

Muitas pessoas acharão as fontes Liberation úteis para páginas onde uma dessas fontes for solicitada.

Fontes Centrais da Microsoft

As Fontes Centrais da Microsoft datam de 2002. Elas foram fornecidas com versões antigas do Microsoft Windows e aparentemente foram disponibilizadas para uso geral. Você pode extraí-las a partir dos arquivos '.exe' usando o bsd-tar originário do libarchive-3.7.7. Certifique-se de ler a licença antes de usá-las. Ao mesmo tempo, algumas dessas fontes (particularmente Arial, Times New Roman e, em menor grau, Courier New) foram amplamente usadas em páginas da web. O conjunto completo contém Andale Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana e Webdings.

Por favor, observe que se somente quiser usar uma fonte com as mesmas métricas (tamanho dos caracteres, etc.) que a Arial, Courier New ou Times New Roman, você pode usar as fontes livres Liberation (acima) e, da mesma forma, consegue substituir a Georgia pela Gelasio.

Embora muitas postagens antigas recomendem instalar essas fontes para uma saída gerada que pareça melhor, postagens menos antigas dizem que elas são 'feias' ou 'quebradas' com os modernos Fontconfig, Freetype e Pango. A maioria das pessoas não vai querer instalar nenhuma dessas fontes.

As fontes mais recentes que a Microsoft tornou padrão em lançamentos posteriores do MS Windows ou do MS Office (Calibri e Cambria) nunca estiveram disponíveis livremente. Entretanto, se você não as tiver instaladas, poderá encontrar equivalentes métricas (Carlito e Caladea) acima.

Fontes Noto

As fontes Noto ('No Tofu', ou seja, evitar caixas com pontos [dígitos hexadecimais] quando um glifo não puder ser encontrado) são um conjunto de fontes que visa a cobrir cada glifo em Unicode, não importa quão obscuro.

Pessoas que usam idiomas escritos em alfabetos Latino, Grego ou Cirílico precisam instalar somente Noto Sans, Noto Serif e (ou) Noto Sans Mono. Para mais detalhes a respeito da organização das fontes Noto, veja-se como as fontes Noto estão organizadas. Existem também fontes separadas para todos os outros sistemas atuais de escrita, mas essas não abrangem texto em idiomas Latinos.

Essas três fontes são as preferências de primeira escolha do Fontconfig para texto nesses três alfabetos e são atualizadas frequentemente para cobrir adições recentes ao Unicode, como as extensões para transcrição fonética nos alfabetos Latino e Cirílico.

Possivelmente seja mais fácil baixar uma fonte específica Noto acessando-se Noto Sans e mudando o nome da fonte conforme apropriado, com '+' entre cada palavra, por exemplo, 'Noto+Kufi+Arabic', 'Noto+Serif+Georgian' ou qualquer outra, depois clicando em 'Download family'.

Para as fontes Noto CJK, é mais fácil encontrar o arquivo zip específico que você deseja no Github. Vá para https://github.com/notofonts/noto-cjk/releases/ e procure a versão Sans ou Serif mais recente com o próprio guia delas atualizado de download e os recursos delas. Os guias de download deveriam ajudá-lo(a) a identificar qual arquivo zip melhor atende aos teus requisitos.

Noto Sans é a fonte preferida para KDE Plasma e aplicativos, exceto para fontes mono espaçadas, onde Hack é preferida.

Para sistemas de escrita que não usam os alfabetos latino, grego ou cirílico, as fontes Noto não são preferidas pelo Fontconfig. Se usar uma fonte Noto para um idioma moderno onde outra fonte instalada também o cobre (por exemplo, as fontes DejaVu cobrem vários alfabetos da direita para a esquerda), você talvez necessite configurar uma preferência para Fontconfig - veja-se a página anterior.

Source Code Pro

Esse conjunto de fontes originário da Adobe (sete pesos) inclui o que agora é a fonte mono espaçada preferida para aqueles aplicativos que usam o gsettings-desktop-schemas-47.1. O lançamento GitHub source-code-pro contém OTF (preferida) e TTF, bem como o fonte e as fontes WOFF.

Para usar isso em terminais, você provavelmente desejará somente a fonte Regular.

Existe também uma versão mais antiga TTF disso disponível a partir de fontes do Google, mas essa tem uma cobertura muito limitada (adequada para a maioria dos idiomas Europeus que usam um alfabeto Latino).

Fontes Lohit

Para idiomas índicos, Fontconfig agora prefere fontes Lohit (sânscrito para 'vermelho'). Elas podem ser encontradas em pagure.org

Fontes CJK

Conforme indicado anteriormente, o uso de uma combinação de caracteres Chineses, Japoneses e Coreanos pode ser complicado - cada fonte cobre somente um subconjunto dos pontos de código disponíveis; as formas preferidas dos glifos podem diferir entre os idiomas e muitas das fontes CJK atualmente não suportam o Coreano moderno.

Além disso, o Fontconfig prefere o Chinês ao Japonês por padrão. Ajustar isso está abordado em Preferindo fontes escolhidas CJK.

Embora o Unicode tenha sido estendido para permitir um número muito grande de pontos de código CJK, aqueles fora do Plano Base (maiores que U+0xFFFF) não são comumente usados em Mandarim (a forma normal do Chinês escrito, seja Simplificado (China continental, Malásia e Singapura) ou Tradicional (Hong Kong e Taiwan)) ou Japonês.

Para Hong Kong, que usa Chinês Tradicional e onde o Cantonês é o idioma dominante, o Conjunto de Caracteres Suplementares de Hong Kong foi adicionado ao Unicode em 2005 e revisado em 2009 (ele é parte da Extensão B do CJK e contém mais que mil e novecentos (1.900) caracteres). As fontes anteriores não serão capazes de suportar o Cantonês ou usar esses caracteres onde os nomes locais forem escritos em Mandarim. As fontes UMing HK, Noto Sans HK e WenQuanYi Zen Hei todas parecem cobrir o uso em Hong Kong (o Fontconfig discorda a respeito da Noto Sans HK).

Os glifos Han tem largura dupla e outros glifos na mesma fonte possivelmente sejam mais estreitos. Para o conteúdo CJK deles, todas essas fontes podem ser consideradas como mono espaçadas (ou seja, largura fixa).

Se você deseja usar fontes Noto, também existem versões Serif das diversas fontes CJK delas. As fontes Noto Sans/Serif SC/TC/HK/JP/KR são derivadas de um repositório monolítico noto-cjk e você pode encontrar lá os arquivos .ttc para a família inteira de fontes Noto Sans CJK (incluindo SC/TC/HK/JP/KR) ou Noto Serif CJK. O Google recomenda, em vez disso, que os(as) usuários(as) normais usem fontes separadas Noto Sans/Serif SC/TC/HK/JP/KR, mas se você for capaz e estiver disposto a ler textos em mais de um sistema de caracteres CJK, possivelmente seja mais fácil usar um arquivo monolítico .ttc para cobertura completa.

Se tudo o que você deseja fazer é renderizar glifos CJK, instalar WenQuanYi ZenHei possivelmente seja um bom lugar para começar, se você ainda não tiver uma preferência.

Fontes chinesas:

Em Chinês, existem três estilos de fonte de uso comum: Sung (também conhecido como Song ou Ming), que é a forma ornamentada ("Serif") mais comum; Kai ("pinceladas"), que é um estilo ornamentado anterior que parece bem diferente; e Hei moderno ("Sans"). A menos que você aprecie as diferenças, provavelmente não desejará instalar as fontes Kai.

As versões atuais das fontes chinesas Noto Sans podem ser encontradas em Noto Sans SC para chinês simplificado, Noto Sans TC para chinês tradicional e, conforme mencionado acima, Noto Sans HK para uso em Hong Kong.

Fontes Opendesktop

Uma cópia da versão 1.4.2 do opendesktop-fonts está preservada no Arch. Esse foi um desenvolvimento posterior do fireflysung que o BLFS costumava recomendar, adicionando fontes Kai e Mono. O nome da fonte Sung permanece AR PL New Sung, de forma que ambas não podem ser instaladas juntas.

Ao mesmo tempo, existiu um lançamento 1.6 e, mais recentemente, algumas versões no GitHub, que também incluíam uma fonte Sans (Odohei), mas elas saíram da web e não está claro se existiu um problema. O fontconfig não sabe nada a respeito das fontes posteriores (AR PL New Kai, AR PL New Sung Mono) e irá tratá-las como Sans por padrão.

UMing

Fontes UMing – conjuntos de fontes chinesas Ming (originários do Debian, use o tarball '.orig') em um ttc que contém variações de Chinês Simplificado e Tradicional (Taiwanês, com segunda variante para diferentes bopomofo e Cantonês para Hong Kong). Isso vem com arquivos de sintaxe antiga que você pode instalar em /etc/fonts/conf.d/, mas veja-se Editando Arquivos de Configuração no Estilo Antigo.

WenQuanYi Zen Hei

WenQuanYi Zen Hei fornece uma fonte Sans-Serif que cobre todos os conjuntos de comandos sequenciais CJK, incluindo o Coreano. Embora ela inclua arquivos de configuração de estilo antigo, eles não são exigidos: o Fontconfig já tratará essas fontes (a 'sharp' contém bitmaps, a monospace parece não ser Mono na parte ASCII dela) como Sans, Serif e Monospace. Se tudo o que você deseja fazer é estar apto(a) a renderizar texto em Han e Coreano, sem se preocupar com as sutilezas das formas usadas, a fonte principal proveniente desse pacote é uma boa fonte para usar.

Fontes japonesas:

Em Japonês, as fontes Góticas são Sans, e Mincho são Serif. O BLFS costumava mencionar somente as fontes Kochi, mas agora essas parecem ser as menos preferidas das fontes Japonesas.

Além das fontes detalhadas abaixo, considere também Noto Sans JP.

Fontes IPAex

As fontes IPAex são a versão atual das fontes IPA. Use o Tradutor do Google na página inicial e, então, clique no link de transferência para a Fonte IPAex Ver.004.01. Infelizmente, o Fontconfig conhece somente acerca das mais antigas fontes IPA e da fonte bifurcada IPA Mona (que não está facilmente disponível e que aparentemente não atende às diretrizes de Software Livre do Debian). Se instalar as fontes IPAex, você possivelmente queira torná-las conhecidas para o Fontconfig. Por favor, veja-se Preferindo fontes escolhidas CJK para uma maneira de fazer isso.

Fontes Kochi

As fontes Kochi Substitute foram as primeiras fontes japonesas verdadeiramente livres (as fontes Kochi anteriores foram supostamente plagiadas de uma fonte comercial).

VL Gothic

A fonte VL Gothic é uma fonte japonesa moderna em duas variantes com espaçamento monotônico ou proporcional para caracteres não japoneses.

Fontes coreanas:

Em Coreano, Batang ou Myeongjo (o nome mais antigo) são Serif; Dotum ou Gothic são as principais fontes Sans. O BLFS recomendava anteriormente as fontes Baekmuk, mas as fontes Nanum e Un agora são preferidas à Baekmuk pelo Fontconfig devido a solicitações de usuários(as).

Um lugar conveniente para ver exemplos dessas e de muitas outras fontes Coreanas é Fontes Coreanas Livres. Clique em 'Gothic Fonts' ou 'All Categories -> Myeongjo Fonts', a seguir clique no exemplo de fonte para ver mais detalhes, incluindo a Licença, e clique no link para baixá-la. Para a Nanum, você precisará estar apto(a) a ler Coreano para encontrar o link de transferência na página que acessar. Para a Un, existem links diretos e você pode encontrar o tarball un-fonts-core no diretório releases/.

Alternativamente, considere Noto Sans KR ou WenQuanYi ZenHei.

Legado do Xorg

Introdução ao Legado do Xorg

O ancestral do "Xorg" ("X11R1", em 1987) inicialmente fornecia somente fontes "bitmap", com uma ferramenta ("bdftopcf") para auxiliar na instalação delas. Com a introdução do "xorg-server-1.19.0" e "libXfont2", muitas pessoas não precisarão delas. Ainda existem uns poucos pacotes antigos que podem exigir ou se beneficiar dessas fontes obsoletas e, portanto, os pacotes a seguir são mostrados aqui.

Nota

O pacote "font-adobe-100dpi" instala versões de cem (100) pontos por polegada das fontes "Courier", "Helvetica", "New Century Schoolbook" e "Times".

Os pacotes de fontes restantes aqui fornecem versões de 75 dpi dessas fontes e várias fontes diversas - principalmente para codificações legadas. Elas servem principalmente para silenciar avisos ao se testar o "Xorg". Nas versões anteriores do BLFS, muito mais fontes legadas eram instaladas.

Por favor, consulte o livro BLFS-7.10 em https://www.linuxfromscratch.org/blfs/view/7.10/x/x7font.html se desejar instalar quaisquer dessas outras fontes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.x.org/pub/individual/

  • Transferência (FTP):

  • Tamanho da transferência: 4,2 MB

  • Espaço em disco estimado exigido: 30 MB

  • Tempo de construção estimado: 0,3 UPC

Dependências do Legado do Xorg

Exigidas

Fontes do Xorg

Baixando o Legado do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > legacy.dat << "EOF"
e09b61567ab4a4d534119bba24eddfb1 util/ bdftopcf-1.1.1.tar.xz
20239f6f99ac586f10360b0759f73361 font/ font-adobe-100dpi-1.0.4.tar.xz
2dc044f693ee8e0836f718c2699628b9 font/ font-adobe-75dpi-1.0.4.tar.xz
2c939d5bd4609d8e284be9bef4b8b330 font/ font-jis-misc-1.0.4.tar.xz
6300bc99a1e45fbbe6075b3de728c27f font/ font-daewoo-misc-1.0.4.tar.xz
fe2c44307639062d07c6e9f75f4d6a13 font/ font-isas-misc-1.0.4.tar.xz
145128c4b5f7820c974c8c5b9f6ffe94 font/ font-misc-misc-1.1.3.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:

mkdir legacy &&
cd     legacy &&
grep -v '^#' ../legacy.dat | awk '{print $2$3}' | wget -i- -c \
     -B https://www.x.org/pub/individual/ &&
grep -v '^#' ../legacy.dat | awk '{print $1 " " $3}' > ../legacy.md5 &&
md5sum -c ../legacy.md5

Instalação do Legado do Xorg

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../legacy.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
    ./configure $XORG_CONFIG
    make
    as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Conteúdo

Aplicativos Instalados: bdftopcf
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $XORG_PREFIX/share/fonts/100dpi, $XORG_PREFIX/share/fonts/75dpi, $XORG_PREFIX/share/fonts/misc

Descrições Curtas

bdftopcf

converte uma fonte do "X" do "Bitmap Distribution Format" para o "Portable Compiled Format"

Capítulo 25. Bibliotecas Gráficas de Ambiente

Este capítulo não contém bibliotecas que sejam necessárias para executar o "X". Ele contém bibliotecas que aprimoram o "X". Em alguns casos, o aprimoramento é tão simples quanto o suporte de fontes. Em outros, é tão complexo quanto bibliotecas que ficam entre o "X" e aplicativos que executam no "X" cujo objetivo é o de padronizar a aparência e as comunicações entre processos para diferentes aplicativos. Elas também auxiliam os(as) programadores(as) fornecendo elementos comuns.

Atkmm-2.28.4

Introdução ao Atkmm

"Atkmm" é a interface oficial C++ da biblioteca do kit de ferramentas de acessibilidade "ATK".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Atkmm

Exigidas

at-spi2-core-2.54.1 e GLibmm-2.66.7

Instalação do Atkmm

Instale o "Atkmm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libatkmm-1.6.so
Diretórios Instalados: /usr/{include,lib}/atkmm-1.6 e /usr/share/{devhelp/books/atkmm-1.6,doc/atkmm-2.28.4}

Descrições Curtas

libatkmm-1.6.so

contém as classes da API do ATK

Atkmm-2.36.3

Introdução ao Atkmm

Atkmm é a interface C++ oficial para a biblioteca do kit de ferramentas de acessibilidade ATK. Essa versão é parte de uma nova API para suporte ao gtkmm-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Atkmm

Exigidas

at-spi2-core-2.54.1 e GLibmm-2.82.0

Instalação do Atkmm

Instale Atkmm executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libatkmm-2.36.so
Diretórios Instalados: /usr/{include,lib}/atkmm-2.36 e /usr/share/{devhelp/books/atkmm-2.36,doc/atkmm-2.28.4}

Descrições Curtas

libatkmm-2.36.so

contém as classes da API do ATK

at-spi2-core-2.54.1

Introdução ao At-Spi2 Core

O pacote "At-Spi2 Core" contém uma estrutura de acessibilidade abrangente para as Tecnologias Assistivas disponíveis na plataforma "GNOME". Isso inclui um conjunto de interfaces que são implementadas por outros kits de ferramentas e aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "At-Spi2 Core"

Exigidas

dbus-1.16.0, GLib-2.82.5 (GObject Introspection exigido para GNOME), gsettings-desktop-schemas-47.1 (tempo de execução) e Bibliotecas do Xorg

Opcionais

Gi-DocGen-2025.3 e sphinx-8.2.1

Instalação do At-Spi2 Core

Instale o "At-Spi2 Core" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D systemd_user_dir=/tmp &&
ninja

Agora, como o(a) usuário(a) "root":

ninja install &&
rm /tmp/at-spi-dbus-bus.service

A suíte de teste exige que os esquemas da glib do pacote já estejam instalados. Os testes também precisam executar em um ambiente gráfico. Agora que o pacote está instalado, teste os resultados emitindo: dbus-run-session ninja test.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D systemd_user_dir=/tmp: Esse sinalizador coloca o arquivo da unidade do systemd em /tmp onde será removido. O SysV é inapto para usar esse arquivo.

-D docs=true: Use essa chave se você quiser construir a documentação. Observe que você precisa ter Gi-DocGen-2025.3 e sphinx-8.2.1 instalados em teu sistema.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libatk-1.0.so, libatk-bridge-2.0.so, libatspi.so e /usr/lib/gtk-2.0/modules/libatk-bridge.so
Diretórios Instalados: /usr/include/atk-1.0, /usr/include/at-spi-2.0, /usr/include/at-spi2-atk, /usr/lib/gnome-settings-daemon-3.0, /usr/share/defaults/at-spi2 e /usr/share/gtk-doc/html/libatspi (opcional)

Descrições Curtas

libatk-1.0.so

contém funções que são usadas por tecnologias assistivas para interagir com aplicativos de área de trabalho

libatk-bridge.so

contém a ponte "GTK+-2" do Kit de Ferramentas de Acessibilidade

libatk-bridge-2.0.so

contém o módulo "GTK+" do Kit de Ferramentas de Acessibilidade

libatspi.so

contém as funções da "API" do "At-Spi2"

Cairo-1.18.2

Introdução ao Cairo

Cairo é uma biblioteca de gráficos 2D com suporte para múltiplos dispositivos de saída gerada. Os alvos de saída gerada atualmente suportados incluem o Sistema de Janelas X, Win32, buffers de imagem, PostScript, PDF e SVG. As estruturas de retaguarda experimentais incluem OpenGL, Quartz e saída gerada de arquivo XCB. Cairo foi projetado para produzir saída gerada consistente em todas as mídias de saída, aproveitando ao mesmo tempo a aceleração de hardware de exibição quando disponível (por exemplo, por meio do X Render Extension). A API do Cairo fornece operações semelhantes aos operadores de desenho de PostScript e PDF. As operações no Cairo incluem traçar e preencher splines cúbicas de Bézier, transformar e compor imagens translúcidas e renderização de texto suavizado. Todas as operações de desenho podem ser transformadas por qualquer transformação afim (escala, rotação, cisalhamento, etc.)

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/cairo-1.18.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5ad67c707edd0003f1b91c8bbc0005c1

  • Tamanho da transferência: 31 MB

  • Espaço em disco estimado exigido: 93 MB

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)

Transferências Adicionais

Dependências do "Cairo"

Exigidas

libpng-1.6.46 e Pixman-0.44.2

Recomendadas
Opcionais

ghostscript-10.04.0, GTK-Doc-1.34.0, libdrm-2.4.124, librsvg-2.59.2, libxml2-2.13.6, LZO-2.10, Poppler-25.02.0, Valgrind-3.24.0, GTK+-2 e libspectre

Nota

Existe uma dependência circular entre "Cairo" e "Harfbuzz". Se o "Cairo" for construído antes do "Harfbuzz", [então] é necessário reconstruir o "Cairo" depois do "Harfbuzz" para a finalidade de construir o "Pango".

Instalação do Cairo

Primeiro, corrija um defeito que causa problemas com impressão de arquivos PDF:

patch -Np1 -i ../cairo-1.18.2-upstream_fixes-1.patch

Instale o "Cairo" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não tem uma suíte funcional de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D xlib-xcb=enabled: Essa chave habilita diversas funções experimentais de Xlib/XCB usadas por alguns gerenciadores de janelas.

-D gtk_doc=true: Use esse parâmetro se GTK-Doc estiver instalado e você desejar criar e instalar a documentação.

Conteúdo

Aplicativos Instalados: cairo-trace
Bibliotecas Instaladas: libcairo.so, libcairo-gobject.so e libcairo-script-interpreter.so
Diretórios Instalados: /usr/include/cairo e /usr/lib/cairo

Descrições Curtas

cairo-trace

gera um registro de todas as chamadas feitas por um aplicativo para o "Cairo"

libcairo.so

contém as funções gráficas "2D" exigidas para renderizar para os vários alvos de saída gerada

libcairo-gobject.so

contém funções que integram o "Cairo" com o sistema de tipos "GObject" do "Glib"

libcairo-script-interpreter.so

contém as funções do interpretador de conjunto de comandos sequenciais para executar e manipular os rastreamentos de execução do "Cairo"

libcairomm-1.0 (cairomm-1.14.5)

Introdução ao libcairomm-1.0

O pacote "libcairomm-1.0" fornece uma interface "C++" para o "Cairo".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/cairomm-1.14.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0974ef291d491f22df287f588580677d

  • Tamanho da transferência: 638 KB

  • Espaço em disco estimado exigido: 9,5 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do "libcairomm-1.0"

Exigidas

Cairo-1.18.2 e libsigc++-2.12.1

Recomendadas
Opcionais

Doxygen-1.13.2

Instalação do libcairomm-1.0

Instale o "Cairomm-1.0" executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D build-tests=true  \
      -D boost-shared=true &&
ninja

Para executar a suíte de teste, execute: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-D build-tests=true: Essa chave é para construir os testes de unidade. Remova se você não tiver instalado Boost-1.87.0.

-D boost-shared=true: Essa chave faz com que o pacote use a versão compartilhada das bibliotecas boost. Ela é exigida se você não tiver instalado as bibliotecas estáticas boost e tiver passado -D build-tests=true.

-D build-documentation=true: Essa chave constrói a documentação HTML se o doxygen estiver instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libcairomm-1.0.so
Diretórios Instalados: /usr/{lib,include}/cairomm-1.0 e /usr/share/{devhelp/books,doc}/cairomm-1.0 (opcional)

Descrições Curtas

libcairomm-1.0.so

contém as classes da API do Cairo

libcairomm-1.16 (cairomm-1.18.0)

Introdução ao libcairomm-1.16

O pacote libcairomm-1.16 fornece uma interface C++ para o Cairo. Essa versão da API é necessária para suportar gtkmm-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/cairomm-1.18.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4c7afc4ab5177655724ea4b31794db30

  • Tamanho da transferência: 620 KB

  • Espaço em disco estimado exigido: 25 MB (com testes)

  • Tempo de construção estimado: 0,2UPC (com testes)

Dependências de libcairomm-1.16

Exigidas

Cairo-1.18.2 e libsigc++-3.6.0

Recomendadas
Opcionais

Doxygen-1.13.2

Instalação do libcairomm-1.16

Instale Cairomm-1.16 executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D build-tests=true  \
      -D boost-shared=true &&
ninja

Para executar a suíte de teste, execute: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D build-tests=true: Essa chave é para construir os testes de unidade. Remova se você não tiver instalado Boost-1.87.0.

-D boost-shared=true: Essa chave faz com que o pacote use a versão compartilhada das bibliotecas boost. Ela é exigida se você não tiver instalado as bibliotecas estáticas boost e tiver passado -D build-tests=true.

-D build-documentation=true: Essa chave constrói a documentação HTML se o doxygen estiver instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libcairomm-1.16.so
Diretórios Instalados: /usr/{lib,include}/cairomm-1.16 e /usr/share/{devhelp/books,doc}/cairomm-1.16 (opcional)

Descrições Curtas

libcairomm-1.16.so

contém as classes da API do Cairo

colord-gtk-0.3.1

Introdução ao Colord GTK

O pacote "Colord GTK" contém ligações "GTK+" para o "Colord".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Colord GTK"

Exigidas

colord-1.4.7 e GTK-3.24.48

Recomendadas
Opcionais

docbook-xml-5.0, docbook-xsl-ns-1.79.2, libxslt-1.1.42 (para construir a página de manual) e GTK-Doc-1.34.0

Instalação do Colord GTK

Atenção

Se construir a documentação, [então] "ninja -j1" precisa ser usado.

Instale o "Colord GTK" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk4=true        \
            -D vapi=true        \
            -D docs=false       \
            -D man=false        \
            ..                  &&
ninja

Se docbook-xml-5.0, docbook-xsl-ns-1.79.2 e libxslt-1.1.42 estiverem instalados, construa a página de manual:

sed '/class="manual"/i \
     <refmiscinfo class="source">colord-gtk</refmiscinfo>' \
    -i ../man/*.xml &&
meson configure -D man=true &&
ninja

Para testar os resultados, emita: "ninja test". Os testes precisam ser executados a partir de uma sessão do "X" e possivelmente exijam um perfil de cores para o teu monitor principal.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D vapi=true: Essa chave habilita a construção das ligações Vala. Remova essa chave se você não tiver o Vala-0.56.17 instalado.

-D gtk4=true: Essa chave habilita construir as ligações GTK-4 para colord. Configure essa opção como 'false' se você não tiver o GTK-4.16.12 instalado.

-D docs=false: Essa chave desabilita construir documentação baseada em gtk-doc. Mesmo se o gtk-doc estiver instalado, você precisará das versões com nomes de espaço das folhas de estilo XSL do Docbook.

Conteúdo

Aplicativos Instalados: cd-convert
Bibliotecas Instaladas: libcolord-gtk.so e libcolord-gtk4.so
Diretórios Instalados: /usr/include/colord-1/colord-gtk e /usr/share/gtk-doc/html/colord-gtk

Descrições Curtas

cd-convert

é uma Ferramenta de Teste do Gerenciador de Cores

libcolord-gtk.so

contém as ligações do "GTK+" do "Colord"

libcolord-gtk4.so

contém as ligações do "GTK-4" do "Colord"

FLTK-1.4.2

Introdução ao FLTK

"FLTK" (pronuncia-se "fulltick") é um kit de ferramentas "GUI" "C++" multiplataforma. "FLTK" fornece funcionalidade moderna "GUI" e suporta gráficos "3D" via" OpenGL" e as bibliotecas de emulação "GLUT" integradas dele usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do "FLTK"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

alsa-lib-1.2.13, desktop-file-utils-0.28, Doxygen-1.13.2, GLU-9.0.3, Mesa-24.3.4 e texlive-20240312 (ou install-tl-unx)

Instalação do FLTK

Nota

O diretório de extração "tar" é "fltk-1.4.2" e não "fltk-1.4.2-source" conforme indicado pelo nome do "tarball".

Instale o "FLTK" executando os seguintes comandos:

sed -i -e '/cat./d' documentation/Makefile        &&

./configure --prefix=/usr    \
            --enable-shared  &&
make

Se você deseja criar a documentação da "API", [então] emita:

make -C documentation html

Os testes para o pacote são interativos. Para executar os testes, execute "test/unittests". Além disso, existem outros setenta (70) aplicativos de teste executáveis no diretório "test" que podem ser executados individualmente.

Agora, instale o pacote e remova bibliotecas estáticas desnecessárias. Como o(a) usuário(a) root:

make docdir=/usr/share/doc/fltk-1.4.2 install &&
rm -vf /usr/lib/libfltk*.a

Se desejado, instale alguns jogos de exemplo construídos como parte dos testes, documentação extra e programas de exemplo. Como o(a) usuário(a) root:

make -C test           docdir=/usr/share/doc/fltk-1.4.2 install-linux &&
make -C documentation docdir=/usr/share/doc/fltk-1.4.2 install-linux

Se você baixou a documentação HTML opcional, instale-a como o(a) usuário(a) root:

tar -C /usr/share/doc/fltk-1.4.2 --strip-components=4 -xf ../fltk-1.4.2-docs-html.tar.gz

Explicações do Comando

sed ... documentation/Makefile: Evite instalar páginas em "/usr/share/man/cat*".

Conteúdo

Aplicativos Instalados: blocks, checkers, fltk-config, fluid e sudoku
Bibliotecas Instaladas: libfltk.so, libfltk_forms.so, libfltk_gl.so e libfltk_images.so
Diretórios Instalados: /usr/include/FL e /usr/share/doc/fltk-1.4.2

Descrições Curtas

blocks

é um jogo de eliminação de blocos baseado em "FLTK"

checkers

é uma versão baseada em "FLTK" do jogo de damas

fltk-config

é um conjunto de comandos utilitários sequenciais que pode ser usado para obter informações a respeito da versão atual do "FLTK" que esteja instalada no sistema

fluid

é um projetista interativo de "GUI" para "FLTK"

sudoku

é uma implementação do popular jogo "Sudoku"

libfltk.so

contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a)

Freeglut-3.6.0

Introdução ao Freeglut

"Freeglut" pretende ser um clone 100% compatível e totalmente de fonte aberto da biblioteca "GLUT". "GLUT" é um kit de ferramentas independente do sistema de janelas para escrever aplicativos "OpenGL", implementando uma "API" de janelas simples, o que torna muito fácil aprender e explorar a programação "OpenGL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Freeglut"

Exigidas

CMake-3.31.5 e Mesa-24.3.4

Recomendadas

Instalação do Freeglut

Instale o "Freeglut" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr       \
      -D CMAKE_BUILD_TYPE=Release        \
      -D FREEGLUT_BUILD_DEMOS=OFF        \
      -D FREEGLUT_BUILD_STATIC_LIBS=OFF  \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D FREEGLUT_BUILD_DEMOS=OFF: Desabilita construir aplicativos opcionais de demonstração. Observe que, se você optar por construí-los, a instalação deles precisa ser feita manualmente. Os aplicativos de demonstração são limitados e a instalação não é recomendada.

-D FREEGLUT_BUILD_STATIC_LIBS=OFF: Não construa a biblioteca estática.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libglut.so
Diretórios Instalados: /usr/lib/cmake/FreeGLUT

Descrições Curtas

libglut.so

contém funções que implementam o Kit de Ferramentas Utilitárias do "OpenGL"

gdk-pixbuf-2.42.12

Introdução ao Gdk Pixbuf

O pacote Gdk Pixbuf é um kit de ferramentas para carregamento de imagens e manipulação de buffer de pixel. Ele é usado pelo GTK+ 3 para carregar e manipular imagens. No passado, ele era distribuído como parte do GTK+ 2, mas foi dividido em um pacote separado em preparação para a mudança para o GTK+ 3.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Gdk Pixbuf"

Exigidas

GLib-2.82.5 (GObject Introspection exigido para GNOME), libjpeg-turbo-3.0.1, libpng-1.6.46 e shared-mime-info-2.4

Recomendadas
Opcionais

Gi-DocGen-2025.3 (para gerar documentação), libavif-1.2.0 (dependência de tempo de execução, necessária para carregar imagens AVIF), libjxl-0.11.1 (dependência de tempo de execução, necessário para carregar imagens JPEG XL) e webp-pixbuf-loader-0.2.7 (dependência de tempo de execução, necessária para carregar imagens WebP)

Instalação do Gdk Pixbuf

Instale o "Gdk Pixbuf" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D others=enabled   \
      --wrap-mode=nofallback &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@ / 'gdk-pixbuf-2.42.12'@" -i ../docs/meson.build &&
meson configure -D gtk_doc=true                                        &&
ninja

Para testar os resultados, emita: "ninja test". Os testes fazem um uso intenso do disco.

Agora, como o(a) usuário(a) "root":

ninja install

Nota

Se você instalou o pacote em teu sistema usando o método DESTDIR, [então] um arquivo importante não foi instalado e deveria ser copiado e (ou) gerado. Gere-o usando o seguinte comando como o(a) usuário(a) "root":

gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D others=enabled: Habilite os carregadores para vários formatos de imagem, por exemplo BMP e XPM.

-D man=false: Use essa opção se você não quiser gerar páginas de manual ou se não quiser instalar o docutils-0.21.2.

Conteúdo

Aplicativos Instalados: gdk-pixbuf-csource, gdk-pixbuf-pixdata, gdk-pixbuf-query-loaders e gdk-pixbuf-thumbnailer
Bibliotecas Instaladas: libgdk_pixbuf-2.0.so
Diretórios Instalados: /usr/{include,lib}/gdk-pixbuf-2.0, /usr/libexec/installed-tests/gdk-pixbuf, /usr/share/installed-tests/gdk-pixbuf, /usr/share/gtk-doc/html/gdk-pixbuf e /usr/share/thumbnailers

Descrições Curtas

gdk-pixbuf-csource

é um pequeno utilitário que gera código "C" contendo imagens; usado para compilar imagens diretamente em aplicativos

gdk-pixbuf-pixdata

é uma ferramenta usada para converter "GdkPixbuf" em "GdkPixdata"

gdk-pixbuf-query-loaders

coleta informações a respeito de módulos carregáveis para o "Gdk Pixbuf" e as escreve no local padrão do arquivo de "cache" ou na saída gerada padrão

gdk-pixbuf-thumbnailer

cria miniaturas de imagens para uso em outros aplicativos

libgdk_pixbuf-2.0.so

contém funções usadas para carregar e renderizar imagens

GLEW-2.2.0

Introdução ao GLEW

"GLEW" é a Biblioteca "OpenGL Extension Wrangler".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/glew/glew-2.2.0.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3579164bccaef09e36c0af7f4fd5c7c7

  • Tamanho da transferência: 820 KB

  • Espaço em disco estimado exigido: 16 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "glew"

Exigidas

Mesa-24.3.4

Instalação do GLEW

Instale o "GLEW" executando os seguintes comandos:

sed -i 's%lib64%lib%g' config/Makefile.linux &&
sed -i -e '/glew.lib.static:/d' \
       -e '/0644 .*STATIC/d'     \
       -e 's/glew.lib.static//' Makefile     &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install.all

Explicações do Comando

sed -i 's%lib64%lib%g' ...: Isso garante que a biblioteca seja instalada em "/usr/lib".

sed -i -e '/glew.lib.static:/d' ...: Isso suprime a biblioteca estática.

make install.all: Isso instala os aplicativos bem como a biblioteca.

Conteúdo

Aplicativos Instalados: glewinfo e visualinfo
Biblioteca Instalada: libGLEW.so
Diretório Instalado: /usr/include/GL

Descrições Curtas

glewinfo

fornece informações a respeito das extensões suportadas

visualinfo

é uma versão estendida do "glxinfo"

libGLEW.so

fornece funções para acessar extensões "OpenGL"

Glslang-15.1.0

Introdução ao Glslang

O pacote Glslang contém uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Glslang

Exigidas

CMake-3.31.5 e SPIRV-Tools-1.4.304.1

Instalação do Glslang

Instale Glslang executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_BUILD_TYPE=Release      \
      -D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \
      -D BUILD_SHARED_LIBS=ON          \
      -D GLSLANG_TESTS=ON              \
      -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D ALLOW_EXTERNAL_SPIRV_TOOLS=ON: Essa chave permite que o sistema de construção use a cópia instalada do sistema do SPIRV-Tools-1.4.304.1, em vez de baixar e instalar a própria cópia dele.

-D BUILD_SHARED_LIBS=ON: Essa chave constrói versões compartilhadas das bibliotecas e não instala versões estáticas delas.

-D GLSLANG_TESTS=ON: Essa chave constrói os testes para o pacote.

Conteúdo

Aplicativos Instalados: glslang, glslang-validator (link simbólico para glslang) e spirv-remap
Bibliotecas Instaladas: libglslang.so, libglslang-default-resource-limits.so, libSPIRV.so e libSPVRemapper.so
Diretórios Instalados: /usr/include/glslang e /usr/lib/cmake/glslang

Descrições Curtas

glslang

fornece uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan

libglslang.so

contém funções que fornecem uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan para outros programas

libSPIRV.so

fornece uma estrutura de interação direta com o(a) usuário(a) e um gerador para binários SPIR-V

libSPVRemapper.so

fornece um remapeador para binários SPIR-V

GLU-9.0.3

Introdução ao GLU

Esse pacote fornece a biblioteca "OpenGL Utility" do Mesa.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 06a4fff9179a98ea32ef41b6d83f6b19

  • Tamanho da transferência: 216 KB

  • Espaço em disco estimado exigido: 5,9 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "GLU"

Exigidas

Mesa-24.3.4

Instalação do GLU

Instale o "GLU" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..              \
      --prefix=$XORG_PREFIX \
      -D gl_provider=gl     \
      --buildtype=release   &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install &&
rm -vf /usr/lib/libGLU.a

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libGLU.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libGLU.so

é a biblioteca "OpenGL Utility" do "Mesa"

GOffice-0.10.59

Introdução ao GOffice

O pacote "GOffice" contém uma biblioteca de objetos e utilitários centrados em documentos "GLib"/"GTK". Isso é útil para realizar operações comuns em aplicativos centrados em documentos que sejam conceitualmente simples, mas complexos para se implementar totalmente. Algumas das operações fornecidas pela biblioteca "GOffice" incluem suporte para "plugins", rotinas de carregar/salvar para documentos de aplicativos e funções de desfazer/refazer.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/goffice/0.10/goffice-0.10.59.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: db013c15c5f6280c46a395647db759a4

  • Tamanho da transferência: 2,4 MB

  • Espaço em disco estimado exigido: 81 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com testes)

Dependências do "GOffice"

Exigidas

GTK-3.24.48, libgsf-1.14.53, librsvg-2.59.2, libxslt-1.1.42 e Which-2.23

Opcionais

GLib-2.82.5 (com GObject Introspection), ghostscript-10.04.0, gsettings-desktop-schemas-47.1, GTK-Doc-1.34.0, Lasem e libspectre

Instalação do GOffice

Instale o "GOffice" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você desejar executar os testes, [então] emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgoffice-0.10.so
Diretórios Instalados: /usr/include/libgoffice-0.10, /usr/{lib,share}/goffice e /usr/share/gtk-doc/html/goffice-0.10

Descrições Curtas

libgoffice-0.10.so

contém funções de "API" para fornecer suporte para objetos e utilitários centrados em documentos

Graphene-1.10.8

Introdução ao Graphene

O pacote "Graphene" fornece uma fina camada de tipos para bibliotecas de gráficos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Graphene"

Exigidas

GLib-2.82.5 (com GObject Introspection)

Instalação do Graphene

Instale o "Graphene" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use essa chave se você tiver o GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgraphene-1.0.so
Diretórios Instalados: /usr/include/graphene-1.0, /usr/lib/graphene-1.0, /usr/{libexec,share}/installed-tests/graphene-1.0

Descrições Curtas

libgraphene-1.0.so

contém funções que fornecem uma fina camada de tipos para bibliotecas de gráficos

GTK-3.24.48

Introdução ao GTK3

O pacote GTK3 contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gtk/3.24/gtk-3.24.48.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 61b8af1ffb255cdabd44629cd2a05793

  • Tamanho da transferência: 13 MB

  • Espaço em disco estimado exigido: 255 MB (adicionar 8 MB para os testes)

  • Tempo de construção estimado: 0,8 UPC (usando paralelismo=4, adicionar 0,2 UPC para testes)

Dependências do GTK3

Exigidas

at-spi2-core-2.54.1, gdk-pixbuf-2.42.12, libepoxy-1.5.10 e Pango-1.56.1

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

colord-1.4.7, Cups-2.4.11, GTK-Doc-1.34.0, libcloudproviders-0.3.6, PyAtSpi2-2.46.1 (para testes), sassc-3.6.2, tinysparql-3.8.2 e PAPI

Instalação do GTK3

Instale GTK3 executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                 \
      --prefix=/usr            \
      --buildtype=release      \
      -D man=true              \
      -D broadway_backend=true &&
ninja

Para testar os resultados você precisa de uma sessão gráfica e, em seguida, emitir dbus-run-session ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Um teste chamado check-cursor-names é conhecido por falhar se adwaita-icon-theme-47.0 não estiver instalado.

Nota

Se você instalou o pacote em teu sistema usando o método DESTDIR, [então] um arquivo importante não foi instalado e precisa ser copiado e (ou) gerado. Gere-o usando o seguinte comando como o(a) usuário(a) "root":

gtk-query-immodules-3.0 --update-cache

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

-D broadway_backend=true: Essa chave habilita a estrutura HTML5 de retaguarda do GTK.

-D man=true: Essa chave permite gerar páginas de manual.

-D gtk_doc=true: Essa chave habilita construir documentação. Ela exige GTK-Doc-1.34.0.

-D tracker3=true: Essa chave habilita a função de pesquisa baseada no TinySPARQL na caixa de diálogo do seletor de arquivos do GTK3. Ela exige tinysparql-3.8.2.

-D cloudproviders=true: Use essa chave se você tiver libcloudproviders-0.3.6 instalado e desejar habilitar suporte para provedores de nuvem em uma janela de seletor de arquivos.

Configurando GTK3

Arquivos de Configuração

~/.config/gtk-3.0/settings.ini e /etc/gtk-3.0/settings.ini

Informação de Configuração

Temas do GTK3 mudam a maneira como um aplicativo GTK3 aparenta. Um tema de ícones pode ser usado para mudar os ícones que aparecem na barra de ferramentas do aplicativo. Se tiver instalado um tema do GTK3 (por exemplo, o tema Adwaita construído no GTK3), um tema de ícones (como oxygen-icons-6.0.0) e (ou) uma fonte (Fontes Dejavu), você consegue configurar tuas preferências em ~/.config/gtk-3.0/settings.ini ou no arquivo padrão de configuração abrangente ao sistema (como o(a) usuário(a) root), em /etc/gtk-3.0/settings.ini. Para o(a) usuário(a) local, um exemplo é:

mkdir -vp ~/.config/gtk-3.0
cat > ~/.config/gtk-3.0/settings.ini << "EOF"
[Settings]
gtk-theme-name = Adwaita
gtk-icon-theme-name = oxygen
gtk-font-name = DejaVu Sans 12
gtk-cursor-theme-size = 18
gtk-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = hintslight
gtk-xft-rgba = rgb
gtk-cursor-theme-name = Adwaita
EOF

Existem muitas chaves de configuração, algumas com valores padrão. Você pode encontrá-las em Configurações: Manual de Referência do GTK3. Existem muitos mais temas disponíveis em https://www.gnome-look.org/browse/ e em outros lugares.

Como parte do reprojeto do GTK-3.0, os botões da barra de rolagem não mais estão visíveis na barra de rolagem em muitos aplicativos. Se essa funcionalidade for desejada, modifique o arquivo gtk.css e restaure-os usando o seguinte comando:

cat > ~/.config/gtk-3.0/gtk.css << "EOF"
*  {
   -GtkScrollbar-has-backward-stepper: 1;
   -GtkScrollbar-has-forward-stepper: 1;
}
EOF

Conteúdo

Aplicativos Instalados: broadwayd, gtk3-demo, gtk3-demo-application, gtk3-icon-browser, gtk3-widget-factory, gtk-builder-tool, gtk-encode-symbolic-svg, gtk-launch, gtk-query-immodules-3.0, gtk-query-settings e gtk-update-icon-cache
Bibliotecas Instaladas: libgailutil-3.so, libgdk-3.so e libgtk-3.so
Diretórios Instalados: /etc/gtk-3.0, /usr/include/{gail,gtk}-3.0, /usr/{lib,share}/gtk-3.0 e /usr/share/themes/{Default,Emacs}/gtk-3.0

Descrições Curtas

broadwayd

fornece suporte para exibir aplicativos GTK3 em um navegador da web, usando HTML5 e soquetes da web

gtk3-demo

é um programa simples que demonstra algumas das tarefas que conseguem ser feitas com o GTK3

gtk3-demo-application

é um aplicativo simples do GTK3

gtk3-icon-browser

é um utilitário para explorar os ícones no atual tema de ícones. Ele mostra ícones em vários tamanhos, as variantes simbólicas deles quando disponíveis, bem como uma descrição do ícone e o contexto dele

gtk3-widget-factory

é um programa para visualizar temas e pequenas engenhocas do GTK3

gtk-builder-tool

realiza várias operações sobre arquivos ".ui" do "GtkBuilder"

gtk-encode-symbolic-svg

converte ícones simbólicos SVG em arquivos PNG especialmente preparados. O GTK3 consegue carregar e recolorir esses PNGs, assim como os SVGs originais, mas carregá-los é muito mais rápido

gtk-launch

inicia um aplicativo usando o nome dado. O nome deveria corresponder ao nome do arquivo de área de trabalho do aplicativo, conforme residindo em "/usr/share/applications", com ou sem o sufixo ".desktop"

gtk-query-immodules-3.0

coleta informações a respeito de módulos carregáveis de método de entrada para GTK3 e as escreve no local do arquivo padrão de cache ou na saída gerada padrão

gtk-query-settings

fornece uma listagem completa de todas as configurações relacionadas ao GTK3

gtk-update-icon-cache

é um utilitário de "cache" de temas de ícones que cria arquivos de "cache" compatíveis com "mmap" para temas de ícones

libgailutil-3.so

contém funções que implementam as interfaces de acessibilidade definidas pelo Kit de Ferramentas de Acessibilidade do "GNOME"

libgdk-3.so

contém funções que atuam como um involucrador em torno das funções de desenho e janelamento de baixo nível fornecidas pelo sistema subjacente de gráficos

libgtk-3.so

contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a)

GTK-4.16.12

Introdução ao GTK 4

O pacote "GTK 4" contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gtk/4.16/gtk-4.16.12.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0f2b154a0b05e4ca94a05aaeb7e1f3fb

  • Tamanho da transferência: 18 MB

  • Espaço em disco estimado exigido: 1,1 GB (com documentos; adicionar 157 MB para testes)

  • Tempo de construção estimado: 1,7 UPC (usando paralelismo=4; com documentos; adicionar 1,1 UPC para testes ou 3,7 UPC para NVIDIA)

Transferências Adicionais

Dependências do "GTK 4"

Exigidas

FriBidi-1.0.16, gdk-pixbuf-2.42.12, graphene-1.10.8, ISO Codes-4.17.0, libepoxy-1.5.10, libxkbcommon-1.8.0, Pango-1.56.1, PyGObject-3.50.0 e wayland-protocols-1.40

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

Avahi-0.8 (para alguns testes), colord-1.4.7, Cups-2.4.11, docutils-0.21.2, Gi-DocGen-2025.3, Highlight-4.15 (tempo de execução, usado somente por gtk4-demo para realce de sintaxe de código fonte de demonstração), libcloudproviders-0.3.6, sassc-3.6.2, tinysparql-3.8.2, cpdb, pydbus (para alguns testes) e sysprof

Instalação do GTK 4

Corrija a quebra de desserialização do espaço de cores de PNG com libpng-1.6.45 ou posterior:

patch -Np1 -i ../gtk-4.16.12-libpng_1_6_45-1.patch

Instale o "GTK 4" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr            \
            --buildtype=release      \
            -D broadway-backend=true \
            -D introspection=enabled \
            -D vulkan=enabled        \
            .. &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s@'doc'@& / 'gtk-4.16.12'@" -i ../docs/reference/meson.build &&
meson configure -D documentation=true                            &&
ninja

Para executar os testes, emita:

env -u{GALLIUM_DRIVER,MESA_LOADER_DRIVER_OVERRIDE}          \
    LIBGL_ALWAYS_SOFTWARE=1 VK_LOADER_DRIVERS_SELECT='lvp*' \
    dbus-run-session meson test --setup x11                 \
                                --no-suite={headless,needs-udmabuf}

Se você estiver em uma sessão do Wayland, substitua a ocorrência de x11 por wayland. Muitos testes falharão se ~/.config/gtk-4.0/settings.ini existir e a linha gtk-modules não estiver comentada. Vários outros testes possivelmente falhem por motivo desconhecido. Em sistemas com placas de vídeo NVIDIA, os testes possivelmente levem significativamente mais tempo.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D broadway-backend=true: Essa chave habilita a estrutura HTML5 de retaguarda do GDK.

-D introspection=enabled: Essa chave habilita usar GObject Introspection para gerar ligações GIR desses pacotes. Essas ligações são exigidas pelo GNOME.

-D cloudproviders=enabled: Use essa chave se você tiver o libcloudproviders-0.3.6 instalado e desejar habilitar o suporte para provedores de nuvem em uma janela de seleção de arquivos.

-D tracker=enabled: Use essa chave se você tiver o tinysparql-3.8.2 instalado e desejar usar a funcionalidade de pesquisa ao executar um seletor de arquivos.

-D colord=enabled: Use essa chave se você tiver o colord-1.4.7 instalado e desejar usar o colord com a estrutura de retaguarda de impressão do CUPS.

-D man-pages=true: Use essa chave se você tiver o docutils-0.21.2 instalado e desejar gerar as páginas de manual.

-D sysprof=enabled: Use essa chave se você tiver o sysprof instalado e desejar habilitar o suporte de rastreamento para aplicativos baseados em GTK4.

-D vulkan=disabled: Use essa chave em vez de -D vulkan=enabled se você não tiver Vulkan-Loader-1.4.304 ou glslc originário de shaderc-2024.4 instalado. Ela desabilitará a estrutura de retaguarda do Vulkan que o fluxo de desenvolvimento prefere usar em ambientes gráficos baseados em Wayland.

LIBGL_ALWAYS_SOFTWARE=1 e VK_LOADER_DRIVERS_SELECT='lvp*': Força a suíte de teste a usar o controlador Gallium softpipe ou llvmpipe e o controlador Vulkan lavapipe originário do Mesa. A suíte de teste é tão sensível que as pequenas diferenças causadas por um controlador Mesa diferente podem deflagrar falhas de teste.

env -u{GALLIUM_DRIVER,MESA_LOADER_DRIVER_OVERRIDE}: Desconfigura variáveis que possam conflitar com LIBGL_ALWAYS_SOFTWARE=1.

--no-suite={headless,needs-udmabuf}: Desabilita os testes que exigem a dependência externa pydbus e os testes que exigem o nó do dispositivo /dev/udmabuf. O nó do dispositivo não existe se o recurso não estiver habilitado na configuração do núcleoe, mesmo que exista, não pode ser acessado como usuários(as) sem privilégios.

Configurando o GTK 4

Arquivos de Configuração

~/.config/gtk-4.0/settings.ini e /usr/share/gtk-4.0/settings.ini

Informação de Configuração

Temas do GTK 4 mudam a maneira como um aplicativo GTK 4 aparenta. Um tema de ícones pode ser usado para mudar os ícones que aparecem na barra de ferramentas do aplicativo. Se tiver instalado um tema do GTK 4 (por exemplo, o tema Adwaita construído em GTK 4), um tema de ícones (como oxygen-icons-6.0.0) e (ou) uma fonte (Fontes Dejavu), você consegue configurar tuas preferências em ~/.config/gtk-4.0/settings.ini ou no arquivo padrão de configuração abrangente a todo o sistema (como o(a) usuário(a) root), em /usr/share/gtk-4.0/settings.ini. Para o(a) usuário(a) local, um exemplo é:

mkdir -pv ~/.config/gtk-4.0
cat > ~/.config/gtk-4.0/settings.ini << "EOF"
[Settings]
gtk-theme-name = Adwaita
gtk-icon-theme-name = oxygen
gtk-font-name = DejaVu Sans 12
gtk-cursor-theme-size = 18
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = hintslight
gtk-xft-rgba = rgb
gtk-cursor-theme-name = Adwaita
EOF

Existem muitas chaves de configuração, algumas com valores padrão. Você consegue encontrá-las em Configurações: Manual de Referência do GTK 4.

Conteúdo

Aplicativos Instalados: gtk4-broadwayd, gtk4-builder-tool, gtk4-demo, gtk4-demo-application, gtk4-encode-symbolic-svg, gtk4-icon-browser, gtk4-launch, gtk4-node-editor, gtk4-print-editor, gtk4-query-settings, gtk4-update-icon-cache e gtk4-widget-factory
Bibliotecas Instaladas: libgtk-4.so
Diretórios Instalados: /usr/include/gtk-4.0, /usr/lib/gtk-4.0 e /usr/share/gtk-4.0

Descrições Curtas

gtk4-broadwayd

fornece suporte para exibição de aplicativos "GTK 4" em um navegador da "web" usando "HTML5" e soquetes da "web"

gtk4-builder-tool

realiza várias operações sobre arquivos ".ui" do "GtkBuilder"

gtk4-demo

é um aplicativo simples que demonstra algumas das tarefas que conseguem ser feitas com o "GTK 4"

gtk4-demo-application

é um aplicativo simples "GTK 4" que é útil para testagem

gtk4-encode-symbolic-svg

converte ícones simbólicos "SVG" em arquivos especiais "PNG". O "GTK 4" consegue carregar e recolorir esses "PNGs", assim como os "SVGs" originais, mas carregá-los é muito mais rápido

gtk4-icon-browser

é um utilitário para explorar os ícones no atual tema de ícones. Ele mostra ícones em vários tamanhos, as variantes simbólicas deles quando disponíveis, bem como uma descrição do ícone e do contexto dele

gtk4-launch

inicia um aplicativo usando o nome dado. O nome deveria corresponder ao nome do arquivo ".desktop" do aplicativo (como visto em "/usr/share/applications"), com ou sem a extensão ".desktop"

gtk4-node-editor

é um utilitário para mostrar e editar arquivos de nós de renderização. Esses arquivos de nós de renderização podem ser obtidos, por exemplo, a partir do inspetor do "GTK"

gtk4-print-editor

é um aplicativo simples para demonstrar impressão usando aplicativos "GTK 4"

gtk4-query-settings

fornece uma listagem completa de todas as configurações relacionadas ao "GTK 4"

gtk4-update-icon-cache

é um utilitário de "cache" de temas de ícones que cria arquivos de "cache" compatíveis com "mmap" para temas de ícones

gtk4-widget-factory

é um aplicativo para visualizar temas e pequenas engenhocas do "GTK 4"

libgtk-4.so

contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a)

Gtkmm-3.24.9

Introdução ao Gtkmm

O pacote "Gtkmm" fornece uma interface "C++" para o "GTK+ 3".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gtkmm/3.24/gtkmm-3.24.9.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 47871a7973e186c1189b2145b507de15

  • Tamanho da transferência: 14 MB

  • Espaço em disco estimado exigido: 200 MB (com testes)

  • Tempo de construção estimado: 1,2 UPC (Usando paralelismo=4; com testes)

Dependências do Gtkmm

Exigidas

Atkmm-2.28.4, GTK-3.24.48 e Pangomm-2.46.4

Opcionais

Doxygen-1.13.2

Instalação do Gtkmm

Instale o "Gtkmm" executando os seguintes comandos:

mkdir gtkmm3-build &&
cd    gtkmm3-build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Observe que você precisa estar em um ambiente gráfico, pois os testes tentam abrir algumas janelas.

Agora, como o(a) usuário(a) "root":

ninja install

Se você tiver construído a documentação (vejam-se as Explicações dos Comandos abaixo), [então] ela foi instalada em "/usr/share/doc/gtkmm-3.0". Para consistência, mova-a para um diretório versionado como o(a) usuário(a) "root":

mv -v /usr/share/doc/gtkmm-3.0 /usr/share/doc/gtkmm-3.24.9

Explicações do Comando

-D build-documentation=true: Se você tiver instalado Doxygen-1.13.2, essa definição construirá e instalará a documentação.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgdkmm-3.0.so e libgtkmm-3.0.so
Diretórios Instalados: /usr/include/gdkmm-3.0, /usr/include/gtkmm-3.0, /usr/lib/gdkmm-3.0, /usr/lib/gtkmm-3.0 e, opcionalmente, /usr/share/{devhelp/books/gtkmm-3.0,doc/gtkmm-3.24.9}

Descrições Curtas

libgdkmm-3.0.so

contém as classes da API do GDK

libgtkmm-3.0.so

contém as classes da "API" do "GTK+ 3"

Gtkmm-4.16.0

Introdução ao Gtkmm

O pacote Gtkmm fornece uma interface C++ para GTK-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gtkmm/4.16/gtkmm-4.16.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d2161c39f2be1ac0c1285cd8e0c63b6c

  • Tamanho da transferência: 16 MB

  • Espaço em disco estimado exigido: 210 MB (com testes)

  • Tempo de construção estimado: 0,9 UPC (Com testes; ambos usando paralelismo=4)

Dependências do Gtkmm

Exigidas

GTK-4.16.12 e Pangomm-2.56.1

Opcionais

Doxygen-1.13.2 e Vulkan-Loader-1.4.304

Instalação do Gtkmm

Instale Gtkmm executando os seguintes comandos:

mkdir gtkmm4-build &&
cd    gtkmm4-build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Observe que você precisa estar em um ambiente gráfico, pois os testes tentam abrir algumas janelas.

Agora, como o(a) usuário(a) root:

ninja install

Se você tiver construído a documentação (vejam-se as Explicações do Comando abaixo), ela foi instalada em /usr/share/doc/gtkmm-4.0. Para consistência, mova-a para um diretório versionado como o(a) usuário(a) root:

mv -v /usr/share/doc/gtkmm-4.0 /usr/share/doc/gtkmm-4.16.0

Explicações do Comando

-D build-documentation=true: Se você tiver instalado Doxygen-1.13.2, essa definição construirá e instalará a documentação.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgdkmm-4.0.so e libgtkmm-4.0.so
Diretórios Instalados: /usr/include/gdkmm-4.0, /usr/include/gtkmm-4.0, /usr/lib/gdkmm-4.0, /usr/lib/gtkmm-4.0 e, opcionalmente, /usr/share/{devhelp/books/gtkmm-4.0,doc/gtkmm-4.16.0}

Descrições Curtas

libgdkmm-4.0.so

contém as classes da API do GDK

libgtkmm-4.0.so

contém as classes da API do GTK 4

gtk-vnc-1.5.0

Introdução ao VNC do Gtk

O pacote "Gtk VNC" contém uma pequena engenhoca visualizadora "VNC" para o "GTK+". Ela é construída usando co rotinas, permitindo que seja completamente assíncrona enquanto permanece com camada única.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Gtk VNC"

Exigidas

GnuTLS-3.8.9, GTK-3.24.48 e libgcrypt-1.11.0

Recomendadas
Opcionais

Cyrus SASL-2.1.28, Gi-DocGen-2025.3 (para gerar documentação) e PulseAudio-17.0

Instalação do VNC do Gtk

Instale o "Gtk VNC" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-D with-vala=false: Essa chave desabilita construção das ligações Vala. Adicione isso se você decidir construir o gtk-vnc sem o vala instalado.

Conteúdo

Aplicativo Instalado: gvnccapture
Bibliotecas Instaladas: libgtk-vnc-2.0.so, libgvnc-1.0.so e libgvncpulse-1.0.so
Diretórios Instalados: /usr/include/gtk-vnc-2.0, /usr/include/gvnc-1.0 e /usr/include/gvncpulse-1.0

Descrições Curtas

gvnccapture

é usado para capturar imagem a partir do servidor "VNC"

libgtk-vnc-2.0.so

contém as ligações do "GTK+ 3" para o "Gtk VNC"

libgvnc-1.0.so

contém as ligações "GObject" para o "Gtk VNC"

libgvncpulse-1.0.so

é a ponte do "PulseAudio" para o "Gtk VNC"

gtksourceview-3.24.11

Introdução ao GtkSourceView

O pacote "GtkSourceView" contém bibliotecas usadas para estender as funções de texto do "GTK+" para incluir realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

Vala-0.56.17, Valgrind-3.24.0, GTK-Doc-1.34.0, itstool-2.0.7, fop-2.10 (ou dblatex) e Glade

Instalação do GtkSourceView

Primeiro, corrija a construção desse pacote com gcc-14 e posterior:

sed -i 's/g_object_ref (buffer)/g_object_ref (GTK_SOURCE_BUFFER (buffer))/' gtksourceview/gtksourceview.c

Instale o "GtkSourceView" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita "make check". Os testes precisam ser executados em um ambiente gráfico.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgtksourceview-3.0.so
Diretórios Instalados: /usr/{include,share,share/gtk-doc/html}/gtksourceview-3.0

Descrições Curtas

libgtksourceview-3.0.so

contém extensões de função para a pequena engenhoca "GtkTextView"

gtksourceview4-4.8.4

Introdução ao GtkSourceView

O pacote "GtkSourceView" contém bibliotecas usadas para estender as funções de texto do "GTK+" para incluir realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

Vala-0.56.17, Valgrind-3.24.0, GTK-Doc-1.34.0, itstool-2.0.7, fop-2.10 (ou dblatex) e Glade

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita "ninja test". Os testes precisam ser executados em um ambiente gráfico.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-D gtk_doc=true: Essa opção normalmente é usada se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgtksourceview-4.so
Diretórios Instalados: /usr/{include,share,share/gtk-doc/html}/gtksourceview-4

Descrições Curtas

libgtksourceview-4.so

contém extensões de função para a pequena engenhoca "GtkTextView"

gtksourceview5-5.14.2

Introdução ao GtkSourceView

O pacote "GtkSourceView" contém uma biblioteca usada para estender as funções de texto do "GTK" para incluir realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK-4.16.12 e pcre2-10.45

Recomendadas
Opcionais

Gi-DocGen-2025.3, Vala-0.56.17, Valgrind-3.24.0, Vulkan-Loader-1.4.304 e sysprof

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-D documentation=true: Use essa chave se você tiver Gi-DocGen-2025.3 instalado e desejar gerar a documentação da API.

-D sysprof=true: Use essa chave se você tiver sysprof instalado e desejar construir com suporte de perfilador sysprof.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgtksourceview-5.so
Diretórios Instalados: /usr/include/gtksourceview-5 e /usr/share/gtksourceview-5

Descrições Curtas

libgtksourceview-5.so

contém extensões de função para a pequena engenhoca "GtkTextView"

imlib2-1.12.3

Introdução ao imlib2

"imlib2" é uma biblioteca de gráficos para carregamento, salvamento, renderização e manipulação rápida de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "imlib2"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

Doxygen-1.13.2 (para documentação da API), highway-1.2.0, libjpeg-turbo-3.0.1, libjxl-0.11.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, libheif, libid3tag, libspectre

Instalação do imlib2

Instale o "imlib2" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você gerou a documentação da "API", [então] instale-a como o(a) usuário(a) "root":

install -v -m755 -d           /usr/share/doc/imlib2-1.12.3/html &&
install -v -m644    doc/html/* /usr/share/doc/imlib2-1.12.3/html

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-doc-build: Essa chave gera a documentação da API. Doxygen-1.13.2 precisa estar instalado.

Conteúdo

Aplicativos Instalados: imlib2_bumpmap, imlib2_colorspace, imlib2_conv, imlib2_grab, imlib2_load, imlib2_poly, imlib2_show, imlib2_test e imlib2_view
Bibliotecas Instaladas: "libImlib2.so" e vários filtros e módulos carregadores de imagens.
Diretórios Instalados: /usr/lib/imlib2, /usr/share/doc/imlib2-1.12.3 e /usr/share/imlib2

Descrições Curtas

imlib2_bumpmap

é testar a função "bumpmap" da "imlib2"

imlib2_colorspace

é testar a função de espaço de cores da "imlib2"

imlib2_conv

converte imagens entre formatos

imlib2_grab

tira capturas de tela

imlib2_load

carrega e armazena imagens em cache

imlib2_poly

é testar a função "poly" da "imlib2"

imlib2_show

é um teste de aplicativo da "imlib2"

imlib2_test

é um teste de aplicativo da "imlib2"

imlib2_view

exibe arquivos de imagem

libImlib2.so

fornece as funções para aplicativos lidarem com vários formatos de dados de imagem

kColorPicker-0.3.1

Introdução ao kColorPicker

"kColorPicker" é uma biblioteca "QToolButton" com um menu "pop-up" de cores, que te permite selecionar cores. O menu "pop-up" apresenta um botão de diálogo de cores que pode ser usado para adicionar cores personalizadas ao menu "pop-up".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "kColorPicker"

Exigidas

CMake-3.31.5 e Qt-6.8.2

Instalação do kColorPicker

Instale o "kColorPicker" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_SHARED_LIBS=ON      \
      -D BUILD_WITH_QT6=ON         \
      .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libkColorPicker.so
Diretórios Instalados: /usr/lib/cmake/kColorPicker

kImageAnnotator-0.7.1

Introdução ao kImageAnnotator

"kImageAnnotator" é uma ferramenta para anotar imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "kImageAnnotator"

Exigidas

kcolorpicker-0.3.1

Instalação do kImageAnnotator

Instale o "kImageAnnotator" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_SHARED_LIBS=ON      \
      -D BUILD_WITH_QT6=ON         \
      .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libkImageAnnotator.so
Diretórios Instalados: /usr/include/kImageAnnotator-Qt6, /usr/lib/cmake/kImageAnnotator-Qt6 e /usr/share/kImageAnnotator

keybinder-3.0-0.3.2

Introdução ao keybinder-3.0

O pacote "keybinder-3.0" contém uma biblioteca de utilitários registrando atalhos globais de teclado do "X" para o "GTK+-3".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "keybinder-3.0"

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do keybinder-3.0

Instale o "keybinder-3.0" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libkeybinder-3.0.so
Diretórios Instalados: /usr/include/keybinder-3.0 e /usr/share/gtk-doc/html/keybinder-3.0

Descrições Curtas

libkeybinder-3.0.so

é a biblioteca que registra atalhos globais de teclado do "X"

libadwaita-1.6.4

Introdução ao libadwaita

O pacote "libadwaita" fornece pequenas engenhocas adicionais de IU do "GTK4" para uso no desenvolvimento de interfaces de usuário(a). Elas são usadas principalmente para aplicativos "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libadwaita"

Exigidas

AppStream-1.0.4, GTK-4.16.12 e sassc-3.6.2

Recomendadas
Opcionais

Gi-DocGen-2025.3 e xdg-desktop-portal-1.20.0 (para dois testes)

Instalação do libadwaita

Instale o "libadwaita" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s/apiversion/'1.6.4'/" -i ../doc/meson.build &&
meson configure -D gtk_doc=true                   &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de uma sessão gráfica. Dois testes falharão se xdg-desktop-portal-1.20.0 não estiver instalado.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: adwaita-1-demo
Bibliotecas Instaladas: libadwaita-1.so
Diretórios Instalados: /usr/include/libadwaita-1

Descrições Curtas

adwaita-1-demo

fornece um exemplo de como usar a biblioteca "libadwaita"

libadwaita-1.so

fornece pequenas engenhocas adicionais do "GTK" para uso na criação de interfaces de usuário(a)

libei-1.3.0

Introdução ao libei

O pacote libei contém um conjunto de bibliotecas para manusear entradas emuladas. Destina-se principalmente para a pilha do Wayland.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libei

Exigidas

attrs-25.1.0 e elogind-255.17

Opcionais

libevdev-1.13.3, libxkbcommon-1.8.0, libxml2-2.13.6, munit e structlog

Instalação do libei

Instale libei executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D tests=disabled &&
ninja

Esse pacote vem com uma suíte de teste, mas ela exige uma dependência externa. Se você tiver o munit e structlog instalados e desejar executar a suíte de teste, execute os seguintes comandos:

meson configure -D tests=enabled .. &&
ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D tests=disabled: Essa chave evita uma dependência em relação a munit. Remova essa chave se você tiver o munit instalado e desejar executar a suíte de teste.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libei.so, libeis.so e liboeffis.so
Diretórios Instalados: /usr/include/libei-1.0

Descrições Curtas

libei.so

fornece uma implementação do lado do cliente para lidar com entrada emulada

libeis.so

fornece uma implementação do lado do servidor para lidar com entrada emulada

liboffis

fornece serviços de comunicação DBus entre libei e o portal RemoteDesktop do XDG

libgedit-amtk-5.9.0

Introdução ao libgedit-amtk

O pacote libgedit-amtk contém uma substituição básica do GTKUIManager baseada no GAction.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgedit-amtk

Exigidas

GTK-3.24.48

Opcionais

GTK-Doc-1.34.0 (para documentação) e Valgrind-3.24.0

Instalação do libgedit-amtk

Instale o libgedit-amtk executando os seguintes comandos:

mkdir amtk-build &&
cd    amtk-build &&

meson setup ..              \
      --prefix=/usr         \
      --buildtype=release   \
      -D gtk_doc=false      &&
ninja

Para testar os resultados, emita: ninja test. Um teste, test-action-map, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Essa chave impede o sistema de construção de gerar e instalar a documentação da API. Omita essa chave se você tiver o GTK-Doc-1.34.0 instalado e desejar gerar e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgedit-amtk-5.so
Diretórios Instalados: /usr/include/libgedit-amtk-5 e /usr/share/gtk-doc/html/libgedit-amtk-5.0

Descrições Curtas

libgedit-amtk-5.so

fornece uma API básica de substituição do GTKUIManager baseada em GAction

libgedit-gtksourceview-299.4.0

Introdução ao libgedit-gtksourceview

O pacote libgedit-gtksourceview fornece uma biblioteca que estende o GtkTextView. Essa biblioteca adiciona suporte para realce de sintaxe, desfazer/refazer, carregar e salvar arquivos, pesquisar e substituir, um sistema de completação, impressão, exibição de números de linha e outros recursos típicos de um editor de código-fonte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgedit-gtksourceview

Exigidas

GTK-3.24.48 e libxml2-2.13.6

Opcionais

GTK-Doc-1.34.0

Instalação do libgedit-gtksourceview

Instale o libgedit-gtksourceview executando os seguintes comandos:

mkdir build-libgedit &&
cd    build-libgedit &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Desabilita a construção da documentação da API. Remova se você tiver o GTK-Doc-1.34.0 instalado e desejar construir a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgedit-gtksourceview-300.so
Diretórios Instalados: /usr/include/libgedit-gtksourceview-300 e /usr/share/libgedit-gtksourceview-300

Descrições Curtas

libgedit-gtksourceview-300.so

contém funções convenientes para edição de texto.

libhandy-1.8.3

Introdução ao libhandy

O pacote "libhandy" fornece pequenas engenhocas adicionais de "IU" do "GTK" para uso no desenvolvimento de interfaces de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libhandy"

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

GTK-Doc-1.34.0 e Glade

Instalação do libhandy

Instale o "libhandy" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test". Os testes precisam ser executados a partir de uma sessão gráfica.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use essa opção se você tiver o GTK-Doc-1.34.0 instalado e desejar instalar a documentação.

Conteúdo

Aplicativos Instalados: handy-1-demo
Bibliotecas Instaladas: libhandy-1.so
Diretórios Instalados: /usr/include/libhandy-1

Descrições Curtas

handy-1-demo

fornece um exemplo de como usar a biblioteca "libhandy"

libhandy-1.so

fornece pequenas engenhocas adicionais do "GTK" para uso na criação de interfaces de usuário(a)

Libdrm-2.4.124

Introdução ao Libdrm

"Libdrm" fornece uma biblioteca de espaço de usuário(a) para acessar o "Direct Rendering Manager" ("DRM") em sistemas operacionais que suportem a interface "ioctl". "Libdrm" é uma biblioteca de baixo nível, tipicamente usada por controladores gráficos, como os controladores "DRI" do "Mesa", os controladores do "X", "libva" e projetos semelhantes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://dri.freedesktop.org/libdrm/libdrm-2.4.124.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 78f7f7ee6aff711696d4b34465b40728

  • Tamanho da transferência: 472 KB

  • Espaço em disco estimado exigido: 8,8 MB (com testes)

  • Tempo de construção estimado: 0,1UPC (com testes)

Dependências do "libdrm"

Recomendadas
Opcionais

Cairo-1.18.2 (para testes), CMake-3.31.5 (poderia ser usado para encontrar dependências sem arquivos do "pkgconfig"), docbook-xml-4.5, docbook-xsl-nons-1.79.2, docutils-0.21.2 e libxslt-1.1.42 (para construir páginas de manual), libatomic_ops-7.8.2 (exigido por arquiteturas sem operações atômicas nativas), Valgrind-3.24.0 e CUnit (para testes de "AMDGPU")

Instalação do Libdrm

Instale o "libdrm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX \
            --buildtype=release   \
            -D udev=true          \
            -D valgrind=disabled  \
            ..                    &&
ninja

Para verificar os resultados, execute "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D udev=true: Esse parâmetro habilita o suporte para usar o Udev em vez do mknod.

-D valgrind=disabled: Esse parâmetro desabilita construir libdrm com suporte a valgrind. Isso corrige construir alguns pacotes que usam libdrm. Mude esse parâmetro para "enabled" (ou remova-o) se você precisar de suporte para valgrind.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libdrm_amdgpu.so, libdrm_intel.so, libdrm_nouveau.so, libdrm_radeon.so e libdrm.so
Diretórios Instalados: /usr/include/libdrm e /usr/share/libdrm

Descrições Curtas

libdrm_amdgpu.so

contém as funções específicas do "Direct Rendering Manager" do "AMDGPU"

libdrm_intel.so

contém as funções específicas do "Direct Rendering Manager" da "Intel"

libdrm_nouveau.so

contém as funções específicas do "Direct Rendering Manager" de fonte aberto da "nVidia" ("Nouveau")

libdrm_radeon.so

contém as funções específicas do "Direct Rendering Manager" da "Radeon" da "AMD"

libdrm.so

contém as funções da "API" do "Direct Rendering Manager"

libepoxy-1.5.10

Introdução ao libepoxy

"libepoxy" é uma biblioteca para lidar com o gerenciamento de ponteiros de função do "OpenGL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libepoxy"

Exigidas

Mesa-24.3.4

Opcionais

Doxygen-1.13.2 (para documentação)

Instalação do libepoxy

Instale o "libepoxy" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D docs=true: Se você tiver o Doxygen-1.13.2 instalado, adicione essa opção para gerar documentação adicional.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libepoxy.so
Diretórios Instalados: /usr/include/epoxy

Descrições Curtas

libepoxy.so

contém funções de "API" para lidar com o gerenciamento de ponteiro de função do "OpenGL"

libnotify-0.8.4

Introdução ao libnotify

A biblioteca "libnotify" é usada para enviar notificações da área de trabalho para um processo de segundo plano de notificação, conforme definido nas especificações do "Desktop Notifications". Essas notificações podem ser usadas para informar o(a) usuário(a) a respeito de um evento ou exibir alguma forma de informação sem atrapalhar o(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "libnotify"

Exigidas

GTK-3.24.48

Opcionais (Exigidas se construir o "GNOME")

GLib-2.82.5 (com GObject Introspection)

Opcionais

Gi-DocGen-2025.3 e xmlto-0.0.29

Exigidas (tempo de execução)

notification-daemon-3.20.0, xfce4-notifyd-0.9.7 ou lxqt-notificationd-2.1.1

Nota

"GNOME Shell" e "KDE KWin" fornecem os próprios processos de segundo plano de notificação deles.

Instalação do libnotify

Instale o "libnotify" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            -D man=false        \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@ / 'libnotify'@" \
    -i ../docs/reference/meson.build   &&
meson configure -D gtk_doc=true        &&
ninja

Agora, como o(a) usuário(a) "root":

ninja install &&
if [ -e /usr/share/doc/libnotify ]; then
  rm -rf /usr/share/doc/libnotify-0.8.4
  mv -v  /usr/share/doc/libnotify{,-0.8.4}
fi

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: notify-send
Biblioteca Instalada: libnotify.so
Diretórios Instalados: /usr/include/libnotify e /usr/share/gtk-doc/html/libnotify

Descrições Curtas

notify-send

é um comando usado para enviar notificações

libnotify.so

contém as funções da "API" da "libnotify"

libxklavier-5.4

Introdução ao libxklavier

O pacote "libxklavier" contém uma biblioteca de utilitários para o teclado do "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://people.freedesktop.org/~svu/libxklavier-5.4.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 13af74dcb6011ecedf1e3ed122bd31fa

  • Tamanho da transferência: 384 KB

  • Espaço em disco estimado exigido: 5,2 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "libxklavier"

Exigidas

GLib-2.82.5 (GObject Introspection recomendado), ISO Codes-4.17.0, libxml2-2.13.6 e Bibliotecas do Xorg

Opcionais

GTK-Doc-1.34.0 e Vala-0.56.17

Instalação do libxklavier

Instale o "libxklavier" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Esse parâmetro normalmente é usado se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Ele está quebrado para esse pacote devido ao uso de um aplicativo gtk-doc há muito obsoleto que não mais está disponível.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libxklavier.so
Diretórios Instalados: /usr/include/libxklavier e /usr/share/gtk-doc/html/libxklavier

Descrições Curtas

libxklavier.so

contém funções utilitárias do "XKB"

Pango-1.56.1

Introdução ao Pango

"Pango" é uma biblioteca para esquematização e renderização de texto, com ênfase na internacionalização. Ela pode ser usada em qualquer lugar onde o esquema de texto seja necessário, embora a maior parte do trabalho no "Pango" até agora tenha sido feito no contexto do kit de ferramentas de pequena engenhoca do "GTK+".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/pango/1.56/pango-1.56.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 57656aefa189a5b24f3b1e67df7216b6

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 22 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)

Dependências do "Pango"

Exigidas

Fontconfig-2.16.0 (precisa ser construído com FreeType-2.13.3 usando harfBuzz-10.4.0), FriBidi-1.0.16 e GLib-2.82.5 (GObject Introspection exigido para GNOME)

Recomendadas
Opcionais

Gi-DocGen-2025.3 (para gerar documentação), help2man, libthai e sysprof

Instalação do Pango

Instale o "Pango" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr            \
            --buildtype=release      \
            --wrap-mode=nofallback   \
            -D introspection=enabled \
            ..                       &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@ / 'pango-1.56.1'@" -i ../docs/meson.build &&
meson configure -D documentation=true                            &&
ninja

Para testar os resultados, emita: ninja test. Um teste chamado testboundaries_ucd é conhecido por falhar porque espera suporte Unicode 16.0 originário da Glib 2.83 ou mais recente.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D introspection=disabled: Use essa chave se você não quiser usar GObject Introspection.

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

Configurando Pango

Arquivos de Configuração

/etc/pango/pangorc, ~/.pangorc e o arquivo especificado na variável de ambiente "PANGO_RC_FILE"

Conteúdo

Aplicativos Instalados: pango-list, pango-segmentation e pango-view
Bibliotecas Instaladas: libpango-1.0.so, libpangocairo-1.0.so, libpangoft2-1.0.so e libpangoxft-1.0.so
Diretórios Instalados: /usr/include/pango-1.0 e /usr/share/doc/pango-1.56.1 (se "gi-docgen" estiver disponível)

Descrições Curtas

pango-list

exibe uma lista de fontes que o "Pango" pode usar e que estão atualmente instaladas no sistema

pango-segmentation

mostra a segmentação de texto conforme determinado pelo "Pango".

pango-view

renderiza um dado arquivo de texto por intermédio do "Pango" para fins de visualização

libpango-1.0.so

contém rotinas de baixo nível de renderização de esquema, um controlador de alto nível para esquematizar blocos inteiros de texto e rotinas para auxiliar na edição de texto internacionalizado

Pangomm-2.46.4

Introdução ao Pangomm

O pacote "Pangomm" fornece uma interface "C++" para o "Pango".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Pangomm

Exigidas

libcairomm-1.14.5, GLibmm-2.66.7 e Pango-1.56.1

Instalação do Pangomm

Instale o "Pangomm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libpangomm-1.4.so
Diretórios Instalados: /usr/include/pangomm-1.4, /usr/lib/pangomm-1.4 e /usr/share/{devhelp/books/pangomm-1.4,doc/pangomm-2.46.4}

Descrições Curtas

libpangomm-1.4.so

contém as classes da API do Pango

Pangomm-2.56.1

Introdução ao Pangomm

O pacote Pangomm fornece uma interface C++ para Pango. Essa versão é parte de uma nova API para suporte ao gtkmm-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Pangomm

Exigidas

libcairomm-1.18.0, GLibmm-2.82.0 e Pango-1.56.1

Instalação do Pangomm

Instale Pangomm executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libpangomm-2.48.so
Diretórios Instalados: /usr/include/pangomm-2.48, /usr/lib/pangomm-2.48 e /usr/share/{devhelp/books/pangomm-2.48,doc/pangomm-2.46.4}

Descrições Curtas

libpangomm-2.48.so

contém as classes da API do Pango

Qt-6.8.2

Introdução ao Qt6

Qt6 é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver software de aplicação com uma interface gráfica de usuário(a) (GUI) (nesses casos Qt6 é classificado como um kit de ferramentas de pequena engenhoca) e também usado para desenvolver aplicativos não GUI, como ferramentas de linha de comando e consoles para servidores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Qt6

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

BlueZ-5.79 (para sdpscanner, e em tempo de execução para o modulo QtConnectivity), GTK-3.24.48, ibus-1.5.31, LLVM-19.1.7 (com Clang), MariaDB-11.4.5 ou MySQL, MIT Kerberos V5-1.21.3, pciutils-3.13.0, PostgreSQL-17.4, PulseAudio-17.0, SDL2-2.30.11, unixODBC-2.3.12, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher e tslib

Configurando o prefixo de instalação

Instalando em /opt/qt6

Os(As) editores(as) do BLFS recomendam instalar o Qt6 em um diretório diferente de /usr, ou seja, /opt/qt6. Para fazer isso, configure a seguinte variável de ambiente:

export QT6PREFIX=/opt/qt6

Dica

Ocasionalmente, os caminhos de instalação estão rigidamente codificados nos arquivos instalados. Essa é a razão pela qual /opt/qt6 é usado como prefixo de instalação em vez de /opt/qt-6.8.2. Para criar um diretório versionado do Qt6, você pode renomear o diretório e criar um link simbólico:

mkdir -pv /opt/qt-6.8.2
ln -sfnv qt-6.8.2 /opt/qt6

Mais tarde, você pode querer instalar outras versões do Qt6. Para fazer isso, basta remover o link simbólico, criar o novo diretório versionado e recriar o link simbólico /opt/qt6 novamente antes de construir a nova versão. Qual versão do Qt6 você usa depende somente de onde o link simbólico aponta.

Nota

Se qca-2.3.9 ou qcoro-0.11.0 tiverem sido instalados e você estiver reinstalando ou atualizando esse pacote, então aqueles pacotes precisarão ser reinstalados.

Instalação do Qt6

Atenção

Se Qt6 estiver sendo reinstalado no mesmo diretório que uma instância existente, execute os comandos feitos por root, como make install, a partir de um console ou gerenciador de janelas não baseado em Qt6. Ele sobrescreve bibliotecas do Qt6 que não deveriam estar em uso durante o processo de instalação.

Cuidado

Se você não instalou alguma das dependências recomendadas, examine a saída gerada de ./configure --help para verificar como desabilitá-las ou para usar versões internas incluídas no tarball do fonte.

Nota

O tempo de construção e o espaço exigidos para o Qt6 completo são bastante longos. As instruções abaixo não constroem os tutoriais e exemplos. Remover a linha -nomake criará recursos adicionais.

Nota

Os(As) editores(as) do BLFS não recomendam instalar o Qt6 na hierarquia /usr porque se torna difícil encontrar componentes e atualizar para uma nova versão.

Desabilite uma declaração conflitante em sistemas i686:

if [ "$(uname -m)" == "i686" ]; then
    sed -e "/^#elif defined(Q_CC_GNU_ONLY)/s/.*/& \&\& 0/" \
        -i qtbase/src/corelib/global/qtypes.h
fi

Instale Qt6 executando os seguintes comandos:

./configure -prefix $QT6PREFIX      \
            -sysconfdir /etc/xdg    \
            -dbus-linked            \
            -openssl-linked         \
            -system-sqlite          \
            -nomake examples        \
            -no-rpath               \
            -syslog                 \
            -skip qt3d              \
            -skip qtquick3dphysics  \
            -skip qtwebengine       &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Remova referências ao diretório de construção dos arquivos de dependência da biblioteca instalada (prl) executando o seguinte comando como o(a) usuário(a) root:

find $QT6PREFIX/ -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Instale imagens e crie as entradas de menu para aplicativos instalados. Novamente como o(a) usuário(a) root:

pushd qttools/src &&

install -v -Dm644 assistant/assistant/images/assistant-128.png       \
                  /usr/share/pixmaps/assistant-qt6.png               &&

install -v -Dm644 designer/src/designer/images/designer.png          \
                  /usr/share/pixmaps/designer-qt6.png                &&

install -v -Dm644 linguist/linguist/images/icons/linguist-128-32.png \
                  /usr/share/pixmaps/linguist-qt6.png                &&

install -v -Dm644 qdbus/qdbusviewer/images/qdbusviewer-128.png       \
                  /usr/share/pixmaps/qdbusviewer-qt6.png             &&
popd &&


cat > /usr/share/applications/assistant-qt6.desktop << EOF
[Desktop Entry]
Name=Qt6 Assistant
Comment=Mostra documentação e exemplos do Qt6
Exec=$QT6PREFIX/bin/assistant
Icon=assistant-qt6.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF

cat > /usr/share/applications/designer-qt6.desktop << EOF
[Desktop Entry]
Name=Qt6 Designer
GenericName=Interface Designer
Comment=Projeta GUIs para aplicativos Qt6
Exec=$QT6PREFIX/bin/designer
Icon=designer-qt6.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/linguist-qt6.desktop << EOF
[Desktop Entry]
Name=Qt6 Linguist
Comment=Adiciona traduções a aplicativos Qt6
Exec=$QT6PREFIX/bin/linguist
Icon=linguist-qt6.png
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/qdbusviewer-qt6.desktop << EOF
[Desktop Entry]
Name=Qt6 QDbusViewer
GenericName=D-Bus Debugger
Comment=Depura aplicativos D-Bus
Exec=$QT6PREFIX/bin/qdbusviewer
Icon=qdbusviewer-qt6.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Explicações do Comando

-nomake examples: Essa chave desabilita construir os programas de exemplo incluídos no tarball do fonte. Remova-a se você quiser construí-los.

-skip qt3d: Essa chave desabilita construir suporte ao qt3d. Existe um problema ao construir esses arquivos sem uma biblioteca externa e nenhum pacote no BLFS usa qt3d.

-system-sqlite: Essa chave habilita uso da versão do sistema do SQLite.

-dbus-linked -openssl-linked: Essas chaves habilitam vinculação explícita das bibliotecas D-Bus e OpenSSL nas bibliotecas do Qt6 em vez de abri-las com dlopen().

-syslog: Essa chave permite enviar mensagens do QT para o sistema de registro syslog.

-skip qtwebengine: Essa chave desabilita construir o QtWebEngine. Os(As) editores(as) do BLFS optaram por construir qtwebengine-6.8.2 separadamente.

-skip qtquick3dphysics: Essa chave desabilita construir o submódulo Quick 3D Physics do Qt. Em sistemas de 32 bits, isso fará com que o processo de construção falhe com um erro embutido na cópia agrupada do SDK PhysX do Qt6.

Configurando Qt6

Informação de Configuração

Se Sudo-1.9.16p2 estiver instalado, QT6DIR também deveria estar disponível para o(a) superusuário(a). Execute os seguintes comandos como o(a) usuário(a) root:

cat > /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT6DIR
EOF

Agora você precisa atualizar os seguintes arquivos de configuração, de forma que o Qt6 seja encontrado corretamente por outros pacotes e processos do sistema.

Como o(a) usuário(a) root, atualize o arquivo /etc/ld.so.conf e o arquivo de cache de tempo de execução do vinculador dinâmico:

cat >> /etc/ld.so.conf << EOF
# Inicia adição do Qt

/opt/qt6/lib

# Termina adição do Qt
EOF

ldconfig

Como o(a) usuário(a) root, crie o arquivo /etc/profile.d/qt6.sh:

cat > /etc/profile.d/qt6.sh << "EOF"
# Inicia /etc/profile.d/qt6.sh

QT6DIR=/opt/qt6

pathappend $QT6DIR/bin           PATH
pathappend $QT6DIR/lib/pkgconfig PKG_CONFIG_PATH

export QT6DIR

# Termina /etc/profile.d/qt6.sh
EOF

Conteúdo

Aplicativos Instalados: androiddeployqt (link rígido para androiddeployqt6), androiddeployqt6, androidtestrunner, assistant, balsam, balsamui, canbusutil, designer, instancer, lconvert, linguist, lrelease, lupdate, materialeditor, meshdebug, pixeltool, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qmake (link rígido para qmake6), qmake6, qml, qmldom, qmleasing, qmlformat, qmllint, qmlls, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltc, qmltestrunner, qmltime, qopcuaxmldatatypes2cpp, qqem, qsb, qtdiag (link rígido para qtdiag6), qtdiag6, qtpaths (link rígido para qtpaths6), qtpaths6, qtplugininfo, qt-cmake, qt-cmake-create, qt-configure-module, shadergen, shapegen e svg2xml
Bibliotecas Instaladas: libQt6Bluetooth.so, libQt6Bodymovin.so, libQt6BundledEmbree.a, libQt6BundledOpenXR.a, libQt6BundledResonanceAudio.a, libQt6Charts.so, libQt6ChartsQml.so, libQt6Coap.so, libQt6Concurrent.so, libQt6Core.so, libQt6Core5Compat.so, libQt6DBus.so, libQt6DataVisualization.so, libQt6DataVisualizationQml.so, libQt6DeclarativeOpcua.so, libQt6Designer.so, libQt6DesignerComponents.so, libQt6DeviceDiscoverySupport.a, libQt6EglFSDeviceIntegration.so, libQt6EglFsKmsGbmSupport.so, libQt6EglFsKmsSupport.so, libQt6ExampleIcons.a, libQt6ExamplesAssetDownloader.a, libQt6FbSupport.a, libQt6Graphs.so, libQt6GraphsWidgets.so, libQt6Grpc.so, libQt6GrpcQuick.so, libQt6Gui.so, libQt6Help.so, libQt6HttpServer.so, libQt6InputSupport.a, libQt6JsonRpc.so, libQt6KmsSupport.a, libQt6LabsAnimation.so, libQt6LabsFolderListModel.so, libQt6LabsPlatform.so, libQt6LabsQmlModels.so, libQt6LabsSettings.so, libQt6LabsSharedImage.so, libQt6LabsWavefrontMesh.so, libQt6LanguageServer.a, libQt6Location.so, libQt6Mqtt.so, libQt6Multimedia.so, libQt6MultimediaQuick.so, libQt6MultimediaTestLib.a, libQt6MultimediaWidgets.so, libQt6Network.so, libQt6NetworkAuth.so, libQt6Nfc.so, libQt6OpcUa.so, libQt6OpenGL.so, libQt6OpenGLWidgets.so, libQt6PacketProtocol.a, libQt6Positioning.so, libQt6PositioningQuick.so, libQt6PrintSupport.so, libQt6Protobuf.so, libQt6ProtobufQtCoreTypes.so, libQt6ProtobufQtGuiTypes.so, libQt6ProtobufQuick.so, libQt6ProtobufWellKnownTypes.so, libQt6QGstreamerMediaPluginImpl.a, libQt6Qml.so, libQt6QmlAssetDownloader.a, libQt6QmlCompiler.so, libQt6QmlCore.so, libQt6QmlDebug.a, libQt6QmlDom.a, libQt6QmlLocalStorage.so, libQt6QmlLS.a, libQt6QmlMeta.so, libQt6QmlModels.so, libQt6QmlNetwork.so, libQt6QmlToolingSettings.a, libQt6QmlTypeRegistrar.a, libQt6QmlWorkerScript.so, libQt6QmlXmlListModel.so, libQt6Quick.so, libQt6Quick3D.so, libQt6Quick3DAssetImport.so, libQt6Quick3DAssetUtils.so, libQt6Quick3DEffects.so, libQt6Quick3DGlslParser.so, libQt6Quick3DHelpers.so, libQt6Quick3DHelpersImpl.so, libQt6Quick3DIblBaker.so, libQt6Quick3DParticleEffects.so, libQt6Quick3DParticles.so, libQt6Quick3DRuntimeRender.so, libQt6Quick3DSpatialAudio.so, libQt6Quick3DUtils.so, libQt6Quick3DXr.so, libQt6QuickControls2.so, libQt6QuickControls2Basic.so, libQt6QuickControls2BasicStyleImpl.so, libQt6QuickControls2FluentWinUI3StyleImpl.so, libQt6QuickControls2Fusion.so, libQt6QuickControls2FusionStyleImpl.so, libQt6QuickControls2Imagine.so, libQt6QuickControls2ImagineStyleImpl.so, libQt6QuickControls2Impl.so, libQt6QuickControls2Material.so, libQt6QuickControls2MaterialStyleImpl.so, libQt6QuickControls2Universal.so, libQt6QuickControls2UniversalStyleImpl.so, libQt6QuickControlsTestUtils.a, libQt6QuickDialogs2.so, libQt6QuickDialogs2QuickImpl.so, libQt6QuickDialogs2Utils.so, libQt6QuickEffects.so, libQt6QuickLayouts.so, libQt6QuickParticles.so, libQt6QuickShapes.so, libQt6QuickTemplates2.so, libQt6QuickTimelineBlendTrees.so, libQt6QuickTest.so, libQt6QuickTestUtils.a, libQt6QuickTimeline.so, libQt6QuickVectorImageGenerator.so, libQt6QuickVectorImage.so, libQt6QuickWidgets.so, libQt6RemoteObjects.so, libQt6RemoteObjectsQml.so, libQt6Scxml.so, libQt6ScxmlQml.so, libQt6Sensors.so, libQt6SensorsQuick.so, libQt6SerialBus.so, libQt6SerialPort.so, libQt6ShaderTools.so, libQt6SpatialAudio.so, libQt6Sql.so, libQt6StateMachine.so, libQt6StateMachineQml.so, libQt6Svg.so, libQt6SvgWidgets.so, libQt6Test.so, libQt6TextToSpeech.so, libQt6UiTools.so, libQt6VirtualKeyboard.so, libQt6VirtualKeyboardSettings.so, libQt6WaylandClient.so, libQt6WaylandCompositor.so, libQt6WaylandCompositorIviapplication.so, libQt6WaylandCompositorPresentationTime.so, libQt6WaylandCompositorWLShell.so, libQt6WaylandCompositorXdgShell.so, libQt6WaylandEglClientHwIntegration.so, libQt6WaylandEglCompositorHwIntegration.so, libQt6WebChannel.so, libQt6WebChannelQuick.so, libQt6WebSockets.so, libQt6WebView.so, libQt6WebViewQuick.so, libQt6Widgets.so, libQt6WlShellIntegration.so, libQt6XcbQpa.so e libQt6Xml.so
Diretórios Instalados: /opt/qt6 e /opt/qt-6.8.2

Descrições Curtas

assistant

é uma ferramenta para apresentação de documentação on-line

balsam

é uma ferramenta para converter cenas 3D originárias de várias ferramentas de criação para o formato QML, para uso pela nova biblioteca 3D QtQuick

canbustil

é uma ferramenta para lidar com quadros arbitrários do barramento CAN. Uma Controller Area Network (CAN) é um padrão de veículo de barramento projetado para permitir que microcontroladores e dispositivos se comuniquem entre si em aplicações sem um computador anfitrião

designer

é um construtor de GUI completo. Ele inclui recursos poderosos, como modo de visualização prévia, esquema automático de pequena engenhoca, suporte para pequenas engenhocas personalizadas e um avançado editor de propriedades

lconvert

faz parte da cadeia de ferramentas Linguist do Qt6. Ele pode ser usado como uma ferramenta independente para converter e filtrar arquivos de dados de tradução

linguist

fornece suporte para traduzir aplicativos para idiomas locais

lrelease

é uma ferramenta simples de linha de comando. Ela lê arquivos de tradução baseados em XML, no formato TS, e produz arquivos de mensagens usados pelo aplicativo

lupdate

encontra as sequências de caracteres traduzíveis nos arquivos especificados de interface do fonte, cabeçalho e do Designer do Qt e armazena as mensagens extraídas em arquivos de tradução para serem processadas pelo lrelease

meshdebug

exibe informações a respeito de arquivos de malha do qtquick-3d

pixeltool

é um ampliador de área de trabalho - conforme você move teu mouse pela tela, ele mostrará o conteúdo ampliado na janela dele

qdbus

lista serviços disponíveis, caminhos de objetos, métodos, sinais e propriedades de objetos em um barramento

qdbuscpp2xml

pega um arquivo de fonte do C++ e gera uma definição XML do D-Bus da interface

qdbusviewer

é um navegador gráfico do D-Bus

qdbusxml2cpp

é uma ferramenta que pode ser usada para analisar descrições de interfaces e produzir código estático representando essas interfaces,

qdistancefieldgenerator

permite que um cache de fontes seja pré gerado para Text.QtRendering para acelerar uma inicialização de um aplicativo se a interface de usuário(a) tiver muito texto, ou múltiplas fontes, ou uma grande quantidade de caracteres distintos, por exemplo, em sistemas de escrita CJK

qdoc

é uma ferramenta usada por Desenvolvedores(as) do Qt para gerar documentação para projetos de software

qmake

usa informações armazenadas em arquivos de projeto para determinar o que deveria constar nos arquivos make que ele gera

qml

executa um arquivo QML

qmleasing

é uma ferramenta usada para definir as curvas de atenuação usando um editor interativo de curva

qmlformat

formata arquivos QML de acordo com as convenções de codificação QML

qmllint

é um verificador de sintaxe para arquivos QML

qmlplugindump

é uma ferramenta para criar um arquivo qmltypes

qmlpreview

é uma ferramenta usada para analisar aplicativos QML

qmlprofiler

é uma ferramenta que monitora arquivos QML e JavaScript no disco e atualiza o aplicativo ao vivo com quaisquer mudanças

qmlscene

é um utilitário que carrega e exibe documentos QML, mesmo antes que o aplicativo esteja completo

qmltestrunner

é uma ferramenta usada para fazer testes

qtdiag

é uma ferramenta para noticiar informações de diagnóstico a respeito do Qt e do ambiente dele

qtpaths

é uma ferramenta para consultar informações de caminho do Qt

qtplugininfo

despeja metadados a respeito dos plugins do Qt em formato JSON

QtWebEngine-6.8.2

Introdução ao QtWebEngine

"QtWebEngine" integra os recursos "web" do "chromium" no "Qt". Ele vem com a própria cópia dele do "ninja", a qual usa para a construção se não conseguir encontrar uma cópia de sistema, e várias cópias de bibliotecas originárias do "ffmpeg", "icu", "libvpx" e "zlib" (incluindo "libminizip"), as quais foram bifurcadas pelos(as) desenvolvedores(as) do "chromium".

Esse pacote, e os navegadores que o usam, possivelmente seja útil se você precisar usar um sítio da "web" projetado para navegadores "Chrome" ou "Chromium" da "Google".

Atenção

QtWebEngine usa uma cópia bifurcada do chromium e, portanto, é vulnerável a muitos problemas encontrados lá. Os(As) desenvolvedores(as) do Qt parecem bifurcar uma versão mais recente para versões secundárias do Qt, porém como o chromium muda para versões mais recentes muito frequentemente, no momento em que os(as) desenvolvedores(as) do Qt obtém uma versão bifurcada para passar em nos testes estendidos deles(as), ela é sempre uma versão antiga e correções de segurança provenientes do chromium (algumas das quais tem um número CVE) podem levar vários meses para aparecer em um lançamento do QtWebengine, mesmo se a gravidade tenha sido classificada como Crítica.

Portanto, você deveria ter cuidado ao usar o QtWebEngine em um contexto sensível e deveria sempre atualizar para o próximo lançamento assim que ela aparecer neste livro, mesmo que não esteja sinalizada como uma Atualização de Segurança. Identificar quais vulnerabilidades tenham sido corrigidas em um lançamento específico exige puxar a ramificação 'based-NNN' apropriada, pouco antes dos lançamentos anteriores e atuais e frequentemente é impraticável. Informes de itens de QTBUG corrigidos não parecem estar disponíveis e não existe nenhuma documentação no tarball para mudanças depois das versões qt-5.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Atenção

Por padrão, o ninja usará todas as CPUs online mais duas (se existirem pelo menos quatro), mesmo que elas não estejam disponíveis para a tarefa atual porque o terminal de construção tenha sido restringido com o 'taskset'. No BLFS, esse pacote leva mais tempo para construir que qualquer outro. Em um exemplo, a construção desse pacote travou no ponto de cerca de noventa por cento (90%) devido a um problema de falta de memória em um sistema com vinte e quatro (24) elementos de processamento e trinta e dois (32) GB de memória.

Para contornar isso, vejam-se as Explicações do Comando abaixo.

Informação do Pacote

Dependências do "qtwebengine"

Exigidas

Cups-2.4.11, html5lib-1.1, nodejs-22.14.0, nss-3.108, pciutils-3.13.0 e Qt-6.8.2

Recomendadas

Nota

Se esses pacotes não estiverem instalados, [então] o processo de construção compilará e instalará a própria versão dele (talvez mais antiga), com o efeito colateral de aumentar a construção e espaço instalado em disco e o tempo de construção.

Opcionais

MIT Kerberos V5-1.21.3, pipewire-1.2.7, Poppler-25.02.0, jsoncpp, libsrtp e snappy

Instalação do qtwebengine

Primeiro, corrija uma falha de construção que ocorre porque a construção do BLFS do ffmpeg não usa OpenH264:

sed -e '189 s/=/& false/' \
    -e '190 d'            \
    -i.orig src/3rdparty/chromium/third_party/webrtc/webrtc.gni

Instale o "qtwebengine" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_MESSAGE_LOG_LEVEL=STATUS             \
      -D QT_FEATURE_webengine_system_ffmpeg=ON      \
      -D QT_FEATURE_webengine_system_icu=ON         \
      -D QT_FEATURE_webengine_system_libevent=ON    \
      -D QT_FEATURE_webengine_proprietary_codecs=ON \
      -D QT_FEATURE_webengine_webrtc_pipewire=ON    \
      -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF           \
      -G Ninja .. &&

ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

CMAKE_MESSAGE_LOG_LEVEL=STATUS: Produz mensagens interessantes nas quais usuários(as) do projeto possam estar interessados(as). Idealmente, deveriam ser concisas, não mais que uma linha, porém ainda informativas.

QT_FEATURE_webengine_system_*: Especifique quais pacotes externos o sistema deveria usar.

QT_BUILD_EXAMPLES_BY_DEFAULT=OFF: Não construa exemplos por padrão.

NINJAJOBS=4 make: Se você remendou o "ninja" do sistema no LFS para reconhecer a variável de ambiente "NINJAJOBS," [então] esse comando executará o "ninja" do sistema com o número especificado de tarefas (ou seja, quatro). Existem várias razões pelas quais você poderia querer usar opções como essa:

  • Construir em um subconjunto de "CPUs" permite medir o tempo de construção para um número menor de processadores e (ou) executar outras tarefas com uso intensivo da "CPU" ao mesmo tempo. Para um(a) editor(a) em uma máquina com muitas "CPUs", tentando medir o tempo de construção para uma máquina com quatro "CPUs", "NINJAJOBS=4 make" fornecerá uma aproximação razoável (existe um curto período onde N+2 tarefas "python" e "node" executam).

  • Em uma máquina com somente quatro "CPUs" "online", o padrão de agendamento de tarefas N+2 para o "qtwebengine" é mais lento entre três por cento (3%) e sete por cento (7%), provavelmente devido ao tamanho dos arquivos" C++" e às muitas inclusões e modelos deles. Portanto, se em dúvida, [então] configure "NINJAJOBS" para o número de "CPUs".

  • Reduzindo o número de núcleos sendo usados em execução prolongada, os pacotes com uso intensivo de "CPU" possivelmente aliviem os problemas de aquecimento.

  • Reduzir o número de núcleos evitará potenciais problemas de falta de memória em sistemas que não tenham memória suficiente (ou troca) quando todos os núcleos estiverem ativos. Uma abordagem sugerida é a de limitar o número de núcleos a cerca de um núcleo para cada 1,5 GB de "RAM" e espaço de troca combinados.

Configurando o QtWebEngine

Informação de Configuração

Se estiver atualizando a partir de uma versão secundária mais antiga desse aplicativo, [então] para algumas páginas da "Web" carregarem, você possivelmente precise limpar os "caches" do navegador; por exemplo. para o "falkon" eles serão encontrados em "~/.cache/falkon/". Você precisará fazer isso se o navegador começar a renderizar a página e então mudar para uma guia em branco com uma mensagem de que algo deu errado e um botão para Tentar novamente. Mesmo depois de remover os "caches" antigos, você possivelmente precise tentar novamente algumas vezes para cada guia afetada.

Se um navegador usando esse pacote falhar ao executar e quando executado a partir de um terminal ele informar "Trace/breakpoint trap", isso provavelmente é um problema de configuração do núcleo - não existe necessidade de reconstruir o "QtWebEngine"; veja-se a próxima seção, recompile o núcleo e reinicie para o novo núcleo.

Configuração do Núcleo

Esse pacote não exige nenhum dos itens opcionais de espaço de nome do núcleo, mas se o espaço de nome de Usuário(a) estiver habilitado , [então] o espaço de nome de "PID" também precisa ser habilitado. Nesse caso, habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    # Enable or disable *both* of them:
    [ /*] User namespace                                               [USER_NS]
    [ /*] PID Namespaces                                                [PID_NS]

Conteúdo

Aplicativos Instalados: qtwebengine_convert_dict e QtWebEngineProcess (ambos em $QT6DIR/libexec)
Bibliotecas Instaladas: libQt6Pdf.so, libQt6PdfQuick.so, libQt6PdfWidgets.so, libQt6WebEngineCore.so, libQt6WebEngineiQuick.so, libQt6WebEngineQuickDelegatesQml.so e libQt6WebEngineWidgets.so
Diretórios Instalados: $QT6DIR/include/QtPdf, $QT6DIR/include/QtPdfQuick, $QT6DIR/include/QtPdfWidgets, $QT6DIR/include/QtWebEngineCore, $QT6DIR/include/QtWebEngineQuick, $QT6DIR/include/QtWebEngineWidgets, $QT6DIR/qml/QtWebEngine e $QT6DIR/translations/qtwebengine_locales

Descrições Curtas

qtwebengine_convert_dict

converte dicionários do "hunspell" (".dic") para o formato do "chromium" (".bdic")

QtWebEngineProcess

é um aplicativo "libexec" que executa um processo zigoto (aquele que escuta solicitações de gerar a partir de um processo mestre e se bifurca em resposta)

startup-notification-0.12

Introdução ao startup-notification

O pacote "startup-notification" contém bibliotecas "startup-notification". Elas são úteis para construir uma maneira consistente para notificar o(a) usuário(a) por meio do cursor que o aplicativo está carregando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "startup-notification"

Exigidas

Bibliotecas do Xorg e xcb-util-0.4.1

Instalação do startup-notification

Instale o "startup-notification" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -m644 -D doc/startup-notification.txt \
     /usr/share/doc/startup-notification-0.12/startup-notification.txt

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libstartup-notification-1.so
Diretórios Instalados: /usr/include/startup-notification-1.0 e /usr/share/doc/startup-notification-0.12

Descrições Curtas

libstartup-notification-1.so

fornece as funções para auxiliar os aplicativos na comunicação com o sistema de cursor para fornecer retroalimentação para o(a) usuário(a) que o aplicativo está carregando

Vulkan-Headers-1.4.304

Introdução ao Vulkan-Headers

O pacote Vulkan-Headers contém um conjunto de arquivos de cabeçalho necessários para construir e vincular aplicativos à API do Vulkan.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Vulkan-Headers

Exigidas

CMake-3.31.5

Instalação do Vulkan-Headers

Instale Vulkan-Headers executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/vk_video, /usr/include/vulkan, /usr/share/cmake/VulkanHeaders e /usr/share/vulkan

Vulkan-Loader-1.4.304

Introdução ao Vulkan-Loader

O pacote Vulkan-Loader contém uma biblioteca que fornece a API do Vulkan e fornece suporte básico para controladores gráficos para Vulkan.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Vulkan-loader

Exigidas

CMake-3.31.5, Vulkan-Headers-1.4.304 e Bibliotecas do Xorg

Recomendadas
Recomendadas (tempo de execução)

Mesa-24.3.4 (para controladores Vulkan)

Opcionais (para testagem)

git-2.48.1

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do Vulkan-Loader

Nota

Se esse pacote estiver sendo instalado em um sistema onde Mesa já tenha sido instalado anteriormente, por favor, reconstrua Mesa-24.3.4 depois desse pacote para instalar os controladores gráficos do Vulkan.

Instale Vulkan-Loader executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr   \
      -D CMAKE_BUILD_TYPE=Release    \
      -D CMAKE_SKIP_INSTALL_RPATH=ON \
      -G Ninja .. &&
ninja

Para executar a suíte de teste, emita (observe que o comando usará git-2.48.1 para baixar uma cópia do GoogleTest para construir a suíte de teste):

sed "s/'git', 'clone'/&, '--depth=1', '-b', self.commit/" \
    -i ../scripts/update_deps.py &&
cmake -D BUILD_TESTS=ON -D UPDATE_DEPS=ON .. &&
ninja &&
ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D BUILD_WSI_WAYLAND_SUPPORT=OFF: Essa opção permite construir sem suporte a Wayland-1.23.0.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libvulkan.so
Diretórios Instalados: /usr/lib/cmake/VulkanLoader

Descrições Curtas

libvulkan.so

fornece a API do Vulkan e suporte básico para controladores gráficos

WebKitGTK-2.46.6

Introdução ao WebKitGTK

O pacote "WebKitGTK" é uma porta do mecanismo de renderização "web" portável "WebKit" para as plataformas "GTK+ 3" e "GTK 4".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://webkitgtk.org/releases/webkitgtk-2.46.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 10b5b88ffe8611202c45cfdc10a2bd72

  • Tamanho da transferência: 41 MB

  • Espaço em disco estimado exigido: 1,4 GB (163 MB instalado; adicionar 157 MB para GTK-4)

  • Tempo de construção estimado: 32 UPC (para GTK-3, usando paralelismo = 8; adicionar 32 UPC para GTK-4)

Dependências do "WebKitGTK"

Exigidas

Cairo-1.18.2, CMake-3.31.5, gst-plugins-base-1.24.12, gst-plugins-bad-1.24.12, GTK-3.24.48, GTK-4.16.12, ICU-76.1, Little CMS-2.17, libgudev-238, libsecret-0.21.6, libsoup-3.6.4, libtasn1-4.20.0, libwebp-1.5.0, Mesa-24.3.4, OpenJPEG-2.5.3, Ruby-3.4.2, SQLite-3.49.1, unifdef-2.12 e Which-2.23

Recomendadas
Opcionais

Gi-DocGen-2025.3, harfBuzz-10.4.0, Wayland-1.23.0, WOFF2-1.0.2, ccache, Hyphen, libbacktrace, libmanette e sysprof

Instalação do WebKitGTK

Instalação do WebKitGTK

Importante

Esse pacote permite construir com GTK-3 ou GTK-4, mas não ambos na mesma construção. A versão GTK-4 é necessária para pacotes como Epiphany-47.3.1. Outros pacotes, como Balsa-2.6.4 ou Evolution-3.54.3, requerem a versão GTK-3. Ambas as versões podem ser instaladas lado a lado no mesmo sistema. Nós fornecemos instruções de construção para ambos os casos abaixo, mas a única diferença é a configuração de -D USE_GTK4

Se você quiser instalar a versão GTK+-3 do WebKitGTK, execute os seguintes comandos:

mkdir -vp build &&
cd        build &&

cmake -D CMAKE_BUILD_TYPE=Release      \
      -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_SKIP_INSTALL_RPATH=ON   \
      -D PORT=GTK                      \
      -D LIB_INSTALL_DIR=/usr/lib      \
      -D USE_LIBBACKTRACE=OFF          \
      -D USE_LIBHYPHEN=OFF             \
      -D ENABLE_GAMEPAD=OFF            \
      -D ENABLE_MINIBROWSER=ON         \
      -D ENABLE_DOCUMENTATION=OFF      \
      -D ENABLE_WEBDRIVER=OFF          \
      -D USE_WOFF2=OFF                 \
      -D USE_GTK4=OFF                  \
      -D ENABLE_JOURNALD_LOG=OFF       \
      -D ENABLE_BUBBLEWRAP_SANDBOX=ON  \
      -D USE_SYSPROF_CAPTURE=NO        \
      -W no-dev -G Ninja ..            &&
ninja

Esse pacote não tem uma suíte funcional de teste. No entanto, existe um navegador gráfico básico usável no diretório da construção, "build/bin/MiniBrowser". Se a inicialização dele falhar, [então] existe um problema com a construção.

Agora, como o(a) usuário(a) "root":

ninja install

Se você quiser instalar a versão GTK4 do WebKitGTK, execute os seguintes comandos:

rm -rf * .[^.]* &&

cmake -D CMAKE_BUILD_TYPE=Release      \
      -D CMAKE_INSTALL_PREFIX=/usr     \
      -D CMAKE_SKIP_INSTALL_RPATH=ON   \
      -D PORT=GTK                      \
      -D LIB_INSTALL_DIR=/usr/lib      \
      -D USE_LIBBACKTRACE=OFF          \
      -D USE_LIBHYPHEN=OFF             \
      -D ENABLE_GAMEPAD=OFF            \
      -D ENABLE_MINIBROWSER=ON         \
      -D ENABLE_DOCUMENTATION=OFF      \
      -D USE_WOFF2=OFF                 \
      -D USE_GTK4=ON                   \
      -D ENABLE_JOURNALD_LOG=OFF       \
      -D ENABLE_BUBBLEWRAP_SANDBOX=ON  \
      -D USE_SYSPROF_CAPTURE=NO        \
      -W no-dev -G Ninja ..            &&
ninja

Agora, como o(a) usuário(a) "root":

ninja install

Como a opção -D ENABLE_DOCUMENTATION=OFF é usada, a documentação não é reconstruída nem instalada agora. Se precisar da documentação, você pode, ou instalar o Gi-DocGen-2025.3 e remover essa opção do comando cmake, ou instalar a documentação pré construída (somente para a versão GTK-4):

install -vdm755 /usr/share/gtk-doc/html &&
cp -rv ../Documentation/* /usr/share/gtk-doc/html

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D USE_LIBBACKTRACE=OFF: Essa chave desabilita o uso de libbacktrace para despejar um rastreamento de pilha quando uma falha acontece. Você precisa instalar o libbacktrace se desejar habilitá-la (substituindo OFF por ON ou apenas removendo a chave).

-D USE_LIBHYPHEN=OFF: Essa chave desabilita a implementação padrão de hifenização automática. Você precisa instalar o Hyphen se desejar habilitá-la (substituindo OFF por ON ou apenas removendo a chave).

-D ENABLE_DOCUMENTATION=OFF: Essa chave desabilita a regeneração da documentação. Remova essa chave se você tiver Gi-DocGen-2025.3 instalado e desejar gerar novamente a documentação.

-D ENABLE_GAMEPAD=OFF: Essa chave desabilita suporte ao gamepad. Remova essa chave se você tiver libmanette instalado e desejar habilitá-lo.

-D ENABLE_MINIBROWSER=ON: Essa chave habilita compilar e instalar o MiniBrowser.

-D ENABLE_WEBDRIVER=OFF: Essa chave desabilita compilar e instalar WebKitWebDriver. Nós a usamos para a construção do GTK-3 porque o WebKitWebDriver proveniente da construção do GTK-3 será sobrescrito pela construção do GTK-4 de qualquer maneira. Remova essa opção se você não planeja construir esse pacote com GTK-4.

-D ENABLE_BUBBLEWRAP_SANDBOX=ON: Essa chave habilita o sandbox Bubblewrap, que ajuda a mitigar o impacto da maioria das vulnerabilidades de segurança nesse pacote. Mude essa chave para OFF se você não quiser instalar bubblewrap-0.11.0, libseccomp-2.6.0 ou xdg-dbus-proxy-0.1.6, mas observe que isso possivelmente te coloque em risco.

-D ENABLE_JOURNALD_LOG=OFF: Essa chave desabilita usar o diário do systemd para registrar erros e informações de depuração, uma vez que ele não está disponível em sistemas SysV.

-D USE_SYSPROF_CAPTURE=NO: Essa chave desabilita uma dependência rígida de sysprof.

-D USE_SYSTEM_MALLOC=ON: Essa chave habilita construir contra o malloc instalado no sistema.

-D ENABLE_GEOLOCATION=OFF: Use essa chave se você não quiser instalar o GeoClue-2.7.2.

-D USE_AVIF=OFF: Use essa chave se você não quiser instalar libavif-1.2.0. Observe que você não terá suporte para imagens AVIF se fizer isso.

-D USE_WOFF2=ON: Use essa chave se o pacote opcional WOFF2-1.0.2 estiver instalado. Isso adiciona suporte adicional para fontes.

-D USE_JPEGXL=OFF: Use essa chave se o pacote recomendado libjxl-0.11.1 não estiver instalado. Observe que você não terá suporte para imagens JPEG XL se essa opção for passada.

Conteúdo

Aplicativo Instalado: WebKitWebDriver
Bibliotecas Instaladas: libjavascriptcoregtk-4.1.so, libjavascriptcoregtk-6.0.so, libwebkit2gtk-4.1.so e libwebkitgtk-6.0.so
Diretórios Instalados: /usr/include/webkitgtk-4.1, /usr/include/webkitgtk-6.0, /usr/lib{,exec}/webkit2gtk-4.1, /usr/lib{,exec}/webkitgtk-6.0, /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 (opcional) e /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-process-extension}}-6.0

Descrições Curtas

WebKitWebDriver

permite depuração e automação de páginas e navegadores da "web"

libjavascriptcoregtk-4.1.so

contém funções centrais da "API" do "JavaScript" usadas por "jsc" e "libwebkit2gtk-4.1"

libjavascriptcoregtk-6.0.so

contém funções centrais da API JavaScript usadas por jsc e libwebkitgtk-6.0

libwebkit2gtk-4.1.so

contém as funções da "API" do "WebKit2"

libwebkitgtk-6.0.so

contém as funções de API do WebKit para aplicativos GTK-4

xdg-desktop-portal-1.20.0

Introdução ao xdg-desktop-portal

xdg-desktop-portal é um serviço D-Bus que permite que aplicativos interajam com a área de trabalho de forma segura. Vários aspectos da interação de área de trabalho, como seletor de arquivos, estilo da área de trabalho, etc, são implementados em diferentes APIs do D-Bus, conhecidas como portais. Os aplicativos em área restrita são os que mais se beneficiam desse serviço, pois não precisam de permissões especiais para usar as APIs do portal, mas qualquer aplicativo pode usá-lo. xdg-desktop-portal protege muitos recursos e funcionalidades com um sistema de permissão controlado pelo(a) usuário(a). Esse serviço precisa de uma estrutura de retaguarda que implemente interfaces de portal específicas de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-desktop-portal

Exigidas

Fuse-3.16.2, gdk-pixbuf-2.42.12, JSON-GLib-1.10.6, pipewire-1.2.7 e dbus-1.16.0 (em tempo de execução). Além disso, uma estrutura de retaguarda é necessária em tempo de execução para esse pacote ser de algum uso, seja xdg-desktop-portal-gtk-1.15.2, seja xdg-desktop-portal-gnome-47.3 ou xdg-desktop-portal-lxqt-1.1.0

Recomendadas

Nota

Embora exista uma opção para construir o pacote sem o bubblewrap, os(as) desenvolvedores(as) do fluxo de desenvolvimento e os(as) editores(as) do LFS recomendam fortemente não usar essa possibilidade, pois isso criará um grande problema de segurança.

Opcionais

GeoClue-2.7.2 (para o portal do local), e pytest-8.3.4 com libportal-0.9.1, dbusmock-0.34.3 e umockdev-0.19.1 (para executar testes)

Opcional (para construir a documentação)

sphinx-8.2.1 com sphinxext.opengraph, sphinx_copybutton, furo e flatpak

Instalação do xdg-desktop-portal

Instale xdg-desktop-portal executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D tests=disabled .. &&
ninja

Se as dependências opcionais estiverem instaladas, você consegue testar os resultados executando:

meson configure -D tests=enabled &&
ninja test

Sem as dependências externas, um teste, integration/dynamiclauncher, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Remova arquivos do systemd que são inúteis (como o(a) usuário(a) root):

rm -rvf /usr/lib/systemd

Explicações do Comando

-D tests=disabled: Evita exigir diversas dependências opcionais que são necessárias somente para testes.

Configurando xdg-desktop-portal

Arquivos de Configuração

Os principais arquivos de configuração são ~/.config/xdg-desktop-portal/portals.conf, /etc/xdg-desktop-portal/portals.conf e /usr/share/xdg-desktop-portal/portals.conf. Vários outros locais podem ser pesquisados em busca de arquivos de configuração. Veja-se portals.conf(5).

Informação de Configuração

Os vários arquivos de configuração são usados para escolher a estrutura de retaguarda, dependendo de várias condições. Veja-se portals.conf(5) para detalhes.

Conteúdo

Aplicativos Instalados: diversos processos de segundo plano em /usr/libexec
Biblioteca(s) Instalada(s): Nenhum(a)
Diretório(s) Instalado(s): Nenhum(a)

xdg-desktop-portal-gtk-1.15.2

Introdução ao xdg-desktop-portal-gtk

xdg-desktop-portal-gtk é uma estrutura de retaguarda para xdg-desktop-portal, que está usando GTK e várias peças da infraestrutura do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-desktop-portal-gtk

Exigidas

GTK-3.24.48 e xdg-desktop-portal-1.20.0

Recomendadas

Instalação do xdg-desktop-portal-gtk

Instale xdg-desktop-portal-gtk executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Remova arquivos do systemd que são inúteis (como o(a) usuário(a) root):

rm -rvf /usr/lib/systemd

Conteúdo

Aplicativo Instalado: um processo de segundo plano em /usr/libexec
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/xdg-desktop-portal (se nenhuma outra estrutura de retaguarda do xdg-desktop-portal estiver instalada)

Capítulo 26. Gerenciadores de Tela

Gerenciadores de Tela são aplicativos gráficos usados para iniciar a tela gráfica (atualmente, o servidor "X") e fornecer uma capacidade de "login" para um Gerenciador de Janelas ou Ambiente de Área de Trabalho.

Existem muitos Gerenciadores de Tela disponíveis. Alguns dos mais bem conhecidos incluem: gdm, kdm (obsoleto), LightDM, lxdm, Slim e sddm.

Entre os Ambientes de Área de Trabalho disponíveis para o Linux você encontra: Enlightenment, GNOME, Plasma, lxde, LXQt e xfce.

A escolha de um Gerenciador de Tela ou de um Ambiente de Área de Trabalho é altamente subjetiva. A escolha depende da aparência dos pacotes, dos recursos (memória e espaço em disco) exigidos e dos utilitários incluídos.

Neste capítulo as instruções de instalação de alguns Gerenciadores de Tela são apresentadas. Posteriormente no livro, você encontrará outros, que são fornecidos como parte de alguns Ambientes de Área de Trabalho.

GDM-47.0

Introdução ao GDM

"GDM" é um serviço de sistema que é responsável por fornecer "logins" gráficos e gerenciar exibições locais e remotas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gdm/47/gdm-47.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0312497290b26525e14fbc153f1a87f2

  • Tamanho da transferência: 916 KB

  • Espaço em disco estimado exigido: 37 MB

  • Tempo de construção estimado: 0,2UPC

Dependências do "GDM"

Exigidas

AccountsService-23.13.9, DConf-0.40.0, libcanberra-0.30 (construído depois do GTK-3.24.48) e Linux-PAM-1.7.0

Opcionais

keyutils-1.6.3

Dependências de Tempo de Execução

gnome-session-47.0.1, gnome-shell-47.4 e elogind-255.17

Instalação do GDM

É recomendado ter um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "gdm" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 21 gdm &&
useradd -c "Proprietário(a) do Processo de Segundo Plano GDM" -d /var/lib/gdm -u 21 \
        -g gdm -s /bin/false gdm &&
passwd -ql gdm

Instale o "GDM" executando os seguintes comandos:

sed -e 's@systemd@elogind@'                                \
    -e '/elogind/isession  required       pam_loginuid.so' \
    -i data/pam-lfs/gdm-launch-environment.pam &&

mkdir build &&
cd    build &&

meson setup ..                   \
      --prefix=/usr              \
      --buildtype=release        \
      -D gdm-xsession=true       \
      -D run-dir=/run/gdm        \
      -D logind-provider=elogind \
      -D systemd-journal=false   \
      -D systemdsystemunitdir=no \
      -D systemduserunitdir=no   &&
ninja

Esse pacote não vem com uma suíte de teste usável.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D initial-vt=7: Use essa chave para fazer o GDM iniciar no Terminal Virtual 7 em vez do primeiro Terminal Virtual livre.

-D default-pam-config=lfs: Use essa chave se você não criou o arquivo /etc/lfs-release ou a detecção automática da distribuição falhará e você estará inapto(a) para usar o GDM.

-D gdm-xsession=true: Isso habilita a instalação do arquivo Xsession do GDM.

Configurando o GDM

Arquivos de Configuração

/etc/gdm/custom.conf

Informação de Configuração

O processo de segundo plano "GDM" é configurado usando o arquivo "/etc/gdm/custom.conf". Os valores padrão são armazenados em "GSettings" no arquivo "gdm.schemas". É recomendado que os(as) usuários(as) finais modifiquem o arquivo "/etc/gdm/custom.conf", porque o arquivo de esquemas possivelmente seja sobrescrito quando o(a) usuário(a) atualizar o sistema dele(a) para ter uma versão mais recente do "GDM".

Em alguns sistemas com GPUs NVIDIA, o GDM ocultará as sessões do Wayland por padrão. Isso geralmente é feito para impedir que os(as) usuários(as) encontrem problemas com controladores defeituosos, o que pode resultar em travamentos do sistema, travamentos de aplicativos, problemas de gerenciamento de eletricidade e lentidão gráfica. Se você tiver uma GPU NVIDIA e ainda desejar tentar executar sessões do Wayland de qualquer maneira, execute o seguinte comando como o(a) usuário(a) root:

ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar o "gdm" automaticamente quando o sistema for comutado para o nível de execução 5, instale o conjunto de comandos sequenciais "/etc/rc.d/init.d/xdm" e o arquivo de configuração "/etc/sysconfig/xdm" incluído no pacote "blfs-bootscripts-20250225" e ajuste "/etc/inittab" executando como o(a) usuário(a) "root":

make install-gdm

Para a finalidade de configurar permanentemente o nível de execução padrão como 5, iniciando automaticamente a tela de boas-vindas do "gdm", você pode modificar o "/etc/inittab". Como o(a) usuário(a) "root":

sed /initdefault/s/3/5/ -i /etc/inittab

Configurando Auto Suspensão do GDM

O GDM suspenderá o sistema quando a tela de saudação estiver executando por um tempo sem qualquer entrada interativa. Se você quiser desabilitar a suspensão automática por qualquer motivo (por exemplo, se o sistema estiver hospedando alguns serviços além de funcionar como um sistema de área de trabalho), como o(a) usuário(a) root, emita:

su gdm -s /bin/bash                                                \
       -c "dbus-run-session                                        \
             gsettings set org.gnome.settings-daemon.plugins.power \
                           sleep-inactive-ac-type                  \
                           nothing"

Conteúdo

Aplicativos Instalados: gdm e gdmflexiserver
Bibliotecas Instaladas: libgdm.so e pam_gdm.so (Módulo "PAM")
Diretórios Instalados: /etc/gdm, /usr/include/gdm, /usr/share/gdm e /usr/share/help/*/gdm

Descrições Curtas

gdm

é uma solicitação de "login" para o "GNOME"

lightdm-1.32.0

Introdução ao Lightdm

O pacote "lightdm" contém um gerenciador de exibição leve baseado em no "GTK".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informações do Pacote "Lightdm"

Transferência adicional

Nota

O saudador é um aplicativo para apresentar uma tela gráfica de login. Existem vários saudadores alternativos, mas o pacote "gtk+" é a implementação de referência. Para uma lista de outros saudadores, veja-se https://en.wikipedia.org/wiki/LightDM.

Dependências do "Lightdm"

Exigidas

Exo-4.20.0 (para o saudador), libgcrypt-1.11.0, itstool-2.0.7, Linux-PAM-1.7.0 e Xorg-Server-21.1.16 (tempo de execução)

Recomendadas
Opcionais

AccountsService-23.13.9 (tempo de execução), at-spi2-core-2.54.1, GTK-Doc-1.34.0, libido e libindicator

Instalação do Lightdm

Primeiro, crie um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "lightdm" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 65 lightdm        &&
useradd  -c "Lightdm Daemon" \
         -d /var/lib/lightdm \
         -u 65 -g lightdm    \
         -s /bin/false lightdm

Em seguida, mude os arquivos de configuração do "Linux-PAM", de forma que o "elogind" seja usado:

sed -i s/systemd/elogind/ data/pam/*

Instale o "lightdm" executando os seguintes comandos:

./configure --prefix=/usr                  \
            --libexecdir=/usr/lib/lightdm \
            --localstatedir=/var          \
            --sbindir=/usr/bin            \
            --sysconfdir=/etc             \
            --disable-static              \
            --disable-tests               \
            --with-greeter-user=lightdm   \
            --with-greeter-session=lightdm-gtk-greeter \
            --docdir=/usr/share/doc/lightdm-1.32.0 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install                                                   &&
cp tests/src/lightdm-session /usr/bin                         &&
sed -i '1 s/sh/bash --login/' /usr/bin/lightdm-session        &&
rm -rf /etc/init                                              &&
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm      &&
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm-data &&
install -v -dm755 -o lightdm -g lightdm /var/cache/lightdm    &&
install -v -dm770 -o lightdm -g lightdm /var/log/lightdm

Agora construa o saudador:

tar -xf ../lightdm-gtk-greeter-2.0.9.tar.gz &&
cd lightdm-gtk-greeter-2.0.9 &&

./configure --prefix=/usr                  \
            --libexecdir=/usr/lib/lightdm \
            --sbindir=/usr/bin            \
            --sysconfdir=/etc             \
            --with-libxklavier            \
            --enable-kill-on-sigterm      \
            --disable-libido              \
            --disable-libindicator        \
            --disable-static              \
            --disable-maintainer-mode     \
            --docdir=/usr/share/doc/lightdm-gtk-greeter-2.0.9 &&
make

Agora, como o(a) usuário(a) "root":

make install

Nota

Se você instalou o "Xorg" em "/opt", [então] você precisará criar um link simbólico, de forma que o "lightdm" possa encontrar o servidor "Xorg". Como o(a) usuário(a) "root":

ln -sf /opt/xorg/bin/Xorg /usr/bin/X

Explicações do Comando

sed ... /usr/bin/lightdm-session: Esse comando garante o "login" inicial por intermédio dos fontes do saudador "/etc/profile" e "~/.bash_profile". Sem isso, comandos que dependem de diferentes variáveis de ambiente possivelmente não funcionem conforme o esperado.

Configurando o lightdm

Arquivos de Configuração

/etc/lightdm/{lightdm,users,keys,lightdm-gtk-greeter}.conf

Os arquivos de configuração oferecem muitas opções. Se, por exemplo, você tiver uma configuração de vários monitores, mas preferir que a janela de login seja exibida em somente um monitor, configure 'active-monitor=<nome_monitor>' em lightdm-gtk-greeter.conf. Por exemplo, você poderia usar active-monitor=HDMI-1. Você consegue determinar os nomes dos monitores com xrandr --listmonitors. Observe que os nomes dos monitores possivelmente mudem se você mudar o controlador de gráficos e você possivelmente tenha que ajustar a configuração de acordo.

Conjunto de Comandos Sequenciais de Inicialização

Para iniciar o "lightdm" automaticamente quando o sistema for comutado para o nível de execução 5, instale o conjunto de comandos sequenciais "/etc/rc.d/init.d/xdm" e o arquivo de configuração "/etc/sysconfig/xdm" incluído no pacote "blfs-bootscripts-20250225" e ajuste o "/etc/inittab" executando como o(a) usuário(a) "root":

make install-lightdm

Iniciando o lightdm

O saudador "lightdm" pode ser iniciado a partir da linha de comando como o(a) usuário(a) "root":

telinit 5

Sessões Disponíveis

O saudador oferece uma lista de sessões disponíveis, dependendo dos Gerenciadores de Janelas e Ambientes de Área de Trabalho instalados. A lista inclui sessões que tem um arquivo ".desktop" correspondente instalado sob "/usr/share/xsessions". A maioria dos Gerenciadores de Janelas e Ambientes de Área de Trabalho fornece automaticamente esses arquivos, mas, se necessário, [então] você pode incluir um personalizado.

Conteúdo

Aplicativos Instalados: dm-tool, lightdm e lightdm-gtk-greeter
Bibliotecas Instaladas: liblightdm-gobject-1.so
Diretórios Instalados: /etc/lightdm, /etc/apparmor.d, /usr/lib/lightdm, /usr/include/lightdm-gobject-1, /usr/share/help/C/lightdm /usr/share/gtk-doc/html/lightdm-gobject-1, /usr/share/doc/lightdm-gtk-greeter-2.0.9, /var/lib/lightdm, /var/lib/lightdm-data, /var/cache/lightdm e /var/log/lightdm

Descrições Curtas

lightdm

é um gerenciador de tela e "login"

lightdm-gtk-greeter

é um processo auxiliar que exibe o saudador, uma interface gráfica de usuário(a) que realiza a autenticação de usuário(a) e inicia o gerenciador de janelas ou ambiente de exibição selecionado

sddm-0.21.0

Introdução ao sddm

O pacote sddm contém um gerenciador de tela leve baseado em Qt e QML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/sddm/sddm/archive/v0.21.0/sddm-0.21.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e32a35c282d9be3360737eefbe25b5fa

  • Tamanho da transferência: 3,4 MB

  • Espaço em disco estimado exigido: 24 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Dependências do SDDM

Exigidas

CMake-3.31.5, extra-cmake-modules-6.11.0 e Qt-6.8.2

Recomendadas

Instalação do SDDM

Primeiro, crie um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano do sddm depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) root:

groupadd -g 64 sddm &&
useradd  -c "Processo de Segundo Plano do sddm" \
         -d /var/lib/sddm \
         -u 64 -g sddm    \
         -s /bin/false sddm

Instale o sddm executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D ENABLE_JOURNALD=OFF       \
      -D NO_SYSTEMD=ON             \
      -D RUNTIME_DIR=/run/sddm     \
      -D USE_ELOGIND=ON            \
      -D BUILD_MAN_PAGES=ON        \
      -D BUILD_WITH_QT6=ON         \
      -D DATA_INSTALL_DIR=/usr/share/sddm \
      -D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
      .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -dm755 -o sddm -g sddm /var/lib/sddm
/usr/bin/sddm --example-config > /etc/sddm.conf

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar otimizações adicionais do compilador.

-D ENABLE_JOURNALD=OFF e -D NO_SYSTEMD=ON: Essas chaves são usadas porque essa versão do BLFS não suporta systemd.

-D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf: Essa chave evita que o arquivo /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf seja sobrescrito, pois ele possivelmente seja usado por outros DMs.

-D BUILD_MAN_PAGES=ON: Essa chave é usada para construir e instalar páginas de manual.

Configurando o SDDM

Arquivos de Configuração

/etc/sddm.config

Normalmente, você quer editar esse arquivo. Por exemplo, se o Xorg estiver instalado em /opt, use teu editor preferido como o(a) usuário(a) root para substituir o valor padrão XauthPath por /opt/xorg/bin/xauth. Ou, como o(a) usuário(a) root, emita:

sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf

Esse comando fará a substituição e criará uma cópia do arquivo original com o nome /etc/sddm.conf.orig.

A partir de agora descreveremos como modificar configurações usando sed. É claro que você poderá usar teu editor preferido como o(a) usuário(a) root.

Por motivos de segurança, você normalmente quer o ServerArguments=-nolisten tcp padrão, a menos que uma máquina remota precise acessar o servidor X local. Nesse caso, como o(a) usuário(a) root, emita:

sed -i 's/-nolisten tcp//' /etc/sddm.conf

Usuários(as) de área de trabalho (notebook) normalmente querem ligar (desligar) a tecla Num Lock. Para isso, como root, emita:

sed -i '/Numlock/s/none/on/' /etc/sddm.conf

para usuários(as) de área de trabalho. Para usuários(as) de Notebook, substitua /on/ por /off/ no comando acima.

Por padrão, um teclado virtual é apresentado para o(a) usuário(a). Se isso não for desejado, execute como root:

sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf

Conjunto de Comandos Sequenciais de Inicialização

Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/xdm a partir do pacote blfs-bootscripts-20250225, como o(a) usuário(a) root:

make install-sddm

Configuração do Linux PAM

Nota

O procedimento de instalação acima instalou um conjunto de arquivos de configuração do PAM. Esses procedimentos os sobrescrevem e usam versões compatíveis com um ambiente BLFS.

Se você tiver construído o sddm com suporte ao Linux PAM, crie os arquivos de configuração necessários executando os seguintes comandos como o(a) usuário(a) root:

cat > /etc/pam.d/sddm << "EOF"
# Inicia /etc/pam.d/sddm

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     include        system-auth

account  include        system-account
password include        system-password

session  required       pam_limits.so
session  include        system-session

# Termina /etc/pam.d/sddm
EOF

cat > /etc/pam.d/sddm-autologin << "EOF"
# Inicia /etc/pam.d/sddm-autologin

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     required       pam_permit.so

account  include        system-account

password required       pam_deny.so

session  required       pam_limits.so
session  include        system-session

# Termina /etc/pam.d/sddm-autologin
EOF

cat > /etc/pam.d/sddm-greeter << "EOF"
# Inicia /etc/pam.d/sddm-greeter

auth     required       pam_env.so
auth     required       pam_permit.so

account  required       pam_permit.so
password required       pam_deny.so
session  required       pam_unix.so
-session optional       pam_systemd.so

# Termina /etc/pam.d/sddm-greeter
EOF

Iniciando o sddm

Se o conjunto de comandos sequenciais de inicialização do sddm tiver sido instalado, inicie o sddm executando, como o(a) usuário(a) root:

/etc/rc.d/init.d/xdm start

Por convenção, o X deveria ser executado no nível de execução 5, consequentemente, o mesmo é verdadeiro para o sddm. No entanto, o nível de execução padrão é 3. Mudar para o nível de execução 5, a partir de um terminal de console, como usuário(a) root, inicia o conjunto de comandos sequenciais de inicialização do sddm, trazendo a tela de boas-vindas:

init 5

Para a finalidade de permanentemente configurar o padrão como 5, iniciando a tela de boas-vindas do sddm automaticamente, modifique o /etc/inittab como o(a) usuário(a) root:

cp -v /etc/inittab{,-orig} &&
sed -i '/initdefault/ s/3/5/' /etc/inittab

Sessões Disponíveis

O saudador oferece uma lista de sessões disponíveis, dependendo dos gerenciadores de janelas e ambientes de área de trabalho instalados. A lista inclui sessões que tem um arquivo .desktop correspondente instalado sob /usr/share/xsessions ou /usr/share/wayland-sessions. A maioria dos gerenciadores de janelas e ambientes de área de trabalho fornece automaticamente esses arquivos, mas se necessário, você pode incluir um arquivo personalizado.

Temas

Três temas estão instalados em /usr/share/sddm/themes: elarun, maldives e maya. Existe também um tema padrão, que não está presente nesse diretório. Você consegue instalar outros temas nesse diretório. Para a finalidade de mudar o tema, você precisa editar o /etc/sddm.conf, para mudar o tema padrão (vazio), substituindo Current= por Current=<novo tema>, por exemplo, Current=maldives.

Para a finalidade de ver o tema sem sair da sessão, emita:

sddm-greeter --test-mode --theme <caminho do tema>

Conteúdo

Aplicativos Instalados: sddm e sddm-greeter
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/sddm e /var/lib/sddm

Descrições Curtas

sddm

é um gerenciador de tela e login baseado em bibliotecas Qt.

sddm-greeter

é um processo auxiliar que exibe o saudador, uma interface gráfica de usuário(a) que realiza a autenticação de usuário(a) e inicia o gerenciador de janelas ou ambiente de exibição selecionado.

Capítulo 27. Gerenciadores de Janela

Gerenciadores de Janelas e Ambientes de Área de Trabalho são as interfaces de usuário(a) primárias no Sistema de Janelas "X". Um gerenciador de janelas é um aplicativo que controla a aparência das janelas e fornece os meios pelos quais o(a) usuário(a) consegue interagir com elas. Um Ambiente de Área de Trabalho fornece uma interface mais completa para o sistema operacional e fornece uma variedade de utilitários e aplicativos integrados.

Existem muitos Gerenciadores de Janelas disponíveis. Alguns dos mais bem conhecidos incluem "fvwm2", "Window Maker", "AfterStep", "Enlightenment", "Sawfish" e "Blackbox".

Os Ambientes de Área de Trabalho disponíveis para o Linux são "GNOME", "KDE" e "XFce".

Escolher um Gerenciador de Janelas ou um Ambiente de Área de Trabalho é altamente subjetivo. A escolha depende da aparência dos pacotes, dos recursos (RAM, espaço em disco) exigidos e dos utilitários incluídos. Um sítio da web que fornece um resumo muito bom do que está disponível, capturas de tela e respectivos recursos deles(as) é Gerenciadores de Janelas para X.

Neste capítulo, as instruções de instalação de vários Gerenciadores de Janelas e um Ambiente de Área de Trabalho leve são apresentadas. Mais adiante no livro, ambos, "KDE" e "GNOME", tem as próprias seções deles.

Fluxbox-1.3.7

Introdução ao Fluxbox

O pacote "Fluxbox" contém um gerenciador de janelas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Fluxbox"

Exigidas

um ambiente gráfico

Opcionais

dbus-1.16.0 (tempo de execução), FriBidi-1.0.16 e imlib2-1.12.3 (se você desejar usar outros formatos de imagem além do "XPM")

Instalação do Fluxbox

Primeiro, corrija uma falha de construção ao construir com o gcc-11.1 e posterior:

sed -i '/text_prop.value > 0/s/>/!=/' util/fluxbox-remote.cc

Instale o "Fluxbox" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não tem uma suíte funcional de teste.

Agora, como o(a) usuário(a) "root":

make install

Configurando o Fluxbox

Arquivos de Configuração

~/.fluxbox/init, ~/.fluxbox/keys e ~/.fluxbox/menu

Informação de Configuração

Se o "Fluxbox" for o único Gerenciador de Janelas que você quer usar, [então] você pode iniciá-lo com um arquivo ".xinitrc" em tua pasta inicial. Certifique-se de produzir uma cópia de segurança do teu ".xinitrc" atual antes de continuar.

echo startfluxbox > ~/.xinitrc

Ou, alternativamente, se você usa um gerenciador de "login" como o "GDM-47.0" ou o "lightdm-1.32.0" e gostaria de poder escolher o "Fluxbox" na solicitação de "login", [então] crie um arquivo "fluxbox.desktop". Como "root":

mkdir -pv /usr/share/xsessions &&
cat > /usr/share/xsessions/fluxbox.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Fluxbox
Comment=Esta sessão te conecta ao Fluxbox
Exec=startfluxbox
Type=Application
EOF

Se você não instalou o "GDM-47.0" ou o "lightdm-1.32.0" no "/usr", então mude esse comando para ajustar o prefixo que você escolher.

Agora crie os arquivos de configuração do "Fluxbox":

mkdir -v ~/.fluxbox &&
cp -v /usr/share/fluxbox/init ~/.fluxbox/init &&
cp -v /usr/share/fluxbox/keys ~/.fluxbox/keys

Para gerar o menu da aplicação, primeiro você possivelmente deseje executar o "fluxbox-generate_menu -h", para a finalidade de escolher quaisquer <opções_de_usuário(a)>; então emita:

cd ~/.fluxbox &&
fluxbox-generate_menu <opções_de_usuário(a)>

Alternativamente, copie um menu pré gerado:

cp -v /usr/share/fluxbox/menu ~/.fluxbox/menu

Itens de menu são adicionados editando-se "~/.fluxbox/menu". A sintaxe é explicada na página de manual do "fluxbox".

Se quiser usar uma imagem como plano de fundo da tua área de trabalho, copie o tema que você gostar em ~/.fluxbox. Em seguida, adicione uma linha para fazê-lo usar a imagem correta. No comando a seguir, mude <tema> para o nome do tema desejado e mude </caminho/para/atraente/imagem.ext> para apontar para a imagem atual que você deseja usar, onde ext precisa ser xpm, se o imlib2-1.12.3 não estiver instalado para permitir outros formatos de imagem.

cp -r /usr/share/fluxbox/styles/<tema> ~/.fluxbox/theme &&

sed -i 's,\(session.styleFile:\).*,\1 ~/.fluxbox/theme,' ~/.fluxbox/init &&

[ -f ~/.fluxbox/theme ] &&
echo "background.pixmap: </caminho/para/atraente/imagem.ext>" >> ~/.fluxbox/theme ||
[ -d ~/.fluxbox/theme ] &&
echo "background.pixmap: </caminho/para/atraente/imagem.ext>" >> ~/.fluxbox/theme/theme.cfg

Em algumas localidades, a fonte especificada no tema possivelmente não contenha os caracteres necessários. Isso resulta em menus com itens em branco. Você consegue corrigir isso editando "~/.fluxbox/theme" com um editor de texto e alterando-o, de forma que ele nomeie uma fonte adequada.

Conteúdo

Aplicativos Instalados: fluxbox, fbsetbg, fbsetroot, fluxbox-generate_menu, startfluxbox, fbrun, fluxbox-remote e fluxbox-update_configs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/fluxbox e ~/.fluxbox

Descrições Curtas

fluxbox

é um gerenciador de janelas para o "X11" baseado no "Blackbox" 0.61.0

fbsetbg

é um utilitário que configura a imagem de plano de fundo. Ele exige um dos seguintes em tempo de execução: "Esetroot", "wmsetbg", "feh", "hsetroot", "chbg", "display", "qiv", "xv", "xsri", "xli" ou "xsetbg". Também exige "which" se o "Esetroot" for encontrado

fbsetroot

é um utilitário para mudar a aparência da janela raiz baseado no aplicativo "bsetroot" do "Blackbox"

fluxbox-generate_menu

é um utilitário que gera um menu escaneando a tua "PATH"

startfluxbox

é um conjunto de comandos sequenciais de inicialização de sessão que permite a execução de comandos antes do início do "fluxbox"

fbrun

exibe uma janela de diálogo de execução

fluxbox-remote

fornece acesso de linha de comando aos comandos chave do "Fluxbox"

fluxbox-update_configs

use para gerenciar arquivos de configuração (recarregar, atualizar, testar)

IceWM-3.7.1

Introdução ao IceWM

"IceWM" é um gerenciador de janelas com os objetivos de velocidade, simplicidade e não atrapalhar o(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "IceWM"

Exigidas

CMake-3.31.5, imlib2-1.12.3 e um ambiente gráfico

Opcionais

asciidoc-10.2.1 (para regenerar a documentação HTML), FriBidi-1.0.16 (para idiomas escritos da direita para a esquerda), librsvg-2.59.2, libao-1.2.0, libsndfile-1.2.2, alsa-lib-1.2.13 (para o aplicativo experimental icesound) e gdk-pixbuf-xlib

Instalação do IceWM

Instale o "IceWM" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D CFGDIR=/etc               \
      -D ENABLE_LTO=ON             \
      -D DOCDIR=/usr/share/doc/icewm-3.7.1  \
      .. &&
make

Esse pacote não tem uma suíte funcional de teste.

Agora, como o(a) usuário(a) "root":

make install

Esse pacote cria dois arquivos ".desktop" no diretório "/usr/share/xsessions/". Ambos não são necessários em um sistema BLFS, de forma que evite o arquivo extra aparecendo como uma opção em um gerenciador de tela. Como o(a) usuário(a) "root":

rm -v /usr/share/xsessions/icewm.desktop

Explicações do Comando

-D ENABLE_LTO=ON: Essa opção habilita Link Time Optimization e é exigida para esse pacote.

Configurando o IceWM

Arquivos de Configuração

"~/.icewm/keys", "~/.icewm/menu" e "~/.icewm/preferences" e "~/.icewm/toolbar" e "~/.icewm/winoptions". As versões padrão são instaladas em "/usr/share/icewm/" e serão usadas se você não as tiver copiado para "~/.icewm".

Informação de Configuração

Se o "IceWM" for o único Gerenciador de Janelas que você quer usar, [então] você pode iniciá-lo com um arquivo ".xinitrc" em tua pasta inicial. Certifique-se de produzir uma cópia de segurança do teu ".xinitrc" atual antes de continuar.

echo icewm-session > ~/.xinitrc

Agora crie os arquivos de configuração do "IceWM":

mkdir -pv ~/.icewm                                       &&
cp -v /usr/share/icewm/keys ~/.icewm/keys               &&
cp -v /usr/share/icewm/menu ~/.icewm/menu               &&
cp -v /usr/share/icewm/preferences ~/.icewm/preferences &&
cp -v /usr/share/icewm/toolbar ~/.icewm/toolbar         &&
cp -v /usr/share/icewm/winoptions ~/.icewm/winoptions

Agora você pode editar esses arquivos para atender às tuas necessidades. Em particular, revise o arquivo "preferences". Você pode usar "Logout -> Restart-IceWM" no menu principal para carregar tuas preferências mudadas, mas as mudanças para o plano de fundo somente terão efeito quando o "IceWM" for iniciado.

Neste ponto você pode ou modificar os arquivos tradicionais de menu para atender às tuas necessidades, ou usar o "icewm-menu-fdo" mais recente descrito mais adiante.

A sintaxe dos menus é explicada nos arquivos de ajuda, os quais você consegue acessar executando "help" a partir do menu, mas alguns detalhes estão desatualizados e as seleções padrão nos menus (alguns antigos aplicativos no menu principal, todo o resto no menu "Programas") serão beneficiadas com a atualização para atender às tuas necessidades. Os exemplos a seguir são fornecidos para te incentivar a pensar a respeito do como deseja organizar teus menus. Por favor observe o seguinte:

  • Se um aplicativo listado no menu não tiver sido instalado, [então] ele não aparecerá quando o menu for exibido. Da mesma forma, se o aplicativo existir, mas o ícone especificado não existir, [então] nenhum ícone será exibido no menu.

  • Os ícones podem ser ou arquivos ".xpm" ou ".png" e não existe necessidade de especificar a extensão. Se o ícone estiver localizado na "biblioteca" ("/usr/share/icewm/icons"), [então] não existe necessidade de especificar o caminho.

  • A maioria dos aplicativos está em submenus, e o menu principal sempre acrescentará entradas para "janelas", "ajuda", "configurações", "logout" na parte inferior.

  • Um ícone para o "firefox" foi copiado para o diretório da biblioteca e recebeu um nome significativo. O ícone para o "xine" é "xine.xpm" que foi instalado em um diretório "pixmap".

  • A barra de ferramentas padrão não é alterada.

Se desejar usar esse método tradicional, [então] existem mais exemplos em lançamentos anteriores deste livro (por exemplo, BLFS-7.8).

Alternativamente, você pode criar um menu que esteja em conformidade com as Especificações de Menu de Área de Trabalho "FDO", onde os aplicativos podem ser encontrados porque tem um arquivo ".desktop" nos diretórios "XDG_DATA_HOME" ou "XDG_DATA_DIR". Ao contrário da maioria dos gerenciadores de janelas, o "icewm" não procura aplicativos quando o menu é invocado, de forma que, se você seguir esse caminho, [então] precisará executar novamente o seguinte comando depois de instalar ou remover aplicativos:

icewm-menu-fdo >~/.icewm/menu

Se desejar colocar ícones em tua área de trabalho, você precisará instalar um aplicativo como o rox-filer que fornece um quadro de avisos. Se fizer isso, você não mais poderá acessar o menu clicando com o botão direito na área de trabalho; você terá que usar o botão do IceWM. Para garantir que o quadro de avisos do rox esteja executando, os seguintes comandos o colocarão no arquivo de inicialização:

cat > ~/.icewm/startup << "EOF"
rox -p Default &
EOF &&
chmod +x ~/.icewm/startup

Dica

Existem vários atalhos de teclado no "IceWM":

  • Ctrl + Alt + FN: vai para o "ttyN".

  • Ctrl + Alt + N: vai para a área de trabalho número "N"

  • Ctrl + Alt + Space: abre uma caixa na barra de tarefas onde você consegue digitar o nome de um aplicativo e executá-lo.

Conteúdo

Aplicativos Instalados: icehelp, icesh, icesound, icewm, icewm-menu-fdo, icewm-menu-xrandr, icewm-session, icewm-set-gnomewm, icewmbg e icewmhint
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/icewm-3.7.1, /usr/share/icewm e ~/.icewm

Descrições Curtas

icehelp

é usado para exibir o manual "HTML"

icesh

é um gerenciador de janelas de linha de comando que pode ser usado em "~/.icewm/startup"

icesound

reproduz arquivos de áudio em eventos de "GUI" gerados pelo "IceWM"

icewm

é o gerenciador de janelas

icewm-menu-fdo

consegue criar um arquivo em um formato adequado para um menu do "IceWM", que lista aqueles aplicativos atualmente instalados em um esquema em conformidade com as Especificações de Menu de Área de Trabalho "FDO"

icewm-menu-xrandr

é um aplicativo auxiliar usado para gerenciar configurações de múltiplas telas

icewm-session

executa "icewmbg", "icewm", "icewmtray", "startup", "shutdown" (ou seja, conjuntos de comandos sequenciais de inicialização e desligamento são executados se instalados)

icewm-set-gnomewm

é um conjunto de comandos sequenciais para configurar o gerenciador de janelas "GNOME" como "icewm" usando o "gconftool"

icewmbg

é usado para configurar o plano de fundo, de acordo com as diversas configurações de "DesktopBackground" nas preferências

icewmhint

é usado internamente para fornecer dicas para o(a) usuário(a)

openbox-3.6.1

Introdução ao openbox

"Openbox" é um gerenciador de janelas de área de trabalho altamente configurável com amplo suporte a padrões. Ele te permite controlar quase todos os aspectos de como você interage com a tua área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): http://openbox.org/dist/openbox/openbox-3.6.1.tar.gz

  • Soma de verificação MD5 da transferência: b72794996c6a3ad94634727b95f9d204

  • Tamanho da transferência: 944 KB

  • Espaço em disco estimado exigido: 19 MB

  • Tempo de construção estimado: 0,3 UPC

Transferência Adicional

Dependências do "Openbox"

Exigidas

um ambiente gráfico e Pango-1.56.1 (compilado com suporte para "libXft")

Opcionais

dbus-1.16.0 (tempo de execução), imlib2-1.12.3 (para habilitar ícones no menu do botão direito), ImageMagick-7.1.1-43 (para mostrar os planos de fundo da área de trabalho conforme visto na seção Informações de Configuração abaixo), PyXDG-0.28, startup-notification-0.12 e librsvg-2.59.2

Instalação do Openbox

Nota

se "XORG_PREFIX" não for "/usr", [então] informe ao "gcc" acerca disso:

export LIBRARY_PATH=$XORG_PREFIX/lib

Atualize os conjuntos de comandos sequenciais do pacote para habilitar o Python 3:

patch -Np1 -i ../openbox-3.6.1-py3-1.patch

Instale o "Openbox" executando os seguintes comandos:

autoreconf -fi &&
./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  \
            --docdir=/usr/share/doc/openbox-3.6.1 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Esse pacote cria três arquivos ".desktop" no diretório "/usr/share/xsessions/". Dois deles não são apropriados em um sistema BLFS, de forma que evite os arquivos extras aparecendo como opções em um gerenciador de tela. Como o(a) usuário(a) "root":

rm -v /usr/share/xsessions/openbox-{gnome,kde}.desktop

Explicações do Comando

--sysconfdir=/etc: Essa opção coloca os arquivos de configuração do "Openbox" em "/etc/xdg/openbox" em vez de "/usr/etc/xdg/openbox".

--docdir=/usr/share/doc/openbox-3.6.1: isso coloca alguns arquivos em um diretório versionado em "/usr/share/doc".

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Configurando Openbox

Arquivos de Configuração

/etc/xdg/openbox/autostart, /etc/xdg/openbox/menu.xml, /etc/xdg/openbox/rc.xml, ~/.config/openbox/autostart, ~/.config/openbox/menu.xml e ~/.config/openbox/rc.xml

Informação de Configuração

O menu do botão direito do "Openbox" pode ser usado para iniciar aplicativos. O menu em si é configurado com dois arquivos, "/etc/xdg/openbox/menu.xml" e "~/.config/openbox/menu.xml". Para fazer mudanças no menu, copie "/etc/xdg/openbox/menu.xml" para "~/.config/openbox/menu.xml" e edite-o:

cp -rf /etc/xdg/openbox ~/.config

Para ter ícones em teu menu do botão direito, é exigido instalar o "imlib2-1.12.3" antes de instalar o "Openbox". Para configurar um ícone para uma entrada no menu, edite "~/.config/openbox/menu.xml" e adicione um ícone à marca <item>, assim:

<item label="Mplayer" icon="/usr/share/pixmaps/mplayer.png">

Muitos outros aspectos do comportamento do "Openbox" são configurados com "~/.config/openbox/rc.xml", como quais atalhos de teclado são usados para iniciar aplicativos ou qual botão do mouse inicia o menu principal.

Detalhes do tema que o "Openbox" aplica às decorações de janelas são configurados em "~/.config/openbox/rc.xml". Você consegue obter uma lista dos temas disponíveis com o comando:

ls -d /usr/share/themes/*/openbox-3 | sed 's#.*es/##;s#/o.*##'

Iniciando Openbox

Para iniciar automaticamente o "openbox" quando você iniciar o "Xorg":

echo openbox > ~/.xinitrc

Se quiser configurar uma imagem de plano de fundo para a tua área de trabalho, [então] você pode usar o "display" e iniciá-lo a partir de "~/.xinitrc" logo antes do "openbox":

cat > ~/.xinitrc << "EOF"
display -backdrop -window root /caminho/para/maravilhosa/fotografia.jpeg
exec openbox
EOF

Ou, se você gosta de um pouco de variedade, [então] coloque uma seleção de imagens em uma pasta (neste exemplo, o diretório "~/.config/backgrounds") e escolha uma aleatoriamente cada vez que você acionar o "xinit":

cat > ~/.xinitrc << "EOF"
# crie um vetor que liste as fotografias:
picture_list=(~/.config/backgrounds/*)
# crie um número inteiro aleatório entre zero e o número de fotografias:
random_number=$(( ${RANDOM} % ${#picture_list[@]} ))
# exibir a fotografia escolhida:
display -backdrop -window root "${picture_list[${random_number}]}"
exec openbox
EOF

Se você deseja ter a chave "numlock" configurada quando iniciar o "Xorg", [então] instale o "Numlockx" e adicione-o ao teu "xinitrc". Outra aplicação útil é o "dbus-1.16.0":

cat > ~/.xinitrc << "EOF"
. /etc/profile
picture_list=(~/.config/backgrounds/*)
random_number=$(( ${RANDOM} % ${#picture_list[*]} ))
display -backdrop -window root "${picture_list[${random_number}]}"
numlockx
eval $(dbus-launch --auto-syntax --exit-with-session)
lxpanel &
exec openbox
EOF

Conteúdo

Aplicativos Instalados: gdm-control, gnome-panel-control, obxprop, openbox, openbox-gnome-session, openbox-kde-session e openbox-session
Bibliotecas Instaladas: libobrender.so e libobt.so
Diretórios Instalados: /etc/xdg/openbox, /usr/include/openbox, /usr/share/doc/openbox-3.6.1 e /usr/share/themes.

Descrições Curtas

gdm-control

é uma ferramenta de linha de comando para enviar sinais para o "GDM"

gnome-panel-control

é um utilitário de linha de comando para invocar a caixa de diálogo/menu de execução do "Gnome Panel"

obxprop

é uma ferramenta para exibir as propriedades em uma janela do "X". Ela tem uma funcionalidade semelhante ao "xprop", mas te permite ver sequências de caracteres "UTF-8" como texto

openbox

é um gerenciador de janelas compatível com padrões e altamente configurável

openbox-gnome-session

é um conjunto de comandos sequenciais para iniciar uma sessão do "Gnome" com o "Openbox" como teu gerenciador de janelas a partir de teu "~/.xinitrc"

openbox-kde-session

é um conjunto de comandos sequenciais para iniciar uma sessão do "KDE" com o "Openbox" como teu gerenciador de janelas a partir de teu "~/.xinitrc"

openbox-session

é um conjunto de comandos sequenciais para iniciar uma sessão do "Openbox" a partir de teu "~/.xinitrc"

libobrender.so

contém as funções usadas pelo "Openbox" para renderização de temas

libobt.so

é a biblioteca do kit de ferramentas do "Openbox"

Capítulo 28. Ícones

Gerenciadores de Janelas e Ambientes de Área de Trabalho conseguem usar ícones provenientes de diferentes fontes. Geralmente os ícones são instalados em "/usr/share/icons" e são independentes da distribuição.

adwaita-icon-theme-47.0

Introdução ao Tema de Ícones Adwaita

O pacote Tema de Ícones Adwaita contém um tema de ícones para aplicativos GTK+ 3 e GTK 4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Tema de Ícone Adwaita"

Exigidas

GTK-3.24.48 ou GTK-4.16.12 e librsvg-2.59.2

Opcionais

git-2.48.1, Inkscape-1.4 e Ferramentas de Ícones

Instalação do Tema de Ícones Adwaita

Instale o "Tema de Ícone Adwaita" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Remova quaisquer ícones antigos e instale os novos. Como o(a) usuário(a) root:

rm -rf /usr/share/icons/Adwaita/ &&
ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/icons/Adwaita

breeze-icons-6.11.0

Introdução ao Ícones Breeze

O pacote Ícones Breeze contém os ícones padrão para aplicativos KDE Plasma, mas pode ser usado para outros ambientes de janela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Ícones Breeze"

Exigidas

extra-cmake-modules-6.11.0 e Qt-6.8.2

Opcionais

KDE Frameworks-6.11.0, libxml2-2.13.6 e lxml-5.3.1

Instalação do Ícones Breeze

Instale o "Ícones Breeze" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_TESTING=OFF         \
      -W no-dev ..

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D BUILD_TESTING=OFF: Esse parâmetro desabilita construir a estrutura essencial de suporte de testes, a qual exige alguns módulos originários do KDE Frameworks-6.11.0.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/icons/breeze{,-dark}

gnome-icon-theme-3.12.0

Introdução ao Tema de Ícones do GNOME

O pacote "Tema de Ícone do GNOME" contém uma variedade de ícones não escaláveis de diferentes tamanhos e temas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Tema de Ícone do GNOME"

Exigidas

GTK-3.24.48, hicolor-icon-theme-0.18 e icon-naming-utils-0.8.90

Instalação do Tema de Ícones do GNOME

Instale o "Tema de Ícone do GNOME" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/icons/gnome

gnome-icon-theme-extras-3.12.0

Introdução ao Extras do Tema de Ícones do GNOME

O pacote "Extras do Tema de Ícone do GNOME" contém ícones extras para a Área de Trabalho do "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Extras do Tema de Ícone do GNOME"

Exigidas

gnome-icon-theme-3.12.0

Opcionais

git-2.48.1 e Inkscape-1.4

Instalação do Extras do Tema de Ícones do GNOME

Instale o "Extras do Tema de Ícone do GNOME" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

gnome-icon-theme-symbolic-3.12.0

Introdução ao Tema de Ícones Simbólico do GNOME

O pacote "Simbólico do Tema de Ícone do GNOME" contém ícones simbólicos para o tema de ícone padrão do "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Simbólico do Tema de Ícone do GNOME"

Exigidas

gnome-icon-theme-3.12.0

Opcionais

git-2.48.1 e Inkscape-1.4

Instalação do Tema de Ícones Simbólico do GNOME

Instale o "Simbólico do Tema de Ícone do GNOME" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/icons/gnome/scalable

gnome-themes-extra-3.28

Introdução ao Extra dos Temas do GNOME

O pacote "Extra dos Temas do GNOME", anteriormente conhecido como "Padrão dos Temas do GNOME", contém vários componentes do tema padrão do "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Extra dos Temas do GNOME"

Exigidas

GTK-3.24.48 com librsvg-2.59.2

Instalação do Extra dos Temas do GNOME

Instale o "Extra dos Temas do GNOME" executando os seguintes comandos:

./configure --prefix=/usr --disable-gtk2-engine &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-gtk2-engine: Essa chave desabilita o mecanismo de tema do GTK+-2 porque GTK+-2 não mais é parte do BLFS.

--disable-gtk3-engine: Essa chave desabilita o mecanismo de tema do "GTK+-3".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/icons/HighContrast, /usr/share/themes/Adwaita, /usr/share/themes/Adwaita-dark e /usr/share/themes/HighContrast

hicolor-icon-theme-0.18

Introdução ao hicolor-icon-theme

O pacote "hicolor-icon-theme" contém um tema substituto padrão para implementações da especificação do tema de ícones.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do hicolor-icon-theme

Instale o "hicolor-icon-theme" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/icons/hicolor

Descrições Curtas

/usr/share/icons/hicolor/*

contém definições de ícones usadas como padrão

icon-naming-utils-0.8.90

Introdução ao icon-naming-utils

O pacote "icon-naming-utils" contém um conjunto de comandos sequenciais "Perl" usado para manter a compatibilidade retroativa com os atuais temas de ícones de área de trabalho, enquanto migra para os nomes especificados na Especificação de Nomenclatura de Ícones.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "icon-naming-utils"

Exigidas

XML-Simple-2.25

Instalação do icon-naming-utils

Instale o "icon-naming-utils" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: icon-name-mapping
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/dtds e /usr/share/icon-naming-utils

Descrições Curtas

icon-name-mapping

é um conjunto de comandos sequenciais "Perl" usado para manter a compatibilidade retroativa com os atuais temas de ícones de área de trabalho, enquanto migra para os nomes especificados na "Especificação de Nomenclatura de Ícones"

lxde-icon-theme-0.5.1

Introdução ao Tema de Ícones do LXDE

O pacote "Tema de Ícone do LXDE" contém o Tema de Ícone "nuoveXT 2.2" para o "LXDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Tema de Ícone do LXDE"

Opcionais

GTK-3.24.48 (para o comando gtk-update-icon-cache)

Instalação do Tema de Ícones do LXDE

Instale o "Tema de Ícone do LXDE" executando os seguintes comandos:

./configure --prefix=/usr

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Se você tiver instalado uma das dependências opcionais, [então] execute o seguinte comando como o(a) usuário(a) "root":

gtk-update-icon-cache -qf /usr/share/icons/nuoveXT2

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/icons/nuoveXT2

oxygen-icons-6.0.0

Introdução ao oxygen-icons

O tema dos ícones do oxygen é um estilo de ícone fotorrealista, com um alto padrão de qualidade gráfica.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do oxygen-icons

Exigidas

extra-cmake-modules-6.11.0 e Qt-6.8.2

Instalação do oxygen-icons

Primeiro, habilite ícones escalonáveis:

sed -i '/( oxygen/ s/)/scalable )/' CMakeLists.txt

Instale oxygen-icons executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr -W no-dev ..

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: nenhum(a)
Bibliotecas Instaladas: nenhum(a)
Diretório Instalado: /usr/share/icons/oxygen

Parte VII. KDE

O "KDE" é um ambiente de área de trabalho abrangente com um grande número de aplicativos escritos para ele e uma grande quantidade de usuários(as). Ele é baseado na estrutura essencial de suporte "Qt".

Para mais informações, visite o sítio oficial do projeto "KDE" em https://kde.org/.

Capítulo 29. Introdução ao KDE

Preliminares do KDE

O "KDE" é um ambiente de área de trabalho abrangente com um grande número de aplicativos escritos para ele e uma grande quantidade de usuários(as). Ele é baseado na estrutura essencial de suporte "Qt".

O sistema KDE6 tem dois blocos principais: as bibliotecas, chamadas Frameworks 6 ou KF6 do KDE, as quais podem ser usadas em outros ambientes; e o ambiente de área de trabalho, chamado Plasma 6 do KDE. A maioria dos aplicativos escritos pela equipe do KDE usa somente o KF6, e não precisa do ambiente Plasma.

Para mais informações, visite o sítio oficial do projeto "KDE" em https://kde.org/.

extra-cmake-modules-6.11.0

Introdução aos Módulos Extras do Cmake

O pacote Módulos Extras do Cmake contém módulos extras do CMake usados pelo KDE Frameworks e outros pacotes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Módulos Extras do Cmake"

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

sphinx-8.2.1 (para construir documentação), PyQt (suporte experimental para construir ligações Python do KDE) e ReuseTool (para executar testes internos)

Instalação dos Módulos Extras do Cmake

Instale o "Módulos Extras do Cmake" executando os seguintes comandos:

sed -i '/"lib64"/s/64//' kde-modules/KDEInstallDirsCommon.cmake &&

sed -e '/PACKAGE_INIT/i set(SAVE_PACKAGE_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")' \
    -e '/^include/a set(PACKAGE_PREFIX_DIR "${SAVE_PACKAGE_PREFIX_DIR}")' \
    -i ECMConfig.cmake.in &&

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr -D BUILD_WITH_QT6=ON .. &&
make

Esse pacote não vem com uma suíte de teste.

Nota

Ao contrário de outros pacotes KF6, esse módulo é instalado em /usr, pois ele pode ser usado por alguns pacotes não KF6.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed ... Modules/KDEInstallDirs.cmake: Esse comando desabilita as aplicações que usam o "cmake" de tentarem instalar arquivos em um sub diretório "lib64".

sed ... ECMConfig.cmake.in: Esse comando protege a variável global do cmake PACKAGE_PREFIX_DIR de ser mudada ao verificar a presença do ECM: desde que instalamos o ECM em /usr, a verificação configuraria essa variável como /usr, enquanto a maioria dos pacotes do KDE espera que ela esteja configurada como /opt/kf6 e falharia para construir se estivesse configurada para outra coisa.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/ECM e /usr/share/doc/ECM (se a documentação foi construída)

Phonon-4.12.0

Introdução ao Phonon

Phonon é a API multimídia do KDE. Ela substitui o antigo pacote aRts. Phonon precisa da estrutura de retaguarda VLC.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Phonon"

Exigidas

CMake-3.31.5, extra-cmake-modules-6.11.0, GLib-2.82.5 e Qt-6.8.2

phonon-backend-vlc-0.12.0 precisa ser instalado posteriormente para operação multimídia no KDE.

Opcionais

PulseAudio-17.0

Instalação do Phonon

Instale o "Phonon" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D PHONON_BUILD_QT5=OFF      \
      -W no-dev .. &&
make

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-D PHONON_BUILD_QT5=OFF: Essa chave é necessária para evitar construir as ligações Qt5, que falham se Qt5 não estiver instalado.

Conteúdo

Aplicativos Instalados: phononsettings
Bibliotecas Instaladas: libphonon4qt6.so e libphonon4qt6experimental.so
Diretórios Instalados: /usr/include/phonon4qt6, /usr/lib/cmake/phonon4qt6 e /usr/lib/plugins/designer

Phonon-backend-vlc-0.12.0

Introdução ao Phonon-backend-vlc

Esse pacote fornece uma estrutura de retaguarda do "Phonon" que utiliza a estrutura essencial de suporte de mídia do "VLC".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Phonon-backend-vlc"

Exigidas

phonon-4.12.0 e VLC-3.0.21 (GUI não é necessária)

Instalação do Phonon-backend-vlc

Instale o "Phonon-backend-vlc" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D PHONON_BUILD_QT5=OFF      \
      .. &&
make

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativo Instalado: nenhum(a)
Bibliotecas Instaladas: phonon_vlc_qt6.so
Diretório Instalado: /usr/lib/plugins/phonon4qt6_backend

Polkit-Qt-0.200.0

Introdução ao Polkit-Qt

"Polkit-Qt" fornece uma "API" para "PolicyKit" no ambiente "Qt".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Polkit-Qt"

Exigidas

CMake-3.31.5, Polkit-126 e Qt-6.8.2

Instalação do Polkit-Qt

Instale o "Polkit-Qt" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D QT_MAJOR_VERSION=6        \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativos Instalados: nenhum(a)
Bibliotecas Instaladas: libpolkit-qt6-agent-1.so, libpolkit-qt6-core-1.so e libpolkit-qt6-gui-1.so
Diretórios Instalados: /usr/include/polkit-qt6-1 e /usr/lib/cmake/PolkitQt6-1

plasma-wayland-protocols-1.16.0

Introdução ao Plasma-wayland-protocols

Esse pacote fornece um conjunto personalizado de definições de protocolo para o "KDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do "Plasma-wayland-protocols"

Exigidas

extra-cmake-modules-6.11.0

Instalação do Plasma-wayland-protocols

Instale o "Plasma-wayland-protocols" executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr ..

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: nenhum(a)
Bibliotecas Instaladas: nenhum(a)
Diretórios Instalados: /usr/share/plasma-wayland-protocols e /usr/lib/cmake/PlasmaWaylandProtocols

Capítulo 30. KDE Frameworks 6

Configuração de Pré-instalação do KDE Frameworks 6

KF6 pode ser instalado em /usr ou /opt/kf6. Os(As) editores(as) do BLFS recomendam o último no ambiente do BLFS.

Instalando in /usr

Uma opção é a de instalar KDE Frameworks na hierarquia /usr. Isso cria uma configuração mais simples, mas torna mais difícil testar múltiplas versões do KDE Frameworks.

export KF6_PREFIX=/usr

É uma boa ideia adicionar as seguintes variáveis aos teus perfis de sistema ou pessoal:

cat >> /etc/profile.d/qt6.sh << "EOF"
# Begin kf6 extension for /etc/profile.d/qt6.sh

pathappend /usr/lib/plugins        QT_PLUGIN_PATH
pathappend $QT6DIR/lib/plugins     QT_PLUGIN_PATH

pathappend /usr/lib/qt6/qml        QML2_IMPORT_PATH
pathappend $QT6DIR/lib/qml         QML2_IMPORT_PATH

# End extension for /etc/profile.d/qt6.sh
EOF

cat > /etc/profile.d/kf6.sh << "EOF"
# Begin /etc/profile.d/kf6.sh

export KF6_PREFIX=/usr

# End /etc/profile.d/kf6.sh
EOF

Nota

Se qt6 foi instalado em /usr, as porções $QT6DIR/lib/ dos caminhos acima possivelmente precisem ser mudadas para $QT6DIR/lib/qt6/.

Adicionalmente, se Sudo-1.9.16p2 estiver instalado, essas variáveis deveriam estar disponíveis para o(a) superusuário(a). Execute os seguintes comandos como o(a) usuário(a) root:

cat >> /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT_PLUGIN_PATH
Defaults env_keep += QML2_IMPORT_PATH
EOF

cat >> /etc/sudoers.d/kde << "EOF"
Defaults env_keep += KF6_PREFIX
EOF

Instalando em /opt

Um método de construir múltiplas versões instala KDE Frameworks na hierarquia /opt:

export KF6_PREFIX=/opt/kf6

Se você não estiver instalando KDE Frameworks em /usr, você precisará fazer algumas mudanças adicionais de configuração. A melhor prática é a de adicioná-las ao teu perfil de sistema ou pessoal:

cat > /etc/profile.d/kf6.sh << "EOF"
# Begin /etc/profile.d/kf6.sh

export KF6_PREFIX=/opt/kf6

pathappend $KF6_PREFIX/bin              PATH
pathappend $KF6_PREFIX/lib/pkgconfig    PKG_CONFIG_PATH

pathappend $KF6_PREFIX/etc/xdg          XDG_CONFIG_DIRS
pathappend $KF6_PREFIX/share            XDG_DATA_DIRS

pathappend $KF6_PREFIX/lib/plugins      QT_PLUGIN_PATH
pathappend $KF6_PREFIX/lib/plugins/kcms QT_PLUGIN_PATH

pathappend $KF6_PREFIX/lib/qml          QML2_IMPORT_PATH

pathappend $KF6_PREFIX/lib/python3.13/site-packages PYTHONPATH

pathappend $KF6_PREFIX/include          CPLUS_INCLUDE_PATH
# End /etc/profile.d/kf6.sh
EOF

cat >> /etc/profile.d/qt6.sh << "EOF"
# Begin Qt6 changes for KF6

pathappend /usr/lib/plugins            QT_PLUGIN_PATH
pathappend $QT6DIR/plugins             QT_PLUGIN_PATH
pathappend $QT6DIR/qml                 QML2_IMPORT_PATH

# End Qt6 changes for KF6
EOF

Expanda teu arquivo /etc/ld.so.conf:

cat >> /etc/ld.so.conf << "EOF"
# Begin KF6 addition

/opt/kf6/lib

# End KF6 addition
EOF

Vários pacotes do KDE Frameworks e do Plasma instalam arquivos nos diretórios do D-Bus e do Polkit. Ao instalar KDE Frameworks em um local diferente de /usr, D-Bus e Polkit precisam ser capazes de encontrar esses arquivos. A maneira mais fácil de conseguir isso é a de criar os seguintes links simbólicos (como o(a) usuário(a) root):

install -v -dm755           $KF6_PREFIX/{etc,share} &&
ln -sfv /etc/dbus-1         $KF6_PREFIX/etc         &&
ln -sfv /usr/share/dbus-1   $KF6_PREFIX/share       &&
ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share

Alguns pacotes também possivelmente instalem ícones provenientes do conjunto de ícones "hicolor". Como esse conjunto de ícones é usado por muitos pacotes, é uma boa ideia criar um link simbólico para aquele em /usr/share, para se evitar ter múltiplas instalações de hicolor-icon-theme-0.18. Execute os seguintes comandos como o(a) usuário(a) root:

install -v -dm755                $KF6_PREFIX/share/icons &&
ln -sfv /usr/share/icons/hicolor $KF6_PREFIX/share/icons

Dica

Ocasionalmente, os caminhos de instalação estão rigidamente codificados nos arquivos instalados. Essa é a razão pela qual /opt/kf6 é usado como prefixo de instalação em vez de /opt/kf6-6.11.0. Depois de instalar KDE Frameworks, você pode renomear o diretório e criar um link simbólico:

mv /opt/kf6{,-6.11.0}
ln -sfv kf6-6.11.0 /opt/kf6

Mais tarde, você poderá querer instalar outras versões do KDE Frameworks. Para fazer isso, basta remover o link simbólico e usar /opt/kf6 como o prefixo novamente. Qual versão do KDE Frameworks você usa depende somente de onde o link simbólico aponta. Nenhuma outra reconfiguração será necessária.

Construindo KDE Frameworks 6.11.0 (KF6)

KDE Frameworks é uma coleção de bibliotecas baseadas em Qt6 e QML derivadas a partir de bibliotecas anteriores do KDE. Elas podem ser usadas independentemente do ambiente de exibição do KDE (Plasma 6).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

As instruções abaixo constroem todos os pacotes do KDE Frameworks em uma etapa, usando um conjunto de comandos sequenciais do bash.

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Veja-se Abaixo

  • Tamanho da transferência: 108 MB

  • Espaço em disco estimado exigido: 2,9 GB (188 MB instalado)

  • Tempo de construção estimado: 12 UPC (usando paralelismo = 8)

Dependências de KF6

Exigidas

extra-cmake-modules-6.11.0, breeze-icons-6.11.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, libcanberra-0.30, libgcrypt-1.11.0, libical-3.0.19, libxslt-1.1.42, lmdb-0.9.31, qca-2.3.9, qrencode-4.1.1, plasma-wayland-protocols-1.16.0, PyYAML-6.0.2, shared-mime-info-2.4, URI-5.31 e Wget-1.25.0 (exigido para baixar os pacotes)

Recomendadas
Opcionais

BlueZ-5.79 (necessário para construir Bluez-Qt) e Datamatrix (considerado recomendado para Prison pelo fluxo de desenvolvimento)

Dependência de tempo de execução para FrameworkIntegration

Fontes Noto

Dependências adicionais recomendadas para kapidox
Suporte a formatos adicionais de imagem no KImageFormats

libavif-1.2.0, libjxl-0.11.1, libraw-0.21.3, libheif, OpenEXR

Dependências opcionais para Solid

UDisks-2.10.1, UPower-1.90.7 e media-player-info (tempo de execução)

Dependência opcional para KWallet

GPGME-1.24.2, construído com ligações C++ (o que é o padrão).

Estruturas de retaguarda opcionais de dicionário para Sonnet

Hspell e Hunspell

Baixando KDE Frameworks

A maneira mais fácil de obter os pacotes do KDE Frameworks é a de usar um wget para buscá-los todos de uma vez:

url=https://download.kde.org/stable/frameworks/6.11/
wget -r -nH -nd -A '*.xz' -np $url

The options used here are:
  -r            recurse through child directories
  -nH           disable generation of host-prefixed directories
  -nd           do not create a hierarchy of directories
  -A '*.xz'     just get the *.xz files
  -np           don't get parent directories

Configurando a Ordem do Pacote

A ordem de construção dos arquivos é importante devido às dependências internas. Crie a lista de arquivos na ordem correta conforme segue:

cat > frameworks-6.11.0.md5 << "EOF"
9359cfb89031abeeff8616d73e161415  attica-6.11.0.tar.xz
#22bce8bd85c1ead07bda8a00518d1120  extra-cmake-modules-6.11.0.tar.xz
647b2f9cfd55930e86ebb8c1734df140  kapidox-6.11.0.tar.xz
20c3fbf44d196d578bf9b76d0631a1ad  karchive-6.11.0.tar.xz
4b4af41ab285dda00a660b34e21e2f8c  kcodecs-6.11.0.tar.xz
b0e4142ee55abf3cb38fe6cdf5a0fe71  kconfig-6.11.0.tar.xz
6fa75ef6c2e9ce2fc9b7fb7f77e8db53  kcoreaddons-6.11.0.tar.xz
2ee71003f7887b6ac6646abd134e23ba  kdbusaddons-6.11.0.tar.xz
ead6114916c7aa01a8f6c3965315e9ec  kdnssd-6.11.0.tar.xz
7679bb9a2a0e817f9660ec775f93dc04  kguiaddons-6.11.0.tar.xz
27a6809407ea64c9db9bbb595cfe1282  ki18n-6.11.0.tar.xz
16d30e56e423668c27bfcbd2425a19da  kidletime-6.11.0.tar.xz
4f035f9b0466e297bd95ee57eb53f820  kimageformats-6.11.0.tar.xz
7e48fb5e56bcedff3281d64115d85699  kitemmodels-6.11.0.tar.xz
df934558aaa739a50b16677a3cdc97f7  kitemviews-6.11.0.tar.xz
cbe17f3ad215492a6d3d60d1b161a056  kplotting-6.11.0.tar.xz
85234f0053b4cf6ac5492ba92db2d648  kwidgetsaddons-6.11.0.tar.xz
0fe4524579013c8e9fcf7adf43ea844e  kwindowsystem-6.11.0.tar.xz
72fbceb5e5b990d501a1ba3684c78ad0  networkmanager-qt-6.11.0.tar.xz
05d5c3b1277129f4e5fa1e3db9077e10  solid-6.11.0.tar.xz
cc92475aacad8a29de2029e6483ff0b2  sonnet-6.11.0.tar.xz
5236898e85ea7b2b8124ffe21e2e8a51  threadweaver-6.11.0.tar.xz
efe35421eb54433599bb5724bd4b2312  kauth-6.11.0.tar.xz
33067f4f53c2e0e0da9d1324f01af19a  kcompletion-6.11.0.tar.xz
1562644115cb4a3d8f5e847c196a6e1b  kcrash-6.11.0.tar.xz
52d5e6b18613fd23ba09d05459812062  kdoctools-6.11.0.tar.xz
0cadf6b126b5ed62393b99146bbdaec9  kpty-6.11.0.tar.xz
6d306e6f78769cb8405f909e26db3d76  kunitconversion-6.11.0.tar.xz
b0a6afbdee57b249771017be13b5e9cf  kcolorscheme-6.11.0.tar.xz
b2c09a5d3fdcfa3c7fc88617590ac694  kconfigwidgets-6.11.0.tar.xz
71abec8311c27c7b3f8652da220011b8  kservice-6.11.0.tar.xz
357c4a01badb564c4a66ce3503bb7493  kglobalaccel-6.11.0.tar.xz
772720c4f1b51589abd1964750ef96e6  kpackage-6.11.0.tar.xz
6de72206275db095889d5ef02ecfeaae  kdesu-6.11.0.tar.xz
f7c14bb2f32943060553c517956bcd36  kiconthemes-6.11.0.tar.xz
3a502ab55f0ca2f1a5e5ab69de951932  knotifications-6.11.0.tar.xz
e3056aadf29ca9a09f015632f5c851d8  kjobwidgets-6.11.0.tar.xz
fe6ac2b10dcadad94e2b54dfd8788fc1  ktextwidgets-6.11.0.tar.xz
cbecf5de939fa3c2340abf4c1c34a550  kxmlgui-6.11.0.tar.xz
83d780dba76ffdb59b119513a94cfaa0  kbookmarks-6.11.0.tar.xz
c69002e34487b8182a7b248265846a8f  kwallet-6.11.0.tar.xz
e68dc289e81b20bf781ca7920133ae37  kded-6.11.0.tar.xz
76a597b191d8a1ff103dec70137635a7  kio-6.11.0.tar.xz
092619893a0c6e0e9e735e2396f9518b  kdeclarative-6.11.0.tar.xz
90434f367fce9f8ea1cfaccc4642efef  kcmutils-6.11.0.tar.xz
c12b36fecb8f26b48d793fe7e3a29405  kirigami-6.11.0.tar.xz
3227ac57ecdaed4c0d4c6b6b48b81ac4  syndication-6.11.0.tar.xz
096b9d761ee2997f34de83a9cee5062d  knewstuff-6.11.0.tar.xz
e5ba9f692c12dc7f3f4e2291aca802d7  frameworkintegration-6.11.0.tar.xz
138bf9e51cadd7381a9de428345c78c2  kparts-6.11.0.tar.xz
f75164871c6e7594f81c71d0849f90d3  syntax-highlighting-6.11.0.tar.xz
5ece9440ecedae18706884501e8deae4  ktexteditor-6.11.0.tar.xz
cc4b04c3c42a54259d704534b083f991  modemmanager-qt-6.11.0.tar.xz
fb993807e86e8f1679a6ea59aed71c1e  kcontacts-6.11.0.tar.xz
1545793a6da6d4b67f42959dc49d4cef  kpeople-6.11.0.tar.xz
e55224a99439e7bb1abf7eab2cd2ef75  bluez-qt-6.11.0.tar.xz
43e1dba98100aebf27297815a0fb8296  kfilemetadata-6.11.0.tar.xz
5e4b41a45872794d45038ca66125cbf8  baloo-6.11.0.tar.xz
#8989043ad5c6bae49cb2abb3e88490aa  breeze-icons-6.11.0.tar.xz
d336f55f2747377d0b8f388263749fe4  krunner-6.11.0.tar.xz
5291071632d3296b6d1201622fe1f54e  prison-6.11.0.tar.xz
eb72c496e3e6ba0ea66aa96a81683491  qqc2-desktop-style-6.11.0.tar.xz
89a6c13f89e6ac7ae5cd36c28ea51ba4  kholidays-6.11.0.tar.xz
0f72d877a62f5697c08c3649d0dc61cc  purpose-6.11.0.tar.xz
268c7ca1ba88d7cd544914760d1862a6  kcalendarcore-6.11.0.tar.xz
3b5c13512812315c913e936d8c14298d  kquickcharts-6.11.0.tar.xz
29c0bab2e75f093cbfb1630f349959a3  knotifyconfig-6.11.0.tar.xz
eb41b80c24a0768b915dab171d3db5c3  kdav-6.11.0.tar.xz
56e50e418a25fd981a11553f0e313800  kstatusnotifieritem-6.11.0.tar.xz
1e757bef30a30391eafe34ac06b5d281  ksvg-6.11.0.tar.xz
cdb940239552ee0c70fab32f496bc592  ktexttemplate-6.11.0.tar.xz
ee50bf09b87548e416b60826b6086041  kuserfeedback-6.11.0.tar.xz
EOF

Na lista acima, observe que alguns arquivos foram comentados com um caractere cerquilha (#).

Instalação do KDE Frameworks

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Cuidado

Se instalar em /opt e existir um /opt/kf6 existente ou como um diretório regular ou como um link simbólico, ele deveria ser reinicializado (como root):

mv -v /opt/kf6 /opt/kf6.old                         &&
install -v -dm755           $KF6_PREFIX/{etc,share} &&
ln -sfv /etc/dbus-1         $KF6_PREFIX/etc         &&
ln -sfv /usr/share/dbus-1   $KF6_PREFIX/share       &&
ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

while read -r line; do

    # Get the file name, ignoring comments and blank lines
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')          # Remove directory
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory

    name=$(echo $pkg|sed 's|-6.*$||') # Isolate package name

    tar -xf $file
    pushd $packagedir

      # kapidox is a python module
      case $name in
        kapidox)
          pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
          as_root pip3 install --no-index --find-links dist --no-user kapidox
          popd
          rm -rf $packagedir
          continue
          ;;
      esac

      mkdir build
      cd    build

      cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
            -D CMAKE_INSTALL_LIBEXECDIR=libexec \
            -D CMAKE_PREFIX_PATH=$QT6DIR        \
            -D CMAKE_SKIP_INSTALL_RPATH=ON      \
            -D CMAKE_BUILD_TYPE=Release         \
            -D BUILD_TESTING=OFF                \
            -W no-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-6.11.0.md5

exit

Nota

Quaisquer módulos que tenham sido omitidos podem ser instalados posteriormente usando-se o mesmo procedimento mkdir build; cd build; cmake; make; make install conforme acima.

Unidades do systemd inúteis foram instaladas em $KF6_PREFIX/lib. Remova-as agora (como root):

rm -rf $KF6_PREFIX/lib/systemd

Ocasionalmente, os caminhos de instalação estão rigidamente codificados nos arquivos instalados. Se o diretório instalado não for /usr, renomeie o diretório e crie um link simbólico:

mv -v /opt/kf6 /opt/kf6-6.11.0
ln -sfvn kf6-6.11.0 /opt/kf6

Explicações do Comando

-D CMAKE_PREFIX_PATH=$QT6DIR: Essa chave é usada para permitir que cmake encontre as bibliotecas Qt adequadas.

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-D BUILD_TESTING=OFF: Essa chave é usada para evitar construir aplicativos de teste e bibliotecas que não são de uso para um(a) usuário(a) final.

Conteúdo

Aplicativos Instalados: balooctl, baloo_file, baloo_file_extractor, baloosearch, balooshow, checkXML6, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca6, kcookiejar6, kdebugdialog6, kded6, kdeinit6, kdeinit6_shutdown, kdeinit6_wrapper, kf6-config, kf6kross, kgendesignerplugin, kglobalaccel6, kiconfinder6, kjs6, kjscmd6, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool6, kquitapp6, kreadconfig6, kshell6, ktelnetservice6, ktrash6, kwalletd6, kwallet-query, kwrapper6, kwriteconfig6, meinproc6, parsetrigrams, plasmapkg2, preparetips6, protocoltojson e solid-hardware6
Bibliotecas Instaladas: libkdeinit6_klauncher.so, libKF6Activities.so, libKF6ActivitiesStats.so, libKF6Archive.so, libKF6Attica.so, libKF6AuthCore.so, libKF6Auth.so, libKF6Baloo.so, libKF6BluezQt.so, libKF6Bookmarks.so, libKF6CalendarCore.so, libKF6CalendarEvents.so, libKF6Codecs.so, libKF6Completion.so, libKF6ConfigCore.so, libKF6ConfigGui.so, libKF6ConfigWidgets.so, libKF6Contacts.so, libKF6CoreAddons.so, libKF6Crash.so, libKF6DAV.so, libKF6DBusAddons.so, libKF6Declarative.so, libKF6DNSSD.so, libKF6DocTools.so, libKF6Emoticons.so, libKF6FileMetaData.so, libKF6GlobalAccel.so, libKF6GuiAddons.so, libKF6Holidays.so, libKF6I18n.so, libKF6IconThemes.so, libKF6IdleTime.so, libKF6ItemModels.so, libKF6ItemViews.so, libKF6JobWidgets.so, libKF6JSApi.so, libKF6JsEmbed.so, libKF6JS.so, libKF6KCMUtils.so, libKF6KDELibs4Support.so, libKF6KHtml.so, libKF6KIOCore.so, libKF6KIOFileWidgets.so, libKF6KIOGui.so, libKF6KIONTLM.so, libKF6KIOWidgets.so, libKF6Kirigami2.so, libKF6KrossCore.so, libKF6KrossUi.so, libKF6MediaPlayer.so, libKF6NetworkManagerQt.so, libKF6NewStuffCore.so, libKF6NewStuff.so, libKF6Notifications.so, libKF6NotifyConfig.so, libKF6Package.so, libKF6Parts.so, libKF6PeopleBackend.so, libKF6People.so, libKF6PeopleWidgets.so, libKF6PlasmaQuick.so, libKF6Plasma.so, libKF6Plotting.so, libKF6Prison.so, libKF6Pty.so, libKF6Purpose.so, libKF6PurposeWidgets.so, libKF6QuickAddons.so, libKF6Runner.so, libKF6Service.so, libKF6Solid.so, libKF6SonnetCore.so, libKF6SonnetUi.so, libKF6Style.so, libKF6Su.so, libKF6SyntaxHighlighting.so, libKF6TextEditor.so, libKF6TextWidgets.so, libKF6ThreadWeaver.so, libKF6UnitConversion.so, libKF6Wallet.so, libKF6WaylandClient.so, libKF6WaylandServer.so, libKF6WidgetsAddons.so, libKF6WindowSystem.so, libKF6XmlGui.so, libKF6XmlRpcClient.so e libkwalletbackend6.so
Diretórios Instalados: /opt/kf6 (link simbólico para /opt/kf6-6.11.0) se instalar em /opt

Descrições Curtas

checkXML6

é uma ferramenta para verificar erros de sintaxe em arquivos XML DocBook do KDE

depdiagram-generate

é uma ferramenta para gerar um diagrama de dependências

depdiagram-generate-all

é uma ferramenta para gerar um diagrama de dependências para todas as estruturas essenciais de suporte de uma vez

depdiagram-prepare

é uma ferramenta para preparar arquivos de ponto

desktoptojson

é uma ferramenta para converter um arquivo .desktop em um arquivo .json

kbuildsycoca6

reconstrói o cache de configuração do sistema de arquivos da área de trabalho KService

kcookiejar6

é uma interface de linha de comando para o armazenamento de cookies HTTP usado pelo KDE; um serviço do D-BUS para armazenar/recuperar/limpar cookies

kded6

consolida vários pequenos serviços em um processo

kdeinit6

é um iniciador de processos mais ou menos semelhante ao famoso init usado para inicializar o UNIX

kf6-config

é um aplicativo de linha de comando usado para recuperar informações a respeito da instalação do KDE ou de caminhos de usuário(a)

kf6kross

executa conjuntos de comandos sequenciais kross escritos em Javascript, Python, Ruby, Java e Falcon do KDE

kgendesignerplugin

gera plugins de pequena engenhoca para o Qt(TM) Designer

kglobalaccel6

é um processo de segundo plano usado para registrar as combinações de teclas e para ser notificado(a) quando a ação for deflagrada

kjs6

é o mecanismo ECMAScript/JavaScript do KDE

kjscmd6

é uma ferramenta para iniciar conjuntos de comandos sequenciais KJSEmbed a partir da linha de comando

kjsconsole

é um console para kjs6

kpackagelauncherqml

é uma ferramenta de linha de comando para iniciar o aplicativo QML kpackage

kpackagetool6

é uma ferramenta de linha de comando do kpackage

kreadconfig6

é uma ferramenta de linha de comando para recuperar valores a partir dos arquivos de configuração do KDE

kshell6

inicia aplicativos via kdeinit

ktelnetservice6

é um serviço de telnet

ktrash6

é um aplicativo auxiliar para lidar com a lixeira do KDE

kwalletd6

é o processo de segundo plano do gerenciador de carteira

kwriteconfig6

é uma ferramenta de linha de comando para escrever valores nos arquivos de configuração do KDE

meinproc6

converte arquivos DocBook para HTML

plasmapkg2

é uma ferramenta para instalar, listar e remover pacotes Plasma

preparetips6

é um conjunto de comandos sequenciais para extrair o texto a partir de um arquivo de dicas

solid-hardware6

é uma ferramenta de linha de comando para investigar dispositivos disponíveis

Capítulo 31. Aplicativos Baseados no Frameworks 6 do KDE

ark-24.12.2

Introdução ao Ark

O pacote Ark é uma ferramenta de arquivamento KF6. Ela é uma estrutura gráfica de interação direta com o(a) usuário(a) para o tar e ferramentas semelhantes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Ark

Exigidas

KDE Frameworks-6.11.0 e libarchive-3.7.7

Recomendadas

Instalação do Ark

Instale Ark executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: ark
Bibliotecas Instaladas: libkerfuffle.so
Diretórios Instalados: $KF6_PREFIX/lib/plugins/kerfuffle e $KF6_PREFIX/share/doc/HTML/*/ark

Descrições Curtas

ark

é um Gerenciador de Arquivamentos baseado em KF6

dolphin-24.12.2

Introdução ao dolphin

O pacote dolphin é um gerenciador de arquivos do KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do dolphin

Exigidas

KDE Frameworks-6.11.0 e phonon-4.12.0

Opcionais

baloo-widgets (para os recursos de metadados do Dolphin) e packagekit-qt

Opcionais (Tempo de execução)

kio-extras-24.12.2 (para montar compartilhamentos SMB)

Instalação do dolphin

Instale dolphin executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: dolphin
Bibliotecas Instaladas: libdolphinvcs.soe libdolphinprivate.so
Diretórios Instalados: $KF6_PREFIX/include/Dolphin, $KF6_PREFIX/lib/cmake/DolphinVcs, $KF6_PREFIX/lib/plugins/dolphin e $KF6_PREFIX/share/doc/HTML/*/dolphin

Descrições Curtas

dolphin

é um gerenciador de arquivos baseado em KF6

dolphin-plugins-24.12.2

Introdução ao dolphin-plugins

O pacote dolphin-plugins fornece plugins extras para o gerenciador de arquivos dolphin.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do dolphin-plugins

Exigidas

dolphin-24.12.2

Instalação do dolphin-plugins

Instale dolphin-plugins executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: Em $KF6_PREFIX/lib/plugins/dolphin/vcs/: fileviewsvnplugin.so, fileviewgitplugin.so, fileviewbazaarplugin.so, fileviewdropboxplugin.so, fileviewhgplugin.so, makefileactions.so e mountisoaction.so
Diretórios Instalados: None

kdenlive-24.12.2

Introdução ao Kdenlive

O pacote Kdenlive é um editor de vídeos baseado em KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Kdenlive

Exigidas

KDE Frameworks-6.11.0, mlt-7.30.0 e v4l-utils-1.28.1 (tempo de execução)

Recomendadas

Instalação do Kdenlive

Instale Kdenlive executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kdenlive e kdenlive_render
Bibliotecas Instaladas: mltpreview.so
Diretórios Instalados: $KF6_PREFIX/share/doc/HTML/*/kdenlive e $KF6_PREFIX/share/kdenlive

Descrições Curtas

kdenlive

é um editor de vídeos não linear de fonte aberto que suporta um grande número de formatos

kdenlive_render

é um aplicativo renderizador para o "kdenlive"

KMix-24.12.2

Introdução ao KMix

O pacote KMix contém um aplicativo Misturador de Som baseado em KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do KMix

Exigidas

KDE Frameworks-6.11.0

Recomendadas
Opcionais

libcanberra-0.30 e PulseAudio-17.0

Instalação do KMix

Instale KMix executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kmix, kmixctrl e kmixremote
Bibliotecas Instaladas: libkmixcore.so
Diretórios Instalados: $KF6_PREFIX/share/kmix e $KF6_PREFIX/share/doc/HTML/*/kmix

Descrições Curtas

kmix

é um mini misturador de áudio para o KDE

kmixctrl

é usado para salvar ou restaurar as configurações do kmix

kmixremote

é um utilitário para silenciar, obter e configurar níveis de volume

khelpcenter-24.12.2

Introdução ao Khelpcenter

Khelpcenter é um aplicativo para mostrar a documentação dos Aplicativos do KDE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Khelpcenter

Exigidas

KDE Frameworks-6.11.0, libxml2-2.13.6 e xapian-1.4.27

Recomendadas
Opcionais (Tempo de execução)

kio-extras-24.12.2 (para exibir páginas de manual e páginas info)

Instalação do Khelpcenter

Instale khelpcenter executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: khelpcenter
Bibliotecas Instaladas: None
Diretórios Instalados: $KF6_PREFIX/share/khelpcenter, $KF6_PREFIX/share/doc/HTML/*/{khelpcenter,fundamentals,onlinehelp}

Descrições Curtas

khelpcenter

é o visualizador de ajuda para aplicativos do "KDE"

Konsole-24.12.2

Introdução ao Konsole

O pacote Konsole é um emulador de terminal baseado em KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Konsole

Exigidas

KDE Frameworks-6.11.0

Instalação do Konsole

Nota

Em ambientes não Plasma, a barra de rolagem do konsole e a alça dele não aparecem bem. Se desejado, aplique o remendo opcional ao pacote:

patch -Np1 -i ../konsole-24.12.2-scrollbar-1.patch

O remendo torna a barra de rolagem cinza claro com uma pequena borda branca. A alça é cinza escuro. Se desejado, as cores podem ser mudadas a gosto editando-se o remendo.

Instale Konsole executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: konsole e konsoleprofile
Bibliotecas Instaladas: libkdeinit6_konsole.so e libkonsoleprivate.so
Diretórios Instalados: $KF6_PREFIX/share/doc/HTML/*/konsole, $KF6_PREFIX/share/konsole e $KF6_PREFIX/share/kxmlgui6/konsole

Descrições Curtas

konsole

é uma emulação de terminal do X que fornece uma interface de linha de comando

konsoleprofile

é uma ferramenta de linha de comando para mudar as opções de perfil da guia atual

konversation-24.12.2

Introdução ao konversation

O pacote konversation é um cliente IRC baseado em KF6.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do konversation

Exigidas

KDE Frameworks-6.11.0

Instalação do konversation

Instale konversation executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: konversation
Bibliotecas Instaladas: None
Diretórios Instalados: $KF6_PREFIX/share/doc/HTML/*/konversation e $KF6_PREFIX/share/konversation

Descrições Curtas

konversation

é um cliente IRC

libkexiv2-24.12.2

Introdução ao libkexiv2

Libkexiv2 é um involucrador do KDE em torno da biblioteca Exiv2 para manipular metadados de imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libkexiv2

Exigidas

KDE Frameworks-6.11.0 e Exiv2-0.28.5

Instalação do libkexiv2

Instale libkexiv2 executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_WITH_QT6=ON                \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Biblioteca Instalada: libKExiv2Qt6.so
Diretórios Instalados: $KF6_PREFIX/include/KExiv2Qt6 e $KF6_PREFIX/lib/cmake/KExiv2Qt6

plasma-activities-6.3.2

Introdução ao plasma-activities-6.3.2

O aplicativo plasma-activities-6.3.2 fornece componentes centrais para as atividades do KDE. Ele normalmente é construído com Plasma-6.3.2, mas é incluído aqui porque é necessário para okular-24.12.2 e kio-extras-24.12.2 se Plasma-6.3.2 ainda não foi construído.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do plasma-activities

Exigidas

Boost-1.87.0 e KDE Frameworks-6.11.0

Instalação do plasma-activities

Instale plasma-activities executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: plasma-activities-cli6
Bibliotecas Instaladas: libPlasmaActivities.so
Diretórios Instalados: $KF6_PREFIX/include/PlasmaActivities, $KF6_PREFIX/lib/cmake/PlasmaActivities e $KF6_PREFIX/share/share/qlogging-categories6

Descrições Curtas

plasma-activities-cli6

é o gerenciador de atividades para aplicativos do KDE

plasma-activities-stats-6.3.2

Introdução ao plasma-activities-stats-6.3.2

A biblioteca plasma-activities-stats-6.3.2 fornece acesso aos dados de uso coletados pelo sistema KDE Activities. Ela normalmente é construída com Plasma-6.3.2, mas está incluída aqui porque é necessária para kio-extras-24.12.2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do plasma-activities

Exigidas

plasma-activities-6.3.2

Instalação do plasma-activities-stats

Instale plasma-activities-stats executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libPlasmaActivitiesStats.so
Diretórios Instalados: $KF6_PREFIX/include/PlasmaActivitiesStats e $KF6_PREFIX/lib/cmake/PlasmaActivitiesStats

kio-extras-24.12.2

Introdução ao kio-extras

O pacote kio-extras contém componentes adicionais para aumentar a funcionalidade dos recursos e abstrações de acesso à rede de intercomunicação do KDE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do kio-extras

Exigidas

KDE Frameworks-6.11.0, kdsoap-ws-discovery-client-0.4.0, plasma-activities-stats-6.3.2 e qcoro-0.11.0

Recomendadas
Opcionais

libtirpc-1.3.6, Samba-4.21.4, taglib-2.0.2, libappimage, libimobiledevice, libmtp, libplist, libssh e OpenEXR

Instalação do kio-extras

Instale kio-extras executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libkioarchive6.so e 33 plugins
Diretórios Instalados: $KF6_PREFIX/include/KioArchive6, $KF6_PREFIX/lib/cmake/KioArchive6 e $KF6_PREFIX/share/doc/HTML/en/kioworker6

okular-24.12.2

Introdução ao Okular

Okular é um visualizador de documentos para KDE. Ele consegue visualizar documentos de muitos tipos, incluindo PDF, PostScript, TIFF, DjVu, DVI, XPS e ePub.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Okular

Exigidas

KDE Frameworks-6.11.0 e plasma-activities-6.3.2

Recomendadas
Opcionais

qca-2.3.9, discount, DjVuLibre, libspectre, libepub e LibZip

Instalação do Okular

Instale Okular executando os seguintes comandos:

Nota

Se quaisquer das dependências opcionais estiverem instaladas, remova a referência associada na variável de ambiente SKIP_OPTIONAL.

mkdir build &&
cd    build &&

SKIP_OPTIONAL='Discount;DjVuLibre;EPub;LibSpectre;LibZip'

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -D FORCE_NOT_REQUIRED_DEPENDENCIES="$SKIP_OPTIONAL" \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: okular
Biblioteca Instalada: Okular6Core.so
Diretórios Instalados: $KF6_PREFIX/include/okular, $KF6_PREFIX/lib/cmake/Okular6, $KF6_PREFIX/lib/plugins/okular, $KF6_PREFIX/share/okular e $KF6_PREFIX/share/doc/HTML/*/okular

Descrições Curtas

okular

é um visualizador de documentos

libkdcraw-24.12.2

Introdução ao libkdcraw

Libkdcraw é um involucrador do KDE em torno da biblioteca libraw-0.21.3 para manipular metadados de imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libkdcraw

Exigidas

KDE Frameworks-6.11.0 e libraw-0.21.3

Instalação do libkdcraw

Instale libkdcraw executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -D QT_MAJOR_VERSION=6               \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Biblioteca Instalada: libKDcrawQt6.so
Diretórios Instalados: $KF6_PREFIX/include/KDcrawQt6 e $KF6_PREFIX/lib/cmake/KDcrawQt6

gwenview-24.12.2

Introdução ao Gwenview

Gwenview é um visualizador de imagens rápido e fácil de usar para o KDE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Gwenview

Exigidas

Exiv2-0.28.5, kimageannotator-0.7.1, KDE Frameworks-6.11.0 e Little CMS-2.17

Recomendadas
Opcionais

plasma-activities-6.3.2 e CFitsio

Instalação do Gwenview

Instale Gwenview executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: gwenview e gwenview_importer
Bibliotecas Instaladas: libgwenviewlib.so e gvpart.so
Diretórios Instalados: $KF6_PREFIX/share/{gwenview,doc/HTML/*/gwenview}

Descrições Curtas

gwenview

é o visualizador de imagens do KDE

gwenview_importer

é um importador de Fotografias

libkcddb-24.12.2

Introdução ao libkcddb

O pacote "libkcddb" contém uma biblioteca usada para recuperar metadados de "CD" de áudio a partir da Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libkcddb

Exigidas

KDE Frameworks-6.11.0

Recomendadas

Instalação do libkcddb

Instale libkcddb executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -D QT_MAJOR_VERSION=6               \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libKCddb6.so
Diretórios Instalados: $KF6_PREFIX/include/KCddb6 $KF6_PREFIX/lib/cmake/KCddb6 $KF6_PREFIX/share/doc/HTML/*/kcontrol

Descrições Curtas

libKCddb6.so

contém funções usadas para recuperar metadados de CD de áudio a partir da Internet

k3b-24.12.2

Introdução ao K3b

O pacote K3b contém uma interface gráfica baseada em KF6 para as ferramentas de manipulação de CD/DVD Cdrtools e dvd+rw-tools. Ele também combina os recursos de muitos outros pacotes multimídia em uma interface central para fornecer um aplicativo simples de operar que consegue ser usado para lidar com muitos dos teus requisitos de gravação e formatação de CD/DVD. Ele é usado para criar CDs de áudio, dados, vídeo e modo misto, bem como copiar, extrair e gravar CDs e DVDs.

Embora o "k3b" possa ser usado para copiar quase qualquer "DVD" para uma mídia semelhante, ele não fornece uma maneira de copiar ou reproduzir um "DVD" de camada dupla em uma mídia de camada única. Claro, não existe um aplicativo em qualquer plataforma que consiga fazer uma duplicata exata de um "DVD" de camada dupla em um disco de camada única; existem aplicativos em algumas plataformas que conseguem comprimir os dados em um "DVD" de camada dupla para caber em um "DVD" de camada única produzindo uma imagem duplicada, mas comprimida. Se precisar copiar o conteúdo de um "DVD" de camada dupla para uma mídia de camada única, [então] você possivelmente queira olhar o pacote "RMLCopyDVD".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do K3b

Exigidas

KDE Frameworks-6.11.0, libkcddb-24.12.2, libsamplerate-0.2.2 e shared-mime-info-2.4

A unidade de "CD"/"DVD" é detectada em tempo de execução usando o "UDisks-2.10.1", que precisa, por esse motivo, ser instalado antes de executar o "k3b".

Recomendadas
Tempo de Execução Opcional

FFmpeg-7.1

Opcionais

FLAC-1.5.0, LAME-3.100, libmad-0.15.1b, libsndfile-1.2.2, libvorbis-1.3.7 e Musepack (libmpcdec)

Instalação do K3b

Instale K3b executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: k3b
Bibliotecas Instaladas: libk3bdevice.so, libk3blib.so e numerosos módulos de "plugin" para as dependências instaladas
Diretórios Instalados: $KF6_PREFIX/share/k3b e $KF6_PREFIX/share/doc/HTML/*/k3b

Descrições Curtas

k3b

é o aplicativo gráfico de "CD"/"DVD"

Mais pacotes do KDE

Este capítulo não forneceu instruções para todos os pacotes disponíveis na Compilação de Software do KDE (Gear do KDE). Os pacotes incluídos foram selecionados baseados no que a maioria das pessoas gostaria de usar em um computador padrão de área de trabalho.

Para uma lista completa dos pacotes disponíveis, dê uma olhada nos servidores do KDE6 em https://download.kde.org/stable/release-service/24.12.2/src.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Further_KDE_Packages

Alguns pacotes adicionais que compensa mencionar são:

  • Juk: Um reprodutor de música leve.

  • Dragon: Um reprodutor de vídeo.

  • Kcalc: Uma calculadora científica.

  • Kwalletmanager: Um aplicativo de gerenciamento de credenciais.

  • Marble: Um programa de mapas globais.

  • Spectacle: um programa de captura de tela.

  • Uma variedade (cerca de quarenta (40)) de jogos do KDE, incluindo: kpat, kfourinline e kmines.

Nota

Alguns pacotes exigirão dependências adicionais. Para determinar quais dependências são necessárias, execute a partir do topo da árvore do fonte:

cmake -W no-dev -LH .

Observe que isso cria alguns arquivos no topo do diretório fonte, de forma que é melhor reextrair um fonte limpo antes de prosseguir com a construção.

A maioria desses pacotes pode ser construída com as instruções padrão do KDE6:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

E como o(a) usuário(a) root:

make install

Capítulo 32. Plasma do KDE

Plasma do KDE é um ambiente de área de trabalho construído usando o Frameworks do KDE e QML que executa em cima de uma pilha de gráficos totalmente acelerada por hardware usando Qt, QtQuick e um gráfico de cena OpenGL(-ES).

Nenhuma configuração adicional é necessária antes de construir o Plasma do KDE porque ele usa a mesma configuração que o Frameworks do KDE usa.

kirigami-addons-1.4.0

Introdução ao kirigami-addons

Esse pacote fornece arquivos qml complementares para a estrutura Kirigami.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do kirigami-addons

Exigidas

KDE Frameworks-6.11.0

Recomendadas

Instalação do kirigami-addons

Instale kirigami-addons executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
       ..                                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: None
Diretórios Instalados: $KF6_PREFIX/lib/qml/org/kde/kirigamiaddons e $KF6_PREFIX/lib/cmake/KF6KirigamiAddons

pulseaudio-qt-1.7.0

Introdução ao pulseaudio-qt

Esse pacote é um envolucrador estilo Qt para PulseAudio-17.0. Ele permite consultas e manipulações de vários objetos do PulseAudio, como Sinks, Fontes e Fluxos. Ele não encapsula o conjunto completo de recursos da libpulse.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Konsole

Exigidas

KDE Frameworks-6.11.0 e PulseAudio-17.0

Instalação do pulseaudio-qt

Instale pulseaudio-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_PREFIX_PATH=$QT6DIR        \
      -D CMAKE_SKIP_INSTALL_RPATH=ON      \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      .. &&
make

Agora como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libKF6PulseAudioQt.so
Diretórios Instalados: $KF6_PREFIX/lib/cmake/KF6PulseAudioQt e $KF6_PREFIX/include/KF6/KF6PulseAudioQt

Construindo o Plasma

Plasma do KDE é uma coleção de pacotes baseados no Frameworks do KDE e QML. Eles implementam o Ambiente de Exibição do KDE (Plasma).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

As instruções abaixo constroem todos os pacotes do Plasma em uma etapa usando um conjunto de comandos sequenciais do Bash.

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Veja-se Abaixo

  • Tamanho da transferência: 250 MB

  • Espaço em disco estimado exigido: 2,2 GB (495 MB instalado)

  • Tempo de construção estimado: 15 UPC (usando paralelismo = 8)

Dependências do Plasma

Exigidas

Boost-1.87.0, FFmpeg-7.1, GTK-3.24.48, KDE Frameworks-6.11.0, kirigami-addons-1.4.0, libdisplay-info-0.2.0, libpwquality-1.4.5, libqalculate-5.5.1, libnl-3.11.0, libxcvt-0.1.3, libxkbcommon-1.8.0, Mesa-24.3.4 construído com Wayland-1.23.0, opencv-4.11.0, phonon-4.12.0, pipewire-1.2.7, pulseaudio-qt-1.7.0, qca-2.3.9, qcoro-0.11.0, sassc-3.6.2, taglib-2.0.2, xdotool-3.20211022.1 e Controlador Evdev do Xorg-2.11.0

Recomendadas
Recomendadas (tempo de execução)
Opcionais

AppStream-1.0.4 (construído com -qt=true), GLU-9.0.3, ibus-1.5.31, qtwebengine-6.8.2, KDevPlatform, libgps, libhybris, packagekit-qt, Qapt, SCIM e socat (para pam_kwallet)

Baixando o Plasma do KDE

A maneira mais fácil de obter os pacotes do Plasma do KDE é a de usar um wget para buscá-los todos de uma vez:

url=https://download.kde.org/stable/plasma/6.3.2/
wget -r -nH -nd -A '*.xz' -np $url

As opções usadas aqui são:
-r        recursivamente pelos diretórios descendentes
-nH       desabilita a geração de diretórios prefixados pelo anfitrião
-nd       não cria uma hierarquia de diretórios
-A '*.xz' apenas obtém os arquivos *.xz
-np       não obtém os diretórios pais

Importante

Existe um arquivo baixado, spectacle-6.3.2.1.tar.xz, que está rotulado incorretamente. Quando extraído, o diretório de nível superior não corresponde ao nome do tarball. Nós precisamos tornar esse arquivo consistente agora:

mv spectacle-6.3.2.1.tar.xz spectacle-6.3.2.tar.xz

Configurando a Ordem do Pacote

A ordem de construção dos arquivos é importante devido às dependências internas. Crie a lista de arquivos na ordem correta conforme segue:

cat > plasma-6.3.2.md5 << "EOF"
34c760dc07f498d800c78013e89720b8  kdecoration-6.3.2.tar.xz
1a23a3c130d5a73e851556638e05c86a  libkscreen-6.3.2.tar.xz
f8d52a88a1b4bb492fb4c590d93efd9f  libksysguard-6.3.2.tar.xz
7d88c11927b7254a48c239f8ff833161  breeze-6.3.2.tar.xz
7c23c6cca6ae3b75c7d6e338d655f6be  breeze-gtk-6.3.2.tar.xz
f56e4b5f766ddf07974646305e32f86e  layer-shell-qt-6.3.2.tar.xz
c1ee6ea5e63f87819e53aae19e7175f5  plasma-activities-6.3.2.tar.xz
d98a720f6c7bf6b18f68eaa0842454c9  libplasma-6.3.2.tar.xz
97d0ef783470792339b0ab04325bc374  kscreenlocker-6.3.2.tar.xz
cb1b7c21781685de53e066ed83f0ec88  kinfocenter-6.3.2.tar.xz
153b3403440f5376a170055b3e0e7740  kglobalacceld-6.3.2.tar.xz
425782c861e1b1bf0bb49a782b402cd6  kwayland-6.3.2.tar.xz
e4c54188e25914eb0d0e5693b0e6332c  kwin-6.3.2.1.tar.xz
#309881e87eab586be5448455f4d81b19  kwin-6.3.2.tar.xz
0c0eaea9839bff9b0ac70e09814618f2  plasma5support-6.3.2.tar.xz
b59f54a9c59f5633d4141f9acd6369ce  plasma-activities-stats-6.3.2.tar.xz
dbdc3c9f45d0e0e09ab2b6cf6b6b75d7  kpipewire-6.3.2.tar.xz
b83418536dead5549a9c87eaf7b1fe4d  plasma-workspace-6.3.2.tar.xz
5737bfdf712844e76b0da0acedd8f339  plasma-disks-6.3.2.tar.xz
62d50988f3833ed98e22a0c6fbb805ff  bluedevil-6.3.2.tar.xz
dfd47627bc8da5c5b53475214a648b28  kde-gtk-config-6.3.2.tar.xz
06577237fc872fb7659b11e829594144  kmenuedit-6.3.2.tar.xz
77dba21438203d747f9361ef91e3f27b  kscreen-6.3.2.tar.xz
2b880797d9e6ccd1cba40285436b1789  kwallet-pam-6.3.2.tar.xz
bf7edbc9fd326ab2764e1244e6835ffa  kwrited-6.3.2.tar.xz
7d787ff90098760bf8eb5db7fd833bc8  milou-6.3.2.tar.xz
1b9dd5ae4ebf274bc282d2636af50fbb  plasma-nm-6.3.2.tar.xz
281ec80a71b3942a8d42a5132682f1bc  plasma-pa-6.3.2.tar.xz
0f225ead05e73c43599a66cd6d796cc6  plasma-workspace-wallpapers-6.3.2.tar.xz
5bdd87252dc6713f4b9ebd44e2caaf4e  polkit-kde-agent-1-6.3.2.tar.xz
29608ea71ab87f3491adcb5584ca8dc9  powerdevil-6.3.2.tar.xz
f323dda4120302a0759fe81679c9dbd6  plasma-desktop-6.3.2.tar.xz
4353d584447fb28011637ed3d85b4920  kgamma-6.3.2.tar.xz
e278489c407a411270f70d945f6d6a51  ksshaskpass-6.3.2.tar.xz
#bf4d0d25e309e930cbf867b0f4460e51  plasma-sdk-6.3.2.tar.xz
2b4b42f97b187209a6d93f7167b793ca  sddm-kcm-6.3.2.tar.xz
#05dd805ad6eaaa6563ac16ef413f8ad3  discover-6.3.2.tar.xz
#037192907099c3a3edcceee135336040  breeze-grub-6.3.2.tar.xz
#5e2b70c2282b5597f86008e3bf27b632  breeze-plymouth-6.3.2.tar.xz
a7846a4612e60ac416b1db227d208e95  kactivitymanagerd-6.3.2.tar.xz
477b200bc4bc43344529a835c5e607a3  plasma-integration-6.3.2.tar.xz
#9b3e41e24234f6c01f64739babcede7a  plymouth-kcm-6.3.2.tar.xz
79cea0f52385ce4bb8448a0f7b17f212  xdg-desktop-portal-kde-6.3.2.tar.xz
6fd748a372f52c33ce869b58b7d5fe18  drkonqi-6.3.2.tar.xz
ed431307e4784a87bd24576df4394e6e  plasma-vault-6.3.2.tar.xz
#6ed2a9395f7e569ca38875c44db408db  plasma-browser-integration-6.3.2.tar.xz
147069fdc10dea3a7a7701df9fd2d9ee  kde-cli-tools-6.3.2.tar.xz
3a846d5cf8d923780e21f011ae2ceb17  systemsettings-6.3.2.tar.xz
8b43cda434ae5d88c9436e3d4b793164  plasma-thunderbolt-6.3.2.tar.xz
#5c1c23af1627d25842bfc28dc56fe048  plasma-mobile-6.3.2.tar.xz
#9a07133320259913c5a826b5256f86d8  plasma-nano-6.3.2.tar.xz
488fc23da31e10dd7bc2a1e36ee6716d  plasma-firewall-6.3.2.tar.xz
602917d54289a02a6711f215dae470bb  plasma-systemmonitor-6.3.2.tar.xz
361d1a0da813fd82bd36e11fcc4b157b  qqc2-breeze-style-6.3.2.tar.xz
b26d38fb9f9d83b27bcafaec1597843a  ksystemstats-6.3.2.tar.xz
2102f13838581d36a8247e2b54fff369  oxygen-sounds-6.3.2.tar.xz
ba8261586695cccdb01a6de8d400281c  kdeplasma-addons-6.3.2.tar.xz
#b32d6d4486fd549d61aeff96c1dfff85  flatpak-kcm-6.3.2.tar.xz
8d3998b1e171ee55c91a419cc8ba6319  plasma-welcome-6.3.2.tar.xz
faf86ec8c776cd351c1a96ed70328da3  ocean-sound-theme-6.3.2.tar.xz
f7a577b9baf316504e2ab9481f376008  print-manager-6.3.2.tar.xz
7d06df172f05b46ea6e97ae41f6e8be7  wacomtablet-6.3.2.tar.xz
#8575d2950cff501301f92426145e3056  kwayland-integration-6.3.2.tar.xz
#3679989f3a64f9c5b976175267119334  krdp-6.3.2.tar.xz
b812507c2d6720a1a9aca4e38b993f68  oxygen-6.3.2.tar.xz
#99b5985ac398900121545d03ab54530e  plasma-dialer-6.3.2.tar.xz
#ffeddc23f3e90de981301940b21550d0  spacebar-6.3.2.tar.xz
e9fc02ced53504b97341e0f248c63ee8  spectacle-6.3.2.tar.xz
EOF

Acerca de Pacotes Comentados

Na lista acima, vários arquivos estão comentados com um caractere cerquilha (#).

  • O pacote plasma-sdk é opcional e usado para desenvolvimento de software.

  • O pacote de descoberta exige que AppStream-1.0.4 seja construído com a chave -D qt=true.

  • Os pacotes breeze-grub, breeze-plymouth e plymouth-kcm acima são todos para suporte personalizado do Plymouth, que foi projetado para ser executado dentro de um disco inicial RAM durante a inicialização (veja-se “A respeito do initramfs”).

  • O pacote plasma-browser-integration foi projetado para implementar integração do navegador para Plasma no Mozilla Firefox e no Google Chrome. O pacote constrói, mas só é útil se você quiser que esses navegadores sejam integrados ao shell de uma forma que permita que você veja (e controle) transferências a partir da área de notificações do Plasma, bem como que permita que você pesquise o histórico do navegador no KDE Runner. Observe que você também precisa instalar uma extensão do navegador para isso funcionar. Para mais detalhes, veja-se a página wiki do KDE Plasma acerca de integração do navegador.

  • O pacote krdp é usado para permitir que um servidor RDP seja executado enquanto usar Plasma. Esse recurso exige a versão 2.x do FreeRDP, que não está no BLFS.

  • O pacote plasma-nano é usado para sistemas embarcados.

  • Os pacotes plasma-mobile, plasma-dialer e spacebar fornecem funcionalidade de telefone para o Plasma.

  • O pacote flatpak-kcm é para suporte de gerenciamento de aplicativos flatpak.

  • O aplicativo kwayland-integration exige suporte plasma5.

Instalação do Plasma

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:


while read -r line; do

    # Get the file name, ignoring comments and blank lines
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')           # Remove directory
    packagedir=$(echo $pkg |sed 's|\.tar.*||') # Source directory

    tar -xf $file
    pushd $packagedir

       mkdir build
       cd    build

       cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
             -D CMAKE_INSTALL_LIBEXECDIR=libexec \
             -D CMAKE_BUILD_TYPE=Release         \
             -D BUILD_QT5=OFF                    \
             -D BUILD_TESTING=OFF                \
             -W no-dev ..  &&

        make
        as_root make install
    popd


    as_root rm -rf $packagedir
    as_root /sbin/ldconfig

done < plasma-6.3.2.md5

exit

Se você não configurou $KF5_PREFIX como /usr, crie links simbólicos para permitir que gerenciadores de tela encontrem o Plasma e para permitir que XDG Desktop Portal seja detectado. Como o(a) usuário(a) root:

# Setup xsessions (X11 sessions)
install -dvm 755 /usr/share/xsessions
cd /usr/share/xsessions

[ -e plasma.desktop ] ||
ln -sfv $KF6_PREFIX/share/xsessions/plasmax11.desktop 

# Setup wayland-sessions 
install -dvm 755 /usr/share/wayland-sessions
cd /usr/share/wayland-sessions

[ -e plasmawayland.desktop ] ||
ln -sfv $KF6_PREFIX/share/wayland-sessions/plasma.desktop

# Setup xdg-desktop-portal
install -dvm 755 /usr/share/xdg-desktop-portal
cd /usr/share/xdg-desktop-portal 

[ -e kde-portals.conf ] ||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/kde-portals.conf

# Setup kde portal
install -dvm 755 /usr/share/xdg-desktop-portal/portals
cd /usr/share/xdg-desktop-portal/portals

[ -e kde.portal ] ||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/portals/kde.portal

Unidades do systemd inúteis foram instaladas em $KF6_PREFIX/lib. Remova-as agora (como root):

rm -rf $KF6_PREFIX/lib/systemd

Configurando Plasma

Configuração do Linux PAM

Se você construiu o Plasma com o suporte Linux PAM recomendado, crie os necessários arquivos de configuração executando os seguintes comandos como o(a) usuário(a) root:

cat > /etc/pam.d/kde << "EOF"
# Begin /etc/pam.d/kde

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     include        system-auth

account  include        system-account
password include        system-password
session  include        system-session

# End /etc/pam.d/kde
EOF

cat > /etc/pam.d/kde-np << "EOF"
# Begin /etc/pam.d/kde-np

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     required       pam_permit.so

account  include        system-account
password include        system-password
session  include        system-session

# End /etc/pam.d/kde-np
EOF

cat > /etc/pam.d/kscreensaver << "EOF"
# Begin /etc/pam.d/kscreensaver

auth    include system-auth
account include system-account

# End /etc/pam.d/kscreensaver
EOF

Iniciando o Plasma

Você consegue iniciar o Plasma a partir do nível de execução 3, usando o xinit-1.4.3, ou a partir do nível de execução 5, usando um Gerenciador de Tela, como o lightdm-1.32.0.

Para iniciar o Plasma usando o xinit-1.4.3, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 $KF6_PREFIX/bin/startplasma-x11
EOF

startx

A sessão do X inicia no primeiro terminal virtual não usado, normalmente o vt7. Você consegue comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=1, 2, ...). Para comutar de volta para a sessão do X, normalmente iniciada no vt7, use Ctrl-Alt-F7. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que não apenas manterá o vt inicial organizado, mas também poderá ser usado para fins de depuração. Isso pode ser feito iniciando-se o X com:

startx &> ~/x-session-errors

Ao desligar ou reinicializar, as mensagens de desligamento aparecem no terminal virtual onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no terminal virtual 7).

Conteúdo

Aplicativos Instalados: Existem muitíssimos aplicativos do Plasma (mais que cinquenta (50) em /opt/kf6/bin) para listar separadamente aqui.
Bibliotecas Instaladas: Existem muitíssimas bibliotecas do Plasma (mais que duzentas e cinquenta (250) em /opt/kf6/lib) para listar separadamente aqui.
Diretórios Instalados: Existem muitíssimos diretórios do Plasma (mais que dois mil e setecentos (2.700) em /opt/kf6) para listar separadamente aqui.

Parte VIII. GNOME

Capítulo 33. Bibliotecas e Área de Trabalho do GNOME

O objetivo desta seção é o construir uma área de trabalho do "GNOME".

Bibliotecas

Gcr-3.41.2

Introdução ao Gcr

O pacote Gcr contém bibliotecas usadas para exibir certificados e acessar armazenamentos de chaves. Ele também fornece o visualizador para arquivos criptográficos na área de trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gcr/3.41/gcr-3.41.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 40a754ba44d5e95e4d07656d6302900c

  • Tamanho da transferência: 1012 KB

  • Espaço em disco estimado exigido: 33 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)

Dependências do Gcr

Exigidas

GLib-2.82.5 (recomendado GObject Introspection), libgcrypt-1.11.0 e p11-kit-0.25.5

Recomendadas
Opcionais

Gi-DocGen-2025.3 e Valgrind-3.24.0

Instalação do Gcr

Instale o Gcr executando os seguintes comandos:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            -D ssh_agent=false  \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/install_dir/s@,\$@ / 'gcr-3.41.2'&@" \
    -i ../docs/*/meson.build                  &&
meson configure -D gtk_doc=true               &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de um Terminal do X ou similar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D ssh_agent=false: Evita um conflito com Gcr-4.3.1. Omita essa chave se você não planeja instalar o Gcr-4.3.1 e deseja usar o gcr-ssh-agent.

-D gtk=false: Use essa chave se você não tiver instalado o GTK-3.24.48. Observe que o gcr-viewer não será instalado se isso for passado para o meson.

-D gtk_doc=true: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativo Instalado: gcr-viewer
Bibliotecas Instaladas: libgck-1.so, libgcr-base-3.so e libgcr-ui-3.so
Diretórios Instalados: /usr/include/gck-1, /usr/include/gcr-3 e /usr/share/gtk-doc/html/{gcr,gck}

Descrições Curtas

gcr-viewer

é usado para visualizar certificados e arquivos de chave

libgck-1.so

contém ligações GObject para PKCS#11

Gcr-4.3.1

Introdução ao Gcr

O pacote Gcr contém bibliotecas usadas para exibir certificados e acessar armazenamentos de chaves. Ele também fornece o visualizador para arquivos criptográficos na área de trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gcr/4.3/gcr-4.3.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d8a71f8cb0390bc353f52ded3f9a6733

  • Tamanho da transferência: 716 KB

  • Espaço em disco estimado exigido: 30 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes; ambos usando paralelismo=4)

Dependências do Gcr

Exigidas

GLib-2.82.5 (recomendado GObject Introspection), libgcrypt-1.11.0 e p11-kit-0.25.5

Recomendadas
Opcionais

Gi-DocGen-2025.3, GnuTLS-3.8.9 e Valgrind-3.24.0

Instalação do Gcr

Nota

Ambos, gcr-3 e gcr-4, são co instaláveis. Essa versão do pacote é usada para suportar aplicativos GTK-4, como o gnome-shell-47.4e Epiphany-47.3.1.

Instale o Gcr executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/install_dir/s@,\$@ / 'gcr-4.3.1'&@" \
    -i ../docs/*/meson.build                 &&
meson configure -D gtk_doc=true              &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de um Terminal do X ou similar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk4=false: Use essa chave se você não tiver instalado GTK-4.16.12. Observe que gcr-viewer-gtk4 não será instalado se isso for passado para meson.

-D ssh_agent=false: Use essa chave se você não tiver instalado OpenSSH-9.9p2 e desejar desabilitar os recursos de ssh.

-D gtk_doc=true: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-D crypto=gnutls: Use essa chave se você tiver GnuTLS-3.8.9 instalado e desejar usá-lo em vez de libgcrypt-1.11.0.

Conteúdo

Aplicativo Instalado: gcr-viewer-gtk4
Bibliotecas Instaladas: libgck-2.so, libgcr-4.so
Diretórios Instalados: /usr/include/gck-2, /usr/include/gcr-4 e /usr/share/gtk-doc/html/{gcr,gck}

Descrições Curtas

gcr-viewer-gtk4

é usado para visualizar certificados e arquivos de chave

libgck-2.so

contém ligações GObject para PKCS#11

libgcr-4.so

contém funções para acessar armazenamentos de chaves e exibir certificados

gsettings-desktop-schemas-47.1

Introdução ao GSettings Desktop Schemas

O pacote GSettings Desktop Schemas contém uma coleção de esquemas GSettings para configurações compartilhadas por vários componentes de uma Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GSettings Desktop Schemas

Exigidas

GLib-2.82.5 (com GObject Introspection)

Instalação do GSettings Desktop Schemas

Instale o GSettings Desktop Schemas executando os seguintes comandos:

sed -i -r 's:"(/system):"/org/gnome\1:g' schemas/*.in &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

sed ... schemas/*.in: Esse comando corrige algumas entradas obsoletas nos modelos de esquema.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/include/gsettings-desktop-schemas e /usr/share/GConf/gsettings

libsecret-0.21.6

Introdução ao libsecret

O pacote libsecret contém uma biblioteca baseada em GObject para acessar a API de Serviço Secreto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libsecret

Exigidas

GLib-2.82.5 (GObject Introspection recomendado)

Recomendadas
Opcionais

Gi-DocGen-2025.3 e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42 (para construir páginas de manual) e Valgrind-3.24.0 (pode ser usado em testes)

Opcionais (exigidas para a suíte de teste)

D-Bus Python-1.3.2, Gjs-1.82.1, PyGObject-3.50.0 (módulo do Python 3) e tpm2-tss

Dependência em Tempo de Execução

gnome-keyring-46.2

Nota

Qualquer pacote que exija a libsecret espera que o GNOME Keyring esteja presente em tempo de execução.

Instalação do libsecret

Instale o libsecret executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s/api_version_major/'0.21.6'/"            \
    -i ../docs/reference/libsecret/meson.build &&
meson configure -D gtk_doc=true                &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: dbus-run-session ninja test.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-D manpage=false: Use essa chave se você não tiver instalado os pacotes libxslt-1.1.42 e DocBook.

-D crypto=gnutls: Use essa chave se você quiser usar GnuTLS-3.8.9 para criptografia em vez de libgcrypt-1.11.0.

-D crypto=disabled: Use essa chave se você não tiver GnuTLS-3.8.9 ou libgcrypt-1.11.0 instalado. Observe que desabilitar o suporte de encriptação de transporte fazendo isso não é recomendado.

Conteúdo

Aplicativo Instalado: secret-tool
Biblioteca Instalada: libsecret-1.so
Diretórios Instalados: /usr/include/libsecret-1 e /usr/share/doc/libsecret-0.21.6

Descrições Curtas

secret-tool

é uma ferramenta de linha de comando que pode ser usada para armazenar e recuperar senhas

libsecret-1.so

contém as funções da API da libsecret

rest-0.9.1

Introdução ao rest

O pacote rest contém uma biblioteca que foi projetada para tornar mais fácil acessar serviços web que afirmam ser "RESTful". Inclui envolucradores convenientes para libsoup e libxml para tornar o uso remoto da API RESTful mais fácil.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/rest/0.9/rest-0.9.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b997b83232be3814a1b78530c5700df9

  • Tamanho da transferência: 72 KB

  • Espaço em disco estimado exigido: 3,2 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes)

Dependências do rest

Exigidas

JSON-GLib-1.10.6, libsoup-3.6.4 e make-ca-1.15

Recomendadas
Opcionais

Gi-DocGen-2025.3, libadwaita-1.6.4 e gtksourceview5-5.14.2 (para construir a demonstração) e Vala-0.56.17

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do rest

Instale o rest executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D examples=false   \
            -D gtk_doc=false    \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/output/s/librest-1.0/rest-0.9.1/" -i ../docs/meson.build &&
meson configure -D gtk_doc=true                                &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-D examples=false: Remova essa opção se libadwaita-1.6.4 e gtksourceview5-5.14.2 estiverem instalados e você desejar construir o aplicativo de demonstração fornecido por esse pacote.

-D vapi=true: Use essa chave se Vala-0.56.17 estiver instalado e você desejar construir as ligações Vala fornecidas por esse pacote.

Conteúdo

Aplicativos Instalados: librest-demo (opcional)
Bibliotecas Instaladas: librest-1.0.so e librest-extras-1.0.so
Diretórios Instalados: /usr/include/rest-1.0 e /usr/share/gtk-doc/html/rest-1.0

Descrições Curtas

librest-demo

fornece um exemplo de como usar as funções de consulta da API da Web RESTful

librest-1.0.so

contém as funções de consulta da API da Web RESTful

librest-extras-1.0.so

contém funções extras de consulta da API da Web RESTful

totem-pl-parser-3.26.6

Introdução ao Totem PL Parser

O pacote Totem PL Parser contém uma biblioteca simples baseada em GObject usada para analisar vários formatos de lista de reprodução.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Totem PL Parser

Recomendadas
Opcionais

CMake-3.31.5, GTK-Doc-1.34.0, Gvfs-1.56.1 (para alguns testes), LCOV e libquvi >= 0.9.1 e libquvi-scripts - se eles estiverem instalados, então lua-socket (git) é necessário para os testes

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do Totem PL Parser

Instale o Totem PL Parser executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. O teste chamado parser é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libtotem-plparser-mini.so e libtotem-plparser.so
Diretórios Instalados: /usr/include/totem-pl-parser e /usr/share/gtk-doc/html/totem-pl-parser

Descrições Curtas

libtotem-plparser.so

é a biblioteca do analisador de lista de reprodução do Totem

libtotem-plparser-mini.so

é a biblioteca do analisador de lista de reprodução do Totem, versão mini

VTE-0.78.4

Introdução ao VTE

O pacote VTE contém uma pequena engenhoca de terminal virtual para aplicativos GTK.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://gitlab.gnome.org/GNOME/vte/-/archive/0.78.4/vte-0.78.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cdfc61b7021a43841845b8fb1593d28c

  • Tamanho da transferência: 792 KB

  • Espaço em disco estimado exigido: 22 MB (com testes)

  • Tempo de construção estimado: 0,4UPC (usando paralelismo = 4; com os testes)

Dependências do VTE

Exigidas

GTK-3.24.48, libxml2-2.13.6 e pcre2-10.45

Recomendadas
Opcionais

Gi-DocGen-2025.3

Instalação do VTE

Instale o VTE executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D _systemd=false   &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/docdir =/s@\$@/ 'vte-0.78.4'@" \
    -i ../doc/reference/meson.build     &&
meson configure -D docs=true            &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&
rm -v /etc/profile.d/vte.*

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

rm -v /etc/profile.d/vte.*: Esse comando remove dois arquivos instalados em /etc/profile.d que não tem uso em um sistema LFS.

-D gnutls=false: Adicione essa chave se você não quiser habilitar o suporte GnuTLS.

-D vapi=false: Adicione essa chave se você não quiser habilitar ligações Vala.

-D gtk4=false: Adicione essa chave se você não quiser construir a versão GTK-4 do VTE.

Conteúdo

Aplicativo Instalado: vte-2.91 e vte-2.91-gtk4
Biblioteca Instalada: libvte-2.91.so e libvte-2.91-gtk4.so
Diretórios Instalados: /usr/include/vte-2.91, /usr/include/vte-2.91-gtk4 e (opcional) /usr/share/doc/vte-0.78.4

Descrições Curtas

vte-2.91

é um aplicativo de teste para as bibliotecas do VTE

vte-2.91-gtk4

é um aplicativo de teste para a versão GTK-4 das bibliotecas do VTE

libvte-2.91.so

é uma biblioteca que implementa uma pequena engenhoca de emulador de terminal para o GTK+ 3

libvte-2.91-gtk4.so

é uma biblioteca que implementa uma pequena engenhoca de emulador de terminal para GTK-4

yelp-xsl-42.1

Introdução ao Yelp XSL

O pacote Yelp XSL contém folhas de estilo XSL que são usadas pelo navegador de ajuda do Yelp para formatar documentos Docbook e Mallard.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Yelp XSL

Exigidas

libxslt-1.1.42 e itstool-2.0.7

Instalação do Yelp XSL

Instale o Yelp XSL executando os seguintes comandos:

./configure --prefix=/usr

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/yelp-xsl

geocode-glib-3.26.4

Introdução ao Geocode GLib

O Geocode GLib é uma biblioteca conveniente para as APIs do Yahoo! Place Finder. O serviço da web Place Finder te permite fazer geocodificação (encontrar longitude e latitude a partir de um endereço) bem como geocodificação reversa (encontrar um endereço a partir de coordenadas).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Geocode GLib

Exigidas

JSON-GLib-1.10.6 e libsoup-3.6.4

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do Geocode GLib

Instale o Geocode GLib executando os seguintes comandos:

mkdir build                   &&
cd    build                   &&

meson setup --prefix=/usr           \
            --buildtype=release     \
            -D enable-gtk-doc=false \
            -D soup2=false          \
            ..                      &&
ninja

Para testar os resultados, emita: LANG=C ninja test. Um teste falha porque precisa da localidade sv_SE.utf8, que não é instalado por padrão no LFS.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D enable-gtk-doc=false: Permite que esse pacote seja construído sem o GTK-Doc-1.34.0. Remova esse parâmetro se o GTK-Doc-1.34.0 estiver instalado e você desejar reconstruir e instalar a documentação da API.

-D soup2=false: Essa chave força esse pacote a usar a libsoup-3 para solicitações HTTP em vez da libsoup-2. Os pacotes no BLFS que usam geocode-glib agora esperam que a libsoup-3 seja usada.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgeocode-glib-2.so
Diretórios Instalados: /usr/include/geocode-glib-2.0, /usr/libexec/installed-tests/geocode-glib, /usr/share/icons/gnome/scalable/places e /usr/share/gtk-doc/html/geocode-glib

Descrições Curtas

libgeocode-glib-2.so

contém as funções da API do Geocode GLib

Gjs-1.82.1

Introdução ao Gjs

Gjs é um conjunto de ligações Javascript para GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gjs/1.82/gjs-1.82.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3ebc85da56719932d4d8f713ffbcf786

  • Tamanho da transferência: 712 KB

  • Espaço em disco estimado exigido: 286 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes; com paralelismo=4)

Dependências do Gjs

Exigidas

Cairo-1.18.2, dbus-1.16.0, GLib-2.82.5 (com GObject Introspection) e SpiderMonkey oriundo de Firefox-128.7.0

Recomendadas (exigidas para GNOME)
Opcionais

Valgrind-3.24.0 (para testes), DTrace, LCOV, sysprof e Systemtap

Instalação do Gjs

Instale o Gjs executando os seguintes comandos:

mkdir gjs-build &&
cd    gjs-build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

Para testar os resultados, emita: ninja test em uma sessão gráfica.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D profiler=disabled: evita construir a estrutura de retaguarda do perfilador, mesmo se sysprof estiver instalado.

Conteúdo

Aplicativos Instalados: gjs (link simbólico) e gjs-console
Biblioteca Instalada: libgjs.so
Diretórios Instalados: /usr/include/gjs-1.0, /usr/lib/gjs, /usr/libexec/installed-tests/gjs, /usr/share/gjs-1.0 e /usr/share/installed-tests/gjs

Descrições Curtas

gjs-console

contém um console para executar comandos JavaScript

libgjs.so

contém as ligações JavaScript do GNOME

gnome-autoar-0.4.5

Introdução ao gnome-autoar

O pacote gnome-autoar fornece uma estrutura para extração, compactação e gerenciamento automático de arquivamentos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do gnome-autoar

Exigidas

libarchive-3.7.7 e GTK-3.24.48

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para construir documentação)

Instalação do gnome-autoar

Instale o gnome-autoar executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D vapi=true        \
            -D tests=true       \
            ..                  &&
ninja

Para testar os resultados, emita: ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use esse parâmetro se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgnome-autoar-0.so e libgnome-autoar-gtk-0.so
Diretórios Instalados: /usr/include/gnome-autoar-0 e /usr/share/gtk-doc/html/gnome-autoar

Descrições Curtas

libgnome-autoar-0.so

fornece funções de API para gerenciamento automático de arquivamentos

libgnome-autoar-gtk-0.so

fornece pequenas engenhocas GTK+ para auxiliar no gerenciamento automático de arquivamentos

gnome-desktop-44.1

Introdução ao GNOME Desktop

O pacote GNOME Desktop contém uma biblioteca que fornece uma API compartilhada por vários aplicativos na Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Desktop

Exigidas

gsettings-desktop-schemas-47.1, GTK-3.24.48, GTK-4.16.12, ISO Codes-4.17.0, itstool-2.0.7, libseccomp-2.6.0, libxml2-2.13.6 e xkeyboard-config-2.44

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do GNOME Desktop

Instale o GNOME Desktop executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use esse parâmetro se você desejar construir a documentação da API.

-D installed_tests=true: Use esse parâmetro se você desejar habilitar os testes instalados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgnome-bg-4.so, libgnome-desktop-3.so, libgnome-desktop-4.so e libgnome-rr-4.so
Diretórios Instalados: /usr/include/gnome-desktop-3.0, /usr/include/gnome-desktop-4.0, /usr/libexec/gnome-desktop-debug, /usr/share/gtk-doc/html/gnome-desktop3 (opcional) e /usr/share/help/*/{fdl,gpl,lgpl}

Descrições Curtas

libgnome-desktop-3.so

contém funções compartilhadas por vários aplicativos GNOME

gnome-menus-3.36.0

Introdução ao GNOME Menus

O pacote GNOME Menus contém uma implementação do rascunho Especificação do Menu da Área de Trabalho proveniente de freedesktop.org. Ele também contém os arquivos de configuração de esquema de menu do GNOME e os arquivos .directory.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Menus

Exigidas

GLib-2.82.5 (GObject Introspection recomendado)

Instalação do GNOME Menus

Instale o GNOME Menus executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgnome-menu-3.so
Diretórios Instalados: /etc/xdg/menus, /usr/include/gnome-menus-3.0 e /usr/share/desktop-directories

Descrições Curtas

libgnome-menu-3.so

contém funções exigidas para suportar a implementação do GNOME da Especificação do Menu da Área de Trabalho

gnome-online-accounts-3.52.3.1

Introdução ao GNOME Online Accounts

O pacote GNOME Online Accounts contém uma estrutura usada para acessar as contas online de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Online Accounts

Exigidas

Gcr-4.3.1, JSON-GLib-1.10.6, libadwaita-1.6.4, rest-0.9.1 e Vala-0.56.17

Recomendadas
Opcionais

Gi-DocGen-2025.3, MIT Kerberos V5-1.21.3 e Valgrind-3.24.0

Instalação do GNOME Online Accounts

Nota

A Chave de API do Google e os tokens OAuth abaixo são específicos do LFS. Se usar estas instruções para outra distribuição ou se você pretende distribuir cópias binárias do logiciário usando estas instruções, por favor, obtenha as tuas próprias chaves seguindo as instruções localizadas em https://www.chromium.org/developers/how-tos/api-keys.

Instale o GNOME Online Accounts executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup                                            \
      --prefix=/usr                                    \
      --buildtype=release                              \
      -D documentation=false                           \
      -D kerberos=false                                \
      -D google_client_secret=5ntt6GbbkjnTVXx-MSxbmx5e \
      -D google_client_id=595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com \
      .. &&
ninja

Se você tiver instalado Gi-DocGen-2025.3 e desejar construir e instalar a documentação da API desse pacote, emita:

meson configure -D documentation=true &&
sed "s/project_name()/& + '-' + meson.project_version()/" \
    -i ../doc/meson.build &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D google_*: Essas chaves configuram o ID e o segredo do OAuth do BLFS para os serviços do Google.

-D kerberos=true: Use essa chave se você tiver instalado o MIT Kerberos V5-1.21.3 e deseja usá-lo com o GNOME Online Accounts.

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libgoa-1.0.so e libgoa-backend-1.0.so
Diretórios Instalados: /usr/include/goa-1.0, /usr/lib/goa-1.0 e /usr/share/gtk-doc/html/goa (opcional)

Descrições Curtas

libgoa-1.0.so

contém as funções da API do GNOME Online Accounts

libgoa-backend-1.0.so

contém funções usadas pelas estruturas de retaguarda do GNOME Online Accounts

libgdata-0.18.1

Introdução ao libgdata

O pacote libgdata é uma biblioteca baseada em GLib para acessar APIs de serviços on-line usando o protocolo GData, principalmente os serviços do Google. Ele fornece APIs para acessar os serviços comuns do Google e tem suporte assíncrono completo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgdata

Exigidas

libsoup-2.74.3, gnome-online-accounts-3.52.3.1, GTK-3.24.48, JSON-GLib-1.10.6 e Vala-0.56.17

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para documentação) e liboauth-1.0.3 (para suporte OAuth v1)

Instalação do libgdata

Instale o libgdata executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr               \
            --buildtype=release         \
            -D gtk_doc=false            \
            -D always_build_tests=false \
            ..                          &&
ninja

Esse pacote não vem com uma suíte funcional de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Remova isso se você tiver o GTK-Doc-1.34.0 instalado e quiser reconstruir a documentação com ele.

-D oauth1=enabled: Use essa opção se desejar incluir suporte para OAuth v1. Observe que você precisa ter o liboauth-1.0.3 instalado para a finalidade de habilitar essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgdata.so
Diretórios Instalados: /usr/include/libgdata e /usr/share/gtk-doc/html/gdata

Descrições Curtas

libgdata.so

contém as funções da API da libgdata

libgee-0.20.8

Introdução ao libgee

O pacote libgee é uma biblioteca de coleção que fornece interfaces e classes baseadas em GObject para estruturas de dados comumente usadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgee

Exigidas

GLib-2.82.5 (GObject Introspection recomendado) e Vala-0.56.17

Opcionais

LCOV

Instalação do libgee

Instale o libgee executando os seguintes comandos:

./configure --prefix=/usr --enable-vala &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgee-0.8.so
Diretório Instalado: /usr/include/gee-0.8

Descrições Curtas

libgee-0.8.so

contém as funções da API da libgee

libgtop-2.41.3

Introdução ao libgtop

O pacote libgtop contém as principais bibliotecas do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgtop

Exigidas

GLib-2.82.5 (GObject Introspection recomendado) e Bibliotecas do Xorg

Opcionais

GTK-Doc-1.34.0

Instalação do libgtop

Instale o libgtop executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: libgtop_daemon2 e libgtop_server2
Biblioteca Instalada: libgtop-2.0.so
Diretórios Instalados: /usr/include/libgtop-2.0 e /usr/share/gtk-doc/html/libgtop

Descrições Curtas

libgtop-2.0.so

contém funções que permitem acesso aos dados de desempenho do sistema

libgweather-4.4.4

Introdução ao libgweather

O pacote libgweather é uma biblioteca usada para acessar informações meteorológicas a partir de serviços online para numerosos locais.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgweather

Exigidas

geocode-glib-3.26.4, GTK-3.24.48, libsoup-3.6.4 e PyGObject-3.50.0

Recomendadas
Opcionais

Gi-DocGen-2025.3 (gi-docgen também é fornecido como um subprojeto meson, que será usado se -D gtk_doc=false não for passado para meson), LLVM-19.1.7 (para formato clang) e pylint

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do libgweather

Instale o libgweather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk_doc=false    \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s/libgweather_full_version/'libgweather-4.4.4'/" \
    -i ../doc/meson.build                             &&
meson configure -D gtk_doc=true                       &&
ninja

Um teste precisa que os arquivos de localidade estejam instalados no sistema, de forma que é melhor executar os testes depois de instalar o pacote.

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: LC_ALL=C ninja test.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgweather-4.so
Diretórios Instalados: /usr/lib/libgweather-4, /usr/include/libgweather-4.0, /usr/share/gtk-doc/html/libgweather-4.0 (opcional) e /usr/share/libgweather-4

Descrições Curtas

libgweather-4.so

contém funções que permitem a recuperação de informações meteorológicas

libpeas-1.36.0

Introdução ao libpeas

libpeas é um mecanismo de plug-ins baseado em GObject e tem como objetivo dar a cada aplicativo a chance de assumir a própria extensibilidade dele.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libpeas

Exigidas

GLib-2.82.5 (com GObject Introspection) e GTK-3.24.48

Recomendadas
Opcionais

Gi-DocGen-2025.3, Glade, embed, LGI (para ligações LUA, construído com LUA-5.1), com ou luajit-20250212 ou LUA-5.1

Instalação do libpeas

Instale o libpeas executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@/ 'libpeas-1.36.0'@" \
    -i ../docs/reference/meson.build       &&
meson configure -D gtk_doc=true            &&
ninja

Para testar os resultados, emita: ninja test. Uma sessão gráfica ativa com endereço de barramento é necessária para executar os testes.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D vapi=true: Adicione essa chave se você desejar gerar dados vapi (vala).

-D demos=false: Adicione essa chave se você não desejar construir os aplicativos de demonstração.

Conteúdo

Aplicativo Instalado: peas-demo
Bibliotecas Instaladas: libpeas-1.0.so e libpeas-gtk-1.0.so
Diretórios Instalados: /usr/include/libpeas-1.0, /usr/lib/libpeas-1.0, /usr/lib/peas-demo e /usr/share/gtk-doc/html/libpeas (opcional)

Descrições Curtas

peas-demo

é o aplicativo de demonstração do Peas

libpeas-1.0.so

contém as funções da API da libpeas

libpeas-gtk-1.0.so

contém as pequenas engenhocas GTK+ da libpeas

libshumate-1.3.2

Introdução ao libshumate

O pacote libshumate contém uma pequena engenhoca GTK-4 para exibir mapas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libshumate

Exigidas

GTK-4.16.12, libsoup-3.6.4 e Protobuf-c-1.5.1

Recomendadas
Opcionais

Gi-DocGen-2025.3, Valgrind-3.24.0 e sysprof

Instalação do libshumate

Instale o libshumate executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nodownload \
            -D gtk_doc=false       \
            ..                     &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e 's/lib_version/version/' \
    -i ../docs/meson.build      &&
meson configure -D gtk_doc=true &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nodownload: Essa chave impede que o meson baixe qualquer dependência opcional que não esteja instalada no sistema.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libshumate-1.0.so
Diretórios Instalados: /usr/include/shumate-1.0 e /usr/share/doc/libshumate-1.3.2 (opcional)

Descrições Curtas

libshumate-1.0.so

contém funções que fornecem uma pequena engenhoca GTK-4 para exibir mapas

evolution-data-server-3.54.3

Introdução ao Evolution Data Server

O pacote Evolution Data Server fornece uma estrutura de retaguarda unificada para aplicativos que trabalham com contatos, tarefas e informações de calendário. Ele foi originalmente desenvolvido para Evolution (daí o nome), mas agora também é usado por outros pacotes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Evolution Data Server

Exigidas

libical-3.0.19, libsecret-0.21.6, nss-3.108 e SQLite-3.49.1

Recomendadas
Recomendadas (tempo de execução)
Opcionais

GTK-Doc-1.34.0, MIT Kerberos V5-1.21.3, um MTA (que forneça um comando sendmail), OpenLDAP-2.6.9, Berkeley DB (obsoleto) e libphonenumber

Instalação do Evolution Data Server

Instale o Evolution Data Server executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr    \
      -D SYSCONF_INSTALL_DIR=/etc     \
      -D ENABLE_VALA_BINDINGS=ON      \
      -D ENABLE_INSTALLED_TESTS=ON    \
      -D WITH_OPENLDAP=OFF            \
      -D WITH_KRB5=OFF                \
      -D ENABLE_INTROSPECTION=ON      \
      -D ENABLE_GTK_DOC=OFF           \
      -D WITH_LIBDB=OFF               \
      -D WITH_SYSTEMDUSERUNITDIR=no   \
      -W no-dev -G Ninja ..           &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: ninja test.

Explicações do Comando

-D ENABLE_VALA_BINDINGS=ON: Essa chave habilita construir as ligações Vala. Remova-a se você não tiver Vala-0.56.17 instalado.

-D ENABLE_GTK_DOC=OFF: Essa chave desabilita a construção da documentação da API. Ela está quebrada para esse pacote devido ao uso de um aplicativo gtk-doc há muito obsoleto que não mais está disponível.

-D WITH_LIBDB=OFF: Essa chave permite construir esse pacote sem Berkeley DB (obsoleto). SQLite-3.49.1 é usado para operação normal.

-D ENABLE_OAUTH2_WEBKITGTK4=OFF: Use essa chave se você não construiu WebKitGTK-2.46.6 com GTK-4.

-D WITH_SYSTEMDUSERUNITDIR=no: Essa chave desabilita a instalação das unidades do systemd, que não são usadas para uma construção do Sysv.

Nota

Para habilitar muitas das dependências opcionais, revise as informações provenientes de cmake -L CMakeLists.txt para os parâmetros necessários que você precisa passar para o comando cmake.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libcamel-1.2.so, libebackend-1.2.so, libebook-1.2.so, libebook-contacts-1.2.so, libecal-2.0.so, libedata-book-1.2.so, libedata-cal-2.0.so, libedataserver-1.2.so, libedataserverui-1.2.so, libedataserverui4-1.0.so e libetestserverutils.so
Diretórios Instalados: /usr/include/evolution-data-server, /usr/lib{,exec}/evolution-data-server, /usr/share/evolution-data-server, /usr/share/installed-tests/evolution-data-server e /usr/share/pixmaps/evolution-data-server

Descrições Curtas

libcamel-1.2.so

é a biblioteca de manuseio de mensagens MIME do Evolution

libebackend-1.2.so

é a biblioteca de utilitários para estruturas de retaguarda do Evolution Data Server

libebook-1.2.so

é a biblioteca cliente para catálogos de endereços do Evolution

libebook-contacts-1.2.so

é a biblioteca cliente para contatos do Evolution

libecal-1.2.so

é a biblioteca cliente para calendários do Evolution

libedata-book-1.2.so

é a biblioteca de estrutura de retaguarda para catálogos de endereços do Evolution

libedata-cal-1.2.so

é a biblioteca de estrutura de retaguarda para calendários do Evolution

libedataserver-1.2.so

é a biblioteca de utilitários para o Evolution Data Server

libedataserverui-3.0.so

é a biblioteca de utilitários de GUI para o Evolution Data Server

libedataserverui4-1.0.so

é a biblioteca de utilitários de GUI baseada em GTK-4 para o Evolution Data Server

libetestserverutils.so

é a biblioteca de utilitários de teste de servidor para o Evolution Data Server

tinysparql-3.8.2

Introdução ao Tinysparql

Tinysparql é um armazenamento triplo RDF de baixo custo com uma interface SPARQL 1.1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Tinysparql

Exigidas

JSON-GLib-1.10.6 e Vala-0.56.17

Recomendadas
Opcionais

asciidoc-10.2.1, Avahi-0.8, Graphviz-12.2.1 e bash-completion

Instalação do Tinysparql

Corrija o local para instalar a documentação:

mv docs/reference/libtracker-sparql/doc/{Tsparql-3.0,tinysparql-3.8.2} &&
sed '/docs_name/s/Tsparql-3.0/tinysparql-3.8.2/' \
    -i docs/reference/libtracker-sparql/meson.build

Instale Tinysparql executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr                  \
            --buildtype=release            \
            -D man=false                   \
            -D systemd_user_services=false \
            ..                            &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: meson configure -D debug=true && LC_ALL=C ninja test. A suíte de teste deveria ser executada a partir de uma sessão gráfica. Um teste é conhecido por falhar devido às páginas de manual não serem geradas.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D man=false: Essa chave impede o processo de construção de gerar páginas de manual. Omita essa chave se você tiver asciidoc-10.2.1 instalado e desejar gerar e instalar as páginas de manual.

-D systemd_user_services=false: Essa chave impede o processo de construção de instalar serviços de usuário(a) do systemd, pois eles são inúteis em sistemas SysV.

meson configure -D debug=true: Esse comando habilita algumas verificações de depuração necessárias para a suíte de teste. Nós não queremos habilitá-las para as bibliotecas e programas tinysparql instaladas, de forma que executamos a suíte de teste depois da instalação.

Conteúdo

Aplicativos Instalados: tinysparql
Biblioteca Instalada: libtinysparql-3.0.so e libtracker-sparql-3.0.so
Diretórios Instalados: /usr/{include,lib}/tinysparql-3.0 e /usr/share/doc/tinysparql-3.8.2 (opcional)

Descrições Curtas

tinysparql

é um programa de controle para bases de dados TinySPARQL

libtinysparql-3.0.so

contém funções para administrar bases de dados TinySPARQL

libtracker-sparql-3.0.so

contém funções de gerenciamento de recursos e de base de dados

localsearch-3.8.2

Introdução ao Localsearch

O pacote Localsearch contém um indexador de sistema de arquivos, bem como um extrator de metadados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/localsearch/3.8/localsearch-3.8.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 56dfb5a30b3ab5ba33939d9f6bc21016

  • Tamanho da transferência: 4,3 MB

  • Espaço em disco estimado exigido: 31 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicionar o equivalente a 1,0 UPC para testes, dependente da velocidade do disco)

Dependências do Localsearch

Exigidas

Exempi-2.6.5, gexiv2-0.14.3, gst-plugins-base-1.24.12 e tinysparql-3.8.2

Recomendadas
Opcionais

asciidoc-10.2.1, CMake-3.31.5, DConf-0.40.0, FFmpeg-7.1, libgsf-1.14.53, NetworkManager-1.50.0, taglib-2.0.2, totem-pl-parser-3.26.6, libcue, libgrss, libitpcdata, libosinfo e gupnp

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo, em seguida recompile o núcleo e reinicialize se necessário:

Security options --->
  [*]        Enable different security models                         [SECURITY]
  [*]        Landlock support                                [SECURITY_LANDLOCK]
  # List more Linux Security Modules here (separated with comma) if needed,
  # for example 'landlock,lockdown,smack':
  (landlock) Ordered list of enabled LSMs                                  [LSM]

Instalação do Localsearch

Atenção

Se você estiver atualizando esse pacote a partir de uma versão onde ele era conhecido como tracker-miners, existem vários arquivos que causarão conflitos. Antes de instalar esse pacote, remova esses arquivos como o(a) usuário(a) root:

rm -fv /etc/xdg/autostart/tracker-miner-fs-3.desktop                           &&
rm -fv /usr/lib/systemd/user/tracker-miner-fs-3.service                        &&
rm -fv /usr/lib/systemd/user/tracker-miner-fs-control-3.service                &&
rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Miner.Files.service &&
rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Writeback.service   &&
rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Miner.Files.Control.service

Nota

Se você planeja executar os testes, alguns tempos limite são muito curtos ao usar discos giratórios. Existem dois lugares onde os tempos limite são usados: primeiro, testes individuais dentro de um grupo de testes tem um tempo limite padrão de 10s. Isso pode ser mudado configurando-se a variável de ambiente TRACKER_TESTS_AWAIT_TIMEOUT para o valor desejado ao executar os testes (veja-se abaixo). Segundo, um tempo limite global para um grupo de testes é fixado em tempo de configuração. O valor padrão no diretório functional-tests (outros diretórios tem somente testes de curta duração) pode ser aumentado com o seguinte comando (substitua 200 por um valor adequado para tua máquina):

sed -i s/120/200/ tests/functional-tests/meson.build

Instale Localsearch executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr                  \
            --buildtype=release            \
            -D systemd_user_services=false \
            -D man=false                   \
            -D miner_rss=false             \
            ..                             &&
ninja

Para testar os resultados, emita (ajuste o tempo limite do teste individual para um valor adequado para a tua máquina; veja-se a nota acima):

dbus-run-session env LC_ALL=C.UTF-8 TRACKER_TESTS_AWAIT_TIMEOUT=20 \
                 ninja test &&
rm -rf ~/tracker-tests

Agora, como o(a) usuário(a) root:

ninja install

Nota

Os testes criam arquivos no diretório do(a) usuário(a) (até 24 MB), de forma que eles tem de ser removidos posteriormente.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D man=false: Essa chave impede o processo de construção de gerar páginas de manual. Omita essa chave se você tiver asciidoc-10.2.1 instalado e desejar gerar e instalar as páginas de manual.

-D miner_rss=false: Essa chave impede usar libgrss para indexar feeds RSS porque libgrss é insegura e não mais está no BLFS.

-D systemd_user_services=false: Essa chave impede o processo de construção de instalar unidades do systemd, pois elas são inúteis em sistemas SysV.

-D seccomp=false: Essa opção desabilita o filtro de chamada de sistema seccomp. Em algumas arquiteturas, como i686 e ARM, as funções que o tracker-miners usa não são protegidas corretamente, e o tracker-miners será morto com um SIGSYS como resultado. Observe que desabilitar o seccomp pode fazer com que o sistema seja comprometido ainda mais no caso de uma vulnerabilidade de segurança no localsearch ou nas dependências dele ser explorada.

-D landlock=disabled: Essa chave desabilita o sandbox de acesso a arquivos Landlock. Use-a se você não quiser construir o núcleo com suporte a Landlock. Observe que desabilitar Landlock pode fazer com que o sistema seja comprometido ainda mais no caso de uma vulnerabilidade de segurança no localsearch ou nas dependências dele ser explorada.

-D battery_detection=none: Use essa opção se você não tiver instalado a dependência recomendada upower. Não use essa opção se teu sistema tiver uma bateria (bateria de laptop ou UPS), ou então o localsearch possivelmente desperdice a vida útil da bateria quando a eletricidade CA estiver indisponível.

Conteúdo

Aplicativos Instalados: localsearch
Bibliotecas Instaladas: Vários módulos sob /usr/lib/localsearch-3.0
Diretórios Instalados: /usr/lib/localsearch-3.0 e /usr/share/localsearch

Descrições Curtas

localsearch

inicia, para, reinicia e lista processos de segundo plano responsáveis pela indexação de conteúdo

GSound-1.0.3

Introdução ao GSound

O pacote gsound contém uma pequena biblioteca para reproduzir sons do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do gsound

Exigidas

libcanberra-0.30

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para gerar documentação)

Instalação do GSound

Instale o gsound executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gsound-play
Bibliotecas Instaladas: libgsound.so
Diretórios Instalados: /usr/share/gtk-doc/html/gsound

Descrições Curtas

gsound-play

reproduz sons do sistema por intermédio da interface libgsound

libgsound.so

contém funções de API para reproduzir sons do sistema

xdg-desktop-portal-gnome-47.3

Introdução ao xdg-desktop-portal-gnome

xdg-desktop-portal-gnome é uma estrutura de retaguarda para xdg-desktop-portal, que está usando GTK e várias peças da infraestrutura do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-desktop-portal-gnome

Exigidas

gnome-desktop-44.1, GTK-4.16.12, libadwaita-1.6.4, xdg-desktop-portal-1.20.0 e xdg-desktop-portal-gtk-1.15.2 (em tempo de execução)

Instalação do xdg-desktop-portal-gnome

Instale xdg-desktop-portal-gnome executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr              \
            --buildtype=release        \
            -D systemduserunitdir=/tmp \
            ..                         &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Remova arquivos do systemd que são inúteis (como o(a) usuário(a) root):

rm -vf /tmp/*.service

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Conteúdo

Aplicativo Instalado: um processo de segundo plano em /usr/libexec
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/xdg-desktop-portal (se nenhuma outra estrutura de retaguarda do xdg-desktop-portal estiver instalada)

Componentes da Área de Trabalho do GNOME

DConf-0.40.0 / DConf-Editor-45.0.1

Introdução ao DConf

O pacote DConf contém um sistema de configuração de baixo nível. O principal propósito dele é o de fornecer uma estrutura de retaguarda para o GSettings em plataformas que ainda não tem sistemas de armazenamento de configuração.

O DConf-Editor, como o nome sugere, é um editor gráfico para a base de dados DConf. A instalação é opcional, porque o gsettings originário de GLib-2.82.5 fornece funcionalidade semelhante na linha de comando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/dconf/0.40/dconf-0.40.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ac8db20b0d6b996d4bbbeb96463d01f0

  • Tamanho da transferência: 115 KB

  • Espaço em disco estimado exigido: 7,0 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes)

Transferências Adicionais

Dependências do DConf

Exigidas

dbus-1.16.0, GLib-2.82.5, GTK-3.24.48 (para o editor), libhandy-1.8.3 (para o editor) e libxml2-2.13.6 (para o editor)

Recomendadas
Opcionais

GTK-Doc-1.34.0 e bash-completion

Instalação do DConf

Primeiro, evite que unidades desnecessárias do systemd sejam instaladas:

sed -i 's/install_dir: systemd_userunitdir,//' service/meson.build

Instale o DConf executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr            \
            --buildtype=release      \
            -D bash_completion=false \
            ..                      &&
ninja

Para testar os resultados, emita: ninja test

Como o(a) usuário(a) root:

ninja install

Agora, opcionalmente, instale o editor:

cd ..              &&
tar -xf ../dconf-editor-45.0.1.tar.xz &&
cd dconf-editor-45.0.1                &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: dconf e dconf-editor
Bibliotecas Instaladas: libdconf.so e libdconfsettings.so (Módulo GIO instalado em /usr/lib/gio/modules)
Diretórios Instalados: /usr/{include,share/gtk-doc/html}/dconf

Descrições Curtas

dconf

é uma ferramenta simples para manipular a base de dados do DConf

dconf-editor

é um aplicativo gráfico para editar a base de dados do DConf

libdconf.so

contém as funções de API do cliente do DConf

gnome-backgrounds-47.0

Introdução ao GNOME Backgrounds

O pacote GNOME Backgrounds contém uma coleção de arquivos gráficos que podem ser usados como planos de fundo no ambiente de Área de Trabalho do GNOME. Além disso, o pacote cria a adequada estrutura essencial de suporte e diretórios, de forma que você possa adicionar os teus próprios arquivos à coleção.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de GNOME Backgrounds

Exigidas em tempo de execução

libjxl-0.11.1

Instalação do GNOME Backgrounds

Instale o GNOME Backgrounds executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr ..

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/backgrounds/gnome e /usr/share/gnome-background-properties

Descrições Curtas

GNOME Backgrounds

são imagens de plano de fundo para a Área de Trabalho do GNOME

Gvfs-1.56.1

Introdução ao Gvfs

O pacote Gvfs é um sistema de arquivos virtual de espaço de usuário(a) projetado para funcionar com as abstrações de E/S da biblioteca GIO da GLib.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gvfs/1.56/gvfs-1.56.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5ba12cd02b17c058aa71adc39c5eb6cf

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 29 MB

  • Tempo de construção estimado: 0,1 UPC (usando paralelismo = 4)

Dependências do Gvfs

Exigidas

dbus-1.16.0, GLib-2.82.5, Gcr-4.3.1, libusb-1.0.27 e libsecret-0.21.6

Recomendadas
Opcionais

Apache-2.4.63, Avahi-0.8, BlueZ-5.79, Fuse-3.16.2, gnome-online-accounts-3.52.3.1, GTK-Doc-1.34.0, libarchive-3.7.7, libgcrypt-1.11.0, libgdata-0.18.1, libxml2-2.13.6, libxslt-1.1.42, OpenSSH-9.9p2, Samba-4.21.4, gnome-desktop-testing (para testes), libbluray, libgphoto2, libimobiledevice, libmsgraph, libmtp, libnfs e Twisted

Instalação do Gvfs

Instale o Gvfs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup               \
      --prefix=/usr       \
      --buildtype=release \
      -D onedrive=false   \
      -D fuse=false       \
      -D gphoto2=false    \
      -D afc=false        \
      -D bluray=false     \
      -D nfs=false        \
      -D mtp=false        \
      -D smb=false        \
      -D tmpfilesdir=no   \
      -D dnssd=false      \
      -D goa=false        \
      -D google=false     \
      -D systemduserunitdir=no .. &&
ninja

A suíte de teste exige gnome-desktop-testing, que está além do escopo do BLFS.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D <option>=false: Essas chaves são exigidas se a dependência correspondente não estiver instalada. Remova aquelas onde você tiver instalado o aplicativo correspondente e desejar usá-lo com o Gvfs. A opção dnssd exige avahi e, ambos, goa e google exigem GNOME Online Accounts. A opção google também exige libgdata. A opção google também exige libgdata. O suporte a onedrive exige o pacote libmsgraph.

-D tmpfilesdir=no -D systemduserunitdir=no: Essas chaves fornecem locais de diretório do systemd. Configurá-las para no desabilita a dependência do systemd e do logind.

-D cdda=false: Essa chave é exigida se a libcdio não estiver instalada. A estrutura de retaguarda cdda é inútil em máquinas sem uma unidade de CDROM/DVD.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgvfscommon.so, libgvfsdaemon.so e algumas sob /usr/lib/gio/modules/
Diretórios Instalados: /usr/include/gvfs-client e /usr/{lib,share}/gvfs

Descrições Curtas

libgvfscommon.so

contém as funções comuns de API usadas em aplicativos Gvfs

gexiv2-0.14.3

Introdução ao gexiv2

gexiv2 é um envolucrador baseado em GObject em torno da biblioteca Exiv2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gexiv2/0.14/gexiv2-0.14.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d4ca9614baa0bc30d142bcad65f09910

  • Tamanho da transferência: 384 KB

  • Espaço em disco estimado exigido: 3,3 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com paralelismo=4 e testes)

Dependências do gexiv2

Exigidas

Exiv2-0.28.5

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para documentação)

Instalação do gexiv2

Instale o gexiv2 executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, execute:

meson configure -D tests=true &&
ninja test

Como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgexiv2.so
Diretórios Instalados: /usr/include/gexiv2

Descrições Curtas

libgexiv2.so

fornece um envolucrador em torno da biblioteca Exiv2

Nautilus-47.2

Introdução ao Nautilus

O pacote Nautilus contém o gerenciador de arquivos do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/nautilus/47/nautilus-47.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 731bc0b5189c8ea9853d51c10c8764f7

  • Tamanho da transferência: 3,1 MB

  • Espaço em disco estimado exigido: 93 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (com testes, ambos usando paralelismo=4)

Dependências do Nautilus

Exigidas

bubblewrap-0.11.0, gexiv2-0.14.3, gnome-autoar-0.4.5, gnome-desktop-44.1, libadwaita-1.6.4, libnotify-0.8.4, libportal-0.9.1, libseccomp-2.6.0 e tinysparql-3.8.2

Recomendadas
Opcionais (para gerar documentação)

Gi-DocGen-2025.3

Recomendadas (tempo de execução)

Instalação do Nautilus

Instale o Nautilus executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            ..                  &&

ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar gerar e instalar a documentação da API, emita os seguintes comandos:

sed "/docdir =/s@\$@ / 'nautilus-47.2'@" -i ../meson.build &&
meson configure -D docs=true &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados em um ambiente gráfico. Um teste é conhecido por falhar se o localsearch-3.8.2 não estiver instalado. Um teste também é conhecido por atingir o tempo limite se o(a) usuário(a) executando os testes tiver um diretório inicial grande.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D cloudproviders=false: Use essa chave se você não tiver libcloudproviders-0.3.6 instalado.

Conteúdo

Aplicativos Instalados: nautilus e nautilus-autorun-software
Biblioteca Instalada: libnautilus-extension.so
Diretórios Instalados: /usr/{include,lib,share}/nautilus e /usr/share/doc/nautilus-47.2 (opcional)

Descrições Curtas

nautilus

é o gerenciador de arquivos do GNOME

libnautilus-extension.so

fornece as funções necessárias para as extensões do gerenciador de arquivos

gnome-bluetooth-47.1

Introdução ao GNOME Bluetooth

O pacote GNOME Bluetooth contém ferramentas para gerenciar e manipular dispositivos Bluetooth usando a Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Bluetooth

Exigidas

GTK-4.16.12, gsound-1.0.3, libnotify-0.8.4 e UPower-1.90.7

Recomendadas
Opcionais

GTK-Doc-1.34.0 e dbusmock-0.34.3

Dependências de Tempo de Execução

BlueZ-5.79

Instalação do GNOME Bluetooth

Instale o GNOME Bluetooth executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: bluetooth-sendto
Bibliotecas Instaladas: libgnome-bluetooth-3.0.so e libgnome-bluetooth-ui-3.0.so
Diretórios Instalados: /usr/include/gnome-bluetooth-3.0 e /usr/share/gnome-bluetooth-3.0

Descrições Curtas

bluetooth-sendto

é um aplicativo GTK+ para transferência de arquivos via Bluetooth

libgnome-bluetooth-3.0.so

contém as funções de API do GNOME Bluetooth

gnome-keyring-46.2

Introdução ao GNOME Keyring

O pacote GNOME Keyring contém um processo de segundo plano que mantém senhas e outros segredos para usuários(as).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Keyring

Exigidas

dbus-1.16.0 e Gcr-3.41.2

Recomendadas
Opcionais

GnuPG-2.4.7, Valgrind-3.24.0, LCOV e libcap-ng

Instalação do GNOME Keyring

Instale o GNOME Keyring executando os seguintes comandos:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --enable-ssh-agent &&
make

Um endereço de barramento de sessão é necessário para executar os testes. Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ... schema/*.xml: Esse comando corrige uma entrada obsoleta no modelo de esquema.

--enable-ssh-agent: Essa chave habilita o agente SSH integrado ao gnome-keyring em vez daquele no GCR. Isso é feito devido a defeitos no gcr que fazem com que o agente não funcione corretamente.

Conteúdo

Aplicativos Instalados: gnome-keyring (link simbólico), gnome-keyring-3 e gnome-keyring-daemon
Bibliotecas Instaladas: gnome-keyring-pkcs11.so (módulo PKCS#11) e pam_gnome_keyring.so (módulo PAM)
Diretório Instalado: /usr/lib/gnome-keyring e /usr/share/xdg-desktop-portal

Descrições Curtas

gnome-keyring-daemon

é um processo de segundo plano de sessão que mantém senhas para usuários(as)

gnome-settings-daemon-47.2

Introdução ao GNOME Settings Daemon

O GNOME Settings Daemon é responsável por configurar vários parâmetros de uma Sessão do GNOME e dos aplicativos que executam sob ela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Settings Daemon

Exigidas

alsa-lib-1.2.13, Fontconfig-2.16.0, Gcr-4.3.1, GeoClue-2.7.2, geocode-glib-3.26.4, gnome-desktop-44.1, libcanberra-0.30, libgweather-4.4.4, libnotify-0.8.4, libwacom-2.14.0, PulseAudio-17.0 e UPower-1.90.7

Recomendadas

Nota

As dependências recomendadas não são estritamente exigidas para esse pacote construir e funcionar, mas você possivelmente não obtenha os resultados esperados em tempo de execução se não as instalar.

Recomendadas (tempo de execução)
Opcionais

gnome-session-47.0.1, Mutter-47.5, dbusmock-0.34.3, umockdev-0.19.1 e Xvfb (para testes, originário de Xorg-Server-21.1.16 ou Xwayland-24.1.6)

Instalação do GNOME Settings Daemon

A seguir, corrija a detecção da libelogind para testes:

sed -e 's/libsystemd/libelogind/' \
    -i plugins/power/test.py

A seguir, corrija a funcionalidade da luz de fundo no gnome-control-center:

sed -e 's/(backlight->logind_proxy)/(0)/' \
    -i plugins/power/gsd-backlight.c

Instale o Gnome Settings Daemon executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D systemd=false    \
            ..                  &&
ninja

Para verificar os resultados, execute: ninja test. Observe que você precisa ter o python-dbusmock instalado para a finalidade de que os testes completem com sucesso. Alguns testes possivelmente falhem dependendo do sistema init em uso.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgsd.so
Diretórios Instalados: /etc/xdg/Xwayland-session.d, /usr/include/gnome-settings-daemon-47, /usr/lib/gnome-settings-daemon-47 e /usr/share/gnome-settings-daemon

Tecla-47.0

Introdução ao Tecla

O pacote Tecla contém um visualizador de esquema de teclado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/tecla/47/tecla-47.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 68233c486bfe8b86f759fdd9ae1be00a

  • Tamanho da transferência: 40 KB

  • Espaço em disco estimado exigido: 1,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Tecla

Exigidas

libadwaita-1.6.4 e libxkbcommon-1.8.0

Instalação do Tecla

Instale Tecla executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: tecla
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

tecla

é um visualizador de esquema de teclado

gnome-control-center-47.4

Introdução ao GNOME Control Center

O pacote GNOME Control Center contém o gerenciador de configurações do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Control Center

Exigidas

AccountsService-23.13.9, colord-gtk-0.3.1, Cups-2.4.11, gnome-bluetooth-47.1, gnome-online-accounts-3.52.3.1, gnome-settings-daemon-47.2, gsound-1.0.3, libadwaita-1.6.4, libgtop-2.41.3, libnma-1.10.6, libpwquality-1.4.5, MIT Kerberos V5-1.21.3, ModemManager-1.18.12, Samba-4.21.4, shared-mime-info-2.4, Tecla-47.0 e UDisks-2.10.1

Recomendadas
Opcionais

Xvfb (originário de Xorg-Server-21.1.16 ou Xwayland-24.1.6) e dbusmock-0.34.3 (ambos para testes)

Recomendadas (tempo de execução)
Dependências Opcionais em Tempo de Execução

cups-pk-helper-0.2.7 (painel de impressoras), gnome-color-manager-3.36.2 (painel de cores), gnome-shell-47.4 (painel Aplicativos) e sound-theme-freedesktop-0.8 (Efeitos Sonoros Adicionais no painel Som)

Nota

As dependências recomendadas não são estritamente exigidas para esse pacote construir e funcionar, mas você possivelmente não obtenha os resultados esperados em tempo de execução se não as instalar.

Instalação do GNOME Control Center

Instale o GNOME Control Center executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: GTK_A11Y=none ninja test. Observe que você precisa ter o módulo python-dbusmock instalado para a finalidade de que os testes completem com sucesso.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D ibus=false: Use essa chave se você não tiver instalado a dependência recomendada do IBus.

Conteúdo

Aplicativos Instalados: gnome-control-center
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-control-center, /usr/share/pixmaps/faces e /usr/share/sounds/gnome

Descrições Curtas

gnome-control-center

é uma interface gráfica de usuário(a) usada para configurar vários aspectos do GNOME

Mutter-47.5

Introdução ao Mutter

Mutter é o gerenciador de janelas para o GNOME. Ele não é invocado diretamente, mas a partir da Sessão GNOME (em uma máquina com um controlador de vídeo acelerado por hardware).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/mutter/47/mutter-47.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c899a4fed30ce1a99f0e17567b59cfb9

  • Tamanho da transferência: 6,5 MB

  • Espaço em disco estimado exigido: 72 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; adicionar 1,4 UPC para testes)

Dependências do Mutter

Exigidas

gnome-settings-daemon-47.2, graphene-1.10.8, libei-1.3.0, libxcvt-0.1.3, libxkbcommon-1.8.0 e pipewire-1.2.7

Recomendadas
Recomendadas (exigidas para construir o compositor Wayland)
Recomendadas (tempo de execução)
Opcionais

dbusmock-0.34.3 (exigido para testes), Xorg-Server-21.1.16 (para sessões do X11), sysprof, Xvfb (proveniente de Xorg-Server-21.1.16 ou Xwayland-24.1.6), xvfb-run, e zenity (os testes X11 somente executariam com todos os três últimos)

Instalação do Mutter

Instale o Mutter executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D tests=disabled   \
            -D profiler=false   \
            ..                  &&
ninja

Se você quiser executar a suíte de teste, certifique-se de que dbusmock-0.34.3 esteja instalado e emita:

meson configure -D tests=enabled -D clutter_tests=false &&
ninja test

Os testes exigem uma sessão ativa do X ou do wayland. Alguns testes são instáveis (especialmente sob uma carga alta do sistema), de forma que se um teste falhar, você pode tentar executá-lo novamente sozinho com o comando meson test <nome teste>. Alguns testes possivelmente falhem dependendo de alguma configuração do sistema. Não faça nenhuma entrada de mouse ou de teclado enquanto a suíte de teste estiver executando ou alguns testes possivelmente falhem. Você também consegue testar funções básicas do Mutter seguindo “Iniciando o Mutter,” depois de instalá-lo.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D tests=disabled: Permite construir o pacote sem dbusmock-0.34.3 instalado. Ele será substituído por meson configure se executar a suíte de teste.

-D clutter_tests=false: Desabilita os testes para a biblioteca Clutter enviada. Os testes Clutter são conhecidos por falharem com --buildtype=release.

-D profiler=false: Permite construir esse pacote sem Sysprof. Remova essa opção se você não tiver instalado o Sysprof e desejar analisar o desempenho de renderização do Mutter.

-D libdisplay_info=disabled: Isso permite construir esse pacote sem libdisplay-info-0.2.0 instalado.

Iniciando o Mutter

Mutter normalmente é usado como um componente do gnome-shell, mas também pode ser usado como um compositor autônomo Wayland. Para executar Mutter como um compositor Wayland, em um console virtual, emita:

mutter --wayland -- vte-2.91

Substitua vte-2.91 pela linha de comando do primeiro aplicativo que você deseja na sessão do Wayland. Observe que assim que esse aplicativo sair, a sessão do Wayland será terminada.

Mutter também pode funcionar como um compositor aninhado em outra sessão do Wayland. Em um emulador de terminal, emita:

MUTTER_DEBUG_DUMMY_MODE_SPECS=1920x1080 mutter --wayland --nested -- vte-2.91

Substitua 1920x1080 pelo tamanho que você quiser para a sessão aninhada do Wayland.

Conteúdo

Aplicativos Instalados: mutter
Bibliotecas Instaladas: libmutter-15.so e libmutter-test-15.so (opcional)
Diretórios Instalados: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-15

Descrições Curtas

mutter

é um gerenciador de janelas de composição GTK+ baseado em Clutter

libmutter-15.so

contém as funções da API do Mutter

libmutter-test-15.so

contém as funções de API da suíte de teste do Mutter; essa biblioteca só é instalada se a suíte de teste desse pacote for executada e for necessária para a suíte de teste do gnome-shell

gnome-shell-47.4

Introdução ao GNOME Shell

O GNOME Shell é a interface central de usuário(a) do ambiente de área de trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Shell

Exigidas

evolution-data-server-3.54.3, Gcr-4.3.1, Gjs-1.82.1, gnome-desktop-44.1, ibus-1.5.31, Mutter-47.5, Polkit-126 e startup-notification-0.12

Recomendadas
Opcionais

GTK-Doc-1.34.0 e bash-completion

Dependências Exigidas de Tempo de Execução

adwaita-icon-theme-47.0, DConf-0.40.0, elogind-255.17, GDM-47.0, gnome-control-center-47.4, e libgweather-4.4.4

Dependências do Recommended Runtime

Instalação do GNOME Shell

Instale o GNOME Shell executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D systemd=false    \
            -D tests=false      \
            ..                  &&
ninja

Para executar os testes, certifique-se de que Mutter esteja instalado depois de executar a suíte de teste dele e emita: meson configure -D tests=true && ninja test. Você precisa estar executando uma sessão do X para executar os testes. Alguns falharão se GDM-47.0 não estiver instalado. Vários outros testes possivelmente falhem no ambiente Sysv. Um teste chamado Suporte a estilo CSS é conhecido por falhar com algumas configurações de vários monitores.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D systemd=false: Impede a instalação de arquivos systemd, que não são necessários nesta versão do BLFS.

-D extensions_tool=false: Essa chave permite construir esse pacote sem gnome-autoar-0.4.5 instalado.

Conteúdo

Aplicativos Instalados: gnome-extensions, gnome-extensions-app, gnome-shell, gnome-shell-extension-prefs, gnome-shell-extension-tool e gnome-shell-test-tool
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/gnome-shell, /usr/share/gnome-shell, /usr/share/gtk-doc/html/{shell,st} (opcional) e /usr/share/xdg-desktop-portal/

Descrições Curtas

gnome-shell

fornece as funções centrais da interface de usuário(a) para a área de trabalho do GNOME

gnome-shell-extensions-47.4

Introdução ao GNOME Shell Extensions

O pacote GNOME Shell Extensions contém uma coleção de extensões que fornecem funcionalidades adicionais e opcionais para o GNOME Shell.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Shell Extensions

Exigidas

libgtop-2.41.3

Instalação do GNOME Shell Extensions

Instale o GNOME Shell Extensions executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr .. 

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-shell/extensions

gnome-session-47.0.1

Introdução ao GNOME Session

O pacote GNOME Session contém o gerenciador de sessões do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Session

Exigidas

elogind-255.17, gnome-desktop-44.1, JSON-GLib-1.10.6, Mesa-24.3.4 e UPower-1.90.7

Opcionais

xmlto-0.0.29 e libxslt-1.1.42 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir a documentação)

Instalação do GNOME Session

Ao executar o GNOME sob o Wayland-1.23.0, as configurações de ambiente não são importadas para o(a) usuário(a) que usa o perfil do sistema. Os(As) desenvolvedores(as) do Wayland estão atualmente indecisos a respeito de um método padrão para fornecer configurações de ambiente de sistema para sessões de usuário(a). Para contornar essa limitação, execute o seguinte comando para fazer com que gnome-session use um shell de login:

sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/gnome-session.in

Instale o GNOME Session executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr              \
            --buildtype=release        \
            -D systemduserunitdir=/tmp \
            ..                         &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Mova a documentação para um diretório versionado:

mv -v /usr/share/doc/gnome-session{,-47.0.1}

Esse pacote cria dois arquivos .desktop baseados em Xorg no diretório /usr/share/xsessions/ e dois arquivos .desktop baseados em Wayland no diretório /usr/share/wayland-sessions/. Somente um é necessário em cada diretório em um sistema BLFS, de forma que evite que os arquivos extras apareçam como opções em um gerenciador de exibição. Como o(a) usuário(a) root:

rm -v /usr/share/xsessions/gnome.desktop &&
rm -v /usr/share/wayland-sessions/gnome.desktop

Agora, como o(a) usuário(a) root, remova as unidades systemd que são inúteis em sistemas SysV:

rm -rv /tmp/{*.d,*.target,*.service}

A sequência de iniciação do gnome-wayland precisa criar uma sessão dbus. No SysV, isso tem de ser adicionado ao arquivo gnome-wayland.desktop enviado, que é escrito para systemd. Como o(a) usuário(a) root:

sed -e 's@^Exec=@&/usr/bin/dbus-run-session @' \
    -i /usr/share/wayland-sessions/gnome-wayland.desktop

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Iniciando o GNOME

A maneira mais fácil de iniciar o GNOME é a de usar um gerenciador de exibição. GDM-47.0 é o gerenciador de exibição recomendado.

Também é possível iniciar o GNOME a partir da linha de comando. No entanto, você ainda precisa ter o GDM-47.0 instalado para que algumas partes da área de trabalho funcionem. Um motivo para iniciar a partir da linha de comando é se você quiser suporte ao Wayland em um sistema que tenha o controlador proprietário NVIDIA instalado, uma vez que o GDM não mostrará o tipo de sessão do Wayland em tal sistema.

Para iniciar o GNOME usando xinit-1.4.3, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
dbus-run-session gnome-session
EOF

startx

Alternativamente, para iniciar o GNOME com suporte ao Wayland, execute o seguinte comando:

XDG_SESSION_TYPE=wayland dbus-run-session gnome-session

Conteúdo

Aplicativos Instalados: gnome-session, gnome-session-inhibit e gnome-session-quit
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/gnome-session-47.0.1 e /usr/share/gnome-session

Descrições Curtas

gnome-session

é usado para iniciar o ambiente de área de trabalho do GNOME

gnome-session-inhibit

é usado para inibir certas funcionalidades da sessão do GNOME enquanto executar o comando dado

gnome-session-quit

é usado para terminar a sessão do GNOME

gnome-tweaks-46.1

Introdução ao GNOME Tweaks

GNOME Tweaks é um aplicativo simples usado para ajustar configurações avançadas do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Tweaks

Exigidas

GTK-4.16.12, gsettings-desktop-schemas-47.1, libadwaita-1.6.4, libgudev-238, PyGObject-3.50.0 e sound-theme-freedesktop-0.8

Instalação do GNOME Tweaks

Instale o GNOME Tweaks executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-tweaks
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.13/site-packages/gtweak e /usr/share/gnome-tweaks

Descrições Curtas

gnome-tweaks

é usado para ajustar configurações avançadas do GNOME

gnome-user-docs-47.2

Introdução ao GNOME User Docs

O pacote GNOME User Docs contém documentação para o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME User Docs

Exigidas

itstool-2.0.7 e libxml2-2.13.6

Instalação do GNOME User Docs

Instale o GNOME User Docs executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/gnome-help e /usr/share/help/*/system-admin-guide

Yelp-42.2

Introdução ao Yelp

O pacote Yelp contém um navegador de ajuda usado para visualizar arquivos de ajuda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Yelp

Exigidas

gsettings-desktop-schemas-47.1, WebKitGTK-2.46.6 e yelp-xsl-42.1

Recomendadas
Opcionais

GTK-Doc-1.34.0

Nota

O pacote Yelp não é exigido para uma Área de Trabalho do GNOME funcional. Observe, entretanto, que sem o Yelp você não será capaz de visualizar a Ajuda integrada fornecida pelo GNOME central e por muitos dos aplicativos de suporte.

Instalação do Yelp

Instale o Yelp executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Ainda como o(a) usuário(a) root, certifique-se de que /usr/share/applications/mimeinfo.cache será atualizado e, portanto, que o help em aplicativos do GNOME funcionará.

update-desktop-database

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: gnome-help (link simbólico) e yelp
Biblioteca Instalada: libyelp.so
Diretórios Instalados: /usr/include/libyelp, /usr/share/gtk-doc/html/libyelp (opcional) e /usr/{lib,share}/yelp

Descrições Curtas

yelp

é o Navegador de Ajuda do GNOME

libyelp.so

contém as funções da API do Yelp

Capítulo 34. Aplicativos do GNOME

Esses pacotes são aplicativos de área de trabalho e utilitários variados provenientes do projeto GNOME. Sinta-se à vontade para instalá-los conforme necessário ou conforme desejado.

Baobab-47.0

Introdução ao Baobab

O pacote Baobab contém um analisador gráfico de árvore de diretórios.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/baobab/47/baobab-47.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e11446a330a74fd5637c503f6c46ef7c

  • Tamanho da transferência: 596 KB

  • Espaço em disco estimado exigido: 10 MB

  • Tempo de construção estimado: menos que 0,1 UPC (Usando paralelismo=4)

Dependências do Baobab

Exigidas

adwaita-icon-theme-47.0, GTK-4.16.12, itstool-2.0.7, libadwaita-1.6.4 e Vala-0.56.17

Instalação do Baobab

Instale o Baobab executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: baobab
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/baobab

Descrições Curtas

baobab

é uma ferramenta gráfica usada para analisar o uso do disco

Brasero-3.12.3

Introdução ao Brasero

Brasero é um aplicativo usado para gravar CDs e DVDs na Área de Trabalho do GNOME. Ele foi projetado para ser o mais simples possível e tem alguns recursos exclusivos que habilitam usuários(as) a criar os discos deles(as) fácil e rapidamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Brasero

Exigidas

gst-plugins-base-1.24.12, itstool-2.0.7, libcanberra-0.30 e libnotify-0.8.4

Recomendadas
Opcionais

GTK-Doc-1.34.0

Recomendadas (tempo de execução)
Opcionais (Tempo de execução)

Cdrdao-1.2.4, libdvdcss-1.4.3, Cdrtools-3.02a09 e VCDImager

Instalação do Brasero

Primeiro, corrija um problema de construção que ocorre com o GCC-14:

patch -Np1 -i ../brasero-3.12.3-upstream_fixes-1.patch

Instale o Brasero executando os seguintes comandos:

./configure --prefix=/usr                \
            --enable-compile-warnings=no \
            --enable-cxx-warnings=no     \
            --disable-nautilus           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-*-warnings=no: Essas chaves corrigem problemas de construção sob compiladores GCC-6.x.

--disable-nautilus: Essa chave desabilita a construção da extensão Nautilus, pois ela é incompatível com a versão gtk4 do Nautilus.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: brasero
Bibliotecas Instaladas: libbrasero-{burn,media,utils}3.so
Diretórios Instalados: /usr/include/brasero3, /usr/lib/brasero3, /usr/share/brasero, /usr/share/gtk-doc/html/libbrasero-{burn,media} e /usr/share/help/*/brasero

Descrições Curtas

brasero

é um aplicativo de gravação de CD/DVD simples e fácil de usar para a Área de Trabalho do GNOME

libbrasero-burn3.so

contém as funções da API de gravação

libbrasero-media3.so

contém as funções da API de mídia

libbrasero-utils3.so

contém as funções da API do Brasero

EOG-47.0

Introdução ao EOG

EOG é um aplicativo usado para visualizar e catalogar arquivos de imagem na Área de Trabalho do GNOME. Ele também tem recursos básicos de edição.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/eog/47/eog-47.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: af0f617adbe8eabcdc3a926aae4ddaa7

  • Tamanho da transferência: 4,4 MB

  • Espaço em disco estimado exigido: 32 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do EOG

Exigidas

adwaita-icon-theme-47.0, Exempi-2.6.5, gnome-desktop-44.1, libhandy-1.8.3, libjpeg-turbo-3.0.1, libpeas-1.36.0 e shared-mime-info-2.4

Recomendadas
Opcionais

GTK-Doc-1.34.0 e libportal-0.9.1

Instalação do EOG

Instale o EOG executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D libportal=false  \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Ainda como o(a) usuário(a) root, reconstrua a base de dados de cache dos tipos MIME manuseados pelos arquivos da área de trabalho, de forma que o Nautilus-47.2 estará apto a abrir arquivos de imagem com EOG.

update-desktop-database

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D libportal=false: Esse parâmetro desabilita a construção de EOG com suporte para portais flatpak. Remova esse parâmetro se você tiver o libportal-0.9.1 instalado e desejar ter suporte para portais flatpak.

-D gtk_doc=true: Use essa opção se o GTK-Doc-1.34.0 estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: eog
Biblioteca Instalada: libeog.so
Diretórios Instalados: /usr/include/eog-3.0, /usr/lib/eog, /usr/share/eog, /usr/share/gtk-doc/html/eog (opcional) e /usr/share/help/*/eog

Descrições Curtas

eog

é um visualizador de imagens rápido e funcional, bem como um aplicativo de catalogação de imagens. Ele tem recursos básicos de edição

Evince-46.3.1

Introdução ao Evince

Evince é um visualizador de documentos para vários formatos de documentos. Ele suporta PDF, Postscript, DjVu, TIFF e DVI. Ele é útil para visualizar documentos de vários tipos usando um aplicativo simples em vez dos múltiplos visualizadores de documentos que existiam na Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Evince

Exigidas

adwaita-icon-theme-47.0, gsettings-desktop-schemas-47.1, GTK-3.24.48, itstool-2.0.7, libhandy-1.8.3, libxml2-2.13.6 e OpenJPEG-2.5.3

Recomendadas
Opcionais

Cups-2.4.11 (para habilitar impressão, se o suporte estiver construído no GTK+ 3), gnome-desktop-44.1, gspell-1.14.0, gst-plugins-base-1.24.12, Gi-DocGen-2025.3, libgxps-0.3.2, libtiff-4.7.0, texlive-20240312 (ou install-tl-unx), DjVuLibre, libspectre e Synctex

Instalação do Evince

Instale o Evince executando os seguintes comandos:

mkdir build &&
cd    build &&

CPPFLAGS+=" -I/opt/texlive/2024/include" \
meson setup --prefix=/usr                \
            --buildtype=release          \
            -D gtk_doc=false             \
            --wrap-mode=nodownload       \
            -D systemduserunitdir=no ..  &&
ninja

Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir/s@\$@ / 'evince-46.3.1'@" -i ../help/meson.build &&
meson configure -D gtk_doc=true                                 &&
ninja

Esse pacote não tem uma suíte funcional de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

CPPFLAGS+=" -I/opt/texlive/2024/include": Certifique-se de que o meson possa encontrar os cabeçalhos libkpathsea originários do TeXLive se estiver instalado. Isso não tem efeito em sistemas sem o TeXLive instalado.

--wrap-mode=nodownload: Essa chave desabilita a busca de qualquer dependência: o sistema de construção tenta buscar gi-docgen mesmo se -D gtk_doc=false for passado.

-D gtk_doc=false: Permite construir esse pacote sem Gi-DocGen-2025.3 instalado. Se você tiver Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-D gspell=false: Essa chave desliga o suporte para o plugin de verificação ortográfica.

-D introspection=false: Use essa opção se você não tiver construído GLib-2.82.5 com GObject Introspection e não desejar ter suporte de introspecção integrado ao Evince.

-D nautilus=false: Essa chave desabilita a construção do plug-in do Nautilus. Use essa chave se o Nautilus não estiver instalado.

-D keyring=false: Essa chave desabilita o uso da libsecret. Use essa chave se a libsecret não estiver instalada.

-D ps=enabled: Use essa chave se a libspectre estiver instalada e você quiser visualizar arquivos PostScript com o Evince.

Conteúdo

Aplicativos Instalados: evince, evince-previewer e evince-thumbnailer
Bibliotecas Instaladas: libevdocument3.so e libevview3.so
Diretórios Instalados: /usr/{include,lib,share}/evince, /usr/share/gtk-doc/html/{evince,libevdocument-3.0,libevview-3.0} (opcional) e /usr/share/help/*/evince

Descrições Curtas

evince

é um visualizador de documentos em vários formatos

evince-previewer

é um aplicativo que implementa o pré visualizador de impressão

evince-thumbnailer

é um aplicativo simples usado para criar imagens em miniatura de documentos suportados

Evolution-3.54.3

Introdução ao Evolution

O pacote Evolution contém uma suíte integrada de correio, calendário e catálogo de endereços projetada para o ambiente do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Evolution

Exigidas

adwaita-icon-theme-47.0, evolution-data-server-3.54.3, Gcr-4.3.1, gnome-autoar-0.4.5, shared-mime-info-2.4 e WebKitGTK-2.46.6

Recomendadas
Opcionais

GeoClue-2.7.2, geocode-glib-3.26.4 e GTK-Doc-1.34.0, clutter-gtk (plugin Contact Maps), cmark, Glade, libchamplain (plugin Contact Maps), libpst, libunity, libytnef

Instalação do Evolution

Instale o Evolution executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D SYSCONF_INSTALL_DIR=/etc  \
      -D ENABLE_INSTALLED_TESTS=ON \
      -D ENABLE_PST_IMPORT=OFF     \
      -D ENABLE_YTNEF=OFF          \
      -D ENABLE_CONTACT_MAPS=OFF   \
      -D ENABLE_MARKDOWN=OFF       \
      -D ENABLE_WEATHER=ON         \
      -G Ninja .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D ENABLE_YTNEF=OFF: Essa chave é usada para desabilitar o uso da biblioteca yTNEF porque a libytnef não é parte do BLFS.

-D ENABLE_PST_IMPORT=OFF: Essa chave é usada para desabilitar o plugin pst-import porque a libpst não é parte do BLFS.

-D ENABLE_CONTACT_MAPS=OFF: Essa chave desabilita a construção do plug-in de Mapas de Contato. Remova essa chave se você tiver instalado as dependências necessárias e desejar construir o plug-in de Mapas de Contato.

-D ENABLE_MARKDOWN=OFF: Essa chave permite construir sem cmark. Remova essa chave se você precisar de suporte a markdown e tiver instalado a dependência necessária.

-D ENABLE_WEATHER=ON: Essa chave permite construir contra a libgweather-4.4.4.

-D WITH_HELP=OFF: Essa chave desabilita construir o manual desse pacote. Use essa chave se você não tiver instalado itstool-2.0.7.

-D WITH_OPENLDAP=OFF: Use essa chave se você não tiver instalado o OpenLDAP-2.6.9.

Conteúdo

Aplicativos Instalados: evolution
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/evolution, /usr/lib/evolution, /usr/libexec/evolution, /usr/share/evolution, /usr/share/installed-tests/evolution, /usr/share/help/*/evolution e, opcionalmente, /usr/share/gtk-doc/html/{evolution-mail-composer,evolution-mail-engine}, /usr/share/gtk-doc/html/{evolution-mail-formatter,evolution-shell} e /usr/share/gtk-doc/html/evolution-util

Descrições Curtas

evolution

é uma suíte de correio eletrônico, calendário e catálogo de endereços para a Área de Trabalho do GNOME

File-Roller-44.5

Introdução ao File Roller

File Roller é um gerenciador de arquivamentos para o GNOME com suporte para tar, bzip2, bzip3, gzip, zip, jar, compress, lzop, zstd, dmg e muitos outros formatos de arquivamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

File Roller é apenas uma interface gráfica para utilitários de arquivamento como o tar e zip.

Informação do Pacote

Dependências do File Roller

Exigidas

GTK-4.16.12 e itstool-2.0.7

Recomendadas
Opcionais (para a documentação da API)

Gi-DocGen-2025.3

Opcionais (Tempo de execução)

UnRar-7.1.5, libarchive-3.7.7 e Zip-3.0

Instalação do File Roller

Instale o File Roller executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D packagekit=false \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install &&
chmod -v 0755 /usr/libexec/file-roller/isoinfo.sh

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D packagekit=false: Essa chave desabilita o uso do PackageKit que não é adequado para o BLFS.

-D api_docs=enabled: Use essa chave se você tiver o Gi-DocGen-2025.3 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativo Instalado: file-roller
Bibliotecas Instaladas: libnautilus-fileroller.so
Diretórios Instalados: /usr/{libexec,share{,/help/*}}/file-roller

Descrições Curtas

file-roller

é um gerenciador de arquivamentos para o GNOME

gnome-calculator-47.1

Introdução ao GNOME Calculator

GNOME Calculator é uma calculadora gráfica poderosa com modos financeiro, lógico e científico. Ela usa um pacote de precisão múltipla para fazer a aritmética dela para fornecer um alto grau de precisão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Calculator

Exigidas

gtksourceview5-5.14.2, itstool-2.0.7, libadwaita-1.6.4, libgee-0.20.8 e libsoup-3.6.4

Recomendadas

Instalação do GNOME Calculator

Instale o GNOME Calculator executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gcalccmd e gnome-calculator
Biblioteca Instalada: libgcalc-2.so e libgci-1.so
Diretórios Instalados: /usr/include/gcalc-2, /usr/include/gci-2, /usr/share/devhelp/books/{GCalc-2,GCi-1} e /usr/share/help/*/gnome-calculator

Descrições Curtas

gnome-calculator

é a calculadora oficial da Área de Trabalho do GNOME

gcalccmd

é uma versão de linha de comando do gnome-calculator

gnome-color-manager-3.36.2

Introdução ao GNOME Color Manager

GNOME Color Manager é uma estrutura de sessão para o ambiente de área de trabalho do GNOME que facilita o gerenciamento, a instalação e a geração de perfis de cores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Color Manager

Exigidas

colord-1.4.7, GTK-3.24.48, itstool-2.0.7 e Little CMS-2.17

Recomendadas
Opcionais

DocBook-utils-0.6.14 (atualmente faz com que a construção falhe)

Instalação do GNOME Color Manager

Se o DocBook-utils-0.6.14 estiver instalado, desabilite a instalação das páginas de manual para evitar uma falha de construção:

sed /subdir\(\'man/d -i meson.build

Instale o GNOME Color Manager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de uma sessão do X.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gcm-import, gcm-inspect, gcm-picker e gcm-viewer
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-color-manager e /usr/share/help/*/gnome-color-manager

Descrições Curtas

gcm-import

permite que você importe perfis ICC fornecidos por fornecedores(as)

gcm-inspect

permite que você inspecione as configurações de gerenciamento de cores da tua sessão

gcm-picker

permite que você escolha cores exatas para uso por um colorímetro conectado

gcm-viewer

permite que você visualize propriedades de perfis ICC

gnome-connections-46.0

Introdução ao gnome-connections

gnome-connections é um cliente VNC e RDP para área de trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do gnome-connections

Exigidas

AppStream-1.0.4, FreeRDP-3.12.0, gtk-vnc-1.5.0, itstool-2.0.7, libhandy-1.8.3, libsecret-0.21.6 e Vala-0.56.17

Instalação do gnome-connections

Instale gnome-connections executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultads, emita: ninja test

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gnome-connections
Bibliotecas Instaladas: None
Diretórios Instalados: /usr/include/gnome-connections, /usr/lib/gnome-connections, /usr/share/gnome-connections e /usr/share/help/*/gnome-connections

Descrições Curtas

gnome-connections

é um visualizador de área de trabalho remota para a área de trabalho do GNOME

gnome-disk-utility-46.1

Introdução ao GNOME Disk Utility

O pacote GNOME Disk Utility fornece aplicativos usados para lidar com dispositivos de armazenamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Disk Utility

Exigidas

gnome-settings-daemon-47.2, itstool-2.0.7, libdvdread-6.1.3, libhandy-1.8.3, libpwquality-1.4.5, libsecret-0.21.6 e UDisks-2.10.1

Opcionais

appstream-glib-0.8.3

Instalação do GNOME Disk Utility

Instale o GNOME Disk Utility executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -Dlogind=libelogind .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-Dlogind=libelogind: Informa ao sistema de construção que a biblioteca usada para o serviço login é libelogind.so em vez de libsystemd.so.

Conteúdo

Aplicativos Instalados: gnome-disk-image-mounter e gnome-disks
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gnome-disk-image-mounter

é usado para configurar imagens de disco

gnome-disks

é usado para inspecionar, formatar, particionar e configurar discos e dispositivos de bloco

gnome-maps-47.4

Introdução ao GNOME Maps

GNOME Maps é um aplicativo de mapas para o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Maps

Exigidas

desktop-file-utils-0.28, GeoClue-2.7.2, geocode-glib-3.26.4, Gjs-1.82.1, libadwaita-1.6.4, libportal-0.9.1, libshumate-1.3.2, libgweather-4.4.4 e rest-0.9.1

Instalação do GNOME Maps

Instale o GNOME Maps executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gnome-maps (link simbólico)
Bibliotecas Instaladas: libgnome-maps.so
Diretórios Instalados: /usr/lib/gnome-maps e /usr/share/gnome-maps

Descrições Curtas

gnome-maps

é um aplicativo de mapas para o GNOME

gnome-nettool-42.0

Introdução ao GNOME Nettool

O pacote GNOME Nettool é uma ferramenta de informações de rede de intercomunicação que fornece interface GUI para algumas das ferramentas de rede de intercomunicação de linha de comando mais comuns.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do GNOME Nettool

Exigidas

GTK-3.24.48, itstool-2.0.7 e libgtop-2.41.3

Dependências de Tempo de Execução

Utilitários BIND-9.20.6, Nmap-7.95, Net-tools-2.10, Traceroute-2.1.6 e Whois-5.4.3

Instalação do GNOME Nettool

Primeiro, adapte o GNOME Nettool às mudanças nos utilitários ping, ping6 e netstat:

patch -Np1 -i ../gnome-nettool-42.0-ping_and_netstat_fixes-1.patch

Em seguida, adicione uma correção para versões mais recentes do meson:

sed -i '/merge_file/s/(.*/(/' data/meson.build

Instale o GNOME Nettool executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativo Instalado: gnome-nettool
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-nettool e /usr/share/help/*/gnome-nettool

Descrições Curtas

gnome-nettool

é uma ferramenta de informação de rede de intercomunicação

gnome-power-manager-43.0

Introdução ao GNOME Power Manager

O pacote GNOME Power Manager contém uma ferramenta usada para informes acerca do gerenciamento de eletricidade do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Power Manager

Exigidas

GTK-3.24.48 e UPower-1.90.7

Opcionais

appstream-glib-0.8.3 e DocBook-utils-0.6.14

Instalação do GNOME Power Manager

Instale o GNOME Power Manager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-power-statistics
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gnome-power-statistics

é usado para visualizar o consumo de eletricidade do hardware de laptop

gnome-screenshot-41.0

Introdução ao GNOME Screenshot

O GNOME Screenshot é um utilitário usado para fazer capturas de tela da tela inteira, de uma janela ou de uma área da tela definida pelo(a) usuário(a), com efeitos opcionais de embelezamento de borda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Screenshot

Exigidas

GTK-3.24.48, libcanberra-0.30 (Compilado com suporte a GTK+3) e libhandy-1.8.3

Instalação do GNOME Screenshot

Primeiro, corrija a construção com versões mais recentes do meson:

sed -i '/merge_file/{n;d}' data/meson.build

Instale o GNOME Screenshot executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Para a finalidade de melhor executar o GNOME Screenshot a partir da linha de comando, a opção -i precisa ser especificada.

Conteúdo

Aplicativo Instalado: gnome-screenshot
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gnome-screenshot

é usado para capturar a tela, uma janela ou uma área definida pelo(a) usuário(a) e salvar a imagem instantânea em um arquivo

gnome-system-monitor-47.1

Introdução ao GNOME System Monitor

O pacote GNOME System Monitor contém o substituto do GNOME para o gtop.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME System Monitor

Exigidas

adwaita-icon-theme-47.0, Gtkmm-4.16.0, itstool-2.0.7, libgtop-2.41.3, libadwaita-1.6.4 e librsvg-2.59.2

Opcionais

appstream-glib-0.8.3, desktop-file-utils-0.28 e uncrustify

Instalação do GNOME System Monitor

Instale o GNOME System Monitor executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            -D systemd=false    \
            --buildtype=release \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D systemd=false: Essa chave garante que o gnome-system-monitor NÃO use a estrutura de monitoramento de processos do systemd. Use essa opção se você estiver em um sistema SysV.

Conteúdo

Aplicativo Instalado: gnome-system-monitor
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/{libexec,share,share/help/*}/gnome-system-monitor

Descrições Curtas

gnome-system-monitor

é usado para exibir a árvore de processos e medidores de hardware

gnome-terminal-3.54.2

Introdução ao GNOME Terminal

O pacote GNOME Terminal contém o emulador de terminal para a Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Terminal

Exigidas

DConf-0.40.0, gsettings-desktop-schemas-47.1, itstool-2.0.7, libhandy-1.8.3, pcre2-10.45 e VTE-0.78.4

Recomendadas
Opcionais

appstream-glib-0.8.3 e desktop-file-utils-0.28

Instalação do GNOME Terminal

Primeiro, corrija algumas entradas obsoletas de esquema:

sed -i -r 's:"(/system):"/org/gnome\1:g' src/external.gschema.xml

Instale o GNOME Terminal executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&
rm -v /usr/lib/systemd/user/gnome-terminal-server.service

Nota

Para executar o GNOME Terminal, a variável de ambiente LANG precisa ser configurada como uma localidade UTF-8 antes de iniciar o ambiente gráfico.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D search_provider=false: Essa chave desabilita o provedor gnome-shell de busca. Use essa opção se você não tiver o gnome-shell instalado.

-D nautilus_extension=false: Essa chave desabilita uma dependência do gerenciador de arquivos nautilus. Use essa opção se você não tiver o Nautilus instalado.

Conteúdo

Aplicativo Instalado: gnome-terminal
Bibliotecas Instaladas: /usr/lib/nautilus/extensions-4/libterminal-nautilus.so (Extensão Nautilus)
Diretórios Instalados: /usr/{lib,share/help/*}/gnome-terminal e /usr/share/xdg-terminals

Descrições Curtas

gnome-terminal

é o Emulador de Terminal do GNOME

gnome-weather-47.0

Introdução ao GNOME Weather

GNOME Weather é um pequeno aplicativo que te permite monitorar as atuais condições climáticas para a tua cidade, ou de qualquer lugar do mundo, e acessar previsões atualizadas fornecidas por vários serviços de Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GNOME Weather

Exigidas

GeoClue-2.7.2, Gjs-1.82.1, libadwaita-1.6.4 e libgweather-4.4.4

Opcionais

appstream-glib-0.8.3

Instalação do GNOME Weather

Instale o GNOME Weather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-weather
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/org.gnome.Weather

Descrições Curtas

gnome-weather

é um pequeno aplicativo que te permite monitorar as atuais condições climáticas em qualquer lugar do mundo

Gucharmap-16.0.2

Introdução ao Gucharmap

Gucharmap é um mapa de caracteres Unicode e visualizador de fontes. Ele te permite navegar por todos os caracteres e categorias Unicode disponíveis para as fontes instaladas e examinar as propriedades detalhadas deles. É uma maneira fácil de encontrar o caractere que você só conhece pelo nome Unicode dele ou ponto de código.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Gucharmap

Exigidas

desktop-file-utils-0.28, gsettings-desktop-schemas-47.1, GTK-3.24.48, itstool-2.0.7, libarchive-3.7.7 e pcre2-10.45

Recomendadas
Opcionais

appstream-glib-0.8.3 e GTK-Doc-1.34.0

Instalação do Gucharmap

Nota

Esse pacote usa dois downloads não versionados. Você possivelmente queira renomeá-los para um nome com versão, por exemplo, UCD-16.zip para facilitar as atualizações.

Instale o Gucharmap executando os seguintes comandos:

mkdir build                   &&
cd    build                   &&
mkdir ucd                     &&
pushd ucd                     &&
  unzip ../../../UCD.zip      &&
  cp -v ../../../Unihan.zip . &&
popd                          &&

meson setup --prefix=/usr       \
            --strip             \
            --buildtype=release \
            -D ucd_path=./ucd   \
            -D docs=false       \
            ..                  &&
ninja

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

rm  -fv /usr/share/glib-2.0/schemas/org.gnome.Charmap.enums.xml &&
ninja install

Explicações do Comando

--strip: Embora o padrão do pacote seja uma construção de lançamento sem informações de depuração, sem essa chave existirão algumas informações de depuração nos binários.

-D ucd_path=./ucd: Isso aponta para onde os principais arquivos de dados Unicode extraídos e o arquivamento Unihan zipado podem ser encontrados.

rm -fv /usr/share/glib-2.0/schemas/org.gnome.Charmap.enums.xml: Versões antigas desse pacote instalavam um arquivo obsoleto que impede o aplicativo de executar, como se o esquema principal não tivesse sido instalado. A remoção forçada funciona mesmo que o arquivo antigo não esteja presente.

-D docs=false: Isso permite que o pacote construa mesmo se o gtk-doc não tenha sido instalado. Remova isso se você o tiver instalado e desejar construir a documentação.

-D gir=false: Use isso se você não tiver instalado GLib-2.82.5 (com GObject Introspection).

-D vapi=false: Use isso se você não tiver instalado o Vala-0.56.17.

Conteúdo

Aplicativo Instalado: gucharmap
Biblioteca Instalada: libgucharmap_2_90.so
Diretórios Instalados: /usr/include/gucharmap-2.90

Descrições Curtas

gucharmap

é um mapa de caracteres Unicode e visualizador de fontes

libgucharmap_2_90.so

contém as funções da API do Gucharmap

Seahorse-47.0.1

Introdução ao Seahorse

Seahorse é uma interface gráfica para gerenciar e usar chaves de criptografia. Atualmente ela suporta chaves PGP (usando GPG/GPGME) e chaves SSH.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Seahorse

Exigidas

Gcr-3.41.2, GnuPG-2.4.7, GPGME-1.24.2, itstool-2.0.7, libhandy-1.8.3, libpwquality-1.4.5, libsecret-0.21.6 e Vala-0.56.17

Recomendadas
Opcionais

Avahi-0.8

Dependência em Tempo de Execução

gnome-keyring-46.2

Instalação do Seahorse

Instale o Seahorse executando os seguintes comandos:

sed -i -r 's:"(/apps):"/org/gnome\1:' data/*.xml &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

sed ... data/*.xml: Esse comando corrige algumas entradas obsoletas nos modelos de esquema.

Conteúdo

Aplicativo Instalado: seahorse
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/{libexec,share,share/help/*}/seahorse

Descrições Curtas

seahorse

é a interface gráfica para gerenciar e usar chaves de encriptação

Snapshot-47.1

Introdução ao Snapshot

O pacote Snapshot contém um programa que tira fotos e vídeos a partir de uma web câmera.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Snapshot

Exigidas

libadwaita-1.6.4, gst-plugins-bad-1.24.12 e rustc-1.85.0

Exigidas em tempo de execução

libgstgtk4 proveniente de gst-plugins-rs-1.24.12, pipewire-1.2.7 e xdg-desktop-portal-gnome-47.3

Instalação do Snapshot

Nota

Esse pacote leva muito tempo para construir porque o LTO está habilitado e a passagem do LTO não é paralelizada.

Instale Snapshot executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: snapshot
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/snapshot

Descrições Curtas

snapshot

é um programa usado para tirar fotos e vídeos a partir de uma web câmera

Parte IX. Xfce

Capítulo 35. Área de Trabalho do Xfce

Xfce é um ambiente de área de trabalho que pretende ser rápido e com poucos recursos do sistema, ao mesmo tempo que é visualmente atraente e fácil de usar.

O Xfce incorpora a tradicional filosofia do UNIX de modularidade e reusabilidade. Ele consiste em vários componentes que fornecem a completa funcionalidade que se pode esperar de um moderno ambiente de área de trabalho. Eles são empacotados separadamente e você pode escolher entre os pacotes disponíveis para criar o ambiente de trabalho pessoal ideal.

Construa os pacotes centrais do Xfce na ordem apresentada no livro para a mais fácil resolução de dependências.

libxfce4util-4.20.0

Introdução ao libxfce4util

O pacote libxfce4util é uma biblioteca de utilitários básicos para o ambiente de área de trabalho do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libxfce4util

Exigidas

GLib-2.82.5 (com GObject Introspection)

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do libxfce4util

Instale o libxfce4util executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xfce4-kiosk-query
Biblioteca Instalada: libxfce4util.so
Diretórios Instalados: /usr/include/xfce4 e /usr/share/gtk-doc/html/libxfce4util

Descrições Curtas

xfce4-kiosk-query

Consulta os dados recursos de <módulo> para o(a) usuário(a) atual e informa se o(a) usuário(a) tem os recursos ou não. Essa ferramenta destina-se principalmente a administradores(as) de sistema para testar a configuração Kiosk deles(as)

libxfce4util.so

contém funções utilitárias básicas para o ambiente de área de trabalho do Xfce

Xfconf-4.20.0

Introdução ao Xfconf

Xfconf é o sistema de armazenamento de configuração para o Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfconf

Exigidas

libxfce4util-4.20.0

Opcionais

GTK-Doc-1.34.0 e Vala-0.56.17

Instalação do Xfconf

Instale o Xfconf executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xfconf-query
Biblioteca Instalada: libxfconf-0.so
Diretórios Instalados: /usr/include/xfce4/xfconf-0, /usr/lib/xfce4/xfconf e /usr/share/gtk-doc/html/xfconf

Descrições Curtas

xfconf-query

é um utilitário de linha de comando para visualizar ou mudar qualquer configuração armazenada em Xfconf

libxfconf-0.so

contém funções básicas para configuração do Xfce

libxfce4ui-4.20.0

Introdução ao libxfce4ui

O pacote libxfce4ui contém pequenas engenhocas GTK+ 3 que são usadas por outros aplicativos do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libxfce4ui

Exigidas

GTK-3.24.48 e Xfconf-4.20.0

Recomendadas
Opcionais

GTK-Doc-1.34.0, libgtop-2.41.3, libgudev-238 e Glade

Instalação do libxfce4ui

Instale o libxfce4ui executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libxfce4kbd-private-{2,3}.so e libxfce4ui-{1,2}.so
Diretórios Instalados: /etc/xdg/xfce4, /usr/include/xfce4/libxfce4kbd-private-2, /usr/include/xfce4/libxfce4ui-{1,2} e /usr/share/gtk-doc/html/libxfce4ui

Descrições Curtas

libxfce4kbd-private-2.so

é uma biblioteca privada do Xfce para compartilhar código entre o Xfwm4 e o Xfce4 Settings

libxfce4ui-1.so

contém pequenas engenhocas que são usados por outros aplicativos do Xfce

Exo-4.20.0

Introdução ao Exo

Exo é uma biblioteca de suporte usada na área de trabalho do Xfce. Ela também tem alguns aplicativos auxiliares que são usados em todo o Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.xfce.org/src/xfce/exo/4.20/exo-4.20.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f059ec3d8686d4b322c42d19ebec0366

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 14 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (com testes)

Dependências do Exo

Exigidas

GTK-3.24.48, libxfce4ui-4.20.0 e libxfce4util-4.20.0

Opcionais

GTK-Doc-1.34.0

Instalação do Exo

Instale o Exo executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: exo-desktop-item-edit e exo-open
Bibliotecas Instaladas: libexo-2.so
Diretórios Instalados: /usr/include/exo-2 e /usr/share/gtk-doc/html/exo-2

Descrições Curtas

exo-desktop-item-edit

é um utilitário de linha de comando para criar ou editar ícones na área de trabalho

exo-open

é uma estrutura de interação direta com o(a) usuário(a), via linha de comando, para a estrutura essencial de suporte a Aplicativos Preferenciais do Xfce. Ela pode ou ser usada para abrir uma lista de URLs com o manuseador padrão de URL ou iniciar o aplicativo preferido para uma determinada categoria

libexo-2.so

contém pequenas engenhocas adicionais, uma estrutura para barras de ferramentas editáveis, suporte leve para gerenciamento de sessões e funções para sincronizar automaticamente as propriedades do objeto (baseado no GObject Binding Properties)

Garcon-4.20.0

Introdução ao Garcon

O pacote Garcon contém uma implementação de menu compatível com freedesktop.org baseada em GLib e GIO.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Garcon

Exigidas

libxfce4ui-4.20.0 e GTK-3.24.48

Opcionais

GTK-Doc-1.34.0

Instalação do Garcon

Instale o Garcon executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgarcon-1.so e libgarcon-gtk3-1.so
Diretório Instalado: /usr/include/garcon-1, /usr/include/garcon-gtk3-1 e /usr/share/gtk-doc/html/garcon

Descrições Curtas

libgarcon-1.so

contém funções que fornecem uma implementação de menu compatível com freedesktop.org baseada em GLib e GIO

libwnck-43.2

Introdução ao libwnck

O pacote libwnck contém o Window Navigator Construction Kit.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libwnck

Exigidas

GTK-3.24.48

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do libwnck

Instale libwnck executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gtk_doc=true: Use essa opção para construir o manual de referência da API.

Conteúdo

Aplicativo Instalado: wnckprop e wnck-urgency-monitor
Biblioteca Instalada: libwnck-3.so
Diretórios Instalados: /usr/include/libwnck-3.0 e /usr/share/gtk-doc/html/libwnck-3.0

Descrições Curtas

wnckprop

é usado para imprimir ou modificar as propriedades de uma tela/espaço de trabalho/janela, ou para interagir com ela

libwnck-3.so

contém funções para escrever paginadores e listas de tarefas

xfce4-dev-tools-4.20.0

Introdução ao the Xfce4 Development Tools

As Ferramentas de Desenvolvimento do Xfce4 são uma coleção de ferramentas e macros para construir algumas aplicações do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do The Xfce4 Development Tools

Exigidas

GLib-2.82.5

Instalação do the Xfce4 Development Tools

Instale as Ferramentas de Desenvolvimento do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xdt-autogen e xdt-csource
Bibliotecas Instaladas: None
Diretórios Instalados: None

libxfce4windowing-4.20.2

Introdução ao libxfce4windowing

O pacote libxfce4windowing contém uma biblioteca de abstração de conceito de janelas para X11 e Wayland.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libxfce4windowing

Exigidas

GTK-3.24.48, libdisplay-info-0.2.0, libwnck-43.2 e xfce4-dev-tools-4.20.0

Opcionais

GTK-Doc-1.34.0

Instalação do libxfce4windowing

Instale libxfce4windowing executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --enable-x11      \
            --disable-debug   &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libxfce4windowingui-0 e libxfce4windowing-0.so
Diretórios Instalados: /usr/include/xfce4/libxfce4windowing, /usr/include/xfce4/libxfce4windowingui, /usr/share/gtk-doc/html/libxfce4windowing e /usr/share/gtk-doc/html/libxfce4windowingui

xfce4-panel-4.20.3

Introdução ao Xfce4 Panel

O pacote Xfce4 Panel contém o Painel do Xfce4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfce4 Panel

Exigidas

Cairo-1.18.2, Exo-4.20.0, Garcon-4.20.0, libwnck-43.2 e libxfce4windowing-4.20.2

Opcionais

GTK-Doc-1.34.0 e libdbusmenu

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-panel

Instalação do Xfce4 Panel

Instale o Xfce4 Panel executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: xfce4-panel, xfce4-popup-applicationsmenu, xfce4-popup-directorymenu e xfce4-popup-windowmenu
Biblioteca Instalada: libxfce4panel-2.0.so
Diretórios Instalados: /etc/xdg/xfce4/panel, /usr/include/xfce4/libxfce4panel-1.0, /usr/lib/xfce4/panel, /usr/share/gtk-doc/html/libxfce4panel-1.0 e /usr/share/xfce4/panel

Descrições Curtas

xfce4-panel

é o painel do Xfce

xfce4-popup-applicationsmenu

é um conjunto de comandos sequenciais de shell que usa D-Bus e Xfce Panel para exibir um menu pop-up dos aplicativos instalados

xfce4-popup-directorymenu

é um conjunto de comandos sequenciais de shell que usa D-Bus e Xfce Panel para exibir um menu pop-up de tua pasta pessoal e os subdiretórios dela

xfce4-popup-windowmenu

é um conjunto de comandos sequenciais de shell que usa DBus para exibir o Xfwm4 como um menu pop-up

libxfce4panel-2.0.so

contém as funções da API do Xfce Panel

thunar-4.20.2

Introdução ao thunar

Thunar é o gerenciador de arquivos do Xfce, uma GUI do GTK+ 3 para organizar os arquivos em teu computador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Thunar

Exigidas

Exo-4.20.0

Exigidas (tempo de execução)

hicolor-icon-theme-0.18

Recomendadas
Opcionais

GTK-Doc-1.34.0 (para documentação), Gvfs-1.56.1 (para navegação remota e montagem automática), libexif-0.6.25 e tumbler-4.20.0 (tempo de execução)

Instalação do Thunar

Primeiro, evite a instalação de um arquivo desnecessário do systemd:

sed -i 's/\tinstall-systemd_userDATA/\t/' Makefile.in

Instale o Thunar executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/thunar-4.20.2 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Thunar (link simbólico para thunar), thunar e thunar-settings
Biblioteca Instalada: libthunarx-3.so
Diretórios Instalados: /etc/xdg/Thunar, /usr/include/thunarx-3, /usr/lib/Thunar, /usr/lib/thunarx-3, /usr/share/Thunar, /usr/share/doc/thunar-4.20.2 e /usr/share/gtk-doc/html/thunarx

Descrições Curtas

thunar

é o gerenciador de arquivos do Xfce

thunar-settings

é um conjunto de comandos sequenciais de shell que abre uma caixa de diálogo para permitir que você altere o comportamento do Thunar

libthunarx-3.so

contém a biblioteca de extensão do Thunar que permite adicionar novos recursos ao gerenciador de arquivos Thunar

thunar-volman-4.20.0

Introdução ao Thunar Volume Manager

O Thunar Volume Manager é uma extensão para o gerenciador de arquivos Thunar, que habilita o gerenciamento automático de unidades e mídias removíveis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Thunar Volume Manager

Exigidas

Exo-4.20.0 e libgudev-238

Recomendadas
Dependências Recomendadas de Tempo de Execução

Instalação do Thunar Volume Manager

Instale o Thunar Volume Manager executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: thunar-volman e thunar-volman-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

thunar-volman

é o Gerenciador de Volumes do Thunar, um utilitário de linha de comando para montar ou desmontar automaticamente mídias removíveis

thunar-volman-settings

é um pequeno aplicativo GTK+ 3 para mudar as configurações do Thunar Volume Manager

tumbler-4.20.0

Introdução ao tumbler

O pacote Tumbler contém um serviço de miniaturas do D-Bus baseado na especificação de gerenciamento de miniaturas do D-Bus. Isso é útil para gerar imagens em miniatura de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Tumbler

Exigidas

GLib-2.82.5

Opcionais

cURL-8.12.1, FreeType-2.13.3, gdk-pixbuf-2.42.12, gst-plugins-base-1.24.12, GTK-Doc-1.34.0, libjpeg-turbo-3.0.1, libgsf-1.14.53, libpng-1.6.46, Poppler-25.02.0, FFmpegThumbnailer, libgepub e libopenraw

Instalação do Tumbler

Instale o Tumbler executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Finalmente, remova uma unidade do systemd que é inútil em um sistema SysV:

rm -fv /usr/lib/systemd/user/tumblerd.service

Conteúdo

Aplicativos Instalados: tumblerd
Biblioteca Instalada: libtumbler-1.so e várias sob /usr/lib/tumbler-1/plugins/
Diretórios Instalados: /etc/xdg/tumbler, /usr/include/tumbler-1, /usr/lib/tumbler-1 e /usr/share/gtk-doc/html/tumbler

Descrições Curtas

tumblerd

é um serviço do D-Bus para aplicativos como Thunar e Ristretto para usar imagens em miniatura

libtumbler-1.so

contém funções que o processo de segundo plano do Tumbler usa para criar imagens em miniatura

xfce4-appfinder-4.20.0

Introdução ao Xfce4 Appfinder

Xfce4 Appfinder é uma ferramenta para encontrar e iniciar aplicativos instalados pesquisando os arquivos .desktop instalados em teu sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfce4 Appfinder

Exigidas

Garcon-4.20.0

Instalação do Xfce4 Appfinder

Instale o Xfce4 Appfinder executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfce4-appfinder e xfrun4 (link simbólico)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xfce4-appfinder

É um aplicativo GTK+ 3 que te habilita a pesquisar rapidamente nos arquivos .desktop instalados em teu sistema em busca de um aplicativo

xfce4-power-manager-4.20.0

Introdução ao Xfce4 Power Manager

O Xfce4 Power Manager é um gerenciador de eletricidade para a área de trabalho do Xfce; o Xfce Power Manager gerencia as fontes de eletricidade no computador e os dispositivos que podem ser controlados para reduzir o consumo de eletricidade deles (como nível de brilho do LCD ou suspensão do monitor). Além disso, o Xfce4 Power Manager fornece um conjunto de interfaces do DBus compatíveis com freedesktop para informar a outros aplicativos a respeito do atual nível de eletricidade, de forma que eles possam ajustar o consumo de eletricidade deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfce4 Power Manager

Exigidas

libnotify-0.8.4, UPower-1.90.7 e xfce4-panel-4.20.3

Recomendadas
Opcionais

NetworkManager-1.50.0

Instalação do Xfce4 Power Manager

Instale o Xfce4 Power Manager executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfce4-power-manager, xfce4-power-manager-settings, xfce4-pm-helper e xfpm-power-backlight-helper
Bibliotecas Instaladas: libxfce4powermanager.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xfce4-pm-helper

é um aplicativo auxiliar para as funções de suspensão e hibernação do xfce4-power-manager

xfce4-power-manager

é o Gerenciador de Eletricidade do Xfce

xfce4-power-manager-settings

é um utilitário que vem com o Gerenciador de Eletricidade do Xfce para acessar/mudar a configuração dele

xfpm-power-backlight-helper

é um utilitário de linha de comando para obter ou configurar o brilho da tua tela

xfce4-settings-4.20.1

Introdução ao Xfce4 Settings

O pacote Xfce4 Settings contém uma coleção de aplicativos que são úteis para ajustar as tuas preferências do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfce4 Settings

Exigidas

Exo-4.20.0 e Garcon-4.20.0

Exigidas (tempo de execução)

gnome-icon-theme-3.12.0 ou lxde-icon-theme-0.5.1

Recomendadas
Opcionais

colord-1.4.7, libinput-1.27.1 e UPower-1.90.7

Instalação do Xfce4 Settings

Instale o Xfce4 Settings executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-sound-settings: Use essa chave para habilitar as configurações de som na GUI.

--enable-pluggable-dialogs: Use essa chave para habilitar o suporte para caixas de diálogo de configurações incorporadas.

Conteúdo

Aplicativos Instalados: xfce4-accessibility-settings, xfce4-appearance-settings, xfce4-color-settings, xfce4-display-settings, xfce4-find-cursor, xfce4-keyboard-settings, xfce4-mime-helper, xfce4-mime-settings, xfce4-mouse-settings, xfce4-settings-editor, xfce4-settings-manager e xfsettingsd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xfce4-accessibility-settings

é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de teclado e mouse

xfce4-appearance-settings

é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de tema, ícone e fonte

xfce4-display-settings

é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de tela

xfce4-keyboard-settings

é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de teclado

xfce4-mime-settings

é uma GUI GTK+ 3 para te permitir mudar quais aplicativos são usados para lidar com diferentes tipos MIME

xfce4-mouse-settings

é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de mouse

xfce4-settings-editor

é uma GUI GTK+ 3 para te permitir mudar tuas preferências armazenadas no Xfconf

xfce4-settings-manager

é uma GUI GTK+ 3 para te permitir mudar muitas de tuas preferências do Xfce

xfsettingsd

é o processo de segundo plano de configurações do Xfce

Xfdesktop-4.20.1

Introdução ao Xfdesktop

Xfdesktop é um gerenciador de área de trabalho para o Ambiente de Área de Trabalho do Xfce. Xfdesktop configura a imagem/cor do plano de fundo, cria o menu do botão direito e a lista de janelas e exibe os ícones dos arquivos na área de trabalho usando as bibliotecas do Thunar.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfdesktop

Exigidas

Exo-4.20.0, libxfce4windowing-4.20.2 e libwnck-43.2

Recomendadas

Instalação do Xfdesktop

Instale o Xfdesktop executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfdesktop e xfdesktop-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/backgrounds/xfce e /usr/share/pixmaps/xfdesktop

Descrições Curtas

xfdesktop

é o gerenciador de área de trabalho do Ambiente de Área de Trabalho do Xfce

xfdesktop-settings

é um aplicativo GTK+ 3 que te permite mudar teu plano de fundo da área de trabalho, algumas preferências para o menu do botão direito e quais ícones são exibidos na área de trabalho

Xfwm4-4.20.0

Introdução ao Xfwm4

Xfwm4 é o gerenciador de janelas para o Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfwm4

Exigidas

libwnck-43.2 e libxfce4ui-4.20.0

Recomendadas

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfwm4

Instalação do Xfwm4

Instale o Xfwm4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfwm4, xfwm4-settings, xfwm4-tweaks-settings e xfwm4-workspace-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/xfce4/xfwm4, /usr/share/themes/{Daloa,Default{,-hdpi,-xhdpi},Kokodi,Moheli} e /usr/share/xfwm4

Descrições Curtas

xfwm4

é o gerenciador de janelas do Xfce

xfwm4-settings

é um aplicativo GTK+ 3 que permite configurar algumas preferências, como o teu tema, atalhos de teclado e comportamento do foco do mouse

xfwm4-tweaks-settings

é um aplicativo GTK+ 3 que permite configurar mais algumas preferências para o Xfwm4

xfwm4-workspace-settings

é um aplicativo GTK+ 3 que permite configurar tuas preferências de espaço de trabalho

xfce4-session-4.20.0

Introdução ao Xfce4 Session

Xfce4 Session é um gerenciador de sessão para o Xfce. A tarefa dele é a de salvar o estado da tua área de trabalho (aplicativos abertos e o local deles) e restaurá-lo durante a próxima iniciação. Você pode criar várias sessões e escolher uma delas na iniciação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfce4 Session

Exigidas

libwnck-43.2, libxfce4windowing-4.20.2 e libxfce4ui-4.20.0

Recomendadas
Exigidas Tempo de Execução

Xfdesktop-4.20.1

Instalação do Xfce4 Session

Instale o Xfce4 Session executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --disable-legacy-sm &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-legacy-sm: Essa chave desabilita o gerenciamento de sessões legadas que não é necessário em sistemas modernos.

Configurando a Sessão do Xfce4

Existem várias dependências opcionais de tempo de execução para o Xfce4: dbus-1.16.0, GnuPG-2.4.7, hicolor-icon-theme-0.18, OpenSSH-9.9p2 e xinit-1.4.3

Ao construir um pacote do Xfce4, alguns arquivos de configuração são instalados em /usr/share/applications, /usr/share/icons e /usr/share/mime. Para a finalidade de usar esses arquivos em tua sessão do Xfce4, você precisa atualizar várias bases de dados. Faça isso executando, como o(a) usuário(a) root (você precisa ter as dependências recomendadas instaladas):

update-desktop-database &&
update-mime-database /usr/share/mime

Iniciando o Xfce4

Você pode iniciar o Xfce4 a partir do nível de execução 3, usando o xinit-1.4.3, ou a partir do nível de execução 5, usando um Gerenciador de Tela, como o lightdm-1.32.0.

Para iniciar o Xfce4 usando o xinit-1.4.3, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 startxfce4
EOF

startx

A sessão do X inicia no primeiro terminal virtual não usado, normalmente o vt7. Você consegue comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=1, 2, ...). Para comutar de volta para a sessão do X, normalmente iniciada no vt7, use Ctrl-Alt-F7. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que não apenas manterá o vt inicial organizado, mas também poderá ser usado para fins de depuração. Isso pode ser feito iniciando-se o X com:

startx &> ~/.x-session-errors

Nota

Você possivelmente queira descartar o dbus-launch, por exemplo, apenas usando startxfce4 em ~/.xinitrc. Entretanto, alguns recursos como montagem ou desmontagem de sistemas de arquivos a partir de um gerenciador de arquivos não serão possíveis, ou a opção de reinicialização estará ausente ou inoperante, entre outros problemas.

Ao desligar ou reinicializar, as mensagens de desligamento aparecem no terminal virtual onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no terminal virtual 7).

Conteúdo

Aplicativos Instalados: startxfce4, xfce4-session, xfce4-session-logout, xfce4-session-settings e xflock4
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/lib/xfce4/session

Descrições Curtas

startxfce4

é um conjunto de comandos sequenciais responsável por iniciar uma sessão do Xfce.

xfce4-session

inicia o Ambiente de Área de Trabalho do Xfce

xfce4-session-logout

sai do Xfce

xfce4-session-settings

é uma GUI GTK+ 3 que te permite alterar tuas preferências para tua Sessão do Xfce

Capítulo 36. Aplicativos do Xfce

Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a tua área de trabalho do Xfce.

Parole-4.18.2

Introdução ao Parole

Parole é um reprodutor de DVD/CD/música para o Xfce que usa o GStreamer.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

Embora essa versão do Parole funcione com a maioria dos arquivos, ela é inapta para reproduzir DVDs, informando um erro na estrutura de retaguarda do GStreamer.

Informação do Pacote

Dependências do Parole

Exigidas

dbus-glib-0.112, gst-plugins-base-1.24.12, gst-plugins-good-1.24.12 e libxfce4ui-4.20.0

Recomendadas
Opcionais

GTK-Doc-1.34.0

Instalação do Parole

Instale o Parole executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Usando o Parole

Se você tiver instalado o Gstreamer Plugins Ugly com suporte para libdvdnav e libdvdread e gostaria de usar o Parole para reproduzir um DVD, clique em Mídia> Abra o local e digite dvd:// na caixa.

Similarmente, para reproduzir um CD, clique em Mídia> Abra o local e digite cdda:// na caixa.

Conteúdo

Aplicativo Instalado: parole
Bibliotecas Instaladas: Duas bibliotecas sob /usr/lib/parole-0/
Diretórios Instalados: /usr/include/parole, /usr/lib/parole-0 e /usr/share/parole

Descrições Curtas

parole

é um reprodutor de mídia GTK+ 3 que usa o GStreamer

xfce4-terminal-1.1.4

Introdução ao Terminal do Xfce4

Terminal do Xfce4 é um emulador de terminal GTK+3. Isso é útil para executar comandos ou aplicativos no conforto de uma janela do Xorg; você pode arrastar e soltar arquivos no Terminal do Xfce4 ou copiar e colar texto com o teu mouse.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Terminal do Xfce4

Exigidas

libxfce4ui-4.20.0 e VTE-0.78.4

Instalação do Terminal do Xfce4

Instale o Terminal do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xfce4-terminal
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/xfce4/terminal

Descrições Curtas

xfce4-terminal

é um emulador de terminal GTK+ 3

Xfburn-0.7.2

Introdução ao Xfburn

Xfburn é uma interface GUI GTK+ 3 para a Libisoburn. Isso é útil para criar CDs e DVDs a partir de arquivos em teu computador ou imagens ISO baixadas a partir de outro lugar.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Xfburn

Exigidas

Exo-4.20.0, libburn-1.5.6, libisofs-1.5.6 e libxfce4ui-4.20.0

Opcionais

gst-plugins-base-1.24.12 e Cdrdao-1.2.4 (tempo de execução)

Instalação do Xfburn

Instale o Xfburn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: xfburn
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/xfburn

Descrições Curtas

xfburn

é um aplicativo GTK+ 3 para criação de CDs e DVDs

Ristretto-0.13.3

Introdução ao Ristretto

Ristretto é um visualizador de imagens rápido e leve para a área de trabalho do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Ristretto

Exigidas

libexif-0.6.25 e libxfce4ui-4.20.0

Opcionais

tumbler-4.20.0 (tempo de execução)

Instalação do Ristretto

Instale o Ristretto executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: ristretto
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ristretto

é um visualizador de imagens rápido e leve

xfce4-notifyd-0.9.7

Introdução ao Processo de Segundo Plano de Notificação do Xfce4

O Processo de Segundo Plano de Notificação do Xfce4 é um pequeno aplicativo que implementa a parte "do lado do servidor" da especificação de notificações de área de trabalho do Freedesktop. Os aplicativos que desejam exibir um balão de notificação de maneira padrão podem usar o Xfce4-Notifyd para fazer isso, enviando mensagens padrão pelo D-Bus usando a interface org.freedesktop.Notifications.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Processo de Segundo Plano de Notificação do Xfce4

Exigidas

libnotify-0.8.4, libxfce4ui-4.20.0, libcanberra-0.30, SQLite-3.49.1, xfce4-dev-tools-4.20.0 e xfce4-panel-4.20.3

Instalação do Processo de Segundo Plano de Notificação do Xfce4

Instale o Processo de Segundo Plano de Notificação do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-systemd &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Você pode testar o processo de segundo plano de notificação com o comando notify-send, para ser executado em um ambiente gráfico:

notify-send -i info Information "Olá ${USER}; Isto é um Teste"

Conteúdo

Aplicativo Instalado: xfce4-notifyd-config
Bibliotecas Instaladas: libnotification-plugin.so
Diretórios Instalados: /usr/share/themes/Bright/xfce-notify-4.0, /usr/share/themes/Default/xfce-notify-4.0, /usr/share/themes/Retro/xfce-notify-4.0, /usr/share/themes/Smoke/xfce-notify-4.0 e /usr/share/themes/ZOMG-PONIES!/xfce-notify-4.0

Descrições Curtas

xfce4-notifyd-config

é uma GUI GTK+ que te permite mudar algumas de tuas preferências (tema e posição da tela) para as notificações que o Processo de Segundo Plano de Notificação do Xfce4 exibe

xfce4-pulseaudio-plugin-0.4.9

Introdução ao Plugin Pulseaudio do Xfce4

O Plugin Pulseaudio do Xfce4 é um plugin para o painel do Xfce que fornece uma maneira conveniente de ajustar o volume do áudio do sistema de som PulseAudio e para uma ferramenta de mixagem automática como o pavucontrol. Opcionalmente, ele pode lidar com teclas multimídia para controlar o volume do áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Plugin Pulseaudio do Xfce4

Exigidas

libnotify-0.8.4, PulseAudio-17.0 e xfce4-panel-4.20.3

Recomendadas

Instalação do Plugin Pulseaudio do Xfce4

Instale o Plugin Pulseaudio do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libpulseaudio-plugin.so
Diretórios Instalados: Nenhum(a)

Parte X. LXQt

Capítulo 37. Área de Trabalho LXQt

LXQt é um ambiente de área de trabalho de desempenho extremamente rápido e economia de eletricidade.

LXQt é um ambiente de área de trabalho baseado em Qt. Ele está focado em ser uma área de trabalho clássica com uma aparência moderna. Ele pode personalizar a aparência em qualquer lugar. O(s) painel(s) tem plugins e configurações. É independente do Gerenciador de Janelas, tem suporte a vários idiomas e atalhos padrão de teclado. LXQt usa menos CPU e menos RAM que a maioria dos outros ambientes. É especialmente útil para computadores em nuvem com especificações baixas de hardware, como netbooks, dispositivos móveis (por exemplo, MIDs) ou computadores mais antigos, mas pode ser usado com hardware moderno.

Construa pacotes centrais do LXQt na ordem apresentada no livro para a resolução mais fácil de dependências.

Instruções de Pré Instalação da Área de Trabalho do LXQt

Observações acerca da construção de dependências do LXQt

Para construir o LXQt, as seguintes etapas são recomendadas:

  1. Primeiro, construa o Capítulo do Xorg completo, incluindo o suporte ao Wayland com as dependências exigidas e as recomendadas. Teste se o ambiente funciona com twm como gerenciador de janelas. Com a experiência, alguns dos pacotes podem ser omitidos, mas isso não é recomendado para usuários(as) iniciantes.

  2. Segundo, construa as partes exigidas do Qt. O pacote completo, Qt-6.8.2, é bastante longo e tem um monte de dependências.

  3. Finalmente, construa a área de trabalho do LXQt usando as páginas abaixo em ordem. Os pacotes na seção de aplicativos são opcionais, mas no mínimo, qterminal-2.1.0 é recomendado.

Dependências do KF6, Plasma, and Misc

kwindowsystem-6.11.0 para lxqt

Introdução ao kwindowsystem

O kwindowsystem fornece informações e permite a interação com o sistema de janelas. Ele fornece uma API de alto nível que é independente do sistema de janelas e tem implementações específicas de plataforma.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kwindowsystem

Exigidas

extra-cmake-modules-6.11.0, plasma-wayland-protocols-1.16.0, Qt-6.8.2 e Bibliotecas do Xorg

Instalação do kwindowsystem

Instale o kwindowsystem executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_TESTING=OFF         \
      -W no-dev ..                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKF6WindowSystem.so
Diretórios Instalados: /usr/include/KF6, /usr/lib/cmake/KF6WindowSystem, /usr/lib/plugins/kf6, /usr/lib/qml/org/kde e /usr/share/qlogging-categories6

Descrições Curtas

libKF6WindowSystem.so

contém as funções de API do KF6 Windowing

kconfig-6.11.0 para lxqt

Introdução ao kconfig

O pacote kconfig fornece acesso aos arquivos de configuração.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kconfig

Exigidas

extra-cmake-modules-6.11.0 e Qt-6.8.2

Instalação do kconfig

Instale o kconfig executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=Release         \
      -D CMAKE_INSTALL_LIBEXECDIR=libexec \
      -D KDE_INSTALL_USE_QT_SYS_PATHS=ON  \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kreadconfig6 e kwriteconfig6
Biblioteca Instalada: libKF6ConfigCore.so, libKF6ConfigGui.so e libKF6ConfigQml.so
Diretórios Instalados: /usr/include/KF6/{KConfigCore,KConfig,KConfigQml,KConfigGui}, /usr/lib/cmake/KF6Config, /usr/libexec/kf6 e $QT6DIR/qml/org/kde/config

Descrições Curtas

kreadconfig6

lê a partir de um arquivo de configuração usando a interface KConfig

kwriteconfig6

escreve em um arquivo de configuração usando a interface KConfig

libKF6ConfigCore.so

contém a biblioteca central de configuração para o KF6

libKF6ConfigGui.so

contém funções para uma GUI para interfacear com KConfig

libKF6ConfigQml.so

contém uma interface QML para o KConfig

solid-6.11.0 para lxqt

Introdução ao solid

Solid é uma estrutura de integração de dispositivos. Ela fornece uma maneira de consultar e interagir com o hardware independentemente do sistema operacional subjacente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do solid

Exigidas

extra-cmake-modules-6.11.0 e Qt-6.8.2

Opcionais (tempo de execução)

UDisks-2.10.1, UPower-1.90.7, libimobiledevice e media-player-info

Instalação do solid

Instale o solid executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=Release         \
      -D CMAKE_INSTALL_LIBEXECDIR=libexec \
      -D KDE_INSTALL_USE_QT_SYS_PATHS=ON  \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: solid-hardware6
Biblioteca Instalada: libKF6Solid.so
Diretórios Instalados: /usr/include/KF6/Solid e /usr/lib/cmake/KF6Solid

Descrições Curtas

solid-hardware6

consulta informações de hardware a partir do sistema

libKF6Solid.so

fornece uma maneira de consultar e interagir com o hardware independentemente do sistema operacional subjacente

kidletime-6.11.0 para lxqt

Introdução ao kidletime

KIdleTime é usado para informar o tempo ocioso de usuários(as) e do sistema. É útil não apenas para determinar o tempo ocioso atual do PC, mas também para ser notificado(a) acerca de eventos de tempo ocioso, como tempos limite personalizados ou atividade de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kidletime

Exigidas

extra-cmake-modules-6.11.0, plasma-wayland-protocols-1.16.0 e Qt-6.8.2

Instalação do kidletime

Instale o kidletime executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=Release         \
      -D CMAKE_INSTALL_LIBEXECDIR=libexec \
      -D KDE_INSTALL_USE_QT_SYS_PATHS=ON  \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKF6IdleTime.so
Diretórios Instalados: /usr/include/KF6/KIdleTime, /usr/lib/cmake/KF6IdleTime e $QT6DIR/lib/plugins/kf6/org.kde.kidletime.platforms

Descrições Curtas

libKF6IdleTime.so

contém a API do KDE para informes de tempo ocioso

kwayland-6.3.2 para lxqt

Introdução ao kwayland

kwayland é uma API estilo Qt para interagir com a API do wayland-client e do wayland-server.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kwayland

Exigidas

extra-cmake-modules-6.11.0, Mesa-24.3.4 (construído com suporte a Wayland-1.23.0), plasma-wayland-protocols-1.16.0 e Qt-6.8.2

Instalação do kwayland

Instale o kwayland executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=Release         \
      -D CMAKE_INSTALL_LIBEXECDIR=libexec \
      -D KDE_INSTALL_USE_QT_SYS_PATHS=ON  \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKWaylandClient.so
Diretórios Instalados: /usr/include/KWayland e /usr/lib/cmake/KWayland

Descrições Curtas

libKWaylandClient.so

contém a biblioteca envolucradora estilo Qt do wayland-client

libkscreen-6.3.2 para lxqt

Introdução ao libkscreen

O pacote libkscreen contém a biblioteca de gerenciamento de telas do KDE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do plasma. Se o Plasma-6.3.2 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do libkscreen

Exigidas

kwayland-6.3.2 para lxqt, plasma-wayland-protocols-1.16.0 e Qt-6.8.2

Instalação do libkscreen

Instale o libkscreen executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr        \
      -D CMAKE_BUILD_TYPE=Release         \
      -D CMAKE_INSTALL_LIBEXECDIR=libexec \
      -D KDE_INSTALL_USE_QT_SYS_PATHS=ON  \
      -D BUILD_TESTING=OFF                \
      -W no-dev ..                        &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Em seguida, remova uma unidade do systemd que não serve para nada em um sistema SysV, como o(a) usuário(a) root:

rm -v /usr/lib/systemd/user/plasma-kscreen.service

Conteúdo

Aplicativos Instalados: kscreen-doctor
Biblioteca Instalada: libKF6Screen.so e libKF6ScreenDpms.so
Diretórios Instalados: /usr/lib/cmake/KF6Screen, /usr/include/KF6/KScreen e $QT6DIR/lib/plugins/kf6/kscreen

Descrições Curtas

kscreen-doctor

permite modificar a configuração da tela a partir da linha de comando

libKF6Screen.so

contém a biblioteca de gerenciamento de telas do KDE

libKF6ScreenDpms.so

contém funções de API para lidar com DPMS

layer-shell-qt-6.3.2 para lxqt

Introdução ao layer-shell-qt

Esse componente é destinado para aplicativos estarem aptos para usar facilmente clientes baseados em um protocolo "wlr-layer-shell". Os clientes podem usar essa interface para atribuir a função surface_layer para wl_surfaces. Essas superfícies são atribuídas para uma "camada" da saída gerada e renderizadas com uma profundidade z definida, respectivamente para cada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do plasma. Se o Plasma-6.3.2 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências de layer-shell-qt

Exigidas

extra-cmake-modules-6.11.0 e Qt-6.8.2

Instalação do layer-shell

Instale layer-shell-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -W no-dev ..                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libLayerShellQtInterface.so
Diretórios Instalados: /usr/lib/qml/org/kde/layershell e /usr/include/LayerShellQt

muparser-2.3.5

Introdução ao muparser

O pacote muparser é uma biblioteca de analisador matemático rápido para C e C++.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do muparser

Exigidas

CMake-3.31.5

Instalação do muparser

Instale o muparser executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmuparser.so
Diretórios Instalados: /usr/lib/cmake/muparser

Descrições Curtas

muparser.so

fornece uma biblioteca de analisador matemático rápido para C e C++

Componentes da Área de Trabalho LXQt

lxqt-build-tools-2.1.0

Introdução ao lxqt-build-tools

O pacote lxqt-build-tools fornece diversas ferramentas necessárias para construir o próprio LXQt, bem como outros componentes mantidos pelo projeto LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-build-tools

Exigidas

CMake-3.31.5 e Qt-6.8.2

Instalação do lxqt-build-tools

Instale o lxqt-build-tools executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      .. &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: lxqt2-transupdate
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/cmake/lxqt2-build-tools

Descrições Curtas

lxqt2-transupdate

atualiza traduções para componentes do LXQt

libdbusmenu-lxqt-0.2.0

Introdução ao libdbusmenu-lxqt

O pacote libdbusmenu-lxqt fornece uma implementação Qt do protocolo DBusMenu.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de libdbusmenu-lxqt

Exigidas

CMake-3.31.5

Opcionais

Doxygen-1.13.2 e qjson

Instalação do libdbusmenu-lxqt

Instale libdbusmenu-lxqt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -W no-dev ..                 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D WITH_DOC=ON: Use essa chave se você tiver instalado Doxygen-1.13.2 e desejar construir a documentação opcional.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdbusmenu-lxqt.so
Diretório Instalado: /usr/include/dbusmenu-lxqt e /usr/lib/cmake/dbusmenu-lxqt

Descrições Curtas

libdbusmen-lxqt.so

contém uma implementação Qt do protocolo DBusMenu, personalizado para LXQt

libqtxdg-4.1.0

Introdução ao libqtxdg

O pacote libqtxdg contém uma implementação Qt das especificações XDG do freedesktop.org.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libqtxdg

Exigidas

CMake-3.31.5 e Qt-6.8.2

Opcionais (tempo de execução)

GTK-3.24.48 (para gtk-update-icon-cache) e xterm-397

Instalação do libqtxdg

Instale o libqtxdg executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libQt6Xdg.so, libQt6XdgIconLoader.so e libQt6XdgIconPlugin.so (em $QT6DIR/lib)
Diretórios Instalados: /usr/include/{qt6xdg,qt6xdgiconloader} e /usr/share/cmake/{qt6xdg,qt6xdgiconloader}

Descrições Curtas

libQt6Xdg.so

contém uma implementação da especificação XDG para Qt

libQt6XdgIconLoader.so

contém o carregador de ícones XDG para Qt

libQt6XdgIconPlugin

contém um plugin para carregar ícones usando Qt

lxqt-menu-data-2.1.0

Introdução ao lxqt-menu-data

O pacote lxqt-menu-data contém arquivos de menu compatíveis com o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-menu-data

Exigidas

lxqt-build-tools-2.1.0

Instalação do lxqt-menu-data

Instale o lxqt-menu-data executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..  &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /etc/xdg/menus, /usr/share/desktop-directories e /usr/share/cmake/lxqt-menu-data

liblxqt-2.1.0

Introdução ao liblxqt

A liblxqt é a biblioteca principal de utilitários para todos os componentes do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do liblxqt

Exigidas

libqtxdg-4.1.0, kwindowsystem-6.11.0 para lxqt e polkit-qt-0.200.0

Instalação do liblxqt

Instale o liblxqt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-backlight_backend
Biblioteca Instalada: liblxqt.so
Diretórios Instalados: /usr/include/lxqt, /usr/share/cmake/lxqt e /usr/share/lxqt/liblxqt

Descrições Curtas

lxqt-backlight_backend

configura o nível de luz de fundo para uma tela

liblxqt.so

contém uma variedade de funções utilitárias para LXQt

libsysstat-1.1.0

Introdução ao libsysstat

O pacote libsysstat contém uma biblioteca usada para consultar informações e estatísticas do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libsysstat

Exigidas

lxqt-build-tools-2.1.0

Instalação do libsysstat

Instale o libsysstat executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libsysstat-qt6.so
Diretórios Instalados: /usr/include/sysstat-qt6 e /usr/share/cmake/sysstat-qt6

Descrições Curtas

libsysstat-qt6.so

contém funções para consultar informações e estatísticas do sistema

qtxdg-tools-4.1.0

Introdução ao qtxdg-tools

O qtxdg-tools contém uma ferramenta CLI MIME para lidar com associações de arquivos e abrir arquivos com os aplicativos padrão deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do qtxdg-tools

Exigidas

libqtxdg-4.1.0

Instalação do qtxdg-tools

Instale o qtxdg-tools executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: qtxdg-mat
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/cmake/qtxdg-tools

Descrições Curtas

qtxdg-mat

consulta e modifica padrões para aplicativos, como terminal padrão, navegador da web, cliente de mensagens eletrônicas e gerenciador de arquivos

libfm-extra-1.3.2

Introdução ao libfm-extra

O pacote libfm-extra contém uma biblioteca e outros arquivos exigidos pelo programa menu-cache-gen em /usr/bin/libexec instalado por menu-cache-1.1.1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/pcmanfm/libfm-1.3.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c87a0ff41ae77825079b2f785ec0741e

  • Tamanho da transferência: 924 KB

  • Espaço em disco estimado exigido: 11 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do libfm-extra

Exigidas

GLib-2.82.5

Instalação do libfm-extra

Instale libfm-extra executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --with-extra-only \
            --with-gtk=no     \
            --disable-static  &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-extra-only: Essa chave desabilita todos os componentes, exceto a biblioteca libfm-extra.

--with-gtk=no: Essa chave desabilita suporte para GTK+, porque não é necessário para esse pacote.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libfm-extra.so
Diretórios Instalados: /usr/include/libfm (link simbólico) e /usr/include/libfm-1.0

Descrições Curtas

libfm-extra.so

contém as funções de API da libfm-extra

menu-cache-1.1.1

Introdução ao Menu Cache

O pacote Menu Cache contém uma biblioteca para criar e utilizar caches para acelerar a manipulação de menus de aplicativos definidos pelo freedesktop.org.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Menu Cache

Exigidas

GTK-Doc-1.34.0 e libfm-extra-1.3.2

Opcionais

xdg-utils-1.2.1

Instalação do Menu Cache

sh autogen.sh                              &&
./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use essa opção se GTK-Doc estiver instalado e você desejar construir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmenu-cache.so
Diretórios Instalados: /usr/{include,libexec,share/gtk-doc/html}/menu-cache

Descrições Curtas

libmenu-cache.so

contém as funções de API do menu-cache

libfm-qt-2.1.0

Introdução ao libfm-qt

libfm-qt é a porta Qt da libfm, uma biblioteca que fornece componentes para construir gerenciadores de arquivos da área de trabalho. No LXQt, libfm-qt também lida com ícones e planos de fundo da área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libfm-qt

Exigidas

CMake-3.31.5, libexif-0.6.25, menu-cache-1.1.1 e Qt-6.8.2

Instalação do libfm-qt

Instale o libfm-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libfm-qt6.so
Diretórios Instalados: /usr/include/libfm-qt6, /usr/share/cmake/fm-qt6 e /usr/share/libfm-qt6

Descrições Curtas

libfm-qt6.so

contém funções para implementar um gerenciador gráfico de arquivos, bem como configurar ícones e planos de fundo da área de trabalho

lxqt-globalkeys-2.1.0

Introdução ao lxqt-globalkeys

O pacote lxqt-globalkeys contém um processo de segundo plano usado para registrar atalhos globais de teclado, bem como um editor para atalhos de teclado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-globalkeys

Exigidas

liblxqt-2.1.0

Instalação do lxqt-globalkeys

Instale o lxqt-globalkeys executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-config-globalkeyshortcuts e lxqt-globalkeysd
Bibliotecas Instaladas: liblxqt-globalkeys.so e liblxqt-globalkeys-ui.so
Diretórios Instalados: /usr/include/lxqt-globalkeys{,-ui} e /usr/share/cmake/lxqt-globalkeys{,-ui}

Descrições Curtas

lxqt-config-globalkeyshortcuts

é um editor para atalhos de teclado

lxqt-globalkeysd

é o processo global de segundo plano de atalhos de teclado

lxqt-globalkeys.so

contém funções para registrar atalhos de teclado

liblxqt-globalkeys-ui.so

contém funções que permitem que uma IU configure atalhos de teclado

lxqt-qtplugin-2.1.0

Introdução ao lxqt-qtplugin

O pacote lxqt-qtplugin fornece um plugin Qt de integração da plataforma LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-qtplugin

Exigidas

libfm-qt-2.1.0, liblxqt-2.1.0 e libdbusmenu-lxqt-0.2.0

Instalação do lxqt-qtplugin

Instale o lxqt-qtplugin executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libqtlxqt.so (em $QT6DIR/plugins/platformthemes)
Diretório Instalado: $QT6DIR/plugins/platformthemes

Descrições Curtas

libqtlxqt.so

contém o carregador de plugins QT do LXQt

lxqt-panel-2.1.4

Introdução ao lxqt-panel

O pacote lxqt-panel contém um painel leve de área de trabalho do X11.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-panel

Exigidas

layer-shell-qt-6.3.2 para lxqt, libdbusmenu-lxqt-0.2.0, liblxqt-2.1.0, lxqt-globalkeys-2.1.0, lxqt-menu-data-2.1.0, solid-6.11.0 para lxqt e menu-cache-1.1.1

Recomendadas

Instalação do lxqt-panel

Instale o lxqt-panel executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: lxqt-panel
Bibliotecas Instaladas: vários plugins sob /usr/lib/lxqt-panel
Diretórios Instalados: /usr/lib/lxqt-panel e /usr/share/lxqt/panel

Descrições Curtas

lxqt-panel

é um painel leve baseado em Qt6 para a área de trabalho do LXQt

pcmanfm-qt-2.1.0

Introdução ao pcmanfm-qt

O pcmanfm-qt é um gerenciador de arquivos e gerenciador de ícones da área de trabalho (uma porta Qt do pcmanfm e libfm).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do pcmanfm-qt

Exigidas

layer-shell-qt-6.3.2 para lxqt, liblxqt-2.1.0, libfm-qt-2.1.0 e lxqt-menu-data-2.1.0

Recomendadas

Instalação do pcmanfm-qt

Se libLayerShellQtInterface.so for instalado em /opt, ajude esse pacote a encontrá-lo. Como o(a) usuário(a) root:

if [   -e /opt/kf6/lib/libLayerShellQtInterface.so -a \
     ! -e /usr/lib/libLayerShellQtInterface.so ]; then

    ln -sv /opt/kf6/lib/libLayerShellQtInterface.so \
           /usr/lib/libLayerShellQtInterface.so
fi

Instale o pcmanfm-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Para facilitar a localização do pcmanfm-qt nos menus, ajuste o arquivo .desktop. Novamente, como o(a) usuário(a) root:

sed -e '/Categories=/s/=/=System;FileTools;/' \
    -e '/Name=/s/=.*/=Gerenciador de Arquivos PCManFM-Qt'/ \
    -i /usr/share/applications/pcmanfm-qt.desktop

Conteúdo

Aplicativo Instalado: pcmanfm-qt
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/pcmanfm-qt

Descrições Curtas

pcmanfm-qt

é um gerenciador de arquivos e gerenciador de ícones da área de trabalho

lxqt-powermanagement-2.1.0

Introdução ao lxqt-powermanagement

O pacote lxqt-powermanagement fornece o módulo de gerenciamento de energia para o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-powermanagement

Exigidas

liblxqt-2.1.0, kidletime-6.11.0 para lxqt, solid-6.11.0 para lxqt e UPower-1.90.7

Instalação do lxqt-powermanagement

Instale o lxqt-powermanagement executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-config-powermanagement e lxqt-powermanagement
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-config-powermanagement

é a ferramenta GUI de configuração do lxqt-powermanagement

lxqt-powermanagement

é o módulo de gerenciamento de energia do LXQt

lxqt-runner-2.1.2

Introdução ao lxqt-runner

O pacote lxqt-runner fornece uma ferramenta usada para iniciar aplicativos rapidamente, digitando-se os nomes deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-runner

Exigidas

lxqt-globalkeys-2.1.0, kwindowsystem-6.11.0 para lxqt e muparser-2.3.5

Instalação do lxqt-runner

Instale o lxqt-runner executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Usando o lxqt-runner

Para usar o lxqt-runner, pressione simultaneamente as teclas Alt-F2. Uma janela de diálogo aparece na parte superior central da tela. Quando você começa a digitar um comando, uma lista de possíveis correspondências aparece e muda conforme você continua digitando.

Conteúdo

Aplicativo Instalado: lxqt-runner
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-runner

lança uma caixa de diálogo gráfica para executar rapidamente um aplicativo

lxqt-themes-2.1.0

Introdução ao lxqt-themes

O pacote lxqt-themes fornece vários arquivos gráficos e temas para a área de trabalho do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-themes

Exigidas

lxqt-build-tools-2.1.0

Instalação do lxqt-themes

Instale o lxqt-themes executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/{graphics,themes,palettes,wallpapers}

lxqt-admin-2.1.0

Introdução ao lxqt-admin

O pacote lxqt-admin fornece duas ferramentas GUI para ajustar as configurações do sistema operacional no qual o LXQt está executando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-admin

Exigidas

liblxqt-2.1.0 e Polkit-126

Instalação do lxqt-admin

Instale o lxqt-admin executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: lxqt-admin-time, lxqt-admin-user e lxqt-admin-user-helper
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

lxqt-admin-time

é uma GUI para ajustar a hora e data atuais

lxqt-admin-user

é uma GUI para gerenciar usuários(as) e grupos

lxqt-about-2.1.0

Introdução ao lxqt-about

O pacote lxqt-about fornece a caixa de diálogo independente Sobre do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-about

Exigidas

liblxqt-2.1.0

Instalação do lxqt-about

Instale o lxqt-about executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: lxqt-about
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

lxqt-about

é a caixa de diálogo Sobre do LXQt

lxqt-config-2.1.1

Introdução ao lxqt-config

O pacote lxqt-config fornece o Centro de Configuração do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-config

Exigidas

liblxqt-2.1.0, kconfig-6.11.0 para lxqt, libkscreen-6.3.2 para lxqt e xorg-libinput-1.5.0

Instalação do lxqt-config

Instale o lxqt-config executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-config, lxqt-config-appearance, lxqt-config-brightness, lxqt-config-file-associations, lxqt-config-input, lxqt-config-locale e lxqt-config-monitor
Biblioteca Instalada: liblxqt-config-cursor.so
Diretórios Instalados: /usr/lib/lxqt-config

Descrições Curtas

lxqt-config

é o Centro de Configuração do LXQt

lxqt-config-appearance

é usado para mudar temas do sistema, temas de ícones e fontes usadas por aplicativos em uma sessão do LXQt

lxqt-config-brightness

configura a configuração de brilho de um monitor

lxqt-config-file-associations

é usado para associar tipos de arquivos a aplicativos

lxqt-config-input

é usado para configurar dispositivos de entrada, configurando opções como a velocidade do mouse, o cursor, a velocidade do teclado e o esquema do teclado

lxqt-config-locale

configura a localidade usada em sessões do LXQt

lxqt-config-monitor

é uma estrutura gráfica de interação direta com o(a) usuário(a) para o xrandr que configura monitores em um sistema

liblxqt-config-cursor.so

contém as funções da API do liblxqt-config-cursor

lxqt-policykit-2.1.0

Introdução ao lxqt-policykit

O pacote lxqt-policykit é o agente PolicyKit do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-policykit

Exigidas

liblxqt-2.1.0 e polkit-qt-0.200.0

Instalação do lxqt-policykit

Instale o lxqt-policykit executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: lxqt-policykit-agent
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lxqt/translations/lxqt-policykit-agent

Descrições Curtas

lxqt-policykit-agent

é o agente PolicyKit do LXQt

lxqt-sudo-2.1.0

Introdução ao lxqt-sudo

O pacote lxqt-sudo é um estrutura gráfica de interação direta com o(a) usuário(a) para sudo e su respectivamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-sudo

Exigidas

liblxqt-2.1.0

Instalação do lxqt-sudo

Instale o lxqt-sudo executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxdoas (link simbólico para lxqt-sudo), lxqt-sudo, lxsu (link simbólico para lxqt-sudo) e lxsudo (link simbólico para lxqt-sudo)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/translations/lxqt-sudo

Descrições Curtas

lxdoas

é uma interface gráfica para o doas

lxqt-sudo

é uma interface gráfica para o sudo

lxsudo

é uma interface gráfica para o sudo

lxsu

é uma interface gráfica para o su

lxqt-openssh-askpass-2.1.0

Introdução ao lxqt-openssh-askpass

O pacote lxqt-openssh-askpass é uma GUI para consultar credenciais em nome de outros aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-openssh-askpass

Exigidas

liblxqt-2.1.0

Instalação do lxqt-openssh-askpass

Instale o lxqt-openssh-askpass executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-openssh-askpass
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/translations/lxqt-openssh-askpass

Descrições Curtas

lxqt-config-openssh-askpass

consulta um(a) usuário(a) para credenciais em nome de outro aplicativo

lxqt-session-2.1.1

Introdução ao lxqt-session

O pacote lxqt-session contém o gerenciador padrão de sessão para o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-session

Exigidas

liblxqt-2.1.0, qtxdg-tools-4.1.0 e Xdg-user-dirs-0.18

Instalação do lxqt-session

Instale o lxqt-session executando os seguintes comandos:

sed -e '/TryExec/s|=|=/usr/bin/|' \
    -i xsession/lxqt.desktop.in &&

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -e '/TryExec/s|=|='/usr'/bin/|' -i xsessions/lxqt.desktop.in: Se você estiver usando um gerenciador de tela, o caminho completo da diretiva TryExec tem de ser dado, de forma que a área de trabalho LXQt apareça na lista de sessões.

Configurando o lxqt-session

Gerenciadores de janela diferentes do openbox-3.6.1 podem ser usados, por exemplo Xfwm4-4.20.0. Por favor, observe que o IceWM-3.7.1 não é um bom substituto. Fluxbox funciona, embora nesse contexto (com lxqt-config-2.1.1), openbox-3.6.1 seja melhor. O arquivo de configuração /usr/share/lxqt/windowmanagers.conf vem com muitos exemplos de gerenciadores de janelas e aqueles que estão instalados aparecerão em uma lista suspensa do lxqt-config-session. Para aqueles não incluídos em /usr/share/lxqt/windowmanagers.conf, você consegue usar o botão "pesquisar" do lxqt-config-session, por exemplo, para Fluxbox-1.3.7, navegando pelo sistema de arquivos até que consiga escolher o fluxbox.

Conteúdo

Aplicativos Instalados: lxqt-config-session, lxqt-leave, lxqt-session e startlxqt
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/translations/lxqt-{leave,config-session,session}

Descrições Curtas

lxqt-config-session

é uma ferramenta GUI de configuração para o lxqt-session

lxqt-leave

é uma caixa gráfica de diálogo para terminar a sessão

lxqt-session

é um gerenciador leve de sessões do X

startlxqt

é usado para iniciar a sessão de área de trabalho para o LXQt

xdg-desktop-portal-lxqt-1.1.0

Introdução ao xdg-desktop-portal-lxqt

xdg-desktop-portal-lxqt é uma estrutura de retaguarda para xdg-desktop-portal, que está usando a biblioteca Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-desktop-portal-lxqt

Exigidas

libfm-qt-2.1.0, kwindowsystem-6.11.0 para lxqt e xdg-desktop-portal-1.20.0 (ao tempo de execução)

Instalação do xdg-desktop-portal-lxqt

Instale xdg-desktop-portal-lxqt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xdg-desktop-portal-lxqt (em /usr/libexec)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/xdg-desktop-portal (se nenhuma outra estrutura de retaguarda do xdg-desktop-portal estiver instalada)

obconf-qt-0.16.5

Introdução ao obconf-qt

O pacote obconf-qt é uma ferramenta de configuração baseada em Qt para o Openbox.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do obconf-qt

Exigidas

hicolor-icon-theme-0.18, lxqt-build-tools-2.1.0, openbox-3.6.1 e Qt-6.8.2

Instalação do obconf-qt

Instale o obconf-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: obconf-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

obconf-qt

é uma ferramenta de configuração baseada em Qt para o Openbox

Instruções finais da área de trabalho do LXQt

Instruções pós-instalação

Por favor, siga estas instruções antes de iniciar o LXQt pela primeira vez.

Dependências para iniciar o LXQt

Exigidas

openbox-3.6.1, ou outro gerenciador de janelas, como o Xfwm4-4.20.0, ou o kwin originário do Plasma-6.3.2. Observe que o IceWM-3.7.1 não é adequado para o LXQt.

Recomendadas
Opcionais

lightdm-1.32.0 ou outro Gerenciador de Telas, por exemplo, sddm-0.21.0, ou XScreenSaver-6.09

Configuração final

Atualizações finais da base de dados do LXQt

As bases de dados de área de trabalho precisam ser criadas ou atualizadas neste ponto. Execute os seguintes comandos como o(a) usuário(a) root:

ldconfig                             &&
update-mime-database /usr/share/mime &&
xdg-icon-resource forceupdate        &&
update-desktop-database -q

Iniciando o LXQt

Você consegue iniciar o LXQt a partir do nível de execução 3, usando o xinit-1.4.3, ou a partir do nível de execução 5, usando um Gerenciador de Telas, como o lightdm-1.32.0.

Para iniciar o LXQt usando o xinit-1.4.3, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
exec startlxqt
EOF

startx

A sessão do X inicia no primeiro terminal virtual não usado, normalmente vt1. Você pode comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=2, 3, ...) . Para comutar de volta para a sessão do X, normalmente iniciada em vt1, use Ctrl-Alt-F1. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro, mas essas são ocultadas pela interface gráfica. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que pode ser usado para fins de depuração. Isso pode ser feito iniciando o X com:

startx &> ~/.x-session-errors

Configuração inicial

Quando o LXQt inicia pela primeira vez, ele te solicitará o gerenciador de janelas para usar. Para começar, os(as) editores(as) do BLFS recomendam usar o openbox. Neste ponto, tanto o plano de fundo quanto o painel estarão pretos. Clicar com o botão direito no plano de fundo abrirá um menu e selecionar "Preferências da área de trabalho" te permitirá mudar a cor do plano de fundo ou configurar uma imagem de plano de fundo.

O painel estará na parte inferior da tela. Clicar com o botão direito no painel abrirá um menu que te permitirá personalizar o painel, incluindo adicionar pequenas engenhocas e configurar a cor do plano de fundo. Os(As) editores(as) do BLFS recomendam instalar, no mínimo, as pequenas engenhocas de Gerenciador de Aplicativos e Gerenciador de Tarefas.

Depois que o LXQt for iniciado pela primeira vez, os(as) editores(as) do BLFS recomendam passar pelas configurações apresentadas no Centro de Configuração do LXQt, o qual podem ser encontrado sob Configurações do LXQt no menu Preferências do inicializador de aplicativos.

Nota

Os arquivos de configuração de usuário(a) serão criados no diretório $HOME/.config/lxqt/. Para conseguir que os ícones das pequenas engenhocas exibam corretamente, o arquivo lxqt.conf possivelmente precise ser editado manualmente para incluir a linha "icon_theme=oxygen".

Capítulo 38. Aplicativos LXQt

Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a área de trabalho do LXQt.

lximage-qt-2.1.1

Introdução ao lximage-qt

O pacote lximage-qt contém um visualizador de imagens leve e um aplicativo de captura de tela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lximage-qt

Exigidas

libfm-qt-2.1.0

Instalação do lximage-qt

Instale o lximage-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.2.1 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: lximage-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lximage-qt

Descrições Curtas

lximage-qt

é um visualizador de imagens leve e um aplicativo de captura de tela. Existe uma entrada de menu em Utilitários para o aplicativo de captura de tela. A partir da linha de comando, você consegue obter uma captura de tela inteira ou de janela executando lximage-qt --screenshot

lxqt-archiver-1.1.0

Introdução ao lxqt-archiver

O pacote lxqt-archiver é um arquivador Qt de arquivos simples e leve, independente de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-archiver

Exigidas

libfm-qt-2.1.0, liblxqt-2.1.0 e JSON-GLib-1.10.6

Instalação do lxqt-archiver

Instale o lxqt-archiver executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-archiver
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt-archiver

Descrições Curtas

lxqt-archiver

é um arquivador de arquivos baseado em Qt

lxqt-notificationd-2.1.1

Introdução ao lxqt-notificationd

O pacote lxqt-notificationd é o processo de segundo plano de notificação do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do lxqt-notificationd

Exigidas

liblxqt-2.1.0

Instalação do lxqt-notificationd

Instale o lxqt-notificationd executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-config-notificationd e lxqt-notificationd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/translations/lxqt-config-notificationd e /usr/share/lxqt/translations/lxqt-notificationd

Descrições Curtas

lxqt-config-notificationd

é a ferramenta GUI de configuração do lxqt-notificationd

lxqt-notificationd

é o processo de segundo plano de notificação do LXQt

pavucontrol-qt-2.1.0

Introdução ao pavucontrol-qt

pavucontrol-qt é a porta Qt do utilitário de controle de volume pavucontrol, que é usado para ajustar os níveis de áudio no Pulseaudio. Ele é independente do ambiente de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do pavucontrol-qt

Exigidas

liblxqt-2.1.0 e PulseAudio-17.0 (construído com suporte a GLib-2.82.5)

Instalação do pavucontrol-qt

Instale o pavucontrol-qt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: pavucontrol-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/pavucontrol-qt

Descrições Curtas

pavucontrol-qt

é uma ferramenta GUI de configuração baseada em Qt para configurações de som usando o pulseaudio

qps-2.10.0

Introdução ao qps

O pacote qps contém um gerenciador de processos Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do qps

Exigidas

liblxqt-2.1.0

Instalação do qps

Instale o qps executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.2.1 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: qps
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/qps

Descrições Curtas

qps

é um gerenciador de processos baseado em Qt

qtermwidget-2.1.0

Introdução ao qtermwidget

Como o nome sugere, o pacote qtermwidget é um pequena engenhoca de terminal para Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do qtermwidget

Exigidas

Qt-6.8.2

Instalação do qtermwidget

Instale o qtermwidget executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libqtermwidget6.so
Diretórios Instalados: /usr/include/qtermwidget6, /usr/lib/cmake/qtermwidget6 e /usr/share/qtermwidget6

Descrições Curtas

libqtermwidget6.so

fornece uma pequena engenhoca de terminal para Qt6

qterminal-2.1.0

Introdução ao qterminal

O pacote qterminal contém um emulador de terminal baseado em pequena engenhoca de Qt para o Qt com suporte para múltiplas abas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do qterminal

Exigidas

qtermwidget-2.1.0

Instalação do qterminal

Instale o qterminal executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: qterminal
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/qterminal

Descrições Curtas

qterminal

é um emulador de terminal leve baseado em Qt

screengrab-2.9.0

Introdução ao screengrab

O pacote screengrab é uma ferramenta multiplataforma para fazer capturas de tela rapidamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do screengrab

Exigidas

kwindowsystem-6.11.0 para lxqt e libqtxdg-4.1.0

Instalação do screengrab

Instale o screengrab executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_PREFIX=/usr \
      ..                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.2.1 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: screengrab
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/screengrab e /usr/share/doc/screengrab

Descrições Curtas

screengrab

é uma ferramenta multiplataforma para criar capturas de tela rapidamente

Parte XI. Software do X

Capítulo 39. Aplicativos de Escritório

Este capítulo é uma coleção de aplicativos que são úteis para visualizar ou editar documentos de escritório. Alguns se especializam em fazer uma coisa (como processar texto ou manipular uma planilha). LibreOffice é uma suíte de aplicativos que pode manipular muitos formatos, incluindo apresentações em PowerPoint.

AbiWord-3.0.5

Introdução ao AbiWord

AbiWord é um processador de texto útil para escrever informes, cartas e outros documentos formatados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/abiword/abiword-3.0.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a8f218b711450e4ccae43a0522e0e806

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 690 MB, com documentos (76 MB instalado)

  • Tempo de construção estimado: 2,4 UPC (Usando paralelismo=4, com documentos)

Transferências Adicionais

Dependências do AbiWord

Exigidas

Boost-1.87.0, cURL-8.12.1, FriBidi-1.0.16, GOffice-0.10.59 e wv-1.2.9

Recomendadas
Opcionais

dbus-glib-0.112, evolution-data-server-3.54.3, GLib-2.82.5 (com GObject Introspection), libgcrypt-1.11.0, libical-3.0.19, libsoup-2.74.3, Redland-1.0.17, Valgrind-3.24.0. Aiksaurus, GtkMathView, libchamplain, libwmf, libwpd, libwpg, libwps, Link Grammar Parser, Loudmouth, OTS, Psiconv e telepathy-glib

Nota

Para habilitar muitas das dependências opcionais, revise as informações provenientes de ./configure --help para as chaves necessárias que você precisa passar para o conjunto de comandos sequenciais configure.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/abiword

Instalação do AbiWord

Primeiro, corrija uma falha de construção ao usar libxml-2.12.x:

sed -e '/libxml/a #include <libxml/xmlmemory.h>' \
    -i src/af/util/xp/ut_stringbuf.cpp

Instale o AbiWord executando os seguintes comandos:

sed -e "s/free_suggestions/free_string_list/" \
    -e "s/_to_personal//"                     \
    -e "s/in_session/added/"                  \
    -i src/af/xap/xp/enchant_checker.cpp      &&

./configure --prefix=/usr &&
make

Esse aplicativo não vem com uma suíte funcional de teste.

Agora, como o(a) usuário(a) root:

make install

Nota

Para a finalidade de instalar os arquivos locais de ajuda, uma sessão gráfica é recomendada.

Se você deseja instalar os arquivos locais de ajuda, desempacote-os e construa-os primeiro:

Nota

A versão atual dos documentos se expande para abiword-docs-3.0.1 e não o esperado abiword-docs-3.0.2.

tar -xf ../abiword-docs-3.0.2.tar.gz &&
cd abiword-docs-3.0.1                &&
./configure --prefix=/usr            &&
make

e então, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ...: Esse comando corrige o fonte para mudanças na dependência enchant-2.8.2.

--enable-plugins="collab openxml goffice grammar": Construa alguns ou todos os plugins. O plugin openxml habilita o Abiword para abrir alguns arquivos .docx. O plugin grammar exige Analisador da Gramática de Links

Configurando o AbiWord

Arquivo de Configuração

~/.AbiSuite/templates/normal.awt

Informação de Configuração

Escolha o modelo correto para teu idioma e localidade a partir da lista produzida pelo seguinte comando:

ls /usr/share/abiword-3.0/templates

Crie a pasta ~/.AbiSuite/templates e, então, copie o normal.awt que você queira para ela:

install -v -m750 -d ~/.AbiSuite/templates &&
install -v -m640    /usr/share/abiword-3.0/templates/normal.awt-<idioma> \
                    ~/.AbiSuite/templates/normal.awt

Mude <idioma> pelo comando acima para ajustar o nome do arquivo que você queira.

Se estiver usando vários idiomas, você possivelmente necessite editar o modelo para usar uma fonte com maior cobertura (por exemplo, uma das Fontes Dejavu, porque o Abiword não usa fontconfig e somente consegue exibir glifos que sejam fornecidos na fonte escolhida.

Se tiver desktop-file-utils-0.28 instalado, você deveria executar o comando update-desktop-database para atualizar o cache mimeinfo e permitir que o sistema de Ajuda funcione.

Se tiver xdg-utils-1.2.1 instalado, você deveria executar o comando xdg-icon-resource forceupdate --theme hicolor, para que o ícone instalado seja exibido no item de menu.

Conteúdo

Aplicativo Instalado: abiword
Biblioteca Instalada: libabiword-3.0.so
Diretórios Instalados: /usr/include/abiword-3.0, /usr/lib/abiword-3.0 e /usr/share/abiword-3.0

Descrições Curtas

abiword

é o processador de texto, um envolucrador para as funções em libabiword-3.0 - também pode ser usado na linha de comando, veja-se man 1 abiword

libabiword-3.0.so

fornece funções para acessar documentos do MS Word

Gnumeric-1.12.59

Introdução ao Gnumeric

O pacote Gnumeric contém um aplicativo de planilha que é útil para análise matemática.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/gnumeric/1.12/gnumeric-1.12.59.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b4629f134acc1649b79c99be13e9f1e9

  • Tamanho da transferência: 17 MB

  • Espaço em disco estimado exigido: 251 MB (adicionar 17 MB para os testes)

  • Tempo de construção estimado: 1,0 UPC (adicionar 2,7 UPC para testes; ambos usando paralelismo=4)

Dependências do Gnumeric

Exigidas

GOffice-0.10.59 e itstool-2.0.7

Recomendadas Tempo de Execução
Opcionais

DConf-0.40.0 (para evitar algumas falhas de testes), GLib-2.82.5 (com GObject Introspection), PyGObject-3.50.0, Valgrind-3.24.0 (para alguns testes), dblatex (para documentos PDF), libgda, Mono, pxlib e Psiconv

Instalação do Gnumeric

Instale o Gnumeric executando os seguintes comandos:

./configure --prefix=/usr  &&
make

Esse pacote precisa ser instalado antes da suíte de teste ser executada.

Agora, como o(a) usuário(a) root:

make install

Para executar os testes, emita make check. Os testes deveriam ser executados a partir de uma sessão ativa do X e DConf-0.40.0 deveria ser instalado para evitar algumas falhas. Dois testes são conhecidos por falharem. Falhas adicionais possivelmente ocorram se valgrind estiver instalado.

Explicações do Comando

--enable-pdfdocs: Use essa chave se você tiver instalado o dblatex e desejar criar documentos PDF.

Conteúdo

Aplicativos Instalados: gnumeric (link simbólico), gnumeric-1.12.59, ssconvert, ssdiff, ssgrep e ssindex
Bibliotecas Instaladas: libspreadsheet.so
Diretórios Instalados: /usr/include/libspreadsheet-1.12, /usr/lib/gnumeric, /usr/lib/goffice/0.10/plugins/gnumeric, /usr/share/gnumeric e /usr/share/help/{C,cs,de,es}/gnumeric

Descrições Curtas

gnumeric

é um link simbólico para gnumeric-1.12.59

gnumeric-1.12.59

é o aplicativo de planilha do GNOME

ssconvert

é um utilitário de linha de comando para converter arquivos de planilha entre vários formatos de arquivo de planilha

ssdiff

é um utilitário de linha de comando para comparar duas planilhas

ssgrep

é um utilitário de linha de comando para pesquisar sequências de caracteres em planilhas

ssindex

é um utilitário de linha de comando para gerar dados de índice para arquivos de planilha

libspreadsheet.so

contém as funções da API do gnumeric

LibreOffice-25.2.1

Introdução ao LibreOffice

LibreOffice é uma suíte de escritório completa. É amplamente compatível com o Microsoft Office e é descendente do OpenOffice.org.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência Central: https://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-25.2.1.2.tar.xz

  • Soma de verificação MD5 da Transferência Central: 048d0354e6cfdb61c39e7f06cd0ad16c

  • Tamanho da Transferência Central: 268 MB

  • Espaço em disco estimado exigido: 11,0 GB incluindo os arquivos adicionais se baixados durante a construção (776 MB instalado). Instalar o conjunto inteiro de idiomas exige mais que 25 GB (cerca de 3 GB instalado)

  • Tempo de construção estimado: 35 UPC com paralelismo=8 (variará devido ao tempo de transferência)

Transferências Adicionais

Nota

Cerca de oitenta (80) pequenos tarballs e arquivos zip serão baixados durante a construção. O tempo de transferência variará com a velocidade local da Internet e carga do servidor. O tempo de transferência é de cerca de três (03) minutos em uma conexão de fibra e provavelmente não muito mais que dez (10) minutos em uma conexão ADSL. Se você não tiver instalado um ou mais das seguintes dependências, elas também serão baixados durante a construção.

Dependências do LibreOffice

Exigidas

Archive-Zip-1.68, libarchive-3.7.7, Wget-1.25.0, Which-2.23 e Zip-3.0

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Recomendadas

Nota

A maioria desses pacotes é recomendada porque, se não estiverem instalados, o processo de construção compilará e instalará a própria versão dela (geralmente mais antiga), com o efeito colateral de aumentar ambos, espaço em disco de construção e instalado, juntamente com aumentar o tempo de construção.

Opcionais

Abseil-cpp-20250127.0, Avahi-0.8, BlueZ-5.79, DConf-0.40.0, desktop-file-utils-0.28, Doxygen-1.13.2 (não relevante se usar --disable-odk), evolution-data-server-3.54.3, GDB-16.2, GnuTLS-3.8.9, GTK-4.16.12, KDE Frameworks-6.11.0, libpaper-2.2.6, MariaDB-11.4.5 ou MySQL, MIT Kerberos V5-1.21.3, NASM-2.16.03, Qt-6.8.2, SANE-1.2.1, Valgrind-3.24.0, VLC-3.0.21, Apache Commons Codec, Apache Commons HttpClient, Apache Commons Lang, Apache Commons Logging, BeanShell, box2d, CoinMP, Cppunit, Dragonbox, Firebird, frozen, glyphy, Gnome VFS, hamcrest, Hunspell, Hyphen, iwyu, Java-WebSocket, junit4, libabw, libcdr, libcmis, libebook, libepubgen, libetonyek, libexttextcat, libfixmath, libfreehand, liblangtag, libmspub, libmwaw, libnumbertext, libodfgen, libpagemaker, libqrcodegen, libqxp, librevenge (importador WordPerfect Document), libstaroffice, libvisio, libwpd, libwpg, libwps, libzmf, lp_solve, mdds, MyThes, odfvalidator, officeotron, OpenCOLLADA, Orcus, SystemTap e VIGRA

Existem muitas dependências opcionais não listadas aqui. Elas podem ser encontrados no arquivo download.lst no diretório do fonte.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/libreoffice

Instalação do LibreOffice

Primeiro, corrija falhas de construção introduzidas pela versão mais recente do ICU:

patch -Np1 -i ../libreoffice-25.2.1.2-icu76_fixes-1.patch

Em seguida, corrija um defeito com lincagem para zlib, corrija um defeito que causaria uma falha da instalação, e evite a compressão de páginas de manual:

sed -i '/icuuc \\/a zlib\\'           writerperfect/Library_wpftdraw.mk &&
sed -i "/distro-install-file-lists/d" Makefile.in                       &&
sed -e "/gzip -f/d"   \
    -e "s|.1.gz|.1|g" \
    -i bin/distro-install-desktop-integration

Se você tiver baixado os tarballs de dicionários, ajuda e de traduções, crie links simbólicos para eles a partir do diretório do fonte, de forma que não sejam baixados novamente:

install -dm755 external/tarballs &&
ln -sv ../../../libreoffice-dictionaries-25.2.1.2.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-help-25.2.1.2.tar.xz         external/tarballs/ &&
ln -sv ../../../libreoffice-translations-25.2.1.2.tar.xz external/tarballs/

As instruções no pacote desempacotam alguns tarballs em um local que não pode ser encontrado posteriormente. Crie alguns links simbólicos para ajudar o sistema de construção:

ln -sv src/libreoffice-help-25.2.1.2/helpcontent2/ &&
ln -sv src/libreoffice-dictionaries-25.2.1.2/dictionaries/ &&
ln -sv src/libreoffice-translations-25.2.1.2/translations/

Nota

Durante o processo de construção, alguns pacotes serão baixados (incluindo aqueles listados como dependências recomendadas e opcionais) se eles não estiverem presentes no sistema. Por causa disso, o tempo de construção possivelmente varie do horário publicado mais que o normal.

Devido ao grande tamanho do pacote, você possivelmente prefira instalá-lo em /opt, em vez de /usr. Dependendo da tua escolha, substitua <PREFIX> por /usr ou por /opt/libreoffice-25.2.1.2:

export LO_PREFIX=<PREFIXO>

Os locais "fr" e "en-GB", que você encontrará abaixo, são apenas exemplos; você deveria mudá-los para atender às tuas necessidades - você pode querer ler as "Explicações do Comando", mais abaixo, antes de continuar.

Nota

Se você configurou a variável de ambiente ACLOCAL para suportar a instalação do Xorg em /opt, você precisará desconfigurá-la para esse pacote.

Se você estiver construir em uma máquina de 32 bits, CFLAGS está configurada como -Os, o que quebra a construção. Evite isso emitindo:

case $(uname -m) in
   i?86) sed /-Os/d -i solenv/gbuild/platform/LINUX_INTEL_GCC.mk ;;
esac

Prepare o LibreOffice para compilação executando os seguintes comandos:

./autogen.sh --prefix=$LO_PREFIX         \
             --sysconfdir=/etc           \
             --with-vendor=BLFS          \
             --with-lang='fr en-GB'      \
             --with-help                 \
             --with-myspell-dicts        \
             --without-junit             \
             --without-system-dicts      \
             --disable-dconf             \
             --disable-odk               \
             --disable-mariadb-sdbc      \
             --enable-release-build=yes  \
             --enable-python=system      \
             --with-jdk-home=/opt/jdk    \
             --with-system-boost         \
             --with-system-clucene       \
             --with-system-curl          \
             --with-system-epoxy         \
             --with-system-expat         \
             --with-system-glm           \
             --with-system-gpgmepp       \
             --with-system-graphite      \
             --with-system-harfbuzz      \
             --with-system-jpeg          \
             --with-system-lcms2         \
             --with-system-libatomic_ops \
             --with-system-libpng        \
             --with-system-libxml        \
             --with-system-nss           \
             --with-system-odbc          \
             --with-system-openldap      \
             --with-system-openssl       \
             --with-system-poppler       \
             --with-system-postgresql    \
             --with-system-redland       \
             --with-system-libtiff       \
             --with-system-libwebp       \
             --with-system-icu           \
             --with-system-zlib

Construa o pacote:

make build

Agora, como o(a) usuário(a) root:

make distro-pack-install

Se instalado em /opt/libreoffice-25.2.1.2, alguns passos adicionais são necessários. Emita os seguintes comandos como o(a) usuário(a) root:

if [ "$LO_PREFIX" != "/usr" ]; then

  # Este link simbólico é necessário para as entradas do menu da área de trabalho
  ln -svf $LO_PREFIX/lib/libreoffice/program/soffice /usr/bin/libreoffice &&

  # Configure um local genérico independente do número da versão
  ln -sfv $LO_PREFIX /opt/libreoffice

  # Ícones
  mkdir -vp /usr/share/pixmaps
  for i in $LO_PREFIX/share/icons/hicolor/32x32/apps/*; do
    ln -svf $i /usr/share/pixmaps
  done &&

  # Entradas do menu da área de trabalho
  for i in $LO_PREFIX/lib/libreoffice/share/xdg/*; do
    ln -svf $i /usr/share/applications/libreoffice-$(basename $i)
  done &&

  # Páginas de manual
  for i in $LO_PREFIX/share/man/man1/*; do
    ln -svf $i /usr/share/man/man1/
  done

  unset i
fi

Se você tiver instalado o desktop-file-utils-0.28 e desejar atualizar a base de dados MIME, emita, como o(a) usuário(a) root:

update-desktop-database

A suíte e os módulos principais podem ser iniciados a partir do menu. A partir de um terminal, a suíte pode ser iniciada com o comando libreoffice e os módulos com o comando libreoffice --<módulo>, respectivamente, onde <módulo> é base, calc, draw, impress, math, web ou writer. Os módulos não podem ser iniciados usando os nomes deles de script de iniciação do shell (veja-se "Aplicativos Instalados", abaixo), se LO_PREFIX for diferente de /usr, a menos que o diretório $LO_PREFIX/bin seja adicionado ao PATH.

Explicações do Comando

--with-vendor=BLFS: Essa chave configura BLFS como o fornecedor mencionado quando você clica em "Sobre" a partir do menu Ajuda na barra de ferramentas.

--with-lang='fr en-GB': Essa chave configura quais idiomas suportar. Para listar vários idiomas, separe-os com um espaço. Para todos os idiomas, use --with-lang=ALL. Observe que o arquivo de tradução não é necessário e não seria baixado se usar somente en-US como um idioma.

Nota

Para uma lista dos idiomas disponíveis, olhe em solenv/inc/langlist.mk.

--with-help: Sem essa chave, os arquivos de ajuda não são construídos.

--with-jdk-home=/opt/jdk: Esse parâmetro silenciará um aviso de que o conjunto de comandos sequenciais de configuração tentou encontrar JAVA_HOME automaticamente (mesmo que isso seja passado no ambiente). Omita isso se você desabilitou o java.

--with-myspell-dicts: Essa chave adiciona dicionários myspell ao conjunto de instalação do LibreOffice.

--with-system-boost: Essa chave habilita usar o boost do sistema. De tempos em tempos, versões recentes do boost quebram a construção do libreoffice. Nesse caso, é possível usar a cópia agrupada do boost removendo esse sinalizador.

--disable-dconf: Essa chave desabilita compilar o LibreOffice com o suporte do sistema de configuração GNOME DConf.

--without-junit: Essa chave desabilita os testes para o controlador obsoleto HSQLDB que é escrito em Java.

--without-system-dicts: Essa chave desabilita o uso de dicionários originários de caminhos do sistema, de forma que aqueles instalados por esse pacote sejam usados.

--disable-odk: Essa chave desabilita instalar o kit de desenvolvimento do Office. Remova se você quiser desenvolver um aplicativo baseado no LibreOffice.

--disable-mariadb-sdbc: Essa chave desabilita o conector SDBC do MariaDB para o Libreoffice Base. Deixá-lo habilitado resulta em uma falha de construção por causa de um problema de vinculação a MIT Kerberos V5-1.21.3.

--enable-release-build=yes: Essa chave habilita uma Construção de Lançamento. O LibreOffice pode ser construído como uma Construção de Lançamento ou como uma Construção de Desenvolvedor(a), porque os caminhos padrão de instalação deles e caminhos de perfil de usuário(a) são diferentes. A Construção de Desenvolvedor(a) exibe as palavras "Dev" e "Beta" em vários lugares (por exemplo, menu e tela inicial).

--enable-python=system: Essa chave diz ao LibreOffice para usar o Python 3 instalado no sistema em vez daquele empacotado.

--with-system-icu: Essa chave informa ao sistema de construção para usar a versão instalada de sistema do ICU.

--with-system-*: Essas chaves evitam que o LibreOffice tente compilar as próprias versões dele dessas dependências. Se você não tiver instalado algumas das dependências, remova as chaves correspondentes.

make distro-pack-install: Isso faz uma instalação normal, mas se você adicionar uma variável de ambiente DESTDIR, ela também instalará um monte de arquivos (de texto) gid_Module_* no DESTDIR, para ajudar distribuições que queiram quebrar o pacote em partes.

--with-parallelism=<soma>: Essa chave diz ao LibreOffice para usar <soma> Elementos de Processamento de CPU para compilar em paralelo. (Não inclua colchetes angulares literais). O padrão é o de usar todos os Elementos de Processamento disponíveis no sistema.

--disable-cups: Use essa chave se você não precisar de suporte para impressão.

--disable-dbus: Use essa chave se você não tiver instalado o D-Bus-1.8.0 ou posterior. Ela também desabilita o suporte a Bluetooth e a instalação de fontes via PackageKit.

--disable-firebird-sdbc: Por padrão, a habilidade de conectar-se a uma base de dados firebird está habilitada. Adicione essa chave se você não precisar desse recurso.

--disable-gstreamer-1-0: Use essa chave se você não tiver instalado o gst-plugins-base-1.24.12.

--disable-postgresql-sdbc: Essa chave desabilita compilar o LibreOffice com a habilidade de conectar-se a uma base de dados PostgreSQL. Use-a se você não tiver instalado o PostgreSQL e não quiser que o LibreOffice compile a cópia empacotada dele.

--disable-skia: Use Cairo-1.18.2 para renderizar em vez de skia.

--enable-lto: Essa chave habilitará o Link Time Optimization, o que resulta em bibliotecas um pouco menores (cerca de 40 MB). Diz-se que isso faz com que os aplicativos do LibreOffice carreguem mais rápido (e possivelmente executem mais rápido, por exemplo, ao recalcular uma planilha). Em uma máquina de 8 Elementos de Processamento com 16 GB de memória, a diferença nos tempos de compilação foi mínima, mas 2 GB extras foram usados para os arquivos de trabalho. Em máquinas com menos processadores ou falta de memória, a compilação pode ser muito mais lenta.

--without-java: Essa chave desabilita o suporte a Java no LibreOffice. Java é necessário para o controlador obsoleto HSQLDB, que permite ler bases de dados criadas por outros aplicativos ou em versões anteriores do libreoffice base. Também é necessário para alguns componentes opcionais de interface de usuário(a).

--without-fonts: LibreOffice inclui diversas fontes TrueType de terceiros(as). Se você já tiver instalado algumas ou todas as mesmas fontes, possivelmente prefira usar as versões do sistema.

--enable-evolution2: Habilita o suporte para catálogos de endereços do Evolution por meio do Servidor de Dados do Evolution. Observe que o Servidor de Dados do Evolution precisa estar instalado para esse recurso funcionar.

--enable-qt5: Essa chave habilita suporte para integração com Qt6 e o mecanismo de temas do Qt6. Se Qt-6.8.2 não estiver instalado em /usr, os diretórios de inclusão e biblioteca precisarão ser especificados nas variáveis de ambiente QT6INC e QT6LIB.

--enable-kf6: Essa chave habilita integração KDE/Plasma. Se Qt-6.8.2 e (ou) KDE Frameworks-6.11.0 não estiverem instalados em /usr, os diretórios de inclusão e biblioteca precisarão ser especificados em QT6INC, QT6LIB, KF6INC e KF6LIB, respectivamente. Isso inclui um plugin de estilo e integração com KIO.

--with-system-abseil: Essa chave habilita usar uma versão de sistema das bibliotecas C++ de Abseil, em vez da cópia agrupada. Adicione essa chave se Abseil-cpp-20250127.0 estiver instalado e você desejar usá-lo em vez da cópia agrupada.

--enable-gtk4: Essa chave habilita integração com GTK-4, incluindo o uso de uma caixa de diálogo de navegação de arquivos e temas do GTK-4.

Conteúdo

Aplicativos Instalados: libreoffice, lobase, localc, lodraw, loffice, lofromtemplate, loimpress, lomath, loweb, lowriter, soffice e unopkg; vários aplicativos sob $LO_PREFIX/lib/libreoffice/program
Bibliotecas Instaladas: várias bibliotecas sob $LO_PREFIX/lib/libreoffice/program
Diretório Instalado: $LO_PREFIX/lib/libreoffice

Descrições Curtas

libreoffice (ou soffice)

é a suíte principal do libreoffice (link simbólico para $LO_PREFIX/lib/libreoffice/program/soffice)

lobase

é o conjunto de comandos sequenciais de iniciação do shell do módulo gerenciador de base de dados

localc

é o conjunto de comandos sequenciais de iniciação do shell do módulo de planilha

lodraw

é o conjunto de comandos sequenciais de iniciação do shell do módulo do editor de gráficos vetoriais e da ferramenta de diagramação

loimpress

é o conjunto de comandos sequenciais de iniciação do shell do módulo de exibição e o editor de apresentações (PowerPoint)

lomath

é o conjunto de comandos sequenciais de iniciação do shell do módulo do editor de fórmulas matemáticas

loweb

é o conjunto de comandos sequenciais de iniciação do shell do módulo do editor de HTML

lowriter

é o conjunto de comandos sequenciais de iniciação do shell do módulo do processador de texto

unopkg

é uma ferramenta para gerenciar extensões do LibreOffice a partir da linha de comando

Capítulo 40. Navegadores Gráficos da Web

Este capítulo contém uma seleção maravilhosa de navegadores. Nós esperamos que você consiga encontrar um que goste de usar ou faça uma execução de teste com cada um deles.

Epiphany-47.3.1

Introdução ao Epiphany

Epiphany é um navegador da web do GNOME simples, mas poderoso, direcionado a usuários(as) não técnicos(as). Os princípios dele são simplicidade e conformidade com padrões.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/epiphany/47/epiphany-47.3.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ba8e94876c62e3c17cad15a7e025d643

  • Tamanho da transferência: 3,9 MB

  • Espaço em disco estimado exigido: 48 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)

Dependências do Epiphany

Exigidas

Gcr-4.3.1, gnome-desktop-44.1, ISO Codes-4.17.0, JSON-GLib-1.10.6, libadwaita-1.6.4, libportal-0.9.1, Nettle-3.10.1 e WebKitGTK-2.46.6 (construído com GTK-4)

Opcionais

appstream-glib-0.8.3 e Granite

Dependências de Tempo de Execução

gnome-keyring-46.2 (para armazenar senhas) e Seahorse-47.0.1 (para gerenciar senhas armazenadas)

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/epiphany

Instalação do Epiphany

Nota

Se você estiver atualizando a partir de um epiphany-46 ou anterior, remova alguns arquivos que causarão uma falha em tempo de execução se estiverem presentes, como o(a) usuário(a) root:

rm -rf /usr/lib/epiphany

Instale o Epiphany executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Um teste falharia se esse pacote não estivesse instalado, de forma que é melhor executar a suíte de teste depois da instalação. Para testar os resultados, emita ninja test. Os testes precisam ser executados a partir de uma sessão gráfica.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: epiphany
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/{lib,libexec,share,share/help/*}/epiphany

Descrições Curtas

epiphany

é um navegador da web do GNOME baseado no mecanismo de renderização WebKit2

falkon-24.12.2

Introdução ao falkon

Falkon é um navegador da web do KDE que usa o mecanismo de renderização QtWebEngine. Anteriormente era conhecido como QupZilla. O objetivo dele é o de ser um navegador leve da web, disponível em todas as principais plataformas.

Embora o falkon agora faça parte do KDE, ele pode ser instalado sem o KDE (com a perda da funcionalidade do kwallet).

Falkon depende de QtWebEngine. Por favor, leia o aviso nessa página.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do falkon

Exigidas

extra-cmake-modules-6.11.0, KDE Frameworks-6.11.0 (para karchive) e qtwebengine-6.8.2

Nota

Estritamente falando, somente o karchive e ki18n são exigidos para construir o falkon, mas vários outros pacotes no KDE Frameworks-6.11.0 podem ser usados se estiverem presentes. Para construir somente o karchive e ki18n, baixe esses pacotes a partir do diretório especificado em KDE Frameworks-6.11.0 e use as instruções de construção naquela página, mudando a $KF6_PREFIX para /usr.

Opcionais

gnome-keyring-46.2, PySide2 e Shiboken2

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/falkon

Instalação do falkon

Instale o falkon executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      .. &&

make

Os testes deveriam ser executados depois da instalação.

Agora, como o(a) usuário(a) root:

make install &&
ldconfig

Para testar os resultados, emita: make test. Todos os testes deveriam passar. Se algum falhar, os resultados completos estarão em Testing/Temporary/LastTest.log.

Nota

Ao atualizar esse pacote, é possível que o conteúdo do aplicativo permaneça vazio mesmo que todo o resto pareça estar funcionando corretamente. Nesse caso, tente remover ~/.cache/falkon e reiniciar o aplicativo.

Se você instalou o Pyside2, você irá querer examinar hellopython.py que está no diretório scripts/ e, talvez, copiá-lo para o teu diretório inicial.

Nota

Se estiver em uma arquitetura não x86_64 e tiver problemas com texto ausente, você possivelmente deseje exportar QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox" antes de executar o Falkon.

Explicações do Comando

-D BUILD_TESTING=OFF: Isso economizará um pouco de tempo e espaço não construindo os aplicativos de teste; use isso se você não desejar executar o teste.

Conteúdo

Aplicativos Instalados: falkon
Biblioteca Instalada: libFalkonPrivate.so.3
Diretório Instalado: /usr/share/falkon

Descrições Curtas

falkon

é um navegador da web que usa qtwebengine

libFalkonPrivate.so.3

contém funções usadas pelo falkon

Firefox-128.7.0esr

Introdução ao Firefox

Firefox é um navegador autônomo baseado na base de código Mozilla.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

O nome do diretório é firefox-128.7.0

Extrair o tarball reconfigurará as permissões do diretório atual para 0755, se você tiver permissão para fazer isso. Se você fizer isso em um diretório onde o bit sticky estiver configurado, como /tmp, ela terminará com mensagens de erro:

tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors

Isso finaliza com situação diferente de zero, mas NÃO significa que existe um problema real. Não desempacote como o(a) usuário(a) root em um diretório onde o bit sticky estiver configurado - isso irá desconfigurá-lo.

Tal como acontece com outros pacotes grandes que usam C++ (ou rust), os tempos de UPC para construir isso variam mais amplamente que você poderia esperar. Os tempos de construção aumentarão significativamente se tua máquina tiver que trocar.

Embora o(a) desenvolvedor(a) prefira usar PulseAudio, no momento Alsa ainda pode ser usado. Ambos possivelmente precisem de configuração de tempo de execução para que o som funcione.

Dependências do Firefox

Exigidas

Cbindgen-0.28.0, GTK-3.24.48, libnotify-0.8.4, libarchive-3.7.7, LLVM-19.1.7 (com clang, usado para bindgen mesmo se usar-se gcc), nodejs-22.14.0, PulseAudio-17.0 (ou alsa-lib-1.2.13 se você editar o mozconfig; agora obsoleto pela mozilla), em ambos os cassos, por favor, leiam-se a Informações de Configuração, Python-3.13.2 (depois de instalar SQLite-3.49.1) e startup-notification-0.12

Recomendadas

Nota

Se você não instalar as dependências recomendadas, então cópias internas desses pacotes serão usadas. Elas podem ter sido testadas para funcionar, mas podem estar desatualizadas ou conter falhas de segurança.

Opcionais

cURL-8.12.1, Doxygen-1.13.2, FFmpeg-7.1 (tempo de execução, para reproduzir arquivos mov, mp3 ou mp4), GeoClue-2.7.2 (tempo de execução), liboauth-1.0.3, pciutils-3.13.0 (tempo de execução), Valgrind-3.24.0, Wget-1.25.0, Wireless Tools-29, yasm-1.3.0, libproxy

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/firefox

Instalação do Firefox

A configuração do Firefox é realizada criando-se um arquivo mozconfig contendo as opções desejadas de configuração. Um mozconfig padrão é criado abaixo. Para ver a lista completa de opções de configuração disponíveis (e uma descrição abreviada de algumas delas), emita ./mach configure -- --help | less. Você também possivelmente revise o arquivo inteiro e descomente quaisquer outras opções desejadas. Crie o arquivo emitindo o seguinte comando:

cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used by default.

# If you have installed (or will install) wireless-tools, and you wish
# to use geolocation web services, comment out this line
ac_add_options --disable-necko-wifi

# Comment out the following line if you wish not to use Google's Location
# Service (GLS).  Note that if Geoclue is installed and configured to use
# GLS (as the BLFS instruction does), Firefox can access GLS via Geoclue
# anyway.  On the other hand if Geoclue is not installed (or not properly
# configured) and this line is commented out, the website requiring a
# location service will not function properly.
ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key

# startup-notification is required since firefox-78

# Uncomment the following option if you have not installed PulseAudio and
# want to use alsa instead
#ac_add_options --enable-audio-backends=alsa

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-icu
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp

# The libdav1d library (av1 decoder) requires nasm. Uncomment this
# if nasm has not been installed. Do not uncomment this if you have
# ffmpeg installed.
#ac_add_options --disable-av1

# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding

# Stripping is now enabled by default.
# Uncomment these lines if you need to run a debugger:
#ac_add_options --disable-strip
#ac_add_options --disable-install-strip

# Disabling debug symbols makes the build much smaller and a little
# faster. Comment this if you need to run a debugger.
ac_add_options --disable-debug-symbols

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=browser
ac_add_options --disable-crashreporter
ac_add_options --disable-updater

# Enabling the tests will use a lot more space and significantly
# increase the build time, for no obvious benefit.
ac_add_options --disable-tests

# This enables SIMD optimization in the shipped encoding_rs crate.
ac_add_options --enable-rust-simd

ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

# Sandboxing works well on x86_64 but might cause issues on other
# platforms, e.g. i686.
[ $(uname -m) != x86_64 ] && ac_add_options --disable-sandbox

# Using sandboxed wasm libraries has been moved to all builds instead
# of only mozilla automation builds. It requires extra llvm packages
# and was reported to seriously slow the build. Disable it.
ac_add_options --without-wasm-sandboxed-libraries

# The following option unsets Telemetry Reporting. With the Addons Fiasco,
# Mozilla was found to be collecting user's data, including saved passwords and
# web form data, without users consent. Mozilla was also found shipping updates
# to systems without the user's knowledge or permission.
# As a result of this, use the following command to permanently disable
# telemetry reporting in Firefox.
unset MOZ_TELEMETRY_REPORTING

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
EOF

Se você estiver construindo com o ICU do sistema, adapte o mapeamento de quebra de linha para ICU 74 ou posterior. Esta construção adiciona cinco entradas para um vetor c++.

for i in {43..47}; do
   sed -i '/ZWJ/s/}/,CLASS_CHARACTER&/' intl/lwbrk/LineBreaker.cpp 
done

Se você estiver construindo com o ICU do sistema, adapte o sistema de construção para usar a biblioteca correta:

sed -i 's/icu-i18n/icu-uc &/' js/moz.configure

Compile o Firefox emitindo os seguintes comandos:

Se as APIs de geolocalização forem necessárias:

Nota

A chave de API do Google abaixo é específica para o LFS. Se usar essas instruções para outra distribuição ou se você pretender distribuir cópias binárias do software usando essas instruções, por favor, obtenha as tuas próprias chaves seguindo as instruções localizadas em https://www.chromium.org/developers/how-tos/api-keys.

echo "AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ" > google-key

Nota

Se você estiver compilando esse pacote em chroot, você precisa assegurar que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Como o(a) usuário(a) root, execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Agora invoque o conjunto de comandos sequenciais Python mach para compilar o pacote.

export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none &&
export MOZBUILD_STATE_PATH=${PWD}/mozbuild          &&
./mach build

O mozconfig acima desabilita os testes porque eles usam muito mais tempo e espaço em disco sem nenhum benefício óbvio. Se você, mesmo assim, os tiver ativado, poderá executar os testes executando ./mach gtest. Isso exigirá uma conexão de rede de intercomunicação e será executado a partir de uma sessão do Xorg - existe uma caixa de diálogo pop-up quando ele falha ao se conectar ao ALSA (isso não cria um teste com falha). Um ou dois testes falharão. Para ver os detalhes da(s) falha(s), você precisará registrar a saída gerada a partir desse comando, de forma que consiga revisá-la(s).

Agora, como o(a) usuário(a) root:

export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none &&
./mach install

Esvazie as variáveis de ambiente que foram configuradas acima:

unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE
unset MOZBUILD_STATE_PATH

Explicações do Comando

export MOZBUILD_STATE_PATH=${PWD}/mozbuild: A construção te informa que pretende criar ~/.mozbuild e te oferece uma opção para pressionar <ENTER> para aceitar isso ou Ctrl-C para cancelar e reiniciar a construção depois de especificar o diretório. Na prática, a mensagem possivelmente não apareça até depois do <ENTER> ser pressionado, ou seja, a construção para.

Esse diretório é usado para um (provavelmente aleatório) identificador de telemetria. Criar esse diretório dentro do construção da construção e deletá-lo depois da instalação evita que seja usado.

MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none: Use o Python do sistema para criar um ambiente virtual para o mach sem baixar nenhuma roda Python e sem usar os módulos Python do sistema. Isso evita incompatibilidades de versão entre módulos do sistema e os incluídos.

./mach build --verbose: Use essa alternativa se você precisar de detalhes a respeito de quais arquivos estão sendo compilados, juntamente com quaisquer sinalizadores C ou C++ sendo usados. Mas não adicione '--verbose' ao comando de instalação, pois não é aceito lá.

./mach build -jN: A construção deveria, por padrão, usar todos os Elementos de Processamento de CPU online. Se usar todos os Elementos de Processamento fizer com que a construção use a área de troca porque você tem memória insuficiente, usar menos Elementos de Processamento poderá ser mais rápido.

CC=gcc CXX=g++: o BLFS costumava preferir usar gcc e g++ em vez dos padrões do(a) desenvolvedor(a) dos aplicativos clang. Com o lançamento do gcc-12, a construção demora mais tempo com gcc e g++, principalmente por causa de avisos extras, e é maior. Configure essas variáveis de ambiente antes de você executar o conjunto de comandos sequenciais de configuração se desejar continuar a usar gcc, g++. Construir com GCC no i?86 atualmente está quebrado.

Configurando o Firefox

Se você usa um ambiente de área de trabalho, como Gnome ou KDE, você possivelmente queira criar um arquivo firefox.desktop, de forma que o Firefox apareça nos menus do painel. Como o(a) usuário(a) root:

mkdir -pv /usr/share/applications &&
mkdir -pv /usr/share/pixmaps      &&

MIMETYPE="text/xml;text/mml;text/html;"                            &&
MIMETYPE+="application/xhtml+xml;application/vnd.mozilla.xul+xml;" &&
MIMETYPE+="x-scheme-handler/http;x-scheme-handler/https"           &&

cat > /usr/share/applications/firefox.desktop << EOF &&
[Desktop Entry]
Encoding=UTF-8
Name=Navegador da Web Firefox
Comment=Navegue a World Wide Web
GenericName=Navegador da Web
Exec=firefox %u
Terminal=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=$MIMETYPE
StartupNotify=true
EOF

unset MIMETYPE &&

ln -sfv /usr/lib/firefox/browser/chrome/icons/default/default128.png \
        /usr/share/pixmaps/firefox.png

Informação de Configuração

As configurações de aplicativo para o Firefox são acessíveis digitando-se about:config na barra de endereço.

Ocasionalmente, conseguir som que funcione no firefox pode ser um problema. Embora o(a) desenvolvedor(a) prefira o pulseaudio, no geral, usar Alsa possivelmente seja mais fácil.

Se você habilitou o Alsa para som, você possivelmente precise alterar uma variável para obter som funcional. Se executar o firefox a partir de um terminal e tentar reproduzir algo com som, você poderá encontrar mensagens de erro como:

Sandbox: seccomp sandbox violation: pid 3941, tid 4030, syscall 16, args 48 2147767296 139909894784796 0 0 0.

Isso foi em x86_64, em i686 o número da chamada de sistema é 54. Para permitir esse chamada de sistema, em about:config mude security.sandbox.content.syscall_whitelist para 16 (ou 54 se usar i686).

Se usar pulseaudio em um ambiente de área de trabalho, ele já poderá ter sido iniciado por esse Ambiente. Mas se não tiver, embora o Firefox-57 conseguisse iniciá-lo, o Firefox-58 não consegue. Se executar o firefox a partir de um terminal e esse problema estiver presente, ao tentar reproduzir o som, você encontrará mensagens de erro avisando Can't get cubeb context!

A correção para isso é fechar o firefox, iniciar o pulseaudio para verificar se ele inicia (se não, leiam-se as informações em Configuração em PulseAudio-17.0) e reiniciar o firefox para verificar se está funcionando. Se agora funcionar, adicione o seguinte ao teu ~/.xinitrc: pulseaudio --verbose --log-target=syslog& (infelizmente, em alguns sistemas, isso não funciona).

Você possivelmente deseje usar vários perfis no Firefox. Para fazer isso, invoque o Firefox como firefox --ProfileManager. Você também pode verificar qual perfil está em uso no momento a partir de about:profiles.

Embora o WebRender (usando a GPU para composição) não seja usado por padrão, agora parece funcionar bem em hardware suportado (GPUs ATI, NVIDIA e Intel com Mesa-18 ou posterior). Para uma explicação, por favor, veja-se hacks.mozilla.org. A única desvantagem parece ser que, em uma máquina com RAM limitada, ele poderá usar mais RAM.

Para verificar se o WebRender está sendo usado, consulte about:support. Na seção Gráficos, a Composição ou mostrará 'Básico' (ou seja, não em uso) ou 'WebRender'. Para habilitá-lo, acesse about:config e mude gfx.webrender.all para True. Você precisará reiniciar o Firefox.

Possivelmente seja útil mencionar os processos provenientes do Firefox que podem aparecer no top - assim como o próprio firefox, possivelmente existam vários processos de Conteúdo da Web e agora um processo RDD (Remote Data Decoder) que aparece quando reproduzindo vídeos da web codificados com av1 (libdav1d). Se o WebRender tiver sido habilitado, um Processo de GPU também aparecerá quando o Firefox tiver que repintar (por exemplo, rolar, abrir uma nova guia ou reproduzir um vídeo).

Conteúdo

Aplicativos Instalados: firefox
Bibliotecas Instaladas: Numerosas bibliotecas, componentes de navegador, plug-ins, extensões e módulos auxiliares instalados em /usr/lib/firefox
Diretório Instalado: /usr/lib/firefox

Descrições Curtas

firefox

é um navegador GTK+-3 da Internet que usa o mecanismo de renderização Mozilla Gecko

Seamonkey-2.53.20

Introdução ao Seamonkey

Seamonkey é uma suíte de navegadores, um descendente do Netscape. Ele inclui o navegador, o compositor, clientes de mensagens e notícias e um cliente de IRC.

É a continuação do Mozilla Application Suite, controlado pela comunidade, criado depois que a Mozilla decidiu focar em aplicativos separados para navegação e mensagens eletrônicas. Esses aplicativos são Firefox-128.7.0 e Thunderbird-128.7.1esr.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Nota

O tarball seamonkey-2.53.20.source.tar.xz desempacotará para o diretório seamonkey-2.53.20.

Dependências do Seamonkey

Exigidas

Cbindgen-0.28.0, GTK-3.24.48, libarchive-3.7.7, Python-3.11.1, yasm-1.3.0 e Zip-3.0

Recomendadas

Nota

Se você não instalar as dependências recomendadas, então cópias internas desses pacotes serão usadas. Elas podem ter sido testadas para funcionar, mas podem estar desatualizadas ou conter falhas de segurança.

Opcionais

alsa-lib-1.2.13, dbus-glib-0.112, nodejs-22.14.0, Valgrind-3.24.0, Wget-1.25.0, Wireless Tools-29, Hunspell e Watchman

Instalação do Seamonkey

A configuração do Seamonkey é realizada criando-se um arquivo mozconfig contendo as opções desejadas de configuração. Um arquivo mozconfig padrão é criado abaixo. Para ver a lista completa de opções disponíveis de configuração (e uma descrição abreviada de cada uma), emita python3 configure.py --help. Você também possivelmente revise o arquivo inteiro e descomente quaisquer outras opções desejadas. Crie o arquivo emitindo o seguinte comando:

cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used

# If you have installed DBus-Glib comment out this line:
ac_add_options --disable-dbus

# If you have installed dbus-glib, and you have installed (or will install)
# wireless-tools, and you wish to use geolocation web services, comment out
# this line
ac_add_options --disable-necko-wifi

# Uncomment these lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell

# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --disable-pulseaudio
# and uncomment this if you installed alsa-lib instead of PulseAudio
#ac_add_options --enable-alsa

# Comment out the following option

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-icu
ac_add_options --with-system-libevent
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp

# Disabling debug symbols makes the build much smaller and a little
# faster. Comment this if you need to run a debugger.
ac_add_options --disable-debug-symbols

# The elf-hack is reported to cause failed installs (after successful builds)
# on some machines. It is supposed to improve startup time and it shrinks
# libxul.so by a few MB.  With recent Binutils releases the linker already
# supports a much safer and generic way for this.
ac_add_options --disable-elf-hack
ac_add_options --enable-linker=bfd
export LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"

# Seamonkey has some additional features that are not turned on by default,
# such as an IRC client, calendar, and DOM Inspector. The DOM Inspector
# aids with designing web pages. Comment these options if you do not
# desire these features.
ac_add_options --enable-calendar
ac_add_options --enable-dominspector
ac_add_options --enable-irc

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/suite

ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests

# The SIMD code relies on the unmaintained packed_simd crate which
# fails to build with Rustc >= 1.78.0.  We may re-enable it once
# Mozilla ports the code to use std::simd and std::simd is stabilized.
ac_add_options --disable-rust-simd

ac_add_options --enable-strip
ac_add_options --enable-install-strip

# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding

ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

export CC=clang CXX=clang++
EOF

Nota

Se você estiver compilando esse pacote em chroot, você precisa assegurar que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Como o(a) usuário(a) root, execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Primeiro, se você estiver construindo com o ICU do sistema, adapte o mapeamento de quebra de linha para o ICU-74 ou posterior, aplique um remendo para construir esse pacote com o C++17 padrão porque os cabeçalhos do ICU-75 ou posterior exigem alguns recursos do C++17 e adapte o sistema de construção para usar a biblioteca correta com o ICU-76 ou posterior:

(for i in {43..47}; do
   sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $?
done) &&

patch -Np1 -i ../seamonkey-2.53.20-cxx17-1.patch &&

sed -i 's/icu-i18n/icu-uc &/' js/moz.configure

Em seguida, remova um pedaço de código não usado que viola o padrão C++. O Clang começou a rejeitá-lo, embora não seja usado desde o lançamento 19.1.0:

sed -e '/ExclusiveData(ExclusiveData&&/,/^ *}/d' \
    -i js/src/threading/ExclusiveData.h

A seguir, corrija um problema com o módulo incluído 'distro' do python:

sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \
    -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \
    -i third_party/python/distro/distro.py

Compile Seamonkey executando os seguintes comandos:

export PATH_PY311=/opt/python3.11/bin:$PATH &&
PATH=$PATH_PY311 AUTOCONF=true MACH_USE_SYSTEM_PYTHON=1 ./mach build

Esse pacote não vem com uma suíte de teste.

Instale Seamonkey emitindo os seguintes comandos como o(a) usuário(a) root:

Nota

Se sudo ou su for invocado para abrir um shell executando como o(a) usuário(a) root, certifique-se de que PATH_PY311 foi passado corretamente ou o comando a seguir falhará. Para sudo, use a opção --preserve-env=PATH_PY311. Para su, não use as opções - ou --login.

PATH=$PATH_PY311 MACH_USE_SYSTEM_PYTHON=1 ./mach install &&
chown -R 0:0 /usr/lib/seamonkey                          &&

cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1

Finalmente, desconfigure a variável PATH_PY311:

unset PATH_PY311

Explicações do Comando

export CC=clang CXX=clang++: Com a introdução do gcc-12, muitos mais avisos são gerados ao compilar-se aplicativos Mozilla e isso resulta em uma construção muito mais lenta e maior. Além disso, construir com GCC no i?86 atualmente está quebrado. Embora o código de fluxo de desenvolvimento da Mozilla tenha como padrão usar o llvm, a menos que substituído, o código de configuração mais antigo no Seamonkey tem como padrão o gcc.

./mach build --verbose: Use essa alternativa se você precisar de detalhes de quais arquivos estão sendo compilados, juntamente com quaisquer sinalizadores C ou C++ sendo usados. Mas não adicione '--verbose' ao comando de instalação; não é aceito lá.

./mach build -jN: A construção deveria, por padrão, usar todos os Elementos de Processamento de CPU online. Se usar todos os Elementos de Processamento fizer com que a construção use a área de troca porque você tem memória insuficiente, usar menos Elementos de Processamento poderá ser mais rápido.

Configurando Seamonkey

Para instalar vários complementos do Seamonkey, consulte Complementos para Seamonkey.

Juntamente com usar o menu Preferências para configurar opções e preferências do Seamonkey para atender aos gostos individuais, um controle mais refinado de muitas opções somente está disponível usando-se uma ferramenta não disponível a partir do sistema geral de menus. Para acessar essa ferramenta, você precisará abrir uma janela do navegador e digitar about:config na barra de endereço. Isso exibirá uma lista das preferências de configuração e informações relacionadas a cada uma. Você pode usar a barra Pesquisar: para inserir critérios de pesquisa e restringir os itens listados. Mudar uma preferência pode ser feito usando-se dois métodos. Primeiro, se a preferência tiver um valor booleano (Verdadeiro/Falso), simplesmente clique duas vezes na preferência para alternar o valor; e dois, para outras preferências, simplesmente clique com o botão direito na linha desejada, escolha Modificar no menu e mude o valor. Criar novos itens de preferência é realizado da mesma maneira, exceto que escolha Novo no menu e forneça os dados desejados nos campos quando solicitado(a).

Se você usar um ambiente de área de trabalho, como Gnome ou KDE, você possivelmente deseje criar um arquivo seamonkey.desktop, de forma que Seamonkey apareça nos menus do painel. Se você não habilitou Startup-Notification em teu mozconfig, mude a linha StartupNotify para false. Como o(a) usuário(a) root:

mkdir -pv /usr/share/{applications,pixmaps}              &&

cat > /usr/share/applications/seamonkey.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Seamonkey
Comment=A Suíte Mozilla
Icon=seamonkey
Exec=seamonkey
Categories=Network;GTK;Application;Email;Browser;WebBrowser;News;
StartupNotify=true
Terminal=false
EOF

ln -sfv /usr/lib/seamonkey/chrome/icons/default/default128.png \
        /usr/share/pixmaps/seamonkey.png

Conteúdo

Aplicativos Instalados: seamonkey
Bibliotecas Instaladas: Numerosas bibliotecas, navegadores e componentes de mensagens eletrônicas/grupo de notícias, plug-ins, extensões e módulos auxiliares instalados em /usr/lib/seamonkey
Diretório Instalado: /usr/lib/seamonkey

Descrições Curtas

seamonkey

é a suíte de clientes de navegador/mensagens eletrônicas/grupo de notícias/chat da Mozilla

Capítulo 41. Outros Aplicativos baseados no X

Estes aplicativos usam o Sistema de Janelas X e não se enquadram facilmente em nenhum dos outros capítulos.

Balsa-2.6.4

Introdução ao Balsa

O pacote Balsa contém um cliente de mensagens baseado em GNOME-2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://pawsa.fedorapeople.org/balsa/balsa-2.6.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bebd22cb6bac87ee05255c48ee1d28dd

  • Tamanho da transferência: 3,5 MB

  • Espaço em disco estimado exigido: 66 MB

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)

Transferências Adicionais

Dependências do Balsa

Exigidas

Aspell-0.60.8.1, enchant-2.8.2, GMime-3.2.7, GPGME-1.24.2, GTK-3.24.48 e libnotify-0.8.4

Exigidas (tempo de execução)

MTA (isso fornece um comando sendmail)

Opcionais

Compface-1.5.2, Gcr-3.41.2, gtksourceview-3.24.11, libcanberra-0.30, libsecret-0.21.6, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9, Procmail-3.24, SQLite-3.49.1, WebKitGTK-2.46.6, html2text, osmo, rubrica, yelp-tools

Instalação do Balsa

Primeiro, corrija problemas de construção ao configurar sem WebKitGTK ou ao usar WebKitGTK-2.38 ou posterior.

patch -Np1 -i ../balsa-2.6.4-upstream_fixes-2.patch

Instale o Balsa executando os seguintes comandos:

./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --without-html-widget    &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--without-html-widget: Essa opção desabilita a construção do renderizador HTML. Se você quiser que o renderizador HTML seja construído, verifique se você tem o WebKitGTK-2.46.6 instalado e, então, remova essa opção.

--with-canberra: Habilita suporte a libcanberra.

--with-compface: Habilita suporte a compface.

--with-gcr: Usa libgcr para suporte TLS.

--with-gss: Habilita suporte GSSAPI.

--with-ldap: Use essa opção para habilitar o suporte ao catálogo de endereços LDAP se o OpenLDAP estiver instalado.

--with-libsecret: Habilita suporte a senhas fortes e suporte para o gnome-keyring armazenar senhas.

--with-sqlite: Use essa opção para habilitar o suporte ao catálogo de endereços SQLite se o SQLite estiver instalado.

Conteúdo

Aplicativos Instalados: balsa e balsa-ab
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/sounds/events, /usr/share/balsa e /usr/share/sounds/balsa

Descrições Curtas

balsa

é um cliente de mensagens baseado em glib

balsa-ab

é o aplicativo de catálogo de endereços usado pelo balsa

feh-3.10.3

Introdução ao feh

feh é um visualizador de imagens rápido e leve que usa Imlib2. É orientado a linha de comando e suporta múltiplas imagens por meio de apresentações de slides, navegação em miniaturas ou múltiplas janelas, e montagens ou impressões de índice (usando fontes TrueType para exibir informações do arquivo). Os recursos avançados incluem zoom dinâmico rápido, carregamento progressivo, carregamento via HTTP (com suporte de recarga para assistir a câmeras da web), abertura recursiva de arquivos (apresentação de slides de uma hierarquia de diretórios) e controle de roda/teclado do mouse.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://feh.finalrewind.org/feh-3.10.3.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4f9e2c6ecc120852ba86dc41df366aba

  • Tamanho da transferência: 2,0 MB

  • Espaço em disco estimado exigido: 5,2 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do feh

Exigidas

libpng-1.6.46 e imlib2-1.12.3 (construído com suporta a giflib-5.2.2, para os testes)

Recomendadas
Opcionais

libexif-0.6.25

Opcionais (tempo de execução)

libjpeg-turbo-3.0.1 (para rotação de imagem sem perdas) e ImageMagick-7.1.1-43 (para carregar formatos não suportados)

Opcionais (suíte de teste)

Test-Command-0.11 (exigido) e mandoc (opcional)

Instalação do feh

Instale o feh executando os seguintes comandos:

sed -i "s:doc/feh:&-3.10.3:" config.mk &&
make PREFIX=/usr

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr install

Explicações do Comando

sed -i "s:doc/feh:&-3.10.3:" config.mk: Esse sed corrige o diretório de documentação para um versionado, conforme usado no BLFS.

curl=0: Use esse sinalizador do make se você não tiver o pacote cURL instalado.

exif=1: Esse sinalizador do make habilita suporte integrado à exibição de rótulos Exif.

Conteúdo

Aplicativo Instalado: feh
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/feh-3.10.3 e /usr/share/feh

Descrições Curtas

feh

é um visualizador e catalogador de imagens

FontForge-20230101

Introdução ao FontForge

O pacote FontForge contém um editor de fontes de contorno que te permite criar tuas próprias fontes postscript, truetype, opentype, cid-keyed, multi-master, cff, svg e bitmap (bdf, FON, NFNT), ou editar as existentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do FontForge

Exigidas

libspiro-20220722 e libxml2-2.13.6

Recomendadas
Opcionais

giflib-5.2.2, git-2.48.1, libjpeg-turbo-3.0.1, libtiff-4.7.0, sphinx-8.2.1 (para construir documentação HTML) e WOFF2-1.0.2

Instalação do FontForge

Primeiro, corrija duas vulnerabilidades de segurança na funcionalidade Splinefont:

patch -Np1 -i ../fontforge-20230101-security_fixes-1.patch

A seguir, corrija um problema com traduções antigas exposto por gettext-0.22:

sed -i.orig 's/\(%[^%[:space:]]*\)hs/\1s/g' \
 fontforgeexe/searchview.c po/de.po po/ca.po \
 po/hr.po po/it.po po/pl.po po/uk.po po/en_GB.po \
 po/fr.po po/vi.po po/ko.po po/ja.po

Instale o FontForge executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -W no-dev .. &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você tiver instalou o sphinx-build, a documentação HTML foi construída e instalada em /usr/share/doc/fontforge. Para poder acessá-la como um diretório versionado, crie um link simbólico como o(a) usuário(a) root:

ln -sv fontforge /usr/share/doc/fontforge-20230101

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para criar um lançamento otimizado sem informações de depuração.

-W no-dev: Essa chave é usada para suprimir avisos destinados para os(as) desenvolvedores(as) do pacote.

-D ENABLE_X11=ON: use uma estrutura de retaguarda X11 em vez da GDK3 (gtk+-3) para gráficos básicos do Xorg.

Conteúdo

Aplicativos Instalados: fontforge, fontimage, fontlint e sfddiff
Biblioteca Instalada: libfontforge.so e /usr/lib/python3.13.2/site-packages/{fontforge,psMat}.so
Diretórios Instalados: /usr/share/fontforge e, opcionalmente, /usr/share/doc/fontforge{,-20230101}

Descrições Curtas

fontforge

é um aplicativo que te permite criar e modificar arquivos de fontes

fontimage

é um aplicativo que produz uma imagem mostrando glifos representativos da fonte

fontlint

é um aplicativo que verifica a fonte para certos erros comuns

sfddiff

é um aplicativo que compara dois arquivos de fontes

FreeRDP-3.12.0

Introdução ao FreeRDP

O pacote FreeRDP contém bibliotecas e utilitários para utilizar o Remote Desktop Protocol. Isso inclui ferramentas para executar um servidor RDP, bem como para conectar-se a um computador usando RDP. Isso é usado principalmente para conectar-se a computadores Microsoft Windows, mas também pode ser usado em Linux e macOS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do FreeRDP

Exigidas

FFmpeg-7.1, ICU-76.1 e Bibliotecas do Xorg

Recomendadas
Opcionais

Cups-2.4.11, faac-1.31, FAAD2-2.11.1, fdk-aac-2.0.3, LAME-3.100, Linux-PAM-1.7.0, PulseAudio-17.0, cJSON, GSM, ocl-icd, mbedTLS, openh264, pcsclite, SDL_ttf, soxr e uriparser

Instalação do FreeRDP

Instale FreeRDP executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr   \
      -D CMAKE_SKIP_INSTALL_RPATH=ON \
      -D CMAKE_BUILD_TYPE=Release    \
      -D WITH_CAIRO=ON               \
      -D WITH_CLIENT_SDL=OFF         \
      -D WITH_DSP_FFMPEG=ON          \
      -D WITH_FFMPEG=ON              \
      -D WITH_PCSC=OFF               \
      -D WITH_SERVER=ON              \
      -D WITH_SERVER_CHANNELS=ON     \
      -D DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 \
      -W no-dev                      \
      -G Ninja ..                    &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

-D DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2: Esse parâmetro aponta CMake para o local das folhas de estilo XSL do Docbook e é necessário porque o BLFS não usa versões com espaço de nomes das folhas de estilo. Isso é necessário para criar páginas de manual. Se você não quiser páginas de manual, passe -D WITH_MANPAGES=OFF para o CMake.

-D WITH_CAIRO=ON: Esse parâmetro usa Cairo para HighDPI e suporte ao redimensionamento de janelas.

-D WITH_CLIENT_SDL=OFF: Esse parâmetro desabilita usar SDL para desenhar a janela ao usar o cliente FreeRDP. Isso é desabilitado porque depende de SDL_ttf. Remova essa chave se você tiver o pacote SDL_ttf instalado.

-D WITH_FFMPEG=ON: Esse parâmetro habilita suporte para usar ffmpeg para o modo de renderização gráfica H.264, o qual é exigido ao conectar-se via RDP a dispositivos Windows Server 2012 (ou Windows 8) ou posteriores.

-D WITH_DSP_FFMPEG=ON: Esse parâmetro habilita suporte para usar ffmpeg para redirecionamento de som e microfone.

-D WITH_PCSC=OFF: Esse parâmetro desabilita suporte para SmartCards, pois o BLFS não tem a dependência exigida para ele.

-D WITH_SERVER=ON: Esse parâmetro habilita construir os componentes do servidor FreeRDP. Remova esse parâmetro se você não quiser usar o servidor FreeRDP.

-D WITH_SERVER_CHANNELS=ON: Esse parâmetro constrói plugins adicionais para o servidor FreeRDP.

-D WITH_LAME=ON: Use essa opção se você desejar habilitar suporte para usar LAME para fornecer suporte ao Codificador/Decodificador de áudio MP3.

-D WITH_FAAC=ON: Use essa opção se você desejar habilitar suporte para usar FAAC para fornecer suporte ao Codificador/Decodificador de áudio AAC.

-D WITH_FAAD2=ON: Use essa opção se você desejar habilitar suporte para usar FAAD2 para fornecer suporte ao Codificador/Decodificador de áudio AAC.

-D WITH_FDK_AAC=ON: Use essa opção se você desejar habilitar suporte para usar fdk-aac para fornecer suporte ao Codificador/Decodificador de áudio AAC.

-D WITH_MBEDTLS=ON: Use essa opção se você tiver a dependência opcional mbedTLS instalada e desejar usá-la como uma alternativa ao OpenSSL para suporte de criptografia.

-D WITH_OPENCL=ON: Use essa opção se você tiver a dependência opcional ocl-icd instalada e desejar usar suporte a OpenCL.

-D WITH_OPENH264=ON: Use essa opção se você tiver a dependência opcional openh264 instalada e desejar usá-la para suporte a H.264 em vez do ffmpeg.

-D WITH_GSM=ON: Use essa opção se você tiver a dependência opcional GSM instalada e desejar usar GSM como um codificador/decodificador de áudio.

-D WITH_SOXR=ON: Use essa opção se você tiver a dependência opcional soxr instalada e desejar usá-la em vez do ffmpeg para redirecionamento de multimídia.

Conteúdo

Aplicativos Instalados: freerdp-proxy, freerdp-shadow-cli, sfreerdp, sfreerdp-server, winpr-hash, winpr-makecert, wlfreerdp, xfreerdp
Bibliotecas Instaladas: libfreerdp3.so, libfreerdp-client3.so, libfreerdp-server3.so, libfreerdp-server-proxy3.so, libfreerdp-shadow3.so, libfreerdp-shadow-subsystem3.so, librtdk0.so, libuwac0.so, libwinpr3.so e libwinpr-tools3.so
Diretórios Instalados: /usr/include/{freerdp3,rdtk0,uwac0,winpr3}, /usr/lib/cmake/{FreeRDP3,FreeRDP-Client3,FreeRDP-Proxy3,FreeRDP-Server3,rdtk0,uwac0,WinPR3,WinPR-tools3}, /usr/lib/freerdp3, /usr/share/FreeRDP

Descrições Curtas

freerdp-proxy

configura FreeRDP para usar um servidor proxy

freerdp-shadow-cli

interfaceia com a funcionalidade de sombra no FreeRDP

sfreerdp

é um utilitário para compartilhar uma exibição do X via RDP

sfreerdp-server

é um utilitário para compartilhar uma exibição do X via RDP

winpr-hash

cria um resumo NTLM a partir de um par de nome de usuário(a) e senha

winpr-makecert

cria certificados X.509 para uso com FreeRDP

wlfreerdp

é um cliente RDP para Wayland

xfreerdp

é um cliente RDP para X11

libfreerdp3.so

contém funções que fornecem funcionalidade de cliente e servidor RDP

Gimp-3.0.0-RC3

Introdução ao Gimp

O pacote Gimp contém o GNU Image Manipulation Program que é útil para retoque de fotos, composição de imagens e criação de imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/gimp/v3.0/gimp-3.0.0-RC3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5fd4dc345ee39af23b2f74e37e86bd6b

  • Tamanho da transferência: 26 MB

  • Espaço em disco estimado exigido: 631 MB (164 MB instalado)

  • Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4)

Transferências Adicionais

Nota

A versão em inglês dos arquivos de ajuda está completa, mas grandes partes do texto para muitos outros idiomas ainda não estão traduzidas.

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/gimp/gimp3-help-20240711.tar.xz

  • Tamanho da transferência: 129 MB

  • Soma de verificação MD5 da transferência: 162d57a67ff737ed221a8d7f274d119f

  • Espaço em disco estimado exigido: From 351 MB (74 MB installed) for en only to 1.5 GB for all languages

  • Tempo de construção estimado: 0,4 UPC (somente en), 5,1 UPC para todos os idiomas; usando paralelismo=4

Dependências do Gimp

Exigidas

appstream-glib-0.8.3, gegl-0.4.54, gexiv2-0.14.3, glib-networking-2.80.1, GTK-3.24.48, harfBuzz-10.4.0, libmypaint-1.6.1, librsvg-2.59.2, libtiff-4.7.0, libxml2-2.13.6 (para construir os arquivos da ajuda traduzida), Little CMS-2.17, mypaint-brushes-1.3.1 e Poppler-25.02.0 (incluindo poppler-data)

Recomendadas
Opcionais

AAlib-1.4rc5, alsa-lib-1.2.13, AppStream-1.0.4 (para um teste), Gi-DocGen-2025.3, Gjs-1.82.1, libjxl-0.11.1, libmng-2.0.3, libunwind-1.8.1, libwebp-1.5.0, Lua-5.4.7, OpenJPEG-2.5.3, cfitsio, libbacktrace, libiff, libilbm, libheif com libde265 (ambos necessários para ler imagens heic do macOS), libwmf, OpenEXR e qoi

Opcionais, para construir o sistema de ajuda

dblatex (para documentos PDF), pngnq e pngcrush para otimizar os arquivos png, mas veja-se a observação no download da ajuda acima

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/gimp

Instalação do Gimp

Se atualizar a partir de uma instalação anterior do Gimp-3, como o(a) usuário(a) root, remova alguns arquivos e diretórios da instalação antiga ou o sistema de construção pode pegá-los erroneamente, causando uma falha de construção:

rm -rf /usr/{lib,share}/gimp/3.0 &&
rm -f  /usr/share/gir-1.0/Gimp-3.0.gir &&
rm -f  /usr/lib/girepository-1.0/Gimp-3.0.typelib &&
rm -f  /usr/lib/libgimp*-3.0.so*

Instale o Gimp executando os seguintes comandos:

mkdir gimp-build &&
cd    gimp-build &&

meson setup --prefix=/usr              \
            --buildtype=release        \
            -D headless-tests=disabled ..  &&
ninja

Para testar os resultados (exige um terminal em um ambiente gráfico), emita: ninja test. Se executar os testes em uma sessão do Wayland, um sub teste chamado keyboard_zoom_focus no teste ui é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Instalação do Gimp-Help

O tarball gimp-help contém imagens e texto de ajuda em inglês para arquivos de ajuda, juntamente com traduções. Se você desejar instalar cópias locais dos arquivos de ajuda para ler offline, desempacote o tarball gimp-help e mude para a raiz da árvore do fonte recém-criada.

tar -xf ../../gimp3-help-20240711.tar.xz &&
cd gimp3-help-20240711

automake --add-missing

ALL_LINGUAS="ca cs da de en en_GB es fa fr hr ko lt nl nn pt pt_BR ro sl sv uk zh_CN" \
./configure --prefix=/usr

Remova de ALL_LINGUAS os códigos de quaisquer idiomas que você não desejar instalar. Alternativamente, remova a linha que começa com ALL_LINGUAS, se desejar construir todos os idiomas.

Agora construa os arquivos de ajuda:

make

Emita os seguintes comandos como o(a) usuário(a) root para instalar os arquivos de ajuda:

make install &&
chown -R root:root /usr/share/gimp/3.0/help

Explicações do Comando

-D headless-tests=disabled: Essa chave desabilita usar xvfb-run para executar os testes. Sem essa chave, muitos testes falham se xvfb-run tiver sido instalado.

ALL_LINGUAS="ca cs da de en en_GB es fa...": por padrão, os arquivos de ajuda serão renderizados em todos os idiomas disponíveis. Remova os códigos de quaisquer idiomas que você não desejar construir.

Configurando o Gimp

Arquivos de Configuração

/etc/gimp/3.0/*

Conteúdo

Aplicativos Instalados: gimp-3.0, gimp-console-3.0, gimptool-3.0, gimp-test-clipboard-3.0, gimp-script-fu-interpreter-3.0, e gimp{,-console,tool,-test-clipboard,script-fu-interpreter}{,-3} (links simbólicos)
Bibliotecas Instaladas: libgimp-3.0.so, libgimp-scriptfu-3.0, libgimpbase-3.0.so, libgimpcolor-3.0.so, libgimpconfig-3.0.so, libgimpmath-3.0.so, libgimpmodule-3.0.so, libgimpthumb-3.0.so, libgimpui-3.0.so e libgimpwidgets-3.0.so
Diretórios Instalados: /etc/gimp, /usr/include/gimp-3.0, /usr/lib/gimp-3.0, /usr/lib/gimp/3.0, /usr/share/gimp/3.0 e /usr/share/doc/gimp-3.0

Descrições Curtas

gimp-3.0

é o GNU Image Manipulation Program. Ele funciona com uma variedade de formatos de imagem e oferece uma grande seleção de ferramentas

gimp-console-3.0

é um aplicativo de console que se comporta como se o Gimp fosse chamado com a opção de linha de comando --no-interface

gimptool-3.0

é uma ferramenta que pode construir plug-ins ou conjuntos de comandos sequenciais e instalá-los se forem distribuídos em um arquivo fonte. gimptool-3.0 também pode ser usado por programas que precisem saber com quais bibliotecas e caminhos de inclusão o Gimp foi compilado

libgimp-3.0.so

fornece ligações C para a Procedural Database (PDB) do Gimp, as quais oferecem uma interface para funções centrais e para funcionalidades fornecidas por plug-ins

libgimpbase-3.0.so

fornece as funções C para funcionalidades básicas do Gimp, como determinar tipos de dados de enumeração, tradução de gettext, determinar o número e os recursos da versão do Gimp, manusear arquivos de dados e acessar o ambiente

libgimpcolor-3.0.so

fornece as funções C relacionadas às cores RGB, HSV e CMYK, bem como para converter cores entre diferentes modelos de cores e para realizar super amostragem adaptativa em uma área

libgimpconfig-3.0.so

contém funções C para ler e escrever informações de configuração

libgimpmath-3.0.so

contém funções C que fornecem definições e macros matemáticas, manipulam matrizes de transformação 3x3, configuram e manipulam vetores e o algoritmo MD5 de resumo de mensagens

libgimpmodule-3.0.so

fornece as funções C que implementam o carregamento de módulo usando GModule e que suportam manter uma lista de GimpModule encontrados em um determinado caminho de pesquisa

libgimpthumb-3.0.so

fornece as funções C para manusear os objetos em miniatura do Gimp

libgimpui-3.0.so

contém as funções comuns de interface de usuário(a) do Gimp

libgimpwidgets-3.0.so

contém as funções de criação e manipulação de pequenas engenhocas do Gimp e do GTK

Gparted-1.7.0

Introdução ao Gparted

Gparted é o Gnome Partition Editor, uma GUI Gtk 3 para outras ferramentas de linha de comando que conseguem criar, reorganizar ou deletar partições de disco.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/gparted/gparted-1.7.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 97305db7509dd1bf2456a1331d2380f3

  • Tamanho da transferência: 5,1 MB

  • Espaço em disco estimado exigido: 72 MB (adicionar 70 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,3 UPC para testes)

Dependências do Gparted

Exigidas

Gtkmm-3.24.9 e parted-3.6

Opcionais

btrfs-progs-6.13 (se usar um sistema de arquivos btrfs), exfatprogs e udftools

Instalação do Gparted

Instale o Gparted executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-doc    \
            --disable-static &&
make

Para executar os testes, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-doc: Essa chave desabilita a construção da documentação opcional. Remova-a se você tiver instalado o GNOME Doc Utils.

--enable-xhost-root: Essa chave fornece uma solução provisória para permitir que o GParted execute sob o Wayland usando xhost para conceder e revogar acesso de root para a tela do X11.

Usando o Gparted

Para manipular sistemas de arquivos, o Gparted tem uma dependência de tempo de execução de várias ferramentas do sistema de arquivos (você somente precisa instalar as ferramentas para os sistemas de arquivos que usa atualmente): Hdparm-9.65 (exigido para opcionalmente exibir informações do número de série do dispositivo), btrfs-progs-6.13, dosfstools-4.2, e2fsprogs (instalado como parte do LFS), jfsutils-1.1.15, xfsprogs-6.13.0, mtools (exigido para ler e escrever rótulos de volume e UUIDs de FAT16/32), hfsutils, hfsprogs, nilfs-utils, Reiser4progs e reiserfsprogs.

Privilégios de root são exigidos para executar o Gparted. Se desejar executar o aplicativo a partir do menu, outros aplicativos e configurações serão necessários. Exemplos de aplicativos que podem ser usados: gksu, kdesudo ou xdg-su. Outra solução simples é ssh-askpass-9.9p2.

ssh-askpass

Para usar opcionalmente o ssh-askpass-9.9p2 se ele estiver instalado em teu sistema, execute os seguintes comandos como o(a) usuário(a) root:

cp -v /usr/share/applications/gparted.desktop /usr/share/applications/gparted.desktop.back &&
sed -i 's/Exec=/Exec=sudo -A /'               /usr/share/applications/gparted.desktop

Agora, clicando no item de menu para o Gparted, uma caixa de diálogo aparece na tela solicitando a senha do(a) administrador(a).

Conteúdo

Aplicativos Instalados: gparted e gparted_polkit (opcional)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gparted

é um conjunto de comandos sequenciais de shell que configura o ambiente antes de chamar gpartedbin

gparted_polkit

é um conjunto de comandos sequenciais opcionais que podem ser usados para executar o gparted com polkit, a partir de um menu

Inkscape-1.4

Introdução ao Inkscape

Inkscape é um editor o que você vê é o que você obtém de gráficos vetoriais escaláveis. É útil para criar, visualizar e mudar imagens SVG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://inkscape.org/gallery/item/53679/inkscape-1.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a93f3a8eab82ef3d610f426bfe58e3df

  • Tamanho da transferência: 44 MB

  • Espaço em disco estimado exigido: 784 MB (197 MB instalado)

  • Tempo de construção estimado: 2,6 UPC (com paralelismo=8)

Transferências Adicionais

Nota

O tarball inkscape-1.4.tar.xz extrairá para o diretório inkscape-1.4_2024-10-09_e7c3feb100/.

Dependências do Inkscape

Exigidas

Boost-1.87.0, double-conversion-3.3.1, GC-8.2.8, gsl-2.8, Gtkmm-3.24.9, libsoup-2.74.3, libxslt-1.1.42, Poppler-25.02.0 e popt-1.19

Recomendadas
Opcionais

Aspell-0.60.8.1, dbus-1.16.0 (para executar inkscape a partir de conjuntos de comandos sequenciais), Doxygen-1.13.2, gspell-1.14.0, GraphicsMagick, libcdr, libvisio, libwpg (ou libwpd)

Instalação do Inkscape

Primeiro, corrija falhas de construção com versões recentes do poppler:

patch -Np1 -i ../inkscape-1.4-poppler_fixes-2.patch

Instale o Inkscape executando os seguintes comandos:

mkdir build                       &&
cd    build                       &&

cmake -D CMAKE_INSTALL_PREFIX=/usr  \
      -D CMAKE_BUILD_TYPE=Release   \
      ..                          &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

-D CMAKE_BUILD_TYPE=Release: Essa chave é usada para construir a biblioteca de lançamento sem qualquer `assertiva` de depuração no código.

-D WITH_DBUS=ON: use isso se você desejar usar o inkscape em conjuntos de comandos sequenciais interativos que manipulam imagens.

Conteúdo

Aplicativos Instalados: inkscape e inkview
Biblioteca Instalada: libinkscape_base.so (em /usr/lib/inkscape)
Diretórios Instalados: /usr/lib/inkscape e /usr/share/inkscape

Descrições Curtas

inkscape

é um aplicativo de edição de SVG (Scalable Vector Graphics)

inkview

é um aplicativo simples para exibir arquivos SVG

libinkscape_base.so

fornece as rotinas usadas pelo inkscape e inkview

rxvt-unicode-9.31

Introdução ao rxvt-unicode

rxvt-unicode é um clone do emulador de terminal rxvt, um emulador de terminal do Sistema de Janelas X que inclui suporte para XFT e Unicode.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

Por favor, esteja ciente de que o rxvt-unicode é afetado por um problema no perl onde o manuseador SIGFPE está configurado como SIG_IGN (ou seja, o sinal é ignorado). Se você estiver construindo um sistema LFS a partir do urxvt e executando as suítes de teste, os testes em bash e check cujo teste gere esse sinal falharão.

Informação do Pacote

Dependências do rxvt-unicode

Exigidas

libptytty-2.0 e um ambiente gráfico

Opcionais

gdk-pixbuf-2.42.12 (para imagens de plano de fundo) e startup-notification-0.12

Instalação do rxvt-unicode

Instale o rxvt-unicode executando os seguintes comandos:

./configure --prefix=/usr --enable-everything &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-everything: Adiciona suporte para todas as opções que não sejam de múltipla escolha. Detalhes a respeito das diferentes opções podem ser encontrados no arquivo README.configure.

--disable-xft: Remove o suporte para fontes Xft.

--disable-perl: Desabilita o interpretador Perl incorporado.

--disable-afterimage: Remove o suporte para libAfterImage.

Configurando rxvt-unicode

O emulador de terminal rxvt-unicode usa a classe de recurso URxvt e o nome de recurso urxvt. Você pode adicionar definições de recursos do X aos arquivos ~/.Xresources ou ~/.Xdefaults de um(a) usuário(a) ou ao arquivo /etc/X11/app-defaults/URxvt abrangente a todo o sistema. O exemplo a seguir carregará a extensão do matcher do Perl (assumindo que o suporte Perl não foi desabilitado), o que habilita que um clique com o botão esquerdo abra um URL sublinhado no navegador especificado, configure uma cor de plano de fundo e de primeiro plano e carregue uma fonte Xft (como o(a) usuário(a) root):

cat >> /etc/X11/app-defaults/URxvt << "EOF"
! Use a cor especificada como a cor de plano de fundo de janelas [padrão branca]
URxvt*background: black

! Use a cor especificada como a cor de primeiro plano de janelas [padrão preta]
URxvt*foreground: yellow

! Selecione as fontes a serem usadas. Esta é uma lista separada por vírgulas de nomes de fontes
URxvt*font: xft:Monospace:pixelsize=18

! Lista(s) separada(s) por vírgulas de conjuntos de comandos sequenciais de extensão Perl (padrão: "default")
URxvt*perl-ext: matcher

! Especifica o aplicativo a ser iniciado com um argumento URL.
URxvt*url-launcher: firefox

! Quando clicado com o botão de mouse especificado no recurso "matcher.button"
! (padrão 2, ou meio), o aplicativo especificado no recurso "matcher.launcher"
! (padrão, o recurso "url-launcher", "sensible-browser" ) será iniciado com o
! texto correspondente como primeiro argumento.
! Abaixo, padrão modificado para botão esquerdo de mouse.
URxvt*matcher.button:     1
EOF

Para a finalidade de visualizar os recursos definidos do X, emita:

xrdb -query

Para a finalidade de adicionar as modificações do novo arquivo de configuração do(a) usuário(a), mantendo as configurações anteriores do X (é claro, a menos que você esteja mudando alguma definida anteriormente), emita:

xrdb -merge ~/.Xresources

O aplicativo rxvt-unicode também pode ser executado em modo de processo de segundo plano, o que torna possível abrir múltiplas janelas de terminal dentro do mesmo processo. O cliente urxvtc então se conecta ao processo de segundo plano urxvtd e solicita uma nova janela de terminal. Use essa opção com cuidado. Se o processo de segundo plano travar, todos os processos em execução nas janelas do terminal serão terminados.

Você consegue iniciar o processo de segundo plano urxvtd no conjunto de comandos sequenciais do sistema ou pessoal de inicialização de sessão do X (por exemplo, ~/.xinitrc) adicionando as seguintes linhas perto o topo do conjunto de comandos sequenciais:

# Inicia o processo de segundo plano urxvtd.
urxvtd -q -f -o &

Para mais informações, examine as páginas de manual urxvt, urxvtd, urxvtc e urxvtperl.

Se você usa um Ambiente de Área de Trabalho, uma entrada de menu pode ser incluída, emitindo-se, como o(a) usuário(a) root:

cat > /usr/share/applications/urxvt.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Rxvt-Unicode Terminal
Comment=Use a linha de comandos
GenericName=Terminal
Exec=urxvt
Terminal=false
Type=Application
Icon=utilities-terminal
Categories=GTK;Utility;TerminalEmulator;
#StartupNotify=true
Keywords=console;command line;execute;
EOF

update-desktop-database -q

Para isso, você precisa do desktop-file-utils-0.28 e, pelo menos, um dos gnome-icon-theme-3.12.0, oxygen-icons-6.0.0 e lxde-icon-theme-0.5.1. Descomente a linha com StartupNotify=true se o startup-notification-0.12 estiver instalado.

Conteúdo

Aplicativos Instalados: urxvt, urxvtd e urxvtc
Bibliotecas Instaladas: Muitas extensões Perl localizadas sob /usr/lib/urxvt/perl
Diretório Instalado: /usr/lib/urxvt

Descrições Curtas

urxvt

é um emulador de terminal para o Sistema de Janelas X

urxvtd

é o processo de segundo plano do terminal urxvt

urxvtc

controla o processo de segundo plano urxvtd

Thunderbird-128.7.1esr

Introdução ao Thunderbird

Thunderbird é um cliente de mensagens/notícias independente baseado na base de código do Mozilla. Ele usa o mecanismo de renderização Gecko para o habilitar a exibir e compor mensagens eletrônicas em HTML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Thunderbird

Exigidas

Cbindgen-0.28.0, GTK-3.24.48, libarchive-3.7.7, LLVM-19.1.7 incluindo clang, nodejs-22.14.0, PulseAudio-17.0 (ou alsa-lib-1.2.13 se você editar o mozconfig; embora ele esteja obsoleto agora pela mozilla), Python-3.13.2 (reconstruído com o módulo sqlite) e startup-notification-0.12

Recomendadas

Nota

Se você não instalar as dependências recomendadas, então cópias internas desses pacotes serão usadas. Elas podem ter sido testadas para funcionar, mas podem estar desatualizadas ou conter falhas de segurança.

Opcionais

pciutils-3.13.0 (tempo de execução), Wget-1.25.0, Wireless Tools-29 e watchman

Instalação do Thunderbird

Nota

O processo de construção do Thunderbird pode usar oito (08) GB ou mais de RAM durante a vinculação. Certifique-se de que você tem swap ou RAM adequados antes de continuar.

A configuração do Thunderbird é realizada criando-se um arquivo mozconfig contendo as opções de configuração desejadas. Um mozconfig padrão é criado abaixo. Para ver a lista completa de opções de configuração disponíveis (e uma breve descrição de cada uma), emita ./mach configure -- --help | less. Crie o arquivo com o seguinte comando:

cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used.

# If you have installed wireless-tools comment out this line:
ac_add_options --disable-necko-wifi

# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --enable-audio-backends=alsa

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/mail

ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests

# This enables SIMD optimization in the shipped encoding_rs crate.
ac_add_options --enable-rust-simd

ac_add_options --enable-strip
ac_add_options --enable-install-strip

# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding

ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

# Using sandboxed wasm libraries has been moved to all builds instead
# of only mozilla automation builds. It requires extra llvm packages
# and was reported to seriously slow the build. Disable it.
ac_add_options --without-wasm-sandboxed-libraries
EOF

Agora invoque o conjunto de comandos sequenciais Python mach para compilar o Thunderbird:

Nota

Se você estiver compilando esse pacote em chroot, você precisa assegurar que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Como o(a) usuário(a) root, execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none &&
export MOZBUILD_STATE_PATH=$(pwd)/mozbuild          &&
./mach build

Esse pacote não vem com uma suíte de teste.

Instale o Thunderbird executando os seguintes comandos como o(a) usuário(a) root:

MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none ./mach install

Esvazie as variáveis de ambiente que foram configuradas acima:

unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE &&
unset MOZBUILD_STATE_PATH

Explicações do Comando

MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none: Use o Python do sistema para criar um ambiente virtual para o mach sem baixar nenhuma roda Python nem usar os módulos Python do sistema. Isso evita incompatibilidades de versão entre os módulos do sistema e os módulos incluídos.

./mach build --verbose: Use essa alternativa se você precisar de detalhes de quais arquivos estão sendo compilados, juntamente com quaisquer sinalizadores C ou C++ sendo usados.

./mach build -jN: A construção deveria, por padrão, usar todos os Elementos de Processamento de CPU online. Se usar todos os Elementos de Processamento fizer com que a construção use a área de troca porque você tem memória insuficiente, usar menos Elementos de Processamento poderá ser mais rápido.

CC=gcc CXX=g++: o BLFS costumava preferir usar gcc e g++ em vez dos padrões de desenvolvedor(a) dos aplicativos clang. Com o lançamento do gcc-12, a construção demora mais tempo com gcc e g++, principalmente por causa de avisos extras, e é maior. Configure essas variáveis de ambiente antes de executar o conjunto de comandos sequenciais de configuração se desejar continuar a usar gcc, g++. Construir com GCC em i?86 atualmente está quebrado.

Configurando o Thunderbird

Informação de Configuração

Se o teu Gerenciador de Janelas ou Ambiente de Área de Trabalho não te permitir configurar um navegador padrão, você pode adicionar um parâmetro de configuração ao Thunderbird, de forma que um navegador seja iniciado quando você clicar em um URL da Internet/intranet/local. O procedimento para verificar ou modificar qualquer dos parâmetros de configuração é bastante simples e as instruções aqui podem ser usadas para visualizar ou modificar quaisquer dos parâmetros.

Primeiro, abra a caixa de diálogo de configuração abrindo o menu suspenso Editar. Escolha Configurações e, então, role até o final da página. Em seguida, clique no botão Config Editor. Clique no botão Eu aceito o risco!. Isso exibirá uma lista de preferências de configuração e informações relacionadas a cada uma delas. Você pode usar a barra Filtro: para inserir critérios de pesquisa e restringir os itens listados. A mudança de uma preferência pode ser feita usando-se dois métodos. Primeiro, se a preferência tiver um valor booleano (Verdadeiro/Falso), simplesmente clique duas vezes na preferência para alternar o valor; e dois, para outras preferências, simplesmente clique com o botão direito na linha desejada, escolha Modificar a partir do menu e mude o valor. A criação de novos itens de preferência é realizada da mesma maneira, exceto que escolha Novo a partir do menu e forneça os dados desejados nos campos quando solicitado.

Se você usar um ambiente de área de trabalho, como GNOME ou KDE, um arquivo de área de trabalho thunderbird.desktop pode ser criado, para a finalidade de incluir uma entrada Thunderbird no menu. Execute os seguintes comandos como o(a) usuário(a) root:

mkdir -pv /usr/share/{applications,pixmaps} &&

cat > /usr/share/applications/thunderbird.desktop << "EOF" &&
[Desktop Entry]
Name=Thunderbird Mail
Comment=Envie e receba mensagens com o Thunderbird
GenericName=Cliente de Mensagens
Exec=thunderbird %u
Terminal=false
Type=Application
Icon=thunderbird
Categories=Network;Email;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
StartupNotify=true
EOF

ln -sfv /usr/lib/thunderbird/chrome/icons/default/default256.png \
        /usr/share/pixmaps/thunderbird.png

Conteúdo

Aplicativo Instalado: thunderbird
Bibliotecas Instaladas: Numerosas bibliotecas e módulos no diretório /usr/lib/thunderbird
Diretório Instalado: /usr/lib/thunderbird

Descrições Curtas

thunderbird

é o cliente de mensagens eletrônicas e grupo de notícias do Mozilla

Tigervnc-1.15.0

Introdução ao Tigervnc

Tigervnc é uma implementação avançada de VNC (Virtual Network Computing). Ele permite a criação de um servidor Xorg não vinculado a um console físico e também fornece um cliente para visualização da área de trabalho gráfica remota.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Nota

A versão do Xorg pode eventualmente estar algumas versões desatualizadas, mas é exigida para as personalizações necessárias para esse pacote.

Dependências do Tigervnc

Exigidas

CMake-3.31.5, FLTK-1.4.2, GnuTLS-3.8.9, libgcrypt-1.11.0, libjpeg-turbo-3.0.1, Linux-PAM-1.7.0, Pixman-0.44.2, Aplicativos do Xorg, xinit-1.4.3 e Fontes Legadas do Xorg

Recomendadas

Instalação do Tigervnc

Primeiro, faça ajustes nos arquivos de configuração para torná-los compatíveis com sistemas LFS:

patch -Np1 -i ../tigervnc-1.15.0-configuration_fixes-1.patch

Agora, torne o pacote consistente com fltk-1.4.1 e posteriores:

sed -i "s/maximize)/::&/"         vncviewer/DesktopWindow.cxx &&
sed -i "/FL_MINOR_VERSION/s/3/4/" CMakeLists.txt

Instale o tigervnc executando os seguintes comandos:

# Put code in place
mkdir -p unix/xserver &&
tar -xf ../xorg-server-21.1.16.tar.xz \
    --strip-components=1              \
    -C unix/xserver                   &&
( cd unix/xserver &&
  patch -Np1 -i ../xserver21.patch ) &&

# Build viewer
cmake -G "Unix Makefiles"          \
      -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D INSTALL_SYSTEMD_UNITS=OFF \
      -W no-dev .                  &&
make &&

# Build server
pushd unix/xserver &&
  autoreconf -fiv  &&

  CPPFLAGS="-I/usr/include/drm"       \
  ./configure $XORG_CONFIG            \
      --disable-xwayland    --disable-dri        --disable-dmx         \
      --disable-xorg        --disable-xnest      --disable-xvfb        \
      --disable-xwin        --disable-xephyr     --disable-kdrive      \
      --disable-devel-docs  --disable-config-hal --disable-config-udev \
      --disable-unit-tests  --disable-selective-werror                 \
      --disable-static      --enable-dri3                              \
      --without-dtrace      --enable-dri2        --enable-glx          \
      --with-pic &&
  make  &&
popd

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

#Install viewer
make install &&
mv  /usr/share/doc/tigervnc /usr/share/doc/tigervnc-1.15.0

#Install server
( cd unix/xserver/hw/vnc && make install ) &&

[ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc

Finalmente, modifique o arquivo PAM para estar compatível com elogind:

sed -i 's/pam_systemd.so/pam_elogind.so/' /etc/pam.d/tigervnc

Explicações do Comando

tar -xf .. xorg-server...: Esse comando extrai o pacote padrão do Xorg na árvore em um local necessário para modificação.

--disable ...: A maioria das opções que normalmente são necessárias para o servidor Xorg padrão não é necessária para a instância Xvnc sendo construída.

[ -e /usr/bin/Xvnc ] || ln ... Xvnc: Se o servidor Xvnc não estiver instalado no diretório /usr/bin, então crie um link, de forma que o conjunto de comandos sequenciais vncserver consiga encontrá-lo.

Configurando o Tigervnc

A instalação padrão desse pacote faz algumas mudanças na maneira como ele é usado. O conjunto de comandos sequenciais Perl vncserver é colocado em /usr/bin/libexec e o servidor está projetado para ser executado por meio de um arquivo .service estilo systemd ou do script vncsession como o(a) usuário(a) root. A página de manual para o vncserver é colocada na seção 8 das páginas de manual. Os novos procedimentos exigem que um gerenciador de tela seja instalado.

Para restaurar o comportamento anterior, instale os arquivos adicionais baixados como o(a) usuário(a) root:

install -m755 --owner=root ../vncserver /usr/bin &&
cp ../vncserver.1 /usr/share/man/man1

Usando os procedimentos anteriores, os arquivos de configuração específicos do(a) usuário(a) do vncserver residem no diretório .vnc no diretório inicial do(a) usuário(a). O arquivo xstartup nesse diretório é um conjunto de comandos sequenciais que especifica quais comandos executar quando uma área de trabalho VNC for iniciada. Se não existir nenhum arquivo xstartup, o vncserver tentará iniciar um xterm em uma sessão do twm. Um exemplo de xstartup seria:

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
startlxqt &

O arquivo xstartup precisa ser executável para que os comandos nele contidos sejam executados, de modo que execute chmod a+x ~/.vnc/xstartup.

Configure a senha vnc com vncpasswd. O servidor pode então ser iniciado com o comando vncserver. Vejam-se as páginas de manual na seção 1 para vncserver para o sistema de servidor e vncviewer para o sistema remoto.

Conteúdo

Aplicativos Instalados: Xvnc, vncconfig, vncpasswd, vncserver, vncviewer e x0vncserver
Bibliotecas Instaladas: libvnc.so
Diretórios Instalados: /usr/share/doc/tigervnc-1.15.0

Descrições Curtas

Xvnc

é um servidor VNC (Virtual Network Computing) do X. Ele é baseado em um servidor padrão do X, mas tem uma tela virtual em vez de uma física

vncconfig

é um aplicativo para configurar e controlar um servidor VNC

vncpasswd

permite que você configure a senha usada para acessar áreas de trabalho VNC

vncserver

é um conjunto de comandos sequenciais Perl usado para iniciar ou parar um servidor VNC

vncviewer

é um cliente usado para conectar-se a áreas de trabalho VNC

x0vncserver

é um aplicativo para tornar uma tela do X em um terminal físico acessível via TigerVNC ou visualizadores compatíveis

Transmission-4.0.6

Introdução ao Transmission

Transmission é um cliente BitTorrent multiplataforma e de fonte aberto. Isso é útil para baixar arquivos grandes (como ISOs do Linux) e reduz a necessidade para os(as) distribuidores(as) fornecerem largura de banda de servidor.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do Transmission

Exigidas

cURL-8.12.1

Recomendadas
Recomendadas (para construir uma GUI)
Opcionais

nodejs-22.14.0 (para construir o cliente web, não necessário em tempo de execução), appindicator, dht, libb64, libdeflate, libnatpmp, libutp e miniupnp

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/transmission

Instalação do Transmission

Primeiro, corrija uma falha de construção devido a declarações incorretas em CMakeLists.txt:

patch -Np1 -i ../transmission-4.0.6-build_fix-1.patch

Instale o Transmission executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/transmission-4.0.6 \
      .. &&

make

Agora, como o(a) usuário(a) root:

make install

A seguir, se a dependência Gtkmm-4.16.0 foi instalada, crie transmission.png a partir do arquivo SVG. Como o(a) usuário(a) root:

rsvg-convert                                               \
   /usr/share/icons/hicolor/scalable/apps/transmission.svg \
   -o /usr/share/pixmaps/transmission.png

Explicações do Comando

-D ENABLE_QT=OFF: Essa chave desabilita construir a interface Qt. O padrão é o de construí-la se Qt-6.8.2 estiver instalado.

-D ENABLE_GTK=OFF: Essa chave desabilita construir a interface GTK-4. O padrão é o de construí-la se o Gtkmm-4.16.0 estiver instalado.

-D ENABLE_WEB=OFF: Essa chave desabilita a construção do cliente web. O padrão é o de construí-lo se o nodejs-22.14.0 estiver instalado.

-D REBUILD_WEB=ON: Essa chave força reconstruir o cliente web. Essa opção precisa de nodejs-22.14.0 para ser instalado bem como de uma conexão de internet. O padrão é o de não reconstruir o cliente.

Conteúdo

Aplicativos Instalados: transmission-create, transmission-daemon, transmission-edit, transmission-gtk, transmission-qt, transmission-remote e transmission-show
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/transmission (contém o cliente web) e /usr/share/doc/transmission-4.0.6

Descrições Curtas

transmission-create

é uma ferramenta de linha de comando usada para criar arquivos .torrent

transmission-daemon

é uma sessão do Transmission baseada em processo de segundo plano que pode ser controlada por meio de comandos RPC a partir da interface web do Transmission ou do transmission-remote

transmission-edit

é uma ferramenta de linha de comando para modificar URLs de anúncio de arquivos .torrent

transmission-gtk

é um cliente bittorrent GTK+

transmission-qt

é um cliente bittorrent baseado em Qt

transmission-remote

é um utilitário de controle remoto para transmission-daemon e transmission

transmission-show

é uma ferramenta de linha de comando para exibir metadados de arquivo .torrent do BitTorrent

xarchiver-0.5.4.23

Introdução ao xarchiver

XArchiver é um gerenciador GTK+ de arquivamentos com suporte para tar, xz, bzip2, gzip, zip, 7z, rar, lzo e muitos outros formatos de arquivamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

xarchiver é somente uma interface de linha de comando ou gráfica para utilitários de arquivamento, como tar e zip.

Informação do Pacote

Dependências do xarchiver

Exigidas

GTK-3.24.48

Opcionais (Tempo de execução)

7zip-24.09, cpio-2.15, LZO-2.10, UnRar-7.1.5, Zip-3.0 e unzip

Instalação do xarchiver

O BLFS fornece unzip como um link simbólico para bsdunzip proveniente de libarchive-3.7.7, mas não funciona para o xarchiver. Adapte o xarchiver para usar 7zip-24.09 para manusear arquivos .zip por padrão:

sed '/TOGGLE.*prefer_unzip/s/TRUE/FALSE/' -i src/pref_dialog.c

Nota

Se você já tiver instalado e executou esse pacote antes (talvez em outra distribuição, se seu /home for uma partição compartilhada com essa distribuição), ele provavelmente já está configurado para preferir unzip. Desconfigure a caixa de seleção Preferir unzip para arquivos zip na caixa de diálogo Ação => Preferências para mudar a configuração.

Instale o xarchiver executando os seguintes comandos:

./configure  --prefix=/usr               \
             --libexecdir=/usr/lib/xfce4 \
             --docdir=/usr/share/doc/xarchiver-0.5.4.23 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

--libexecdir=/usr/lib/xfce4: Essa chave corrige o local para o thunar-archive-plugin, de forma que ele funcionará se o thunar-4.20.2 estiver instalado.

Conteúdo

Aplicativo Instalado: xarchiver
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/xfce4/thunar-archive-plugin, /usr/share/doc/xarchiver-0.5.4.23 e /usr/share/pixmaps/xarchiver

Descrições Curtas

xarchiver

é um gerenciador GTK+ de arquivamentos

xdg-utils-1.2.1

Introdução ao xdg-utils

xdg-utils é um conjunto de ferramentas de linha de comando que auxiliam os aplicativos em uma variedade de tarefas de integração de área de trabalho. É exigido para conformidade com o Linux Standards Base (LSB).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do xdg-utils

Exigidas

xmlto-0.0.29 com um de Lynx-2.9.2, Links-2.30 ou W3m

Exigidas (tempo de execução)

Aplicativos do Xorg

Opcionais (tempo de execução)

dbus-1.16.0

Instalação do xdg-utils

Compile o xdg-utils com os seguintes comandos:

./configure --prefix=/usr &&
make

Cuidado

Os testes para os scripts precisam ser feitos a partir de uma sessão baseada em Janelas do X. Existem vários requisitos de tempo de execução para executar os testes, incluindo um navegador e um MTA. Executar-se os testes como usuário(a) root não é recomendado.

Para executar os testes, emita: make -k test.

Agora instale-o como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xdg-desktop-menu, xdg-desktop-icon, xdg-mime, xdg-icon-resource, xdg-open, xdg-email, xdg-screensaver, xdg-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xdg-desktop-menu

é uma ferramenta de linha de comando para (des)instalar itens de menu da área de trabalho

xdg-desktop-icon

é uma ferramenta de linha de comando para (des)instalar ícones na área de trabalho

xdg-mime

é uma ferramenta de linha de comando para consultar informações a respeito do tratamento de tipos de arquivos e adicionar descrições para novos tipos de arquivos

xdg-icon-resource

é uma ferramenta de linha de comando para (des)instalar recursos de ícones

xdg-open

abre um arquivo ou URL no aplicativo preferido do(a) usuário(a)

xdg-email

abre o compositor preferido de mensagem eletrônica do(a) usuário(a) para a finalidade de enviar uma mensagem de correio

xdg-screensaver

é uma ferramenta de linha de comando para controlar o protetor de tela

xdg-settings

é uma ferramenta de linha de comando para gerenciar várias configurações a partir do ambiente de área de trabalho

XScreenSaver-6.09

Introdução ao XScreenSaver

O pacote XScreenSaver é um protetor e travador de tela modular para o Sistema de Janelas do X. Ele é altamente personalizável e permite o uso de qualquer aplicativo que possa desenhar na janela raiz como modo de exibição. O objetivo do XScreenSaver é o de exibir imagens bonitas na tua tela quando não estiver em uso, de acordo com a filosofia de que os monitores não atendidos sempre deveriam estar fazendo algo interessante, assim como eles fazem nos filmes. No entanto, o XScreenSaver também pode ser usado como um travador de tela, para evitar que outras pessoas usem teu terminal enquanto você estiver ausente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.jwz.org/xscreensaver/xscreensaver-6.09.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1f0e2b1698bc2a6ecfe9b668e4b75c3d

  • Tamanho da transferência: 21 MB

  • Espaço em disco estimado exigido: 262 MB

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4)

Dependências do XScreenSaver

Exigidas

GTK-3.24.48 e Aplicativos do Xorg

Recomendadas
Opcionais

GDM-47.0, FFmpeg-7.1, Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3 e GLE

Instalação do XScreenSaver

Mude um nome de biblioteca rigidamente codificado, o que impede o uso das configurações encontradas pelo configure:

sed -i 's/-lsystemd/-lelogind/' driver/Makefile.in

Instale o XScreenSaver executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-setuid-hacks: Essa chave permite que algumas demonstrações sejam instaladas setuid root, que é necessário para a finalidade de executar ping para outros dispositivos.

Configurando o XScreenSaver

Arquivos de Configuração

/etc/X11/app-defaults/XScreenSaver e ~/.xscreensaver

Configuração do Linux PAM

Se o XScreenSaver tiver sido construído com suporte a Linux PAM, você precisa criar um arquivo de configuração PAM, para fazê-lo funcionar corretamente com o BLFS.

Emita os seguintes comandos como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM:

cat > /etc/pam.d/xscreensaver << "EOF"
# Inicia /etc/pam.d/xscreensaver

auth    include system-auth
account include system-account

# Termina /etc/pam.d/xscreensaver
EOF

Conteúdo

Aplicativos Instalados: xscreensaver, xscreensaver-command, xscreensaver-demo e xscreensaver-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/libexec/xscreensaver e /usr/share/xscreensaver

Descrições Curtas

xscreensaver

é um processo de segundo plano protetor e travador de tela

xscreensaver-command

controla um processo xscreensaver em execução, enviando-lhe mensagens de cliente

xscreensaver-demo

é um link simbólico para xscreensaver-settings

xscreensaver-settings

é uma estrutura gráfica de interação direta com o(a) usuário(a) para configurar os parâmetros usados pelo processo de segundo plano xscreensaver de plano de fundo

Parte XII. Multimídia

Capítulo 42. Bibliotecas e Controladores de Multimídia

Muitos aplicativos multimídia exigem bibliotecas e (ou) controladores para a finalidade de funcionarem corretamente. Os pacotes nesta seção caem nessa categoria. Geralmente, você somente precisa instalá-los se estiver instalando um aplicativo que tenha a biblioteca listada como um requisito ou como uma opção para habilitá-lo a suportar determinadas funcionalidades.

ALSA

O núcleo Linux agora fornece suporte ALSA por padrão. No entanto, os aplicativos precisam interfacear com esse recurso. As seguintes seis seções do livro lidam com os componentes separados do ALSA: as bibliotecas, os plugins, os utilitários, as ferramentas e o firmware.

alsa-lib-1.2.13

Introdução ao ALSA Library

O pacote ALSA Library contém a biblioteca ALSA usada por aplicativos (incluindo ALSA Utilities) que exigem acesso para a interface de som ALSA.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.13.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: dd856a78e0702c3c4c1d8f56bc07bf61

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 72 MB (com testes e documentos)

  • Tempo de construção estimado: 0,3 UPC (com testes e documentos)

Transferências Adicionais

Dependências do ALSA Library

Recomendadas (tempo de execução)

elogind-255.17

Nota

Se a dependência recomendada de tempo de execução não estiver instalada, você possivelmente precise executar qualquer aplicativo que exija a biblioteca ALSA como o(a) usuário(a) root ou um(a) usuário(a) no grupo audio.

Opcionais

Doxygen-1.13.2 e Python2

Configuração do Núcleo

Se necessário, habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Device Drivers --->
  <*/M> Sound card support --->                                          [SOUND]
    # Select settings and drivers appropriate for your hardware
    # in the submenu:
    <*/M> Advanced Linux Sound Architecture --->                           [SND]

Na seção Device Drivers ⇒ Sound card support ⇒ Advanced Linux Sound Architecture da configuração do núcleo, selecione as configurações e controladores apropriados para o teu hardware. Se necessário, recompile e instale teu novo núcleo.

Instalação do ALSA Library

Instale o ALSA Library executando os seguintes comandos:

./configure &&
make

Se você tiver o Doxygen instalado e desejar construir a documentação da API da biblioteca, execute os seguintes comandos a partir do diretório de nível superior da árvore do fonte:

make doc

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root, instale o pacote e os arquivos recomendados de configuração:

make install &&
tar -C /usr/share/alsa --strip-components=1 -xf ../alsa-ucm-conf-1.2.13.tar.bz2

Para instalar a documentação da API, execute o seguinte comando como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/alsa-lib-1.2.13/html/search &&
install -v -m644 doc/doxygen/html/*.* \
                /usr/share/doc/alsa-lib-1.2.13/html &&
install -v -m644 doc/doxygen/html/search/* \
                /usr/share/doc/alsa-lib-1.2.13/html/search

Configurando o ALSA Library

Arquivos de Configuração

~/.asoundrc e /etc/asound.conf

Informação de Configuração

O alsa.conf padrão é adequado para a maioria das instalações. Para funcionalidade extra e (ou) controle avançado do teu dispositivo de som, você possivelmente necessite criar arquivos adicionais de configuração. Para informações a respeito dos parâmetros de configuração disponíveis, visite https://www.alsa-project.org/main/index.php/Asoundrc.

Conteúdo

Aplicativo Instalado: aserver
Biblioteca Instalada: libasound.so e libatopology.so
Diretórios Instalados: /usr/include/alsa, /usr/share/alsa e /usr/share/doc/alsa-lib-1.2.13

Descrições Curtas

aserver

é o servidor ALSA

libasound.so

contém as funções da API do ALSA

libatopology.so

contém funções de API para as topologias ALSA

alsa-plugins-1.2.12

Introdução ao ALSA Plugins

O pacote ALSA Plugins contém plugins para diversas bibliotecas de áudio e servidores de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ALSA Plugins

Exigidas

alsa-lib-1.2.13

Opcionais

FFmpeg-7.1, libsamplerate-0.2.2, PulseAudio-17.0, Speex-1.2.1, JACK, libavtp e maemo

Instalação do ALSA Plugins

Instale o ALSA Plugins executando os seguintes comandos:

./configure --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Numerosos módulos libasound_module_<módulo>.so, incluindo conf_pulse, ctl_arcam_av, ctl_oss, ctl_pulse, pcm_a52, pcm_jack, pcm_oss, pcm_pulse, pcm_speex, pcm_upmix, pcm_usb_stream, pcm_vdownmix, rate_lavrate*, rate_samplerate* e rate_speexrate*
Diretórios Instalados: /usr/lib/alsa-lib

Descrições Curtas

libasound_module_pcm_oss.so

Permite aplicativos nativos ALSA executarem em OSS

libasound_module_pcm_upmix.so

Permite mistura aumentadora de som para 4 ou 6 canais

libasound_module_pcm_vdownmix.so

Permite mistura redutora de som de 4-6 canais para saída estéreo de 2 canais

libasound_module_pcm_jack.so

Permite aplicativos nativos ALSA funcionem com o jackd

libasound_module_pcm_pulse.so

Permite aplicativos nativos ALSA acessarem um processo de segundo plano de som PulseAudio

libasound_module_pcm_a52.so

Converte o formato de som linear S16 para o formato comprimido A52 e envia-o para uma saída SPDIF

libasound_module_rate_samplerate.so

Fornece um conversor externo de taxa por intermédio da libsamplerate

alsa-utils-1.2.13

Introdução ao ALSA Utilities

O pacote ALSA Utilities contém vários utilitários que são úteis para controlar tua placa de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ALSA Utilities

Exigidas

alsa-lib-1.2.13

Opcionais

docutils-0.21.2, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.29 e Dialog

Instalação do ALSA Utilities

Primeiro corrija um problema nas regras do udev distribuído:

sed -e 's/acp-pdm-dmic/acp-dmic-codec/'                   \
    -e '/LABEL="alsa_restore_go"/s/go/std/'               \
    -e '/^ENV.ALSA_CARD_NUMBER/i LABEL="alsa_restore_go"' \
    -i alsactl/90-alsa-restore.rules.in

Instale o ALSA Utilities executando os seguintes comandos:

./configure --disable-alsaconf \
            --disable-bat      \
            --disable-xmlto    \
            --with-curses=ncursesw &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-alsaconf: Essa chave desabilita construir a ferramenta de configuração alsaconf que é incompatível com o Udev.

--disable-xmlto: Omita essa chave se você tiver instalado o xmlto-0.0.29 e desejar regenerar as páginas de manual.

--disable-bat: Omita essa chave se você tiver instalado o fftw-3.3.10 e desejar instalar o Basic Audio Tester (BAT).

--with-curses=ncursesw: Essa chave força o uso de bibliotecas ncurses de caracteres largos.

Configurando o ALSA Utilities

Arquivos de Configuração

/var/lib/alsa/asound.state

Informação de Configuração

Como o(a) usuário(a) root, aplique a configuração padrão para a placa de som. Observe que este comando pode retornar um código de saída 99, embora a placa esteja inicializada corretamente:

alsactl init

Observe que todos os canais da tua placa de som possivelmente estejam silenciados por padrão. Você consegue usar o aplicativo alsamixer para mudar isso. Use o speaker-test para verificar se tuas configurações foram aplicadas corretamente. Você deveria ouvir ruído rosa nos teus alto-falantes.

O aplicativo alsactl normalmente é executado a partir de uma regra padrão do udev. Na primeira vez que for executado, ele reclamará que não existe estado em /var/lib/alsa/asound.state. Você pode evitar isso executando o seguinte comando como o(a) usuário(a) root:

alsactl -L store

As configurações de volume deveriam ser restauradas a partir do estado salvo pelo Udev quando o dispositivo for detectado (durante a inicialização ou quando plugado para dispositivos USB).

Em sistemas que tem múltiplas placas de som, você possivelmente necessite ajustar o dispositivo de áudio padrão, de forma que possa obter saída a partir dos teus alto-falantes. Para configurar o dispositivo padrão, primeiro verifique o arquivo /proc/asound/cards para determinar qual número precisa configurar. Depois que souber essas informações, configure a placa padrão com o seguinte comando como o(a) usuário(a) root:

cat > /etc/asound.conf << "EOF"
# Inicia /etc/asound.conf

defaults.pcm.card 1
defaults.ctl.card 1

# Termina /etc/asound.conf
EOF

Conjunto de Comandos Sequenciais de Inicialização

Para armazenar e restaurar automaticamente as configurações de volume (se a regra do Udev não funcionar para você) quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/alsa a partir do pacote blfs-bootscripts-20250225 .

make install-alsa

Conteúdo

Aplicativos Instalados: aconnect, alsactl, alsaloop, alsamixer, alsatplg, alsaucm, alsa-info.sh, amidi, amixer, aplay, aplaymidi, arecord (link simbólico), arecordmidi, aseqdump, aseqnet, axfer, iecset e speaker-test
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/sounds/alsa e /var/lib/alsa

Descrições Curtas

aconnect

é um utilitário para conectar e desconectar duas portas existentes no sistema sequenciador do ALSA

alsactl

é usado para controlar configurações avançadas para os controladores ALSA de placa de som. Use isso se o alsamixer não puder utilizar todos os recursos da tua placa de som

alsaloop

permite a criação de um loopback PCM entre um dispositivo de captura PCM e um dispositivo de reprodução PCM

alsamixer

é um aplicativo de mistura baseado em Ncurses para uso com os controladores ALSA da placa de som

alsatplg

é um utilitário usado para compilar arquivos de configuração de topologia em arquivos binários para controladores de núcleo

alsaucm

permite aplicativos acessarem o hardware de maneira abstraída

amidi

é usado para ler a partir de, e escrever para, as portas RawMIDI do ALSA

amixer

permite o controle de linha de comando dos misturadores para os controladores ALSA da placa de som

aplay

é um reprodutor de linha de comando de arquivos de som para os controladores ALSA da placa de som

aplaymidi

é um utilitário de linha de comando que reproduz o(s) arquivo(s) especificado(s) MIDI em uma ou mais portas do sequenciador do ALSA

arecord

é um gravador de linha de comando de arquivo de som para os controladores ALSA da placa de som

arecordmidi

é um utilitário de linha de comando que grava um arquivo MIDI padrão a partir de uma ou mais portas do sequenciador do ALSA

aseqdump

é um utilitário de linha de comando que imprime os eventos do sequenciador que receber como texto

aseqnet

é um cliente sequenciador ALSA que envia e recebe pacotes de eventos ao longo de uma rede de intercomunicação

axfer

é um gravador e reprodutor de linha de comando usado para transferir quadros de áudio entre dispositivos, e arquivos, de som

iecset

é um pequeno utilitário para configurar ou despejar os bits de situação IEC958 (ou os assim chamados S/PDIF) da placa de som especificada por intermédio da API de controle do ALSA

speaker-test

é um gerador de linha de comando de tom de teste de alto-falante para o ALSA

alsa-tools-1.2.11

Introdução ao ALSA Tools

O pacote ALSA Tools contém ferramentas avançadas para determinadas placas de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ALSA Tools

Exigidas

alsa-lib-1.2.13

Opcionais

GTK-3.24.48 (para construir hdajackretask), FLTK-1.4.2 (para construir hdspconf e hdspmixer), e GTK+-2 (para construir echomixer, envy24control e rmedigicontrol)

Instalação do ALSA Tools

Nota

Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.

  3. Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.

Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Agora, remova algumas ferramenta que precisam de Qt2 ou 3 ou de GTK+-2 e também dois arquivos desnecessários (para as instruções do BLFS abaixo):

rm -rf qlo10k1 echomixer envy24control rmedigicontrol Makefile gitcompile

O pacote ALSA Tools somente é necessário para aqueles(as) com requisitos avançados para a placa de som deles(as). As ferramentas podem ser construídas todas juntas de uma vez, mas se somente um subconjunto for necessário, você precisa cd ao diretório de cada ferramenta que desejar compilar e executar os comandos. Aqui apresentamos instruções para construir todas as ferramentas.

Instale todas as ALSA Tools executando os seguintes comandos:

for tool in *
do
  case $tool in
    seq )
      tool_dir=seq/sbiload
    ;;
    * )
      tool_dir=$tool
    ;;
  esac

  pushd $tool_dir
    ./configure --prefix=/usr
    make
    as_root make install
    as_root /sbin/ldconfig
  popd

done
unset tool tool_dir

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Conteúdo

Aplicativos Instalados: as10k1, cspctl, dl10k1, hda-verb, hdajackretask, hdajacksensetest, hdspconf, hdsploader, hdspmixer, hwmixvolume, init_audigy, init_audigy_eq10, init_live, lo10k1, ld10k1, ld10k1d, mixartloader, pcxhrloader, sbiload, sscape_ctl, us428control, usx2yloader e vxloader
Biblioteca Instalada: liblo10k1.so
Diretórios Instalados: /etc/hotplug, /usr/include/lo10k1, /usr/share/ld10k1 e /usr/share/sounds

Descrições Curtas

as10k1

é um montador para o chip DSP emu10k1 presente nas placas de som Creative SB Live, PCI 512 e emu APS. Ele é usado para fazer efeitos de áudio como flanger, chorus ou reverb

cspctl

é um aplicativo de controle do Creative Signal Processor (ASP/CSP) da SB16/AWE32

hdajackretask

é uma GUI para facilitar a redefinição de teus conectores - por exemplo, transforme teu conector de microfone em um fone de ouvido extra ou torne-os saídas de linha e conecte-os ao teu receptor de envolver

hda-verb

é um pequeno programa para enviar comandos de áudio de alta definição para um determinado dispositivo hwdep do ALSA na interface de áudio de alta definição

hdspconf

é uma GUI para controlar as configurações Alsa do Hammerfall HDSP. Até quatro placas hdsp são suportadas

hdsploader

é usado para carregar o firmware exigido pelas placas de som Hammerfall HDSP

hdspmixer

é o equivalente Linux do aplicativo Totalmix proveniente da RME. Ele é uma ferramenta para controlar os recursos avançados de roteamento da série de placas de som Hammerfall DSP da RME

hwmixvolume

permite a você controlar o volume de fluxos individuais em placas de som que usam mixagem de hardware

init_audigy*

são ferramentas usadas para inicializar placas da série Audigy da Creative Sound Blaster

init_live

é uma ferramenta usada para inicializar placas Creative Sound Blaster Live

ld10k1

é o servidor de um carregador de remendo da EMU10K{1,2} para ALSA

lo10k1

é o cliente de um carregador de remendo da EMU10K{1,2} para ALSA

dl10k1

carrega despejos de configuração gerados por lo10k1 e ld10k1

ld10k1d

é um conjunto de comandos sequenciais de iniciação para o carregador de remendo do ld10k1

mixartloader

é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa miXart do Digigram. O módulo snd-mixart exige esse programa. Esses controladores não funcionam corretamente até que os arquivos de firmware exigidos sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão

pcxhrloader

é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa compatíveis com pcxhr da Digigram. O módulo snd-pcxhr exige esse programa. Esses controladores não funcionam corretamente até que certos arquivos de firmware sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão

sbiload

é um carregador de instrumentos FM OPL2/3 para o sequenciador do ALSA

sscape_ctl

é um utilitário de controle SoundScape do ALSA

us428control

é um aplicativo de controle Tascam US-428

usx2yloader

é um aplicativo auxiliar para carregar os binários de firmware da 2ª fase nas placas de som USB Tascam USX2Y. Foi provado funcionar até agora para US122, US224 e US428. O módulo snd-usb-usx2y exige esse aplicativo

vxloader

é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa VX do Digigram. Os módulos snd-vx222, snd-vxpocket e snd-vxp440 exigem esse programa. Esses controladores não funcionam corretamente até que determinados arquivos de firmware sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão

alsa-firmware-1.2.4

Introdução ao ALSA Firmware

O pacote ALSA Firmware contém firmware para determinadas placas de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ALSA Firmware

Exigidas

alsa-tools-1.2.11

Opcionais

AS31 (para reconstruir o firmware a partir do fonte)

Instalação do ALSA Firmware

O pacote ALSA Firmware somente é necessário para aqueles(as) com requisitos avançados para a placa de som deles(as). Veja-se o README para opções de configuração.

Instale o ALSA Firmware executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Vários diretórios em /lib/firmware e /usr/share/alsa/firmware

AudioFile-0.3.6

Introdução ao AudioFile

O pacote AudioFile contém as bibliotecas de arquivos de áudio e dois aplicativos de suporte a arquivos de som úteis para suportar formatos básicos de arquivos de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do AudioFile

Exigidas

alsa-lib-1.2.13

Recomendadas
Opcionais

asciidoc-10.2.1 e Valgrind-3.24.0

Instalação do AudioFile

Instale o AudioFile executando os seguintes comandos:

patch -Np1 -i ../audiofile-0.3.6-consolidated_patches-1.patch &&
autoreconf -fiv                             &&

./configure --prefix=/usr --disable-static  &&

make

Agora, como o(a) usuário(a) root:

make install

Para testar os resultados, emita: make check. Observe que os testes falharão se a opção --disable-static for usada e os testes forem executados antes de make install. Você tem três opções:

(a) configure sem --disable-static, execute os testes, mas não instale; então inicie uma nova construção usando --disable-static apenas para instalar o pacote.

(b) configure com --disable-static, mas somente execute os testes depois que o pacote for instalado.

(c) configure com --disable-static, mas somente execute os testes depois de uma instalação DESTDIR.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: sfconvert e sfinfo
Bibliotecas Instaladas: libaudiofile.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

sfinfo

exibe o formato do arquivo de som, codificação de áudio, taxa de amostragem e duração para formatos de áudio suportados por essa biblioteca

sfconvert

converte formatos de arquivo de som onde o formato original e o formato de destino sejam suportados por essa biblioteca

libaudiofile.so

contém funções usadas por aplicativos para suportar formatos de áudio AIFF, compactados por AIFF, Sun/NeXT, WAV e BIC

faac-1.31

Introdução ao faac

A aplicação faac é um codificador para um esquema de compressão de som com perdas especificado nos padrões MPEG-2 Parte 7 e MPEG-4 Parte 3 e conhecido como Advanced Audio Coding (AAC). Esse codificador é útil para produzir arquivos que podem ser reproduzidos em um iPod. Além disso, o iPod não compreende outros esquemas de compressão de som em arquivos de vídeo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia).

Instalação do faac

Instale faac executando os seguintes comandos:

./bootstrap                                &&
./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste. No entanto, a funcionalidade básica pode ser testada codificando-se um arquivo WAV de amostra (o arquivo de amostra é instalado pelo pacote alsa-utils-1.2.13:

./frontend/faac -o Front_Left.mp4 /usr/share/sounds/alsa/Front_Left.wav

Em seguida, decodifique o resultado usando o aplicativo faad proveniente do pacote FAAD2-2.11.1 e reproduza o arquivo decodificado (exige o aplicativo aplay originário do pacote alsa-utils-1.2.13:

faad Front_Left.mp4
aplay Front_Left.wav

aplay deveria identificar o arquivo como Signed 16 bit Little Endian, Rate 48000 Hz, Stereo, e você deveria ouvir as palavras front left.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Outros codificadores AAC

A qualidade do faac não está à altura dos melhores codificadores AAC disponíveis atualmente. Além disso, ele suporta somente AAC e não High Efficiency AAC (também conhecido como aacPlus), que oferece melhor qualidade a baixas taxas de bits por meio do uso da tecnologia de replicação de banda espectral. Um exemplo de um programa alternativo para produzir fluxos AAC e HE-AAC é:

  • Codificador geral de áudio 3GPP Enhanced aacPlus: disponível no formato de fonte, pode codificar somente HE-AAC de até 48 kbps pronto para uso, mas a taxa de bits máxima pode ser mudada editando-se a tabela de ajuste no arquivo FloatFR_sbrenclib/src/sbr_main.c.

Observe, entretanto, que o iPod suporta somente o perfil AAC de baixa complexidade, que é o padrão no faac, mas está completamente indisponível no codificador 3GPP.

Conteúdo

Aplicativo Instalado: faac
Bibliotecas Instaladas: libfaac.so e libmp4v2.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

faac

é um codificador AAC de linha de comando

libfaac.so

contém funções para codificação de fluxos AAC

libmp4v2.so

contém funções para criar e manipular arquivos MP4

FAAD2-2.11.1

Introdução ao FAAD2

FAAD2 é um decodificador para um esquema de compressão de som com perdas especificado nos padrões MPEG-2 Parte 7 e MPEG-4 Parte 3 e conhecido como Advanced Audio Coding (AAC).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do FAAD2

Exigidas

CMake-3.31.5

Instalação do FAAD2

Instale o FAAD2 executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_SHARED_LIBS=ON      \
      .. &&
make

Esse pacote não vem com uma suíte de teste. No entanto, a funcionalidade básica pode ser testada decodificando-se o arquivo AAC de amostra:

./faad -o sample.wav ../../sample.aac

Isso deveria exibir uma mensagem de direitos autorais e as seguintes informações a respeito do arquivo de amostra:

sample.aac file info:
ADTS, 4.608 sec, 13 kbps, 16000 Hz


  ---------------------
 | Config:  2 Ch       |
  ---------------------
 | Ch |    Position    |
  ---------------------
 | 00 | Left front     |
 | 01 | Right front    |
  ---------------------

Agora reproduza o resultado (exige o aplicativo aplay originário do pacote alsa-utils-1.2.13):

aplay sample.wav

aplay deveria identificar o arquivo como Signed 16 bit Little Endian, Rate 16000 Hz, Stereo, e você deveria escutar algumas notas de piano.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: faad
Biblioteca Instalada: libfaad.so e libfaad_drm.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

faad

é um utilitário de linha de comando para decodificar arquivos AAC e MP4

libfaad.so

contém funções para decodificar fluxos AAC

fdk-aac-2.0.3

Introdução ao fdk-aac

O pacote fdk-aac fornece a biblioteca Fraunhofer FDK AAC, que é considerada uma implementação de alta qualidade da Codificação Avançada de Áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do fdk-aac

Instale o fdk-aac executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libfdk-aac.so
Diretório Instalado: /usr/include/fdk-aac

Descrições Curtas

libfdk-aac.so

fornece as funções usadas para codificar áudio no formato AAC

FLAC-1.5.0

Introdução ao FLAC

FLAC é um CODEC de áudio semelhante ao MP3, mas sem perdas, o que significa que o áudio é comprimido sem perder nenhuma informação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/xiph/flac/releases/download/1.5.0/flac-1.5.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0bb45bcf74338b00efeec121fff27367

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 25 MB (adicionais 170 MB para executar a suíte de teste)

  • Tempo de construção estimado: 0,2 UPC (adicionais 0,2 UPC para executar a suíte de teste)

Dependências do FLAC

Opcionais

libogg-1.3.5, DocBook-utils-0.6.14, Doxygen-1.13.2 e Valgrind-3.24.0

Instalação do FLAC

Instale o FLAC executando os seguintes comandos:

./configure --prefix=/usr                                \
            --disable-thorough-tests                     \
            --docdir=/usr/share/doc/flac-1.5.0          &&
make

Para testar os resultados, emita: make check. Observe que, se você passou nos parâmetros --enable-exhaustive-tests e --enable-valgrind-testing para o configure e depois executar a suíte de teste, levará tempo muito longo(até 300 UPCs) e usará cerca de 375 MB de espaço em disco.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-thorough-tests: Esse parâmetro é usado de forma que a suíte de teste completará em um período de tempo razoável. Remova-o se você desejar testes mais extensos.

Conteúdo

Aplicativos Instalados: flac e metaflac
Bibliotecas Instaladas: libFLAC.so e libFLAC++.so
Diretórios Instalados: /usr/include/FLAC, /usr/include/FLAC++ e /usr/share/doc/flac-1.5.0

Descrições Curtas

flac

é um utilitário de linha de comando para codificar, decodificar e converter arquivos FLAC

metaflac

é um aplicativo para listar, adicionar, remover ou editar metadados em um ou mais arquivos FLAC

libFLAC{,++}.so

essas bibliotecas fornecem APIs nativas C/C++ FLAC e Ogg FLAC para aplicativos que utilizam FLAC

frei0r-plugins-1.8.0

Introdução ao Frei0r-plugins

Frei0r é uma API minimalista de plugin para efeitos de vídeo. Observe que o 0 no nome é um zero, não uma letra maiúscula o.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Frei0r-plugins

Recomendadas

gavl-1.4.0

Opcionais

Doxygen-1.13.2 e opencv-4.11.0

Instalação do Frei0r-plugins

Instale o Frei0r executando os seguintes comandos:

mkdir -vp build &&
cd        build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -W no-dev ..                 &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-D WITHOUT_OPENCV=TRUE: Essa opção instrui o procedimento make a desabilitar a construção de plugins dependentes do opencv.

-D WITHOUT_GAVL=TRUE: Essa opção instrui o procedimento make a desabilitar a construção de plugins dependentes do gavl.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: Mais que cento e trinta (130) plug-ins de efeitos de vídeo
Diretórios Instalados: /usr/lib/frei0r-1

gavl-1.4.0

Introdução ao Gavl

Gavl é a abreviatura de Gmerlin Audio Video Library. É uma biblioteca de baixo nível que lida com detalhes de formatos de áudio e vídeo, como espaços de cores, taxas de amostragem, configurações multicanais, etc. Ela fornece definições padronizadas para esses formatos, bem como estruturas de contêiner para transportar amostras de áudio ou imagens de vídeo dentro de um aplicativo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Gavl

Exigidas

libpng-1.6.46

Opcionais

Doxygen-1.13.2

Instalação do Gavl

Primeiro, corrija um problema com o gcc-14 e posteriores:

sed -i "/stdio/a #include <string.h>" src/fill_test.c

Agora, instale Gavl executando os seguintes comandos:

LIBS=-lm                         \
./configure --prefix=/usr        \
            --without-doxygen    \
            --with-cpuflags=none \
            --docdir=/usr/share/doc/gavl-1.4.0 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

LIBS=-lm: Essa variável garante que a biblioteca matemática seja pesquisada durante a vinculação.

--without-doxygen: Essa chave desabilita o uso do Doxygen. Omita se o Doxygen estiver instalado e você desejar construir a documentação da API.

--with-cpuflags=none: Essa chave corrige um problema de identificação de recursos da arquitetura do sistema.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libgavl.so
Diretórios Instalados: /usr/include/gavl e /usr/share/doc/gavl-1.4.0

Descrições Curtas

libgavl.so

é a Gmerlin Audio Video Library

gstreamer-1.24.12

Introdução ao gstreamer

gstreamer é uma estrutura de streaming de mídia que habilita aplicativos a compartilharem um conjunto comum de plug-ins para tarefas como codificação e decodificação de vídeo, codificação e decodificação de áudio, filtros de áudio e vídeo, visualização de áudio, streaming da web e qualquer outra coisa que transmite em tempo real ou não. Esse pacote fornece somente funcionalidades e bibliotecas básicas. Você possivelmente precise de pelo menos gst-plugins-base-1.24.12 e um dos plugins Good, Bad, Ugly ou Libav.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do gstreamer

Exigidas

GLib-2.82.5 (GObject Introspection exigido para GNOME)

Opcionais

GTK-3.24.48 (para exemplos), gsl-2.8 (usado por um teste se instalado), libunwind-1.8.1, rustc-1.85.0 (para suporte de relógio PTP IEEE 1588:2008), Valgrind-3.24.0, bash-completion, hotdoc e libdw

Instalação do gstreamer

Instale o gstreamer executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D gst_debug=false  &&
ninja

Para testar os resultados, emita: ninja test.

Cuidado

Se você estiver reinstalando o gstreamer a partir de uma versão anterior, é melhor remover a versão anterior, incluindo plug-ins, antes de instalar a nova versão. Se existir uma mistura de versões instaladas, o uso de processos possivelmente trave ou não funcione corretamente. Como o(a) usuário(a) root:

rm -rf /usr/bin/gst-* /usr/{lib,libexec}/gstreamer-1.0

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gst-inspect-1.0, gst-launch-1.0, gst-stats-1.0, gst-tester-1.0 e gst-typefind-1.0
Bibliotecas Instaladas: libgstbase-1.0.so, libgstcheck-1.0.so, libgstcontroller-1.0.so, libgstnet-1.0.so e libgstreamer-1.0.so
Diretórios Instalados: /usr/{include,lib,libexec,share}/gstreamer-1.0

Descrições Curtas

gst-inspect-1.0

é uma ferramenta que imprime informações a respeito de plug-ins gstreamer disponíveis, informações acerca de um plug-in específico ou informações relativas a um elemento específico

gst-launch-1.0

é uma ferramenta que constrói e executa pipelines gstreamer básicos

gst-stats-1.0

é uma ferramenta usada para coletar estatísticas alusivas a operações do gstreamer

gst-tester-1.0

executa um plano de teste em formato compatível com TAP enquanto se integra ao equipamento de teste Meson

gst-typefind-1.0

usa o sistema de localização de tipo do gstreamer para determinar o plug-in gstreamer relevante para analisar ou decodificar arquivos e o tipo MIME correspondente

libgstbase-1.0.so

fornece algumas classes base para serem estendidas por elementos e classes utilitárias que são mais úteis para desenvolvedores(as) de plugins

libgstcheck-1.0.so

fornece funcionalidade para escrever testes unitários que usam a estrutura de verificação

libgstcontroller-1.0.so

fornece funcionalidade para animar propriedades de elementos ao longo do tempo

libgstnet-1.0.so

fornece elementos e objetos de rede de intercomunicação

libgstreamer-1.0.so

fornece todos os serviços centrais do gstreamer, incluindo inicialização, gerenciamento de plugins e tipos, bem como a hierarquia de objetos que define elementos e compartimentos, juntamente com alguns elementos mais especializados

gst-plugins-base-1.24.12

Introdução ao GStreamer Base Plug-ins

O GStreamer Base Plug-ins é uma coleção bem cuidada e bem mantida de plug-ins e elementos do GStreamer, abrangendo a gama de possíveis tipos de elementos que alguém desejaria escrever para o GStreamer. Você precisará de pelo menos um dos plugins Good, Bad, Ugly ou Libav para que os aplicativos GStreamer funcionem corretamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GStreamer Base Plug-ins

Exigidas

gstreamer-1.24.12

Recomendadas
Opcionais

graphene-1.10.8, GTK-3.24.48 (para exemplos), Opus-1.5.2, SDL2-2.30.11, Valgrind-3.24.0, hotdoc, libtheora, libvisual, Orc e Tremor

Instalação do GStreamer Base Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Base Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..               \
      --prefix=/usr          \
      --buildtype=release    \
      --wrap-mode=nodownload &&
ninja

Para testar os resultados, emita: ninja test. Os testes exigem um terminal do X executando ou todos os testes GL falharão. Cinco testes possivelmente produzam tempos limite em alguns sistemas, dependendo do hardware gráfico deles e da velocidade. Um teste, elements_appsrc, é conhecido por falhar em alguns sistemas.

Nota

Ao instalar, o processo de construção faz algumas vinculações adicionais. Se você não tiver o Xorg em /usr, a variável LIBRARY_PATH precisa ser definida para o(a) usuário(a) root. Se usar sudo para assumir o root, use a opção -E para passar tuas variáveis de ambiente atuais para o processo de instalação.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

--wrap-mode=nodownload: Essa chave impede que o meson baixe qualquer dependência opcional que não esteja instalada no sistema.

Conteúdo

Aplicativos Instalados: gst-device-monitor-1.0, gst-discoverer-1.0 e gst-play-1.0
Bibliotecas Instaladas: libgstallocators-1.0.so, libgstapp-1.0.so, libgstaudio-1.0.so, libgstfft-1.0.so, libgstgl-1.0.so, libgstpbutils-1.0.so, libgstriff-1.0.so, libgstrtp-1.0.so, libgstrtsp-1.0.so, libgstsdp-1.0.so, libgsttag-1.0.so, libgstvideo-1.0.so e vários plugins sob /usr/lib/gstreamer-1.0
Diretórios Instalados: /usr/include/gstreamer-1.0/gst/{allocators,app,audio,fft,gl,pbutils}, /usr/include/gstreamer-1.0/gst/{riff,rtp,rtsp,sdp,tag,video} e /usr/share/gst-plugins-base

Descrições Curtas

gst-device-monitor-1.0

é uma ferramenta de linha de comando que pode ser usada para testar a funcionalidade de monitoramento de dispositivos do GStreamer

gst-discoverer-1.0

é uma ferramenta que pode ser usada para imprimir informações básicas de metadados e fluxo a respeito de um arquivo de mídia

gst-play-1.0

é uma ferramenta de linha de comando que pode ser usada para testar a reprodução básica usando o elemento playbin

gst-plugins-good-1.24.12

Introdução ao GStreamer Good Plug-ins

O GStreamer Good Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo código de boa qualidade, funcionalidade correta e a licença preferencial (LGPL para o código do plug -in, LGPL ou compatível com LGPL para a biblioteca de suporte). Uma ampla variedade de decodificadores, codificadores e filtros de vídeo e áudio está incluída.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GStreamer Good Plug-ins

Exigidas

gst-plugins-base-1.24.12

Recomendadas
Opcionais

AAlib-1.4rc5, GTK-3.24.48 (para exemplos), libdv-1.0.0, Qt-6.8.2, Speex-1.2.1, taglib-2.0.2, Valgrind-3.24.0, v4l-utils-1.28.1, Wayland-1.23.0, alsa-oss, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame e WavPack

Instalação do GStreamer Good Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Good Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release &&
ninja

Para testar os resultados, emita: ninja test. Um teste, elements_flvmux, é conhecido por falhar em alguns sistemas.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Vários plugins sob /usr/lib/gstreamer-1.0
Diretórios Instalados: /usr/share/gstreamer-1.0/presets

gst-plugins-bad-1.24.12

Introdução ao GStreamer Bad Plug-ins

O pacote GStreamer Bad Plug-ins contém um conjunto de plug-ins que não estão à altura dos demais. Eles podem estar perto de serem de boa qualidade, mas está faltando alguma coisa - seja uma boa revisão de código, alguma documentação, um conjunto de testes, um(a) mantenedor(a) real ao vivo ou algum uso realmente amplo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GStreamer Bad Plug-ins

Exigidas

gst-plugins-base-1.24.12

Recomendadas
Opcionais

BlueZ-5.79, cURL-8.12.1, faac-1.31, FAAD2-2.11.1, fdk-aac-2.0.3, GTK-3.24.48 (para exemplos), gst-plugins-good-1.24.12 (para um teste), JSON-GLib-1.10.6, Little CMS-2.17, libaom-3.12.0, libass-0.17.3, libexif-0.6.25 (para um teste), librsvg-2.59.2, libsoup-2.74.3 (para um teste), libsndfile-1.2.2, libssh2-1.11.1, libusb-1.0.27, libwebp-1.5.0, libxkbcommon-1.8.0, neon-0.34.0, Nettle-3.10.1 ou libgcrypt-1.11.0 (para suporte SSL no plugin hls; se ambos não estiverem instalados, o OpenSSL será usado), opencv-4.11.0 (com módulos adicionais), OpenJPEG-2.5.3, Opus-1.5.2, qrencode-4.1.1, SBC-2.0, sdl12-compat-1.2.68, Valgrind-3.24.0, ambos Vulkan-Loader-1.4.304 e glslc originário de shaderc-2024.4 (para plugin Vulkan), Wayland-1.23.0 (GTK-3.24.48 precisa ter sido compilado com suporte wayland), x265-4.1, zxing-cpp-2.3.0, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, ldacBT, libajantv2, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, Ferramentas MJPEG, mplex2, musepack, onnxruntime, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, WildMidi, WPE-WebKit, WPEBackend-fdo, ZBAR e ZVBI

Instalação do GStreamer Bad Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Bad Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D gpl=enabled      &&
ninja

Para testar os resultados, emita: ninja test. Vários testes precisam de um emulador de terminal em uma sessão gráfica. Um teste, elements_dash_mpd, é conhecido por falhar. Se gst-plugins-good-1.24.12 não estiver instalado, dois testes, elements_rtpsrc e elements_rtpsink, falharão.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gpl=enabled: Sem essa chave, plugins com dependências de bibliotecas licenciadas (A)GPL não são construídos.

Conteúdo

Aplicativos Instalados: gst-transcoder-1.0 e playout
Bibliotecas Instaladas: libgstadaptivedemux-1.0.so, libgstanalytics-1.0.so, libgstbadaudio-1.0.so, libgstbasecamerabinsrc-1.0.so, libgstcuda-1.0.so, libgstcodecparsers-1.0.so, libgstcodecs-1.0.so, libgstdxva-1.0.so, libgstinsertbin-1.0.so, libgstisoff-1.0.so, libgstmpegts-1.0.so, libgstmse-1.0.so, libgstphotography-1.0.so, libgstplay-1.0.so, libgstplayer-1.0.so, libgstsctp-1.0.so, libgsttranscoder-1.0.so, libgsturidownloader-1.0.so, libgstva-1.0.so, libgstwayland-1.0.so, libgstwebrtc-1.0.so e vários plugins sob /usr/lib/gstreamer-1.0
Diretórios Instalados: /usr/include/gstreamer-1.0/gst/{audio,basecamerabinsrc,cuda}, /usr/include/gstreamer-1.0/gst/{codecparsers,insertbin,interfaces}, /usr/include/gstreamer-1.0/gst/{isoff,mpegts,play,player,sctp} /usr/include/gstreamer-1.0/gst/{transcoder,uridownloader,va} e /usr/include/gstreamer-1.0/gst/{wayland,webrtc}

Descrições Curtas

gst-transcoder-1.0

é usado para transcodificar um fluxo em um formato diferente

playout

é um exemplo de aplicativo usado para reproduzir sequencialmente uma lista de arquivos de áudio e vídeo

gst-plugins-ugly-1.24.12

Introdução ao GStreamer Ugly Plug-ins

O GStreamer Ugly Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo boa qualidade e funcionalidade correta, mas distribuí-los pode causar problemas. A licença dos plug-ins ou das bibliotecas de suporte pode não ser como os(as) desenvolvedores(as) do GStreamer gostariam. O código pode ser amplamente conhecido por apresentar problemas de patente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GStreamer Ugly Plug-ins

Exigidas

gst-plugins-base-1.24.12

Recomendadas
Opcionais

libmpeg2-0.5.1, libcdio-2.1.0 (para acesso à unidade de CD-ROM), Valgrind-3.24.0, hotdoc, libsidplay e Orc

Instalação do GStreamer Ugly Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Ugly Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D gpl=enabled      &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D gpl=enabled: Sem essa chave, plugins com dependências de bibliotecas licenciadas (A)GPL não são construídos.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Vários plugins sob /usr/lib/gstreamer-1.0
Diretórios Instalados: Nenhum(a)

gst-libav-1.24.12

Introdução ao GStreamer Libav

O pacote GStreamer Libav contém plug-ins GStreamer para Libav (uma bifurcação do FFmpeg).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do GStreamer Libav

Exigidas

FFmpeg-7.1 e gst-plugins-base-1.24.12

Recomendadas
Opcionais

hotdoc

Instalação do GStreamer Libav

Instale o GStreamer Libav executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release &&
ninja

Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgstlibav.so em /usr/lib/gstreamer-1.0
Diretório Instalado: Nenhum(a)

id3lib-3.8.3

Introdução ao id3lib

id3lib é uma biblioteca para leitura, escrita e manipulação de contêineres de dados multimídia id3v1 e id3v2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Instalação do Id3lib

Instale o id3lib executando os seguintes comandos:

patch -Np1 -i ../id3lib-3.8.3-consolidated_patches-1.patch &&

libtoolize -fc                &&
aclocal                       &&
autoconf                      &&
automake --add-missing --copy &&

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install  &&
cp doc/man/* /usr/share/man/man1 &&

install -v -m755 -d /usr/share/doc/id3lib-3.8.3 &&
install -v -m644 doc/*.{gif,jpg,png,ico,css,txt,php,html} \
                    /usr/share/doc/id3lib-3.8.3

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: id3convert, id3cp, id3info e id3tag
Biblioteca Instalada: libid3.so
Diretórios Instalados: /usr/include/id3 e /usr/share/doc/id3lib-3.8.3

Descrições Curtas

id3convert

converte entre formatos de rotulagem id3v1/v2

id3cp

extrai rótulos id3v1/v2 a partir de arquivos de áudio digital

id3info

imprime o conteúdo de rótulo id3v1/v2

id3tag

é um utilitário para editar rótulos id3v1/v2

libid3.so

fornece funções para os aplicativos de edição de rótulos id3v1/v2, bem como outros aplicativos e bibliotecas externos(as)

intel-media-driver-24.4.4

Introdução ao intel-media-driver

O pacote intel-media-driver fornece um controlador VA API para GPUs da Intel que são fornecidas com CPUs Broadwell e superiores. Isso inclui suporte para uma variedade de codecs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Nota

No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia).

Dependências do intel-media-driver

Exigidas

CMake-3.31.5, gmmlib-22.5.5, libva-2.22.0 e Ambiente de construção do "Xorg"

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo. Recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      <*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                         [DRM_I915]

Instalação do intel-media-driver

Nota

Esse pacote leva muito tempo para construir porque compila código específico para cada geração individual de GPUs da Intel e para uma variedade de codificadores de mídia.

Se conhecer o modelo da tua GPU Intel, você pode passar a opção -D{GEN{8,9,11,12},MTL,ARL,LNL,BMG,XE2_HPG}=OFF para o comando cmake, mas deixando a opção para tua GPU de fora. Observe que o número GEN aqui é a geração da GPU, não da CPU. Por exemplo, com uma CPU Intel Core i7-1065G7 que envia uma GPU Intel de 11ª geração, a opção -D{GEN{8,9,12},MTL,ARL,LNG,BMG,XE2_HPG}=OFF pode ser usada, de forma que o código específico para as outras gerações de GPUs Intel não seria construído.

Para determinar o modelo da GPU Intel, instale pciutils-3.13.0 e execute lspci -nn | grep -Ei 'VGA|DISPLAY' primeiro. Ele exibirá algumas informações acerca da GPU, incluindo o ID do fornecedor PCI (8086 para Intel) e o ID do dispositivo PCI. Por exemplo, com uma CPU Intel Core i5-11300H, a saída gerada é 8086:9a49. Agora, procurando pelo registro desse ID de dispositivo na árvore do fonte intel-media-driver:

grep -ri 'RegisterDevice(0x9a49'

E determine o modelo de GPU a partir do nome do arquivo que contém o registro. Para o exemplo acima, o nome do arquivo é media_sysinfo_g12.cpp, indicando que o modelo é GEN12.

Instale intel-media-driver executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$XORG_PREFIX \
      -D INSTALL_DRIVER_SYSCONF=OFF        \
      -D BUILD_TYPE=Release                \
      -G Ninja                             \
      -W no-dev ..                         &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libigfxcmrt.so
Controladores Instalados: iHD_drv_video.so
Diretórios Instalados: /usr/include/igfxcmrt

Descrições Curtas

libigfxcmrt.so

fornece funções de API que permitem executar núcleos de GPU no mecanismo de renderização

intel-vaapi-driver-2.4.1

Introdução ao intel-vaapi-driver

O pacote intel-vaapi-driver contém um controlador VA API para GPUs Intel que são fornecidos com CPUs Haswell e anteriores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do intel-vaapi-driver

Exigidas

libva-2.22.0 e Ambiente de construção do "Xorg"

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo. Recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
      <*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                         [DRM_I915]

Instalação do intel-vaapi-driver

Instale o controlador executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Controlador Instalado: i965_drv_video.so

Liba52-0.8.0

Introdução ao Liba52

liba52 é uma biblioteca livre para decodificação de fluxos ATSC A/52 (também conhecido como AC-3). O padrão A/52 é usado em diversas aplicações, incluindo televisão digital e DVD.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Opcionais

djbfft

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/liba52

Instalação do Liba52

Instale o liba52 executando os seguintes comandos:

./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --enable-shared         \
            --disable-static        \
            CFLAGS="${CFLAGS:--g -O3} -fPIC" &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
cp liba52/a52_internal.h /usr/include/a52dec &&
install -v -m644 -D doc/liba52.txt \
    /usr/share/doc/liba52-0.8.0/liba52.txt

Explicações do Comando

CFLAGS="${CFLAGS:--g -O3} -fPIC": Isso anexa -fPIC a CFLAGS, mas usa - g -O3 (o padrão desse pacote) em vez de uma sequência vazia de caracteres quando CFLAGS não estiver configurada. Isso é necessário para compilar liba52 sem realocação de texto em tempo de execução. A realocação de texto em tempo de execução é proibida no x86_64, de forma que -fPIC é estritamente exigido. No x86 de 32 bits, a realocação de texto em tempo de execução é permitida, mas é insegura e pode desperdiçar RAM física; portanto, -fPIC ainda é melhor.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

cp liba52/a52_internal.h ...: Copiar esse arquivo de cabeçalho para /usr/include/a52dec permite que alguns outros aplicativos (como o xine-lib) compilem e vinculem contra uma liba52 instalada no sistema.

Conteúdo

Aplicativos Instalados: a52dec e extract_a52
Biblioteca Instalada: liba52.so
Diretórios Instalados: /usr/include/a52dec e /usr/share/doc/liba52-0.8.0

Descrições Curtas

a52dec

reproduz fluxos de áudio ATSC A/52

extract_a52

extrai áudio ATSC A/52 a partir de um fluxo MPEG

liba52.so

fornece funções para os aplicativos que lidam com fluxos ATSC A/52

Libao-1.2.0

Introdução ao Libao

O pacote libao contém uma biblioteca de áudio multiplataforma. Isso é útil para produzir áudio em uma ampla variedade de plataformas. Atualmente suporta arquivos WAV, Open Sound System (OSS), Enlighten Sound Daemon (ESD), Advanced Linux Sound Architecture (ALSA), Network Audio System (NAS), analog Real-Time Synthesizer (aRTS) e PulseAudio (arquitetura de som GNOME de próxima geração).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/ao/libao-1.2.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9f5dd20d7e95fd0dd72df5353829f097

  • Tamanho da transferência: 456 KB

  • Espaço em disco estimado exigido: 3,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Libao

Opcionais

um ambiente gráfico, alsa-lib-1.2.13 e PulseAudio-17.0

Instalação do Libao

Primeiro, corrija um problema do gcc-14:

sed -i '/limits.h/a #include <time.h>' src/plugins/pulse/ao_pulse.c

Instale o libao executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 README /usr/share/doc/libao-1.2.0

Configurando a Libao

Arquivos de Configuração

/etc/libao.conf e ~/.libao

Informação de Configuração

Atualmente, a única opção de configuração disponível é a de configurar o dispositivo de saída padrão. Emita man libao.conf para detalhes.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libao.so e plugins sob /usr/lib/ao/plugins-4
Diretórios Instalados: /usr/include/ao, /usr/lib/ao e /usr/share/doc/libao-1.2.0

Descrições Curtas

libao.so

fornece funções para aplicativos que desejam emitir som em plataformas suportadas

libaom-3.12.0

Introdução ao libaom

O pacote libaom contém uma versão de referência do codificador de vídeo Alliance for Open Media. Esse codificador é uma alternativa livre de patente ao H.265 e está começando a ser usado em toda a Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informações do Pacote

  • Transferência (HTTP): https://storage.googleapis.com/aom-releases/libaom-3.12.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: aabd9c71c7d52c837ec276156d5a953f

  • Tamanho da transferência: 5,2 MB

  • Espaço em disco estimado exigido: 121 MB (adicionar 1,2 GB para os testes)

  • Tempo de construção estimado: 1,2 UPC (com paralelismo=4, adicionar 155 UPC para testes)

Dependências do libaom

Recomendadas
Opcionais

Doxygen-1.13.2

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do libaom

Instale o libaom executando os seguintes comandos:

mkdir aom-build &&
cd    aom-build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_SHARED_LIBS=1       \
      -D ENABLE_DOCS=no            \
      -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja testdata && ninja runtests. Observe que os testes tomam um tempo extremamente longo para executar.

Agora, como o(a) usuário(a) root:

ninja install &&
rm -v /usr/lib/libaom.a

Explicações do Comando

-D BUILD_SHARED_LIBS=1: Essa chave constrói versões compartilhadas das bibliotecas.

-D ENABLE_DOCS=no: Essa chave desabilita a construção da documentação porque ela falha devido a uma incompatibilidade com a versão mais recente do Doxygen-1.13.2.

-D ENABLE_NASM=yes: Use essa chave se você tiver ambos, yasm-1.3.0 e NASM-2.16.03, instalados e desejar usar nasm em vez do yasm.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libaom.so
Diretórios Instalados: /usr/include/aom

Descrições Curtas

libaom.so

contém funções que fornecem uma implementação de referência do codificador AV1

libass-0.17.3

Introdução ao libass

libass é um renderizador de legendas portável para o formato de legendas Advanced Substation Alpha/Substation Alpha (ASS/SSA) que permite legendas mais avançadas que o SRT convencional e formatos similares.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libass

Exigidas

FreeType-2.13.3 e FriBidi-1.0.16

Recomendadas
Opcionais

harfBuzz-10.4.0 e libunibreak

Instalação do libass

Instale o libass executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-fontconfig: Use essa chave se você não instalou o Fontconfig.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libass.so
Diretório Instalado: /usr/include/ass

Descrições Curtas

libass.so

fornece as funções usadas para renderizar o formato de legenda ASS/SSA

libcanberra-0.30

Introdução ao libcanberra

libcanberra é uma implementação das Especificações de Nome e de Tema de Som XDG, para gerar sons de eventos em áreas de trabalho livres, tais como o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do libcanberra

Exigidas

libvorbis-1.3.7

Recomendadas
Opcionais

PulseAudio-17.0, GTK+-2 e tdb

Tema de Som Recomendado (tempo de execução)

Instalação do libcanberra

Primeiro, aplique um remendo para corrigir um problema que causa o travamento de alguns aplicativos em ambientes de área de trabalho baseados em Wayland:

patch -Np1 -i ../libcanberra-0.30-wayland-1.patch

Instale o libcanberra executando os seguintes comandos:

./configure --prefix=/usr --disable-oss &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/libcanberra-0.30 install

Explicações do Comando

--disable-oss: desabilita o suporte opcional e obsoleto a OSS

--disable-gtk3: desabilita suporte opcional para GTK+-3

Conteúdo

Aplicativos Instalados: canberra-boot e canberra-gtk-play
Bibliotecas Instaladas: libcanberra-gtk3.so e libcanberra.so
Diretórios Instalados: /usr/lib/libcanberra-0.30, /usr/share/doc/libcanberra-0.30 e /usr/share/gtk-doc/html/libcanberra

Descrições Curtas

canberra-gtk-play

é um aplicativo usado para reproduzir eventos sonoros

libcanberra-gtk3.so

contém as ligações libcanberra para GTK+ 3

libcanberra.so

contém as funções da API da libcanberra

libcddb-1.3.2

Introdução ao libcddb

A libcddb é uma biblioteca que implementa os diferentes protocolos (CDDBP, HTTP, SMTP) para acessar dados em um servidor CDDB.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libcddb/libcddb-1.3.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8bb4a6f542197e8e9648ae597cd6bc8a

  • Tamanho da transferência: 384 KB

  • Espaço em disco estimado exigido: 3,9 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do libcddb

Por padrão esse pacote acessa freedb.org, que já está fechado. Modifique o padrão para usar gnudb.gnudb.org e corrija dois arquivos de dados de teste obsoletos:

sed -e '/DEFAULT_SERVER/s/freedb.org/gnudb.gnudb.org/' \
    -e '/DEFAULT_PORT/s/888/&0/'                       \
    -i include/cddb/cddb_ni.h                          &&
sed '/^Genre:/s/Trip-Hop/Electronic/' -i tests/testdata/920ef00b.txt &&
sed '/DISCID/i# Revision: 42'         -i tests/testcache/misc/12340000

Corrija um problema de construção com gcc-14 e posterior:

sed -i 's/size_t l;/socklen_t l;/' lib/cddb_net.c

Instale o libcddb executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check -k. A suíte de teste precisa de conexão com a Internet. Um teste falha devido à ausência do servidor de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: cddb_query
Biblioteca Instalada: libcddb.so
Diretórios Instalados: /usr/include/cddb

Descrições Curtas

cddb_query

fornece uma interface de usuário(a) para um servidor CDDB

libcdio-2.1.0

Introdução ao libcdio

A libcdio é uma biblioteca para acesso a CD-ROM e imagens de CD. A biblioteca libcdio-cdparanoia associada lê o áudio a partir do CD-ROM diretamente como dados, sem nenhuma etapa analógica entre eles, e escreve os dados em um arquivo ou canal como .wav, .aifc ou como PCM bruto linear de 16 bits.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: aa7629e8f73662a762f64c444b901055

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 53 MB (ambos os pacotes, incluindo verificações)

  • Tempo de construção estimado: 0,2 UPC (usando paralelismo=4; ambos os pacotes, incluindo verificações)

Transferências Adicionais

Dependências do libcdio

Opcionais

libcddb-1.3.2

Instalação do libcdio

Instale o libcdio executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check -k. Um teste chamado realpath é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Agora instale a libcdio-paranoia:

tar -xf ../libcdio-paranoia-10.2+2.0.2.tar.bz2 &&
cd libcdio-paranoia-10.2+2.0.2 &&

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: cdda-player, cd-drive, cd-info, cd-paranoia, cd-read, iso-info, iso-read e mmc-tool
Biblioteca Instalada: libcdio.so, libcdio++.so, libcdio_cdda, libcdio_paranoia, libiso9660, libiso9660++ e libudf.so
Diretórios Instalados: /usr/include/cdio e /usr/include/cdio++

Descrições Curtas

cd-drive

mostra as características da unidade de CD-ROM

cd-info

mostra informações a respeito de um CD ou imagem de CD

cd-paranoia

é um utilitário de leitura de CD de áudio que inclui recursos extras de verificação de dados

cd-read

lê informações a partir de um CD ou imagem de CD

cdda-player

é um reprodutor Curses simples de CD

iso-info

mostra informações a respeito de uma imagem ISO 9660

iso-read

lê partes de uma imagem ISO 9660

mmc-tool

emite comandos multimídia da libcdio

libcdio.so

contém as principais funções da API do cdio

libdvdcss-1.4.3

Introdução ao libdvdcss

libdvdcss é uma biblioteca simples projetada para acessar DVDs como um dispositivo de bloco sem ter que se preocupar com a desencriptação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libdvdcss

Opcionais (para criar documentação)

Doxygen-1.13.2

Instalação do libdvdcss

Instale o libdvdcss executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdcss-1.4.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdcss.so
Diretórios Instalados: /usr/include/dvdcss e /usr/share/doc/libdvdcss-1.4.3

Descrições Curtas

libdvdcss.so

fornece a funcionalidade exigida para acesso transparente ao DVD com desencriptação CSS

Libdvdread-6.1.3

Introdução ao Libdvdread

libdvdread é uma biblioteca que fornece uma base simples para leitura de DVDs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Libdvdread

Instale o libdvdread executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdread-6.1.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdread.so
Diretórios Instalados: /usr/include/dvdread e /usr/share/doc/libdvdread-6.1.3

Descrições Curtas

libdvdread.so

fornece funcionalidade exigida para acessar DVDs

Libdvdnav-6.1.1

Introdução ao Libdvdnav

libdvdnav é uma biblioteca que permite uso fácil de recursos sofisticados de navegação de DVD, incluindo menus de DVD, reprodução multiangulo e até jogos interativos de DVD.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Libdvdnav

Exigidas

libdvdread-6.1.3

Instalação do Libdvdnav

Instale o libdvdnav executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdnav-6.1.1 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdnav.so
Diretórios Instalados: /usr/include/dvdnav e /usr/share/doc/libdvdnav-6.1.1

Descrições Curtas

libdvdnav.so

é a biblioteca de navegação de DVD

Libdv-1.0.0

Introdução ao Libdv

O Quasar DV Codec (libdv) é um software CODEC para vídeo DV, o formato de codificação usado pela maioria das filmadoras digitais. Ele pode ser usado para copiar vídeos a partir de filmadoras usando uma conexão firewire (IEEE 1394).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libdv/libdv-1.0.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f895162161cfa4bb4a94c070a7caa6c7

  • Tamanho da transferência: 574 KB

  • Espaço em disco estimado exigido: 6,0 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do Libdv

Opcionais

popt-1.19, sdl12-compat-1.2.68 e um ambiente gráfico

Instalação do Libdv

Instale o libdv executando os seguintes comandos:

./configure --prefix=/usr \
            --disable-xv \
            --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d      /usr/share/doc/libdv-1.0.0 &&
install -v -m644 README* /usr/share/doc/libdv-1.0.0

Explicações do Comando

--disable-xv: Esse parâmetro é exigido se um Sistema de Janelas X não estiver instalado. Também evita testes de configure para a libXv, a qual é usada somente para um aplicativo obsoleto, playdv, que não será construído com os cabeçalhos atuais do linux e também precisaria de outras dependências obsoletas.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: dubdv, dvconnect e encodedv
Biblioteca Instalada: libdv.so
Diretórios Instalados: /usr/include/libdv e /usr/share/doc/libdv-1.0.0

Descrições Curtas

dubdv

insere áudio em um fluxo de vídeo digital

dvconnect

é um pequeno utilitário para enviar ou capturar dados brutos de e para a câmera de vídeo

encodedv

codifica uma série de imagens em um fluxo de vídeo digital

libdv.so

fornece funções para aplicativos que interagem com o Quasar DV CODEC

libgstgtk4 proveniente de gst-plugins-rs-1.24.12

Introdução ao libgstgtk4

O pacote libgstgtk4 contém uma biblioteca que vincula a estrutura de multimídia gstreamer ao GTK-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libgstgtk4

Exigidas

git-2.48.1, gst-plugins-base-1.24.12, GTK-4.16.12 e rustc-1.85.0

Nota

Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote

Instalação do libgstgtk4

Instale libgstgtk4 executando os seguintes comandos:

cd video/gtk4 &&
cargo build --release

Esse pacote não vem com uma suíte de teste, mas a funcionalidade básica dele pode ser testada depois da instalação.

Agora, como o(a) usuário(a) root:

install -vm755 ../../target/release/libgstgtk4.so /usr/lib/gstreamer-1.0

Para testar a funcionalidade básica do pacote, emita: gst-launch-1.0 videotestsrc num-buffers=60 ! gtk4paintablesink em um emulador gráfico de terminal. Ele deveria reproduzir um vídeo de teste em uma janela GTK-4 por 2 segundos.

Conteúdo

Aplicativos Instalados: None
Bibliotecas Instaladas: libgstgtk4.so
Diretórios Instalados: None

Descrições Curtas

libgstgtk4.so

fornece uma ligação entre GTK-4 e a estrutura de multimídia gstreamer

libmad-0.15.1b

Introdução ao libmad

libmad é um decodificador de áudio MPEG de alta qualidade com capacidade de saída de 24 bits.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1be543bc30c56fb6bea1d7bf6a64e66c

  • Tamanho da transferência: 491 KB

  • Espaço em disco estimado exigido: 4,2 MB

  • Tempo de construção estimado: 0,1 UPC

Transferências Adicionais

Instalação do libmad

Instale o libmad executando os seguintes comandos:

patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch                &&
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac &&
touch NEWS AUTHORS ChangeLog                                 &&
autoreconf -fi                                               &&

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Alguns pacotes verificam o arquivo pkg-config para libmad. Esse arquivo é particularmente necessário, de forma que o Cdrdao consiga reconhecer a libmad instalada.

Como o(a) usuário(a) root:

cat > /usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF

Explicações do Comando

touch NEWS AUTHORS ChangeLog: Evite que o autoreconf retorne um erro.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmad.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libmad.so

é uma biblioteca decodificadora de áudio MPEG

libmpeg2-0.5.1

Introdução ao libmpeg2

O pacote libmpeg2 contém uma biblioteca para decodificar fluxos de vídeo MPEG-2 e MPEG-1. A biblioteca é capaz de decodificar todos os fluxos MPEG que estejam em conformidade com certas restrições: parâmetros restritos para MPEG-1 e perfil principal para MPEG-2. Isso é útil para aplicativos e aplicações que necessitam decodificar fluxos de vídeo MPEG-2 e MPEG-1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libmpeg2

Opcionais

um ambiente gráfico e sdl12-compat-1.2.68

Instalação do libmpeg2

Instale o libmpeg2 executando os seguintes comandos:

sed -i 's/static const/static/' libmpeg2/idct_mmx.c &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static &&
make

Para testar os resultados, emita: make check. Para realizar um teste de regressão mais abrangente, veja-se o arquivo test/README na árvore do fonte.

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d /usr/share/doc/libmpeg2-0.5.1 &&
install -v -m644 README doc/libmpeg2.txt \
                    /usr/share/doc/libmpeg2-0.5.1

Explicações do Comando

sed -i ...: Esse sed corrige problemas com compiladores GCC recentes.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: corrupt_mpeg2, extract_mpeg2 e mpeg2dec
Bibliotecas Instaladas: libmpeg2.so e libmpeg2convert.so
Diretórios Instalados: /usr/include/mpeg2dec e /usr/share/doc/libmpeg2-0.5.1

Descrições Curtas

extract_mpeg2

extrai fluxos de vídeo MPEG a partir de um fluxo multiplexado

mpeg2dec

decodifica fluxos de vídeo MPEG1 e MPEG2

libmpeg2.so

contém funções de API usadas para decodificar fluxos de vídeo MPEG

libmpeg2convert.so

contém funções de API usadas para conversões de cores de fluxos de vídeo MPEG

libmusicbrainz-5.1.0

Introdução ao libmusicbrainz

O pacote libmusicbrainz contém uma biblioteca que te permite acessar os dados mantidos no servidor MusicBrainz.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do libmusicbrainz

Exigidas

CMake-3.31.5, libxml2-2.13.6 e neon-0.34.0

Opcionais

Doxygen-1.13.2

Instalação do libmusicbrainz

Primeiro, corrija um problema causado pelo CMake-3.18.0 e posteriores:

patch -Np1 -i ../libmusicbrainz-5.1.0-cmake_fixes-1.patch

Corrija também um problema causado pela libxml-2.12.x:

sed -e 's/xmlErrorPtr /const xmlError */'     \
    -i src/xmlParser.cc

Instale o libmusicbrainz executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release .. &&
make

Se você tiver instalado o Doxygen-1.13.2, opcionalmente construa a documentação da API:

doxygen ../Doxyfile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação da API, instale como o(a) usuário(a) root:

rm -rf /usr/share/doc/libmusicbrainz-5.1.0 &&
cp -vr docs/ /usr/share/doc/libmusicbrainz-5.1.0

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmusicbrainz5.so
Diretório Instalado: /usr/include/libmusicbrainz5 e /usr/share/doc/libmusicbrainz-5.1.0

Descrições Curtas

libmusicbrainz5.so

contém funções de API para acessar a base de dados MusicBrainz

libogg-1.3.5

Introdução ao libogg

O pacote libogg contém a estrutura de arquivo Ogg. Isso é útil para criar (codificar) ou reproduzir (decodificar) um fluxo físico de bits.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferências: 3178c98341559657a15b185bf5d700a5

  • Tamanho da transferência: 420 KB

  • Espaço em disco estimado exigido: 3,5 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Instalação do libogg

Instale o libogg executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libogg-1.3.5 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libogg.so
Diretórios Instalados: /usr/include/ogg e /usr/share/doc/libogg-1.3.5

Descrições Curtas

libogg.so

fornece as funções exigidas para aplicativos lerem ou escreverem fluxos de bits formatados em Ogg

libplacebo-7.349.0

Introdução ao libplacebo

O pacote libplacebo contém uma biblioteca para processamento de primitivos e sombreadores de imagem e vídeo. Também inclui um pipeline de renderização de alta qualidade que suporta OpenGL e Vulkan.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libplacebo

Exigidas

FFmpeg-7.1 e Glad-2.0.8

Recomendadas
Opcionais

Little CMS-2.17 libunwind-1.8.1, dovi_tool, Nuklear e xxHash

Instalação do libplacebo

Primeiro, corrija uma falha de construção que ocorre com glslang-15.0.0:

sed -e "20s/$/,/"                                         \
    -e "21i cxx.find_library('glslang', required: false)" \
    -i src/glsl/meson.build

Instale libplacebo executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D tests=true       \
      -D demos=false      &&
ninja

Para testar os resultados, emita: ninja test. Um teste, opengl_surfaceless.c, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D demos=false: Essa chave desabilita construir os programas de demonstração, porque construir plplay atualmente está quebrado.

-D tests=true: Essa chave habilita construir o código necessário para executar os testes.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libplacebo.so
Diretórios Instalados: /usr/include/libplacebo

Descrições Curtas

libplacebo.so

processa primitivos e sombreadores de imagem e vídeo e fornece um pipeline de renderização de alta qualidade para OpenGL e Vulkan

libsamplerate-0.2.2

Introdução ao libsamplerate

libsamplerate é um conversor de taxa de amostragem para áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libsamplerate

Opcionais

alsa-lib-1.2.13, libsndfile-1.2.2 e fftw-3.3.10 (para testes)

Instalação do libsamplerate

Instale o libsamplerate executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libsamplerate-0.2.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libsamplerate.so
Diretório Instalado: /usr/share/doc/libsamplerate-0.2.2

libsndfile-1.2.2

Introdução ao libsndfile

Libsndfile é uma biblioteca de rotinas C para leitura e escrita de arquivos contendo dados amostrados de áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libsndfile

Recomendadas
Opcionais

alsa-lib-1.2.13, LAME-3.100, mpg123-1.32.10, Speex-1.2.1 e SQLite-3.49.1

Instalação do libsndfile

Instale o libsndfile executando os seguintes comandos:

./configure --prefix=/usr    \
            --docdir=/usr/share/doc/libsndfile-1.2.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: sndfile-cmp, sndfile-concat, sndfile-convert, sndfile-deinterleave, sndfile-info, sndfile-interleave, sndfile-metadata-get, sndfile-metadata-set, sndfile-play e sndfile-salvage
Biblioteca Instalada: libsndfile.so
Diretório Instalado: /usr/share/doc/libsndfile-1.2.2

Descrições Curtas

sndfile-cmp

compara dois arquivos de áudio

sndfile-concat

concatena dois ou mais arquivos de áudio

sndfile-convert

converte um arquivo de som de um formato para outro

sndfile-deinterleave

divide um multicanal em vários arquivos de canal único

sndfile-info

exibe informações acerca de um arquivo de som

sndfile-interleave

converte vários arquivos de canal único em um arquivo multicanal

sndfile-metadata-get

recupera metadados a partir de um arquivo de som

sndfile-metadata-set

configura metadados em um arquivo de som

sndfile-play

reproduz um arquivo de som

sndfile-salvage

salva os dados de áudio a partir de arquivos WAV com mais de 4 GB de tamanho

libsndfile.so

contém as funções da API da libsndfile

libva-2.22.0

Introdução ao libva

O pacote libva contém uma biblioteca que fornece acesso ao processamento de vídeo acelerado por hardware, usando hardware para acelerar o processamento de vídeo para a finalidade de descarregar a unidade central de processamento (CPU) para decodificar e codificar vídeo digital comprimido. A interface de decodificação/codificação de vídeo VA API é independente de plataforma e sistema de janela, voltada para Direct Rendering Infrastructure (DRI) no Sistema de Janelas X, no entanto, também pode ser usada potencialmente com framebuffer direto e subsistemas gráficos para saída gerada de vídeo. O processamento acelerado inclui suporte para decodificação de vídeo, codificação de vídeo, combinação de sub imagem e renderização.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libva

Exigidas

Ambiente de construção do "Xorg" e libdrm-2.4.124

Recomendadas
Recomendadas (tempo de execução)

O controlador VA API adequado para o hardware em teu sistema: intel-vaapi-driver-2.4.1 (para GPUs da Intel fornecidas com CPUs Haswell ou anteriores), intel-media-driver-24.4.4 (para GPUs da Intel fornecidas com CPUs Broadwell ou posteriores) e Mesa-24.3.4 (fornecendo os controladores VA API r600, radeonsi e nouveau, para as GPUs Radeon HD 2xxx e posteriores da ATI/AMD, e GPUs suportadas da NVIDIA; existe uma dependência circular; leia-se a página do Mesa para informações acerca de como quebrá-la)

Opcionais

Doxygen-1.13.2, Wayland-1.23.0 e intel-gpu-tools

Instalação do libva

Instale o libva executando os seguintes comandos:

cd build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libva-drm.so, libva-glx.so, libva.so, libva-wayland.so e libva-x11.so
Diretório Instalado: $XORG_PREFIX/include/va

Descrições Curtas

libva.so

contém funções de API que fornecem acesso ao processamento de vídeo acelerado por hardware

Last updated on

libvdpau-1.5

Introdução ao libvdpau

O pacote libvdpau contém uma biblioteca que implementa a biblioteca VDPAU.

Video Decode and Presentation API for Unix (VDPAU) é uma biblioteca de fonte aberto (libvdpau) e API originalmente projetada pela NVIDIA para a série GeForce 8 dela e hardware de GPU posterior direcionado ao Sistema de Janelas X. Essa API da VDPAU permite que programas de vídeo transfiram partes do processo de decodificação de vídeo e pós-processamento de vídeo para o hardware de vídeo da GPU.

Atualmente, as partes capazes de serem transferidas pela VDPAU para a GPU são compensação de movimento (mo comp), transformação discreta inversa de cosseno (iDCT), decodificação de comprimento variável (VLD) e desbloqueio para vídeos codificados com MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Parte 2), H.264/MPEG-4 AVC e VC-1, WMV3/WMV9. Quais codificadores específicos desses podem ser transferidos para a GPU depende da versão do hardware da GPU; especificamente, para também decodificar os formatos MPEG-4 ASP (MPEG-4 Parte 2), Xvid/OpenDivX (DivX 4) e DivX 5, uma série GeForce 200M (2xxM) (a décima primeira geração de unidades de processamento gráfico GeForce da NVIDIA) ou mais recente hardware de GPU é exigido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libvdpau

Exigidas

Bibliotecas do Xorg

Recomendadas (tempo de execução)

O controlador VDPAU adequado para o hardware em teu sistema: libvdpau-va-gl-0.4.2 (para GPUs da Intel) e Mesa-24.3.4 (fornecendo os controladores VDPAU r600 , radeonsi e nouveau, para as GPUs Radeon HD 2xxx e posteriores da ATI/AMD, e GPUs suportadas da NVIDIA; o Mesa precisa ser construído depois desse pacote para esses controladores)

Opcionais

Doxygen-1.13.2, Graphviz-12.2.1 e texlive-20240312 ou install-tl-unx

Instalação do libvdpau

Instale o libvdpau executando os seguintes comandos:

mkdir build &&
cd   build &&

meson setup --prefix=$XORG_PREFIX .. &&
ninja

Para testar os resultados, emita: ninja test. Existe somente um teste para esse pacote, dlclose, e ele é conhecido por falhar em alguns sistemas.

Agora, como o(a) usuário(a) root:

ninja install

Se o doxygen estiver presente ao tempo da construção, coloque a documentação em um diretório versionado como o(a) usuário(a) root:

[ -e $XORG_PREFIX/share/doc/libvdpau ] && mv -v $XORG_PREFIX/share/doc/libvdpau{,1.5}

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libvdpau.so
Diretórios Instalados: $XORG_PREFIX/{include,lib}/vdpau

Descrições Curtas

libvdpau.so

contém funções para transferir partes do processo de decodificação de vídeo e pós-processamento de vídeo para o hardware de vídeo da GPU

Last updated on

libvdpau-va-gl-0.4.2

Introdução ao libvdpau-va-gl

O pacote libvdpau-va-gl contém uma biblioteca que implementa a biblioteca VDPAU. Libvdpau_va_gl usa OpenGL nos bastidores para acelerar o desenho e o dimensionamento e a VA-API (se disponível) para acelerar a decodificação de vídeo. Por enquanto, a VA-API está disponível em alguns chips da Intel e em alguns adaptadores de vídeo da AMD com a ajuda do controlador libvdpau.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência do Controlador Libvdpau-va-gl (HTTP): https://github.com/i-rinat/libvdpau-va-gl/archive/v0.4.2/libvdpau-va-gl-0.4.2.tar.gz

  • Transferência do Controlador Libvdpau-va-gl (FTP):

  • Soma de verificação MD5 da Transferência do Controlador Libvdpau-va-gl: 8db21dcfd5cd14c6ec51b992e20369dc

  • Tamanho da Transferência do Controlador Libvdpau-va-gl: 120 KB

  • Espaço em disco estimado exigido: 4,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 1,1 UPC para testes)

Dependências do libvdpau-va-gl

Exigidas

CMake-3.31.5, libvdpau-1.5, libva-2.22.0 e Mesa-24.3.4

Opcionais

Doxygen-1.13.2, Graphviz-12.2.1 e texlive-20240312 ou install-tl-unx

Instalação do libvdpau-va-gl

Instale o libvdpau-va-gl executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=$XORG_PREFIX .. &&
make

Para testar os resultados, emita: make check. Os testes precisam ser executados a partir de um ambiente do Xorg.

Agora, como o(a) usuário(a) root:

make install

Configuração

Para permitir que a libvdpau encontre libvdpau-va-gl, configure uma variável de ambiente. Como o(a) usuário(a) root:

echo "export VDPAU_DRIVER=va_gl" >> /etc/profile.d/xorg.sh

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libvdpau_va_gl.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libvdpau_va_gl.so

contém funções para implementar a estrutura de retaguarda do OpenGL para a API do VDPAU (Video Decode and Presentation API for Unix)

Last updated on

libvorbis-1.3.7

Introdução ao libvorbis

O pacote libvorbis contém um formato de codificação de áudio e música de uso geral. Isso é útil para criar (codificar) e reproduzir (decodificar) som em um formato aberto (livre de patente).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libvorbis

Exigidas

libogg-1.3.5

Opcionais

Doxygen-1.13.2 e texlive-20240312 (ou install-tl-unx) (especificamente, pdflatex e htlatex) para construir a documentação PDF

Instalação do libvorbis

Instale o libvorbis executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make -j1 check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.3.7

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-docs: Essa chave habilita construir a documentação em formatos diferentes do HTML fornecido.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libvorbis.so, libvorbisenc.so e libvorbisfile.so
Diretórios Instalados: /usr/include/vorbis e /usr/share/doc/libvorbis-1.3.7

Descrições Curtas

libvorbis.so

fornece as funções usadas para ler e escrever arquivos de som

libvpx-1.15.0

Introdução ao libvpx

Esse pacote, originário do projeto WebM, fornece as implementações de referência do Codificador VP8 (usado na maioria dos vídeos HTML5 atuais) e do Codificador VP9 de próxima geração.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/webmproject/libvpx/archive/v1.15.0/libvpx-1.15.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6d2b7b8e1c06f4b10ae63ca22491f8a4

  • Tamanho da transferência: 5,4 MB

  • Espaço em disco estimado exigido: 68 MB (adicionar 1,6 GB para os testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; adicionar aproximadamente 11 UPC para testes usando paralelismo=4, incluindo tempo de transferência)

Dependências do libvpx

Recomendadas
Opcionais

cURL-8.12.1 (para baixar arquivos de teste) e Doxygen-1.13.2 (para construir documentação)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote

Instalação do libvpx

Instale o libvpx executando os seguintes comandos:

sed -i 's/cp -p/cp/' build/make/Makefile &&

mkdir libvpx-build            &&
cd    libvpx-build            &&

../configure --prefix=/usr    \
             --enable-shared  \
             --disable-static &&
make

Para testar os resultados, emita: LD_LIBRARY_PATH=. make test. A suíte de teste baixa muitos arquivos como parte do processo de teste dela. Algumas partes usarão todos os elementos de processamento disponíveis.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ... : Esse comando corrige a titularidade de propriedade e as permissões dos arquivos instalados.

mkdir libvpx-build && cd libvpx-build: Os(As) desenvolvedores(as) da libvpx recomendam construir em um diretório de construção dedicado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-vp8: Essa chave impede construir suporte para o codificador VP8.

--disable-vp9: Essa chave impede construir suporte para o codificador VP9.

--target=generic-gnu: Essa chave desabilita otimizações específicas para x86 e x86-64, permitindo construir esse pacote sem nasm e yasm instalados.

LD_LIBRARY_PATH=.: Isso é necessário para a suíte de teste usar a biblioteca que foi recém construída.

Conteúdo

Aplicativos Instalados: vpxdec e vpxenc
Bibliotecas Instaladas: libvpx.so
Diretórios Instalados: /usr/include/vpx

Descrições Curtas

vpxdec

é o decodificador VP8 e VP9 do Projeto WebM

vpxenc

é o codificador VP8 e VP9 do Projeto WebM

libvpx.so

fornece funções para usar os codificadores de vídeo VP8 e VP9

mlt-7.30.0

Introdução ao mlt

O pacote mlt é o Media Lovin Toolkit. Ele é uma estrutura multimídia de fonte aberto, projetada e desenvolvida para difusão televisiva. Ela fornece um kit de ferramentas para emissoras, editores de vídeo, reprodutores de mídia, transcodificadores, transmissores da web e muitos mais tipos de aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências de mlt

Exigidas

frei0r-plugins-1.8.0 e Qt-6.8.2

Opcionais

Doxygen-1.13.2, fftw-3.3.10, libexif-0.6.25, SDL2-2.30.11, JACK, MOVEit, SoX e vid.stab

Instalação do mlt

Instale mlt executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D MOD_QT=OFF                \
      -D MOD_QT6=ON                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste. No entanto, um arquivo .mp4 de teste pode ser reproduzido em um ambiente gráfico local com ./out/bin/melt <nome_arquivo>.mp4.

Nota

Esse aplicativo usa recursos gráficos avançados. Em alguns casos, firmware para o teu adaptador gráfico específico possivelmente seja necessário. Veja-se “Firmware para Placas de Vídeo” para mais informações.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: melt-7 e melt (link simbólico para melt-7)
Bibliotecas Instaladas: libmlt-7.so, libmlt++-7.so e mais que vinte plugins
Diretórios Instalados: /usr/include/mlt-7, /usr/lib/mlt-7, /usr/lib/cmake/Mlt7 e /usr/share/mlt-7

Descrições Curtas

melt

é uma ferramenta de teste para mlt

Opus-1.5.2

Introdução ao Opus

Opus é um formato de compressão de áudio com perdas desenvolvido pela Internet Engineering Task Force (IETF) que é particularmente adequado para fala interativa e transmissão de áudio pela Internet. Esse pacote fornece a biblioteca de desenvolvimento e cabeçalhos do Opus.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c40b3a1fbdbb9a7aa178600b88200c76

  • Tamanho da transferência: 7,4 MB

  • Espaço em disco estimado exigido: 33 MB (com testes)

  • Tempo de construção estimado: 0,5 UPC (com testes)

Opcionais

Doxygen-1.13.2 e texlive-20240312 (ou install-tl-unx)

Instalação do Opus

Instale o Opus executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr        \
            --buildtype=release  \
            -D docdir=/usr/share/doc/opus-1.5.2 &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libopus.so
Diretório Instalado: /usr/include/opus e /usr/share/doc/opus-1.5.2

Descrições Curtas

libopus.so

fornece as funções usadas para ler e escrever no formato Opus

Pipewire-1.2.7

Introdução ao Pipewire

O pacote pipewire contém um servidor e uma API de espaço de usuário(a) para lidar com pipelines de multimídia. Isso inclui uma API universal para conectar-se a dispositivos multimídia, bem como compartilhar arquivos multimídia entre aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Pipewire

Recomendadas
Opcionais

alsa-lib-1.2.13, Avahi-0.8, fdk-aac-2.0.3, FFmpeg-7.1, libcanberra-0.30, libdrm-2.4.124 (para um exemplo e suporte a libcamera), libxcb-1.17.0, libsndfile-1.2.2, libusb-1.0.27, Opus-1.5.2, SDL2-2.30.11 (para alguns exemplos), Valgrind-3.24.0, Vulkan-Loader-1.4.304, Bibliotecas do Xorg, Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação), ffado, JACK, LC3plus, ldacBT, libcamera, libmysofa, lilv e xmltoman

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/pipewire

Instalação do Pipewire

Instale o pipewire executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                 \
      --prefix=/usr            \
      --buildtype=release      \
      -D session-managers="[]" &&
ninja

Para testar o resultado, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D session-managers="[]": Essa chave permite especificar-se os gerenciadores de sessão para construir-se como subprojetos. Nós especificamos uma lista vazia para evitar que meson baixe qualquer cópia externa dos gerenciadores de sessão. Um gerenciador de sessão do Pipewire recomendado pelos(as) desenvolvedores(as) do PipeWire para uso geral, Wireplumber-0.5.8, está disponível como um pacote do BLFS separado. Construa-o depois de instalar Pipewire se você precisar executar o processo de segundo plano do Pipewire (por exemplo, para a finalidade de suportar Snapshot-47.1).

-D docs=true: Essa chave habilita a geração de documentação HTML. As dependências opcionais para documentação precisam estar instaladas para isso funcionar.

-D man=true: Essa chave habilita a geração de páginas de manual. As dependências opcionais para documentação precisam estar instaladas para isso funcionar.

-D ffmpeg=enabled: Essa chave habilita usar FFmpeg para conversão de áudio como uma estrutura de retaguarda SPA.

-D vulkan=enabled: Essa chave habilita usar Vulkan para renderização de vídeo como uma estrutura de retaguarda do SPA.

Conteúdo

Aplicativos Instalados: pipewire, pw-cat, pw-cli, pw-config, pw-dot, pw-dump, pw-jack, pw-link, pw-loopback, pw-metadata, pw-mididump, pw-mon, pw-profiler, pw-reserve, pw-top, pw-v4l2, spa-acp-tool, spa-inspect, spa-json-dump, spa-monitor, spa-resample e pipewire-aes67, pipewire-avb, pipewire-pulse (links simbólicos para pipewire), pw-dsdplay, pw-encplay, pw-midiplay, pw-midirecord, pw-play, pw-record (links simbólicos para pw-cat)
Bibliotecas Instaladas: libpipewire-0.3.so e 60 módulos abaixo de /usr/lib/pipewire-0.3 e /usr/lib/spa-0.2
Diretórios Instalados: /usr/include/pipewire-0.3, /usr/include/spa-0.2, /usr/lib/alsa-lib, /usr/lib/pipewire-0.3, /usr/lib/spa-0.2, /usr/share/alsa-card-profile, /usr/share/pipewire e /usr/share/spa-0.2

Descrições Curtas

pipewire

é um serviço que permite o acesso a dispositivos multimídia e permite o compartilhamento de arquivos multimídia entre aplicativos

pipewire-pulse

inicia uma versão compatível com Pulseaudio do serviço pipewire

pw-cat

permite que você reproduza ou grave mídia usando uma instância do pipewire

pw-cli

permite que você interaja com uma instância do pipewire

pw-config

permite que você interaja com o sistema de configuração do pipewire para propósitos de depuração ou verificação de sintaxe

pw-dot

lista todos os processos de segundo plano e objetos em uso pelo pipewire

pw-dump

despeja mensagens de depuração provenientes de uma instância local ou remota do pipewire para o console

pw-jack

executa aplicativos JACK em uma instância do pipewire

pw-link

conecta as portas do pipewire

pw-loopback

inicializa um link de loopback entre duas portas pipewire. Isso é útil para testar e depurar

pw-metadata

inspeciona, adiciona e remove metadados de objetos

pw-mididump

despeja mensagens MIDI procedentes de um arquivo para a tela

pw-mon

permite que você monitore instâncias de pipewire

pw-profiler

rastreia o uso de memória e chamadas de API usadas pelo pipewire

pw-reserve

reserva ou monitora um dispositivo via D-Bus

pw-top

exibe informações de desempenho em tempo real oriundas do pipewire

pw-v4l2

executa aplicativos v4l2 em uma instância de pipewire

spa-acp-tool

inspeciona o perfil da placa de uma determinada placa de som

spa-inspect

permite você inspecionar plugins do pipewire

spa-json-dump

despeja a configuração atual do pipewire no formato JSON

spa-monitor

permite você monitorar plugins do pipewire

spa-resample

reamostra um determinado arquivo

libpipewire-0.3.so

contém funções de API para lidar com pipelines multimídia

PulseAudio-17.0

Introdução ao PulseAudio

PulseAudio é um sistema de som para Sistemas Operacionais POSIX, significando que ele é um proxy para aplicativos de som. Ele permite que você execute operações avançadas sobre teus dados de som à medida que eles passam entre teu aplicativo e teu hardware. Operações como transferir o áudio para uma máquina diferente, mudar o formato da amostra ou a contagem de canais e misturar vários sons em um são facilmente realizadas usando-se um servidor de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do PulseAudio

Exigidas

libsndfile-1.2.2

Recomendadas
Opcionais

Avahi-0.8, BlueZ-5.79, Doxygen-1.13.2 (para documentação), fftw-3.3.10, gst-plugins-base-1.24.12, GTK-3.24.48, libsamplerate-0.2.2, SBC-2.0 (suporte a Bluetooth), Valgrind-3.24.0, JACK, libasyncns, LIRC, ORC, soxr, TDB e WebRTC AudioProcessing

Instalação do PulseAudio

Instale o PulseAudio executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D database=gdbm    \
            -D doxygen=false    \
            -D bluez5=disabled  \
            ..                  &&
ninja

Para testar os resultados, emita: ninja test. Um teste falha se os testes não forem executados como o(a) usuário(a) root, mas isso pode ser ignorado.

Agora, como o(a) usuário(a) root:

ninja install

Executar o PulseAudio como um processo de segundo plano abrangente a todo o sistema é possível, mas não recomendado. Veja-se https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ para mais informações. Enquanto ainda como o(a) usuário(a) root, remova o arquivo de configuração do D-Bus para o processo de segundo plano abrangente a todo o sistema, para evitar criar usuários(as) e grupos de sistema desnecessários(as):

rm /usr/share/dbus-1/system.d/pulseaudio-system.conf

Nota

Se você tiver instalado Wireplumber-0.5.8, certifique-se de seguir os comandos para desabilitar o servidor Pulseaudio para evitar conflitos com Pipewire.

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D bluez5=disabled: Essa chave evita um erro de tempo de execução se dbus-1.16.0 e SBC-2.0 estiverem instalados, mas BlueZ-5.79 não estiver instalado. Remova isso se você tiver instalado todos os três pacotes.

-D doxygen=false: Isso permite que o pacote compile se Doxygen-1.13.2 não estiver instalado. Remova isso se você tiver instalado isso e desejar construir a documentação.

Configurando o PulseAudio

Arquivos de Configuração

Existem arquivos de configuração abrangentes a todo o sistema: /etc/pulse/daemon.conf, /etc/pulse/client.conf, /etc/pulse/default.pa e arquivos de configuração de usuário(a) com os mesmos nomes em ~/.config/pulse. Os arquivos de configuração de usuário(a) tem precedência sobre os abrangentes a todo o sistema.

Informação de Configuração

Você possivelmente tenha que configurar o sistema de áudio. Você pode iniciar o pulseaudio no modo de linha de comando usando pulseaudio -C e então listar várias informações e mudar as configurações. Veja-se man pulse-cli-syntax.

Se o pulseaudio estava funcionando, mas você não mais tem som, depois de verificar problemas de hardware (alto-falantes ou fones de ouvido não conectados, amplificador externo não conectado), possivelmente precise corrigi-lo.

Uma sugestão é a de fechar o aplicativo, como o firefox onde o som parou de funcionar, e então executar: pactl list short sinks seguido de: pacmd set-default-sink <sink #> e reiniciar o aplicativo.

Se isso não funcionar, uma abordagem mais drástica geralmente funciona. Depois de fechar o aplicativo, feche o pulseaudio, usando pulseaudio --kill ou, se isso falhar, killall -KILL pulseaudio e então rm -rf ~/.config /pulse/* (e talvez também rm -rf ~/.pulse/*, se você tiver usado uma versão muito antiga do pulse nessa máquina), então execute pulseaudio --verbose para reiniciá-lo. Se o processo de segundo plano iniciar, reinicie o aplicativo. Veja-se man pulseaudio para mais opções.

Conteúdo

Aplicativos Instalados: pacat, pacmd, pactl, padsp, pamon (link simbólico para pacat), paplay (link simbólico para pacat), parec (link simbólico para pacat), parecord (link simbólico para pacat), qpaeq, pasuspender, pax11publish, pulseaudio e start-pulseaudio-x11
Bibliotecas Instaladas: libpulse.so, libpulse-mainloop-glib.so, libpulse-simple.so, libpulsecommon-17.0.so, libpulsecore-17.0.so e libpulsedsp.so
Diretórios Instalados: /etc/pulse, /usr/include/pulse, /usr/lib/cmake/PulseAudio, /usr/lib/{pulseaudio,pulse-17.0}, /usr/libexec/pulse e /usr/share/pulseaudio

Descrições Curtas

pacat

reproduz ou grava fluxos de áudio brutos ou codificados em um servidor de som PulseAudio

pacmd

é uma ferramenta usada para reconfigurar um servidor de som PulseAudio durante o tempo de execução

pactl

é usado para controlar um servidor de som PulseAudio em execução

padsp

é o envolucrador OSS do PulseAudio

pamon

é um link simbólico para pacat

paplay

é usado para reproduzir arquivos de áudio em um servidor de som PulseAudio

parec

é um link simbólico para pacat

parecord

é um link simbólico para pacat

pasuspender

é uma ferramenta que pode ser usada para informar a um servidor de som PulseAudio local para suspender temporariamente o acesso para os dispositivos de áudio, o que permite que outros aplicativos os acessem diretamente

pax11publish

é o Utilitário de Credencial do X11 do PulseAudio

pa-info

é um conjunto de comandos sequenciais de shell que imprime diversas informações relacionadas ao servidor Pulseaudio atualmente em uso

pulseaudio

é um servidor de som, de baixa latência, em rede de intercomunicação, para Linux

qpaeq

é uma interface de equalizador para coletores de equalizador PulseAudio (exige fftw-3.3.10 ao tempo da construção)

start-pulseaudio-x11

inicia o PulseAudio e o registra no gerenciador de sessão do X11

SBC-2.0

Introdução ao SBC

O pacote SBC é um codificador e decodificador de áudio digital usado para transferir dados para dispositivos de saída de áudio Bluetooth, como fones de ouvido ou alto-falantes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/sbc-2.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5613357181daeffd71e971c6f8470f8d

  • Tamanho da transferência: 268 KB

  • Espaço em disco estimado exigido: 2,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do SBC

Opcionais

libsndfile-1.2.2

Instalação do SBC

Instale o SBC executando os seguintes comandos:

./configure --prefix=/usr --disable-static --disable-tester &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-tester: Isso desabilita o testador SBC. Remova-o se você tiver instalado libsndfile-1.2.2.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: sbcdec, sbcenc e sbcinfo
Biblioteca Instalada: libsbc.so
Diretório Instalado: /usr/include/sbc

Descrições Curtas

sbcdec

é um utilitário decodificador SBC

sbcenc

é um utilitário codificador SBC

sbcinfo

é um analisador de Subband Codec (SBC)

libsbc.so

contém as funções da API do SBC

sdl12-compat-1.2.68

Introdução ao sdl12-compat

A Simple DirectMedia Layer (abreviadamente SDL) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores. Esse código é uma camada de compatibilidade; ele fornece uma API compatível de binário e fonte para aplicativos escritos contra a SDL 1.2, mas usa a SDL 2.0 nos bastidores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do SDL

Exigidas

CMake-3.31.5, GLU-9.0.3 e SDL2-2.30.11

Instalação do sdl12-compat

Instale o sdl12-compat executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=RELEASE  \
      ..  &&
make

Agora, como o(a) usuário(a) root:

make install &&
rm -vf /usr/lib/libSDLmain.a

Testando a SDL

Se desejar, teste a instalação do pacote sdlcompat usando os aplicativos de teste incluídos. Não é exigido instalar nenhum dos binários resultantes para validar a instalação.

Você precisará executar manualmente todos os aplicativos de teste (eles estão listados no arquivo README nesse diretório). Muitos deles precisarão ser eliminados manualmente e você precisará ligar teus alto-falantes com o volume em um nível adequado.

Conteúdo

Aplicativo Instalado: sdl-config
Bibliotecas Instaladas: libSDL.so
Diretórios Instalados: /usr/include/SDL

Descrições Curtas

sdl-config

determina os sinalizadores de compilação e de vinculador que deveriam ser usados para compilar e vincular aplicativos que usam a libSDL

libSDL.so

contém funções que fornecem links de compatibilidade para funções de baixo nível SDL2 para áudio, teclado, mouse, joystick, hardware 3D via OpenGL e o buffer de quadro 2D em várias plataformas

SDL2-2.30.11

Introdução ao SDL2

A Simple DirectMedia Layer Versão 2 (SDL2 para abreviar) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libsdl.org/release/SDL2-2.30.11.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bea190b480f6df249db29eb3bacfe41e

  • Tamanho da transferência: 7,2 MB

  • Espaço em disco estimado exigido: 188 MB (com documentos)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; com documentos)

Dependências do SDL2

Recomendadas
Opcionais

alsa-lib-1.2.13, Doxygen-1.13.2 (para criar documentação), ibus-1.5.31, libsamplerate-0.2.2, libunwind-1.8.1, NASM-2.16.03, pipewire-1.2.7, PulseAudio-17.0, um ambiente gráfico, DirectFB, fcitx, jack e sndio

Instalação do SDL2

Instale o SDL2 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você tiver o Doxygen-1.13.2 instalado e quiser construir a documentação HTML, execute os seguintes comandos:

pushd docs  &&
  doxygen   &&
popd

Nota

Se você desejar construir e executar os testes de regressão do pacote, não delete as bibliotecas estáticas abaixo até depois que os testes sejam construídos.

Agora, como o(a) usuário(a) root:

make install              &&
rm -v /usr/lib/libSDL2*.a

Se você construiu a documentação, instale-a como o(a) usuário(a) root:

install -v -m755 -d        /usr/share/doc/SDL2-2.30.11/html &&
cp -Rv  docs/output/html/* /usr/share/doc/SDL2-2.30.11/html

Testando a SDL2

Se desejar, teste a instalação do SDL2 usando os aplicativos de teste incluídos. Nenhum dos binários resultantes precisa ser instalado. Emita os seguintes comandos para construir os aplicativos de teste:

cd test &&
./configure &&
make

Cada um dos aplicativos de teste (eles estão listados no arquivo README nesse diretório) precisará ser executado individualmente. Muitos deles precisarão ser eliminados manualmente. Além disso, os alto-falantes precisam estar ligados e com o volume em um nível adequado.

Explicações do Comando

rm -v /usr/lib/libSDL2*.a: Normalmente bibliotecas estáticas podem ser desabilitadas com uma opção --disable-static para o configure, mas isso interrompe a construção nesse pacote.

Conteúdo

Aplicativo Instalado: sdl2-config
Bibliotecas Instaladas: libSDL2.so
Diretórios Instalados: /usr/include/SDL2, /usr/lib/cmake/SDL2 e /usr/share/doc/SDL-2.30.11

Descrições Curtas

sdl2-config

determina os sinalizadores de compilação e vinculador que deveriam ser usados para compilar e vincular aplicativos que usam a libSDL2

libSDL2.so

contém funções que fornecem acesso de baixo nível a áudio, teclado, mouse, joystick, hardware 3D via OpenGL e o buffer de quadro 2D em várias plataformas

sound-theme-freedesktop-0.8

Introdução ao Sound Theme Freedesktop

O pacote Sound Theme Freedesktop contém temas sonoros para a área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Instalação do Sound Theme Freedesktop

Instale o Sound Theme Freedesktop executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/sounds/freedesktop

SoundTouch-2.3.3

Introdução ao SoundTouch

O pacote SoundTouch contém uma biblioteca de processamento de áudio de fonte aberto que permite mudar os parâmetros de andamento, tom e taxa de reprodução do som independentemente uns dos outros.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.surina.net/soundtouch/soundtouch-2.3.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 489c1050315965f69a9c0ad949744d73

  • Tamanho da transferência: 596 KB

  • Espaço em disco estimado exigido: 7,6 MB

  • Tempo de construção estimado: 0,2UPC

Instalação do SoundTouch

Nota

O tarball se expande para 'soundtouch' em vez do esperado 'soundtouch-2.3.3'

Instale o SoundTouch executando os seguintes comandos:

Cuidado

O comando bootstrap abaixo falha se a variável de ambiente ACLOCAL estiver configurada conforme especificado em Xorg-7. Se ele for usado, ACLOCAL precisa estar desconfigurada para esse pacote e então reconfigurada para outros pacotes.

./bootstrap &&
./configure --prefix=/usr \
            --docdir=/usr/share/doc/soundtouch-2.3.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install 

Explicações do Comando

--enable-openmp: Essa chave adiciona suporte para execução de algoritmos em paralelo em vários elementos de processamento do processador usando a implementação OpenMP fornecida pela GCC.

Conteúdo

Aplicativo Instalado: soundstretch
Biblioteca Instalada: libSoundTouch.so
Diretórios Instalados: /usr/include/soundtouch e /usr/share/doc/soundtouch-2.3.3

Descrições Curtas

soundstretch

é um aplicativo para processar arquivos de áudio WAV, modificando as propriedades do ritmo do som, do tom e da taxa de reprodução independentemente umas das outras

libSoundTouch.so

contém funções da API do SoundTouch

Speex-1.2.1

Introdução ao Speex

Speex é um formato de compressão de áudio projetado especificamente para fala. Ele é bem adaptado a aplicações de Internet e oferece recursos úteis que não estão presentes na maioria dos outros CODECs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fe7bf610883ff202092b92c72fe0fe3e

  • Tamanho da transferência: 1020 KB

  • Espaço em disco estimado exigido: 7,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Transferências Adicionais

Dependências do Speex

Exigidas

libogg-1.3.5

Opcionais

Valgrind-3.24.0

Instalação do Speex

Esse pacote consiste de dois tarballs. Eles precisam ser extraídos e construídos independentemente.

Instale o Speex executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speex-1.2.1 &&
make

Esse pacote não vem com uma suíte de teste.

Como o(a) usuário(a) root:

make install

Agora extraia e instale o pacote speexdsp:

cd ..                          &&
tar -xf speexdsp-1.2.1.tar.gz &&
cd speexdsp-1.2.1             &&

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speexdsp-1.2.1 &&
make

Novamente, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: speexenc e speexdec
Bibliotecas Instaladas: libspeex.so e libspeexdsp.so
Diretórios Instalados: /usr/include/speex e /usr/share/doc/speex-1.2.1

Descrições Curtas

speexdec

decodifica um arquivo Speex e produz um arquivo WAV ou bruto

speexenc

codifica um arquivo WAV ou bruto usando o Speex

libspeex.so

fornece funções para os aplicativos de codificação/decodificação de áudio

libspeexdsp.so

é uma biblioteca de processamento de voz que acompanha o codificador Speex

Taglib-2.0.2

Introdução ao Taglib

Taglib é uma biblioteca usada para ler, escrever e manipular rótulos de arquivos de áudio e é usada por aplicativos como VLC.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://taglib.org/releases/taglib-2.0.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 95edea13107ac4cc07b7ad4bd1cb5cd1

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 16 MB

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)

Dependências do Taglib

Exigidas

CMake-3.31.5 e utfcpp-4.0.6

Opcionais (para testes)

Cppunit

Instalação do Taglib

Instale o Taglib executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D BUILD_SHARED_LIBS=ON \
      .. &&
make

A suíte de teste exige Cppunit, mas ele não é um pacote do BLFS.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: taglib-config
Bibliotecas Instaladas: libtag.so e libtag_c.so
Diretórios Instalados: /usr/include/taglib

Descrições Curtas

taglib-config

é uma ferramenta usada para imprimir informações a respeito da instalação do taglib

v4l-utils-1.28.1

Introdução ao v4l-utils

v4l-utils fornece uma série de utilitários para dispositivos de mídia, permitindo a habilidade de lidar com os formatos proprietários disponíveis a partir da maioria das câmeras de web (libv4l), e fornecendo ferramentas para testar dispositivos V4L.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do v4l-utils

Recomendadas
Opcionais

Doxygen-1.13.2, Qt-6.8.2 (para qv4l2 e qvidcap), SDL2-2.30.11, ambos LLVM-19.1.7 (com Clang e alvo BPF) e libbpf (para decodificadores de controle remoto infravermelho baseados em BPF) e SDL_image

Instalação do v4l-utils

Nota

Se você tiver instalado o LLVM e a libbpf (não no BLFS), ou habilite o alvo BPF (via -D LLVM_TARGETS_TO_BUILD=) quando construir o LLVM ou desabilite os decodificadores de controle remoto infravermelho baseados em BPF:

sed -i '/^ir_bpf_enabled/s/=.*/= false/' utils/keytable/meson.build

Instale o v4l-utils executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -D gconv=disabled   \
      -D doxygen-doc=disabled &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Se você também desejar instalar os programas contrib, adicione:

for prog in v4l2gl v4l2grab
do
   cp -v contrib/test/$prog /usr/bin
done

Explicações do Comando

-D gconv=disabled: Essa chave desabilita a instalação errada do gconv-modules que quebraria a glibc.

Conteúdo

Aplicativos Instalados: cec-compliance, cec-ctl, cec-follower, cx18-ctl, decode_tm6000, dvb-fe-tool, dvb-format-convert, dvbv5-daemon, dvbv5-scan, dvbv5-zap, ir-ctl, ir-keytable, ivtv-ctl, media-ctl, qv4l2, qvidcap, rds-ctl, v4l2-compliance, v4l2-ctl, v4l2-dbg, v4l2gl, v4l2grab e v4l2-sysfs-path
Biblioteca Instalada: libdvbv5.so, libv4l1.so, libv4l2.so, libv4l2rds.so, libv4lconvert.so, v4l1compat.so e v4l2convert.so
Diretórios Instalados: /etc/rc_keymaps, /lib/udev/rc_keymaps, /usr/include/libdvbv5 e /usr/lib/libv4l

Descrições Curtas

cx18-ctl

é uma ferramenta para lidar com dispositivos baseados em cx18

decode_tm6000

decodifica formatos multiplexados a partir de dispositivos USB TM5600/TM6000

dvb-fe-tool

é uma ferramenta de linha de comando para serviços de TV digital

dvb-format-convert

é uma ferramenta destinada a converter entre diferentes formatos de arquivo. Ela é compatível com a versão 5 da API do DVB

dvbv5-scan

é uma ferramenta, de linha de comando, de varredura de frequência, para serviços de TV digital compatível com a versão 5 da API do DVB

dvbv5-zap

é uma ferramenta, de linha de comando, de ajuste, para serviços de TV digital compatível com a versão 5 da API do DVB

ir-keytable

é uma ferramenta que lista os dispositivos de Controle Remoto; permite obter/configurar tabelas de código de teclas/código de escaneamento de IR, testar eventos gerados por IR e ajustar outras opções de Controle Remoto

ivtv-ctl

é um utilitário que pode controlar muitas configurações da placa, como mudar as entradas do sintonizador para svideo ou composto, configurar a resolução do vídeo ou mudar o modo de vídeo (PAL, SECAM, NTSC)

media-ctl

é um utilitário usado para configurar dispositivos V4L2

qv4l2

é usado para testar dispositivos de captura video4linux

qvidcap

é usado para capturar vídeo a partir de um dispositivo V4L2

rds-ctl

é um utilitário para decodificar dados RDS brutos a partir de dispositivos de Rádio V4L2 e oferece maneiras simples de acessar as informações RDS recebidas

v4l2-compliance

é uma ferramenta de teste de conformidade

v4l2-ctl

é uma ferramenta para controlar controles v4l2 a partir da linha de comandos

v4l2-dbg

é uma ferramenta para obter e configurar diretamente registradores de dispositivos v4l2

v4l2gl

captura imagens usando libv4l e as armazena como arquivos PPM

v4l2grab

captura imagens usando libv4l e as armazena como arquivos PPM, ao mesmo tempo que permite opções adicionais, como configurar a quantidade de quadros capturados e salvar o arquivo como um arquivo RAW

v4l2-sysfs-path

verifica os dispositivos de mídia instalados em uma máquina e os correspondentes nós de dispositivos

Wireplumber-0.5.8

Introdução ao Wireplumber

O pacote Wireplumber contém um gerenciador de sessões e políticas para Pipewire.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Wireplumber

Exigidas

elogind-255.17, GLib-2.82.5 e, pipewire-1.2.7

Recomendadas
Opcionais

Doxygen-1.13.2, lxml-5.3.1, sphinx-8.2.1, sphinx_rtd_theme-3.0.2 e Breathe

Instalação do Wireplumber

Instale Wireplumber executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D system-lua=true .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Por fim, renomeie o diretório de documentação para um diretório versionado como o(a) usuário(a) root:

mv -v /usr/share/doc/wireplumber{,-0.5.8}

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D system-lua=true: Essa chave habilita usar a versão do sistema de Lua. Omita essa chave se você não tiver instalado Lua, mas observe que meson baixará e instalará a própria versão dele.

Configurando Wireplumber

Informação de Configuração

Para a finalidade de que o Wireplumber seja usado pelo Pipewire, o Wireplumber e o Pipewire precisam ser configurados para iniciar quando um ambiente de área de trabalho for iniciado.

O Pipewire agora fornece a própria implementação dele de servidor Pulseaudio, o que causa conflitos de tempo de execução com o servidor fornecido pelo próprio Pulseaudio. Isso geralmente se apresenta por aplicativos travando ou com mau funcionamento ao tentar reproduzir ou gravar áudio e vídeo. Primeiro, evite que o Pulseaudio inicie a própria implementação dele de servidor executando os seguintes comandos como o(a) usuário(a) root:

rm -vf /etc/xdg/autostart/pulseaudio.desktop         &&
rm -vf /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 &&
sed -e '$a autospawn = no' -i /etc/pulse/client.conf

A seguir, crie um conjunto de comandos sequenciais de shell que iniciará o Wireplumber e o Pipewire, na ordem correta, como o(a) usuário(a) root:

cat > /usr/bin/pipewire-launcher.sh << "EOF"
#!/bin/sh
# Begin /usr/bin/pipewire-launcher.sh

# First, kill any previous instances of pipewire, wireplumber, or pipewire-pulse
# that are running. Multiple instances of the daemon can not be run at the same
# time, and this helps prevent possible errors if a user logs out or logs in
# too fast, and restores audio if Pipewire hangs and needs to be reset.

pkill -u ${USER} -fx /usr/bin/pipewire-pulse
pkill -u ${USER} -fx /usr/bin/wireplumber
pkill -u ${USER} -fx /usr/bin/pipewire

# Start Pipewire first.
exec /usr/bin/pipewire &

# Next, we need to wait until pipewire is up before starting wireplumber.
# This prevents a possible race condition where pipewire takes too long
# to start, as some users have run into.
while [ $(pgrep -f /usr/bin/pipewire) = "" ]; do
   sleep 1
done

# Start Wireplumber now that Pipewire has been started.
exec /usr/bin/wireplumber &

# Start the Pulseaudio server included with Pipewire.
exec /usr/bin/pipewire-pulse &

# End /usr/bin/pipewire-launcher.sh
EOF

A seguir, torne esse conjunto de comandos sequenciais de shell executável como o(a) usuário(a) root:

chmod +x /usr/bin/pipewire-launcher.sh

Finalmente, crie um arquivo de auto iniciação do XDG que executará /usr/bin/pipewire-launcher.sh quando um ambiente de área de trabalho for iniciado; como o(a) usuário(a) root:

cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Pipewire
Comment=Inicia os processos de segundo plano Pipewire e Wireplumber
Exec=/usr/bin/pipewire-launcher.sh
Terminal=false
Type=Application
EOF

Agora que o Wireplumber está configurado para iniciar quando um ambiente de área de trabalho for iniciado, é recomendado que você se deslogue da teu sessão e se logue novamente.

Conteúdo

Aplicativos Instalados: wireplumber, wpctl e wpexec
Bibliotecas Instaladas: libwireplumber-0.5.so
Diretórios Instalados: /usr/include/wireplumber-0.5, /usr/lib/wireplumber-0.5, /usr/share/wireplumber e /usr/share/doc/wireplumber-0.5.8

Descrições Curtas

wireplumber

é um gerenciador de sessões e políticas para o Pipewire

wpctl

controla e consulta informações originárias do Wireplumber

wpexec

executa conjuntos de comandos sequenciais do Wireplumber, que geralmente são escritos em Lua

libwireplumber-0.5.so

contém funções que permitem que outros programas controlem o Wireplumber

x264-20250212

Introdução ao x264

O pacote x264 fornece uma biblioteca para codificação de fluxos de vídeo no formato H.264/MPEG-4 AVC.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do x264

Recomendadas
Opcionais

ffms2, gpac ou liblsmash

Instalação do x264

Instale o x264 executando os seguintes comandos:

./configure --prefix=/usr \
            --enable-shared \
            --disable-cli &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-cli: Essa chave desabilita construir o codificador de linha de comando, que é redundante, pois exige o FFmpeg para a maioria dos formatos de entrada.

--disable-asm: Use essa chave se você não instalou o NASM.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libx264.so
Diretório Instalado: Nenhum(a)

Descrições Curtas

libx264.so

fornece as funções usadas para codificar fluxos de vídeo no formato H.264/MPEG-4 AVC

x265-4.1

Introdução ao x265

O pacote x265 fornece uma biblioteca para codificação de fluxos de vídeo no formato H.265/HEVC.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do x265

Exigidas

CMake-3.31.5

Recomendadas
Opcionais

numactl

Instalação do x265

Instale o x265 executando os seguintes comandos:

mkdir bld &&
cd    bld &&

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D GIT_ARCHETYPE=1           \
      -W no-dev                    \
      ../source                    &&
make

Esse pacote não vem com uma suíte de teste.

Para instalar o pacote, primeiro remova quaisquer versões antigas da biblioteca. Depois da instalação, remova uma biblioteca estática. Como o(a) usuário(a) root:

make install &&
rm -vf /usr/lib/libx265.a

Explicações do Comando

-W no-dev: Essa chave é usada para suprimir avisos destinados para os(as) desenvolvedores(as) do pacote.

-D GIT_ARCHETYPE=1: Essa chave é necessária porque o sistema de construção não gerará um arquivo de pkg-config ou instalará uma biblioteca compartilhada, a menos que git-2.48.1 esteja instalado. O Git não é exigido para mais nada nesse pacote, de forma que essa chave é usada para contornar isso para usuários(as) que não queiram instalar o Git como uma dependência de construção.

rm -vf /usr/lib/libx265.a: O BLFS não recomenda usar bibliotecas estáticas.

Conteúdo

Aplicativo Instalado: x265
Biblioteca Instalada: libx265.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libx265.so

fornece as funções usadas para codificar fluxos de vídeo no formato H.265/HEVC

xine-lib-1.2.13

Introdução ao Xine Libraries

O pacote Xine Libraries contém bibliotecas xine. Elas são úteis para interfacear com plugins externos que permitem o fluxo de informações a partir da fonte para o hardware de áudio e vídeo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/xine/xine-lib-1.2.13.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9e1be39857b7a3cd7cc0f2b96331ff22

  • Tamanho da transferência: 4,8 MB

  • Espaço em disco estimado exigido: 98 MB (com documentação da API)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com documentação da API)

Transferências Adicionais

Dependências do Xine Libraries

Exigidas

um ambiente gráfico, FFmpeg-7.1, e ao menos um de: alsa-lib-1.2.13, PulseAudio-17.0 ou JACK

Recomendadas
Opcionais

AAlib-1.4rc5, FAAD2-2.11.1, FLAC-1.5.0, gdk-pixbuf-2.42.12, GLU-9.0.3, ImageMagick-7.1.1-43, liba52-0.8.0, libdvdcss-1.4.3, libmad-0.15.1b, libmng-2.0.3, libnsl-2.0.1, libva-2.22.0 (exige GLU-9.0.3), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.15.0, Mesa-24.3.4, Samba-4.21.4, sdl12-compat-1.2.68, Speex-1.2.1, Doxygen-1.13.2 (para criar a documentação da API), v4l-utils-1.28.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, libtheora, musepack, VCDImager e WavPack,

Instalação do Xine Libraries

Primeiro, corrija a construção desse pacote com ffmpeg-7.0 e posterior:

patch -Np1 -i ../xine-lib-1.2.13-upstream_fixes-1.patch

Instale o Bibliotecas Xine executando os seguintes comandos:

./configure --prefix=/usr          \
            --disable-vcd          \
            --with-external-dvdnav \
            --docdir=/usr/share/doc/xine-lib-1.2.13 &&
make

Para criar a documentação da API, o Doxygen precisa estar instalado e emitir o seguinte comando:

doxygen doc/Doxyfile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Nota

Ao instalar, o Makefile faz alguma lincagem adicional. Se você não tem o Xorg em /usr, a variável LIBRARY_PATH precisa estar definida para o(a) usuário(a) root. Se usar sudo para assumir o root, use a opção -E para passar tuas variáveis de ambiente atuais para o processo de instalação.

Se você construiu a documentação da API, emita os seguintes comandos como o(a) usuário(a) root para instalá-la:

install -v -m755 -d /usr/share/doc/xine-lib-1.2.13/api &&
install -v -m644    doc/api/* \
                    /usr/share/doc/xine-lib-1.2.13/api

Explicações do Comando

--disable-vcd: Essa chave é exigida para compilar o Xine Lib sem o VCDImager instalado. Remova essa opção se você tiver instalado o VCDImager.

--with-external-dvdnav: Essa chave é exigida porque as bibliotecas internas não conseguem desencriptar DVD.

--docdir=/usr/share/doc/xine-lib-1.2.13: Essa chave faz com que a documentação seja instalada em um diretório versionado, em vez do padrão /usr/share/doc/xine-lib.

--disable-vaapi: use essa chave se libva-2.22.0 estiver instalado e GLU-9.0.3 não estiver, para evitar uma falha de construção.

Conteúdo

Aplicativos Instalados: xine-config e xine-list-1.2
Bibliotecas Instaladas: libxine.so e numerosos módulos de plugin e extensões de vídeo sob /usr/lib/xine/plugins/2.8
Fontes Instaladas: Fontes do mecanismo de exibição de saída localizadas em /usr/share/xine-lib/fonts
Diretórios Instalados: /usr/include/xine, /usr/lib/xine, /usr/share/xine-lib e /usr/share/doc/xine-lib-1.2.13

Descrições Curtas

xine-config

fornece informações para aplicativos que tentam se vincular às bibliotecas xine

xine-list-1.2

é usado para obter informações de tipo de arquivo suportado a partir da xine-lib

libxine.so

fornece a API para processar arquivos de áudio/vídeo

XviD-1.3.7

Introdução ao XviD

XviD é um CODEC de vídeo compatível com MPEG-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5c6c19324608ac491485dbb27d4da517

  • Tamanho da transferência: 804 KB

  • Espaço em disco estimado exigido: 7,1 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do XviD

Opcionais

yasm-1.3.0 ou NASM-2.16.03

Instalação do XviD

Nota

Esse tarball do pacote se expande para xvidcore, não para o esperado xvidcore-1.3.7.

Instale o XviD executando os seguintes comandos:

cd build/generic &&
sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in &&

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile &&
make install &&

chmod -v 755 /usr/lib/libxvidcore.so.4.3 &&
install -v -m755 -d /usr/share/doc/xvidcore-1.3.7/examples &&
install -v -m644 ../../doc/* /usr/share/doc/xvidcore-1.3.7 &&
install -v -m644 ../../examples/* \
    /usr/share/doc/xvidcore-1.3.7/examples

Explicações do Comando

sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in: Corrija erro durante make install se reinstalar ou atualizar.

sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile: Esse comando desabilita instalar a biblioteca estática.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libxvidcore.so
Diretório Instalado: /usr/share/doc/xvidcore-1.3.7

Descrições Curtas

libxvidcore.so

fornece funções para codificar e decodificar a maioria dos dados de vídeo MPEG-4

Capítulo 43. Utilitários de Áudio

Este capítulo contém aplicativos envolvidos com manipulação de arquivos de áudio; isto é, reproduzir, gravar, copiar e outras coisas comuns que as pessoas desejam fazer. Ele também inclui um pacote usado para transformar texto em fala usando o hardware de áudio do teu sistema. Para usar grande parte desse software, você precisará ter os controladores de som do núcleo instalados.

Audacious-4.4.2

Introdução ao Audacious

Audacious é um reprodutor de áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://distfiles.audacious-media-player.org/audacious-4.4.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5866219d45b199f882cb5c31aa320528

  • Tamanho da transferência: 624 KB

  • Espaço em disco estimado exigido: 16 MB (com suporte a GTK)

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; com suporte GTK)

Transferências Adicionais

Plugins Exigidos

Dependências do Audacious

Exigidas

GTK-3.24.48 e Qt-6.8.2

Recomendadas

libarchive-3.7.7

Opcionais

Valgrind-3.24.0

Recomendadas (para Plugins)
Opcionais (para Plugins)

alsa-lib-1.2.13, cURL-8.12.1, FAAD2-2.11.1, FLAC-1.5.0, LAME-3.100, libxml2-2.13.6, libcdio-2.1.0 (para identificar e reproduzir CDs), libnotify-0.8.4, libsndfile-1.2.2, libvorbis-1.3.7, pipewire-1.2.7, PulseAudio-17.0, SDL2-2.30.11, ampache-browser, adplug, A biblioteca Bauer stereophonic-to-binaural DSP (bs2b), FluidSynth, JACK (exige libsamplerate-0.2.2), libcue, libmodplug, libmms, libopenmpt, libsidplayfp, LIRC, sndio, SoX e WavPack

Instalação do Audacious

Instalação do Aplicativo Principal Audacious

Instale o Audacious executando os seguintes comandos (você possivelmente deseje mudar o carimbo de construção para outra sequência de caracteres):

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D gtk=true         \
            -D qt=true          \
            -D buildstamp=BLFS  \
            -D libarchive=true  \
            ..                  &&

ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Instalação dos Plugins do Audacious

Instale o pacote exigido de plugins emitindo os seguintes comandos:

tar -xf ../../audacious-plugins-4.4.2.tar.bz2 &&
cd audacious-plugins-4.4.2                    &&

mkdir build &&
cd    build &&

meson setup           \
  --prefix=/usr       \
  --buildtype=release \
  -D gtk=true         \
  -D qt=true          \
  ..                  &&

ninja

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-D buildstamp=BLFS: Essa chave acrescenta o texto fornecido à sequência de caracteres da versão.

-D gtk=true: Essa opção habilita suporte a GTK para a interface gráfica de usuário(a).

-D qt=true: Essa opção habilita suporte a Qt para a interface gráfica de usuário(a).

-D libarchive=true: Isso adiciona suporte para a libarchive, para leitura de conjuntos de módulos comprimidos ou skins.

-D valgrind=true: A opção habilita o suporte à análise Valgrind.

Conteúdo

Aplicativos Instalados: audacious e audtool
Bibliotecas Instaladas: libaudcore.so, libaudgui.so, libaudqt.so, libaudtag.so e várias bibliotecas de plugin sob subdiretórios /usr/lib/audacious/
Diretórios Instalados: /usr/include/{audacious,libaudcore,libaudgui,libaudqt}, /usr/lib/audacious e /usr/share/audacious

Descrições Curtas

audacious

é um reprodutor de áudio e é um descendente do XMMS

audtool

é uma pequena ferramenta para modificar o comportamento de uma instância audacious em execução

CDParanoia-III-10.2

Introdução ao CDParanoia

O pacote CDParanoia contém uma ferramenta de extração de áudio de CD. Isso é útil para extrair arquivos .wav a partir de CDs de áudio. Uma unidade de CDROM compatível com CDDA é necessária. Praticamente todas as unidades suportadas pelo Linux podem ser usadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia

Instalação do CDParanoia

Nota

Esse pacote não suporta construção paralela.

Instale o CDParanoia executando os seguintes comandos:

patch -Np1 -i ../cdparanoia-III-10.2-gcc_fixes-1.patch &&
./configure --prefix=/usr --mandir=/usr/share/man &&
make -j1

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
chmod -v 755 /usr/lib/libcdda_*.so.0.10.2 &&
rm -fv /usr/lib/libcdda_*.a

Conteúdo

Aplicativo Instalado: cdparanoia
Bibliotecas Instaladas: libcdda_interface.so e libcdda_paranoia.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

cdparanoia

é usado para 'ripar' um CD de áudio. Ripar é o processo de extrair digitalmente música a partir de um CD de áudio

libcdda_interface

contém funções usadas pelo cdparanoia, bem como outros pacotes, que podem identificar automaticamente se um dispositivo de CD é compatível com CDDA

libcdda_paranoia

contém funções usadas pelo cdparanoia, bem como outros pacotes, que fornecem verificação de dados, sincronização, tratamento de erros e capacidade aleatória de reconstrução

kwave-24.12.2

Introdução ao KWave

O pacote KWave contém um aplicativo Editor de Som baseado em KDE Frameworks.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do KWave

Exigidas

AudioFile-0.3.6, fftw-3.3.10, id3lib-3.8.3 e KDE Frameworks-6.11.0

Recomendadas
Opcionais

Doxygen-1.13.2

Instalação do KWave

Instale o KWave executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
      -D CMAKE_BUILD_TYPE=Release         \
      -D BUILD_TESTING=OFF                \
      -W no-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: kwave
Bibliotecas Instaladas: libkwave.so, libkwavegui.so e trinta (30) plugins
Diretórios Instalados: $KF6_PREFIX/lib/plugins/kwave, $KF6_PREFIX/share/kwave, $KF6_PREFIX/share/doc/HTML/*/kwave

Descrições Curtas

kwave

é um editor de som construído no KDE Frameworks

LAME-3.100

Introdução ao LAME

O pacote LAME contém um codificador de MP3 e, opcionalmente, um analisador de quadros de MP3. Isso é útil para criar e analisar arquivos de áudio comprimidos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lame/lame-3.100.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 83e260acbe4389b54fe08e0bdbf7cddb

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 9,7 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do LAME

Opcionais

Dmalloc, Electric Fence, libsndfile-1.2.2 e NASM-2.16.03

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/lame

Instalação do LAME

Evite que o diretório do código-fonte seja codificado rigidamente por engano como um caminho de pesquisa de biblioteca compartilhada nos programas instalados:

sed -i -e 's/^\(\s*hardcode_libdir_flag_spec\s*=\).*/\1/' configure

Instale o LAME executando os seguintes comandos:

./configure --prefix=/usr --enable-mp3rtp --disable-static &&
make

Para testar os resultados, emita: LD_LIBRARY_PATH=libmp3lame/.libs make test.

Agora, como o(a) usuário(a) root:

make pkghtmldir=/usr/share/doc/lame-3.100 install

Explicações do Comando

--enable-mp3rtp: Essa chave habilita construir o aplicativo de codificação para RTP.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-nasm: Essa opção habilita o uso do NASM-2.16.03 para compilar rotinas otimizadas de montagem para x86 de 32 bits. Observe que isso não tem efeito em x86_64.

Conteúdo

Aplicativos Instalados: lame e mp3rtp
Biblioteca Instalada: libmp3lame.so
Diretórios Instalados: /usr/include/lame e /usr/share/doc/lame-3.100

Descrições Curtas

lame

cria arquivos de áudio MP3 a partir de dados brutos PCM ou .wav

mp3rtp

é usado para codificar MP3 com transmissão RTP da saída gerada

libmp3lame.so

fornece as funções necessárias para converter arquivos brutos PCM e WAV para arquivos MP3

mpg123-1.32.10

Introdução ao mpg123

O pacote mpg123 contém um reprodutor de MP3 baseado em console. Ele afirma ser o decodificador de MP3 mais rápido para Unix.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/mpg123/mpg123-1.32.10.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f6d1a69dbf340c8d889b64772e8e0a61

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 16 MB (com testes)

  • Tempo de construção estimado: 0,2 UPC (com testes)

Dependências do mpg123

Recomendadas
Opcionais

PulseAudio-17.0, SDL2-2.30.11, JACK, OpenAL e PortAudio

Instalação do mpg123

Instale o mpg123 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: mpg123, mpg123-id3dump, mpg123-strip e out123
Bibliotecas Instaladas: libmpg123.so, libout123.so e libsyn123.so
Diretório Instalado: /usr/lib/mpg123

Descrições Curtas

mpg123

é usado para reproduzir arquivos MP3 por intermédio do console

mpg123-id3dump

é uma ferramenta para despejar metadados ID3 a partir de arquivos de áudio MPEG usando a libmpg123

mpg123-strip

extrai somente quadros MPEG a partir de um fluxo usando a libmpg123 (stdin para stdout)

out123

reproduz áudio PCM bruto para um dispositivo de saída

libmpg123.so

contém as funções da API do mpg123

libout123.so

contém as funções da API do out123

libsyn123.so

contém algumas funções de síntese de sinal de áudio e conversão de formato

pavucontrol-6.1

Introdução ao pavucontrol

PulseAudio Volume Control (pavucontrol) é uma ferramenta simples de controle de volume baseada em GTK ("mixer") para o servidor de som PulseAudio. Em contraste com as ferramentas clássicas de mixagem, essa te permite controlar o volume dos dispositivos de hardware e de cada fluxo de reprodução separadamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do pavucontrol

Exigidas

Gtkmm-4.16.0, JSON-GLib-1.10.6, libsigc++-3.6.0 e PulseAudio-17.0

Opcionais

libcanberra-0.30 e Lynx-2.9.2

Instalação do pavucontrol

Instale o pavucontrol executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D lynx=false .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install &&
mv /usr/share/doc/pavucontrol /usr/share/doc/pavucontrol-6.1

Explicações do Comando

-D lynx=false: Essa chave desabilita gerar o arquivo README em formato de texto. Remova essa chave se você quiser o arquivo README em formato de texto e tiver Lynx-2.9.2 instalado.

Conteúdo

Aplicativo Instalado: pavucontrol
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/pavucontrol e /usr/share/doc/pavucontrol-6.1

Descrições Curtas

pavucontrol

é uma ferramenta de configuração GUI para configurações de som usando o pulsaudio

pnmixer-0.7.2

Introdução ao Pnmixer

O pacote Pnmixer fornece um controle de volume leve com um ícone da bandeja.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Pnmixer

Exigidas

alsa-utils-1.2.13, GTK-3.24.48 e libnotify-0.8.4

Instalação do Pnmixer

Instale o Pnmixer executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr ..  &&
make

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: pnmixer
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/pnmixer

Descrições Curtas

pnmixer

é um controle de volume leve que se situa em uma bandeja

vorbis-tools-1.4.2

Introdução ao Vorbis Tools

O pacote Vorbis Tools contém ferramentas de linha de comando úteis para codificar, reproduzir ou editar arquivos usando o codec Ogg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Vorbis Tools

Exigidas

libvorbis-1.3.7

Opcionais (exigidas para construir o aplicativo ogg123)

libao-1.2.0

Opcionais

cURL-8.12.1, FLAC-1.5.0, Speex-1.2.1 e libkate

Instalação do Vorbis Tools

Primeiro, aplique um sed para corrigir um problema com gcc-14 e posterior:

sed -i '/i18n.h/i #include "utf8.h"' ogginfo/codec_skeleton.c

A seguir, aplique um sed para corrigir uma vulnerabilidade de segurança no 'oggenc':

sed -i 's/start+1,/start + strspn(start, PATH_SEPS),/' oggenc/platform.c

Instale o Vorbis Tools executando os seguintes comandos:

./configure --prefix=/usr --enable-vcut &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-vcut: Esse parâmetro é usado de forma que o aplicativo vcut seja construído como não é por padrão.

Configurando Ferramentas Vorbis

Arquivos de Configuração

/etc/libao.conf, ~/.libao e ~/.ogg123rc

Informação de Configuração

Emita man libao.conf para informações a respeito de configurar o dispositivo padrão de saída. Veja-se também /usr/share/doc/vorbis-tools-1.4.2/ogg123rc-example.

Conteúdo

Aplicativos Instalados: ogg123, oggdec, oggenc, ogginfo, vcut e vorbiscomment
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/vorbis-tools-1.4.2

Descrições Curtas

ogg123

é um reprodutor de áudio de linha de comando para fluxos Ogg Vorbis

oggdec

é um decodificador simples que converte arquivos Ogg Vorbis em arquivos de áudio PCM (WAV ou bruto)

oggenc

é um codificador que transforma arquivos brutos, WAV ou AIFF em um fluxo Ogg Vorbis

ogginfo

imprime informações armazenadas em um arquivo de áudio

vcut

divide um arquivo em dois arquivos em um ponto de corte designado

vorbiscomment

é um editor que muda informações nos rótulos de metadados do arquivo de áudio

Capítulo 44. Utilitários de Vídeo

Este capítulo sempre parece ser o capítulo favorito. Provavelmente é porque existe muita satisfação em reproduzir teu primeiro vídeo quando você tenha gasto tanto tempo para chegar a esse ponto. Todas aquelas bibliotecas, todas as configurações e tua recompensa é que você finalmente consiga assistir a um filme. Não se preocupe, todavia; sempre existe mais um CODEC para instalar.

FFmpeg-7.1

Introdução ao FFmpeg

FFmpeg é uma solução para gravar, converter e transmitir áudio e vídeo. Ela é um conversor de vídeo e áudio muito rápido e também pode adquirir a partir de uma fonte ao vivo de áudio/vídeo. Projetada para ser intuitiva, a interface de linha de comando (ffmpeg) tenta avaliar todos os parâmetros, quando possível. FFmpeg também pode converter de qualquer taxa de amostragem para qualquer outra e redimensionar o vídeo instantaneamente com um filtro polifásico de alta qualidade. FFmpeg pode usar uma fonte de vídeo compatível com Video4Linux e qualquer fonte de áudio Open Sound System.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ffmpeg.org/releases/ffmpeg-7.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 623aa63a72139a82ccb99cd6ee477b94

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 205 MB (adicionar 1,5 GB para a suíte/testes FATE; adicionar 869 MB para documentação)

  • Tempo de construção estimado: 1,2 UPC (usando paralelismo=4; adicionar 3,2 UPC (com THREADS=4) para executar a suíte FATE depois que arquivos de amostra forem baixados; adicionar 0,2 UPC para documentos doxygen)

Transferências Adicionais

Dependências do FFmpeg

Recomendadas
Recomendadas para uso de área de trabalho
Recomendadas para sistemas com Vídeo Intel
Opcionais

Doxygen-1.13.2, Fontconfig-2.16.0, FriBidi-1.0.16, frei0r-plugins-1.8.0, libcdio-2.1.0 (para identificar e reproduzir CDs), libdrm-2.4.124 (para entrada kmsgrab), libjxl-0.11.1, libwebp-1.5.0, OpenJPEG-2.5.3, GnuTLS-3.8.9, PulseAudio-17.0, Samba-4.21.4, Speex-1.2.1, texlive-20240312 (ou install-tl-unx) para documentação PDF e PS, v4l-utils-1.28.1, Vulkan-Loader-1.4.304, XviD-1.3.7, um ambiente gráfico, dav1d, Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (Git checkout), librtmp, libssh, libtheora, OpenAL, OpenCore AMR, Srt, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc e ZVBI

Instalação do FFmpeg

Primeiro, aplique um remendo que adicione uma API necessária para alguns pacotes construírem:

patch -Np1 -i ../ffmpeg-7.1-chromium_method-1.patch

Em seguida, corrija um problema causado pela versão mais recente do x265-4.1:

sed -e 's/X265_BUILD >= 210/(&) \&\& (X265_BUILD < 213)/' \
    -i libavcodec/libx265.c

Em seguida, corrija um problema causado pelo Texinfo 7.2:

patch -Np1 -i ../ffmpeg-7.1-texinfo_fix-1.patch

Instale o FFmpeg executando os seguintes comandos:

./configure --prefix=/usr        \
            --enable-gpl         \
            --enable-version3    \
            --enable-nonfree     \
            --disable-static     \
            --enable-shared      \
            --disable-debug      \
            --enable-libaom      \
            --enable-libass      \
            --enable-libfdk-aac  \
            --enable-libfreetype \
            --enable-libmp3lame  \
            --enable-libopus     \
            --enable-libvorbis   \
            --enable-libvpx      \
            --enable-libx264     \
            --enable-libx265     \
            --enable-openssl     \
            --ignore-tests=enhanced-flv-av1 \
            --docdir=/usr/share/doc/ffmpeg-7.1 &&

make &&

gcc tools/qt-faststart.c -o tools/qt-faststart

A documentação HTML foi construída na etapa anterior. Se você tiver o texlive-20240312 instalado e desejar construir versões PDF e Postscript da documentação, emita os seguintes comandos:

pushd doc &&
for DOCNAME in `basename -s .html *.html`
do
    texi2pdf -b $DOCNAME.texi &&
    texi2dvi -b $DOCNAME.texi &&

    dvips    -o $DOCNAME.ps   \
                $DOCNAME.dvi
done &&
popd &&
unset DOCNAME

Se você tiver o Doxygen-1.13.2 instalado e desejar construir (se --disable-doc foi usado) ou reconstruir a documentação HTML, emita:

doxygen doc/Doxyfile

Os testes da suíte FATE incluem comparações com arquivos instalados e não deveriam ser executados antes que o pacote esteja instalado. Portanto, se você desejar executá-los, as instruções são fornecidas mais abaixo.

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755    tools/qt-faststart /usr/bin &&
install -v -m755 -d           /usr/share/doc/ffmpeg-7.1 &&
install -v -m644    doc/*.txt /usr/share/doc/ffmpeg-7.1

Se a documentação PDF e Postscript foi construída, emita os seguintes comandos, como o(a) usuário(a) root, para instalá-las:

install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-7.1 &&
install -v -m644 doc/*.ps  /usr/share/doc/ffmpeg-7.1

Se você usou o doxygen para criar manualmente a documentação da API, instale-a emitindo os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/doc/ffmpeg-7.1/api                     &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-7.1/api                  &&
find /usr/share/doc/ffmpeg-7.1/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-7.1/api -type d -exec chmod -c 0755 \{} \;

Para testar a instalação corretamente, você precisa ter o rsync-3.4.1 instalado e seguir as instruções para o FFmpeg Automated Testing Environment (FATE). Primeiro, cerca de 1 GB de arquivos de amostra usados para executar o FATE são baixados com o comando:

make fate-rsync SAMPLES=fate-suite/

O diretório fate-suite é criado e os arquivos são baixados lá. Esse comando, atualmente, executa um comando rsync para obter os arquivos de amostra. Você possivelmente queira comprimir e manter esse diretório para testagem novamente, para testagem em outro sistema ou para quando uma nova versão do FFmpeg for lançada. Em seguida, desempacote os arquivos de amostra no diretório do fonte e execute o comando make fate-rsync ... acima para sincronizar com o repositório do(a) desenvolvedor(a). O tamanho e o tempo da transferência são drasticamente reduzidos com isso. Os valores estimados em "Informações do Pacote" não incluem o UPC de transferência. Algumas amostras possivelmente tenham sido removidas em versões mais recentes, de forma que, para a finalidade de ter certeza de que as amostras FATE locais e do servidor sejam idênticas, ao usar amostras salvas anteriormente, execute o seguinte comando:

rsync -vrltLW  --delete --timeout=60 --contimeout=60 \
      rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/

Em seguida, execute FATE com os seguintes comandos (existem mais que três mil e oitocentos (3.800) testes na suíte):

make fate THREADS=N SAMPLES=fate-suite/ | tee ../fate.log &&
grep ^TEST ../fate.log | wc -l

onde N é um inteiro, N ≤ número de elementos de processamento no sistema.

Uma execução bem-sucedida não deveria retornar erros ou avisos, apenas uma lista de testes e o valor total no final.

Explicações do Comando

find ... ;: Corrige permissões de arquivos e diretórios da documentação.

--enable-libfreetype: Habilita suporte a Freetype.

--enable-gpl: habilita o uso de código GPL e permite suporte para pós-processamento, swscale e muitos outros recursos.

--enable-version3: Habilita o uso do código (L)GPL versão 3.

--enable-nonfree: Habilita o uso de código não-livre. Observe que as bibliotecas e binários resultantes não serão redistribuíveis.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-shared: Habilita construir bibliotecas compartilhadas, caso contrário, somente bibliotecas estáticas serão construídas e instaladas.

--disable-debug: Desabilita construir símbolos de depuração nos aplicativos e bibliotecas.

--enable-libaom: Habilita decodificação de áudio e vídeo AV1 via libaom.

--enable-libass: Habilita a renderização do formato de legenda ASS/SSA via libass.

--enable-libdrm: Use essa chave, se o libdrm-2.4.124 estiver instalado, para construir o módulo de entrada kmsgrab, o qual é útil para captura ou transmissão de tela.

--enable-libfdk-aac: Habilita a codificação de áudio AAC via libfdk-aac.

--enable-libmp3lame: Habilita a codificação de áudio MP3 via libmp3lame.

--enable-libvorbis --enable-libvpx: Habilita codificação WebM via libvorbis e libvpx.

--enable-libx264: Habilita a codificação H.264/MPEG-4 AVC de alta qualidade via libx264.

--enable-libx265: Habilita a codificação H.265/HEVC de alta qualidade via libx265.

--enable-openssl: Habilita o protocolo HTTPS para fluxos de rede de intercomunicação.

--ignore-tests=...: Desabilita testes que falham para executar no BLFS sem os pacotes opcionais. Atualmente o teste AV1 está desabilitado porque precisa do dav1d para fazer decodificação AV1 na CPU. O teste pode funcionar se você tiver uma GPU que consiga decodificar AV1, mas isso não foi testado.

--enable-gnutls: Use essa opção, em vez de --enable-openssl, se você quiser usar GnuTLS em vez de OpenSSL para protocolo HTTPS.

--disable-doc: Desabilita construir documentação HTML. Isso somente é necessário se o Doxygen-1.13.2 estiver instalado e você não quiser construir a documentação HTML.

--enable-libpulse: Habilita suporte para Pulseaudio para saída de áudio.

gcc tools/qt-faststart.c -o tools/qt-faststart: Isso constrói o aplicativo qt-faststart, o qual pode modificar filmes formatados em QuickTime (.mov ou .mp4), de forma que as informações do cabeçalho estejam localizadas no início do arquivo, e não no final. Isso permite que o arquivo do filme comece a ser reproduzido antes que todo o arquivo tenha sido baixado.

Nota

O suporte para a maioria dos pacotes de dependências exige usar opções passadas para o conjunto de comandos sequenciais configure. Veja-se a saída gerada a partir de ./configure --help para informações completas relativas a habilitar pacotes de dependências.

Conteúdo

Aplicativos Instalados: ffmpeg, ffplay, ffprobe e qt-faststart
Bibliotecas Instaladas: libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libpostproc.so, libswresample.so e libswscale.so
Diretórios Instalados: /usr/include/libav{codec,device,filter,format,util}, /usr/include/libpostproc, /usr/include/libsw{resample,scale}, /usr/share/doc/ffmpeg-7.1 e /usr/share/ffmpeg

Descrições Curtas

ffmpeg

é uma ferramenta de linha de comando para converter arquivos de vídeo, fluxos de rede de intercomunicação e entrada gerada a partir de uma placa de TV para vários formatos de vídeo

ffplay

é um reprodutor de mídia muito simples e portável que usa as bibliotecas do ffmpeg e a biblioteca SDL

ffprobe

reúne informações a partir de fluxos multimídia e as imprime de forma legível por humanos e máquinas

qt-faststart

move o arquivo de índice para a frente dos vídeos quicktime (mov/mp4)

libavcodec.so

é uma biblioteca que contém os CODECs do FFmpeg (tanto codificação quanto decodificação)

libavdevice.so

é a biblioteca de manuseio de dispositivos do FFmpeg

libavfilter.so

é uma biblioteca de filtros que pode alterar vídeo ou áudio entre o decodificador e o codificador (ou saída gerada)

libavformat.so

é uma biblioteca que contém o manuseio dos formatos de arquivos (código mux e demux para diversos formatos) usados pelo ffplay além de permitir a geração de fluxos de áudio ou vídeo

libavresample.so

é uma biblioteca que contém funções para reamostragem de áudio e vídeo.

libavutil.so

é a biblioteca de utilitários do FFmpeg

libpostproc.so

é a biblioteca de pós-processamento do FFmpeg

libswresample.so

é a biblioteca de reescalonamento de áudio do FFmpeg; ela contém funções para converter formatos de amostra de áudio

libswscale.so

é a biblioteca de reescalonamento de imagens do FFmpeg

mpv-0.39.0

Introdução ao mpv

mpv é um reprodutor de mídia livre para a linha de comando. Ele suporta uma ampla variedade de formatos de arquivos de mídia, codificadores de áudio e vídeo e tipos de legendas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do mpv

Exigidas

alsa-lib-1.2.13, FFmpeg-7.1, libass-0.17.3, libplacebo-7.349.0, Mesa-24.3.4 e PulseAudio-17.0

Recomendadas
Controladores e Bibliotecas Opcionais de Entrada

libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1 e libbluray

Controladores e Bibliotecas Opcionais de Saída de Áudio

pipewire-1.2.7, SDL2-2.30.11, JACK e OpenAL

Controladores e Bibliotecas Opcionais de Saída de Vídeo

libcaca e SVGAlib

Opcionais (para documentação)

docutils-0.21.2

Instalação do mpv

Adicione uma correção para construir com FFMpeg > 7.0

sed -i 's/AV_OPT_TYPE_CHANNEL_LAYOUT/AV_OPT_TYPE_CHLAYOUT/' filters/f_lavfi.c

Instale mpv executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -D x11=enabled      \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

-D x11=enabled: permite vincular com as bibliotecas do X11.

-D dvdnav=enabled: habilita suporte para reprodução de DVD.

-D cdda=enabled: habilita suporte para áudio de CD.

-D sdl2=enabled: habilita o uso de SDL2 para saída de áudio e vídeo.

Configurando mpv

Arquivos de Configuração

/etc/mpv/* e ~/.config/mpv/*

Conteúdo

Aplicativos Instalados: mpv
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/mpv e /usr/share/doc/mpv

Descrições Curtas

mpv

é o reprodutor de vídeo mpv

VLC-3.0.21

Introdução ao VLC

VLC é um reprodutor, transmissor e codificador de mídia. Ele consegue reproduzir várias entradas, como arquivos, fluxos de rede de intercomunicação, dispositivos de captura, áreas de trabalho ou DVD, SVCD, VCD e CD de áudio. Ele consegue usar a maioria dos codificadores de áudio e vídeo (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.) e também consegue converter para diferentes formatos e (ou) enviar fluxos ao longo da rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://download.videolan.org/vlc/3.0.21/vlc-3.0.21.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cde72f38943c685a1a39acc82da2339f

  • Tamanho da transferência: 24 MB

  • Espaço em disco estimado exigido: 746 MB

  • Tempo de construção estimado: 1,9 UPC (usando paralelismo = 4; com testes)

Transferências Adicionais

Dependências do VLC

Recomendadas
Recursos e pacotes opcionais

dbus-1.16.0, libidn-1.42 e libssh2-1.11.1

Plugins opcionais de entrada

libarchive-3.7.7, libcddb-1.3.2, libdv-1.0.0, libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1, opencv-4.11.0, Samba-4.21.4, v4l-utils-1.28.1, libbluray, libdc1394, libnfs, libproxy, libraw1394, Live555 e VCDImager (exige libcdio-2.1.0)

Plugins opcionais mux/demux

libogg-1.3.5, Game Music Emu, libdvbpsi, libshout, libmatroska (exige libebml), libmodplug, Musepack e sidplay-libs

Plugins opcionais de codificar

FAAD2-2.11.1, FLAC-1.5.0, libaom-3.12.0, libass-0.17.3, libmpeg2-0.5.1, libpng-1.6.46, libva-2.22.0, libvorbis-1.3.7, Opus-1.5.2, Speex-1.2.1, libvpx-1.15.0, x264-20250212, aribb24, dav1d, Dirac, FluidLite, FluidSynth, libdca, libkate, libtheora, OpenMAX, Schroedinger, Shine, SoX, Tremor, Twolame e Zapping VBI

Plugins opcionais de vídeo

AAlib-1.4rc5, Fontconfig-2.16.0, FreeType-2.13.3, FriBidi-1.0.16, libplacebo-7.349.0 (atualmente quebrado), librsvg-2.59.2, libvdpau-1.5, sdl12-compat-1.2.68, libcaca e libmfx

Plugins opcionais de áudio

PulseAudio-17.0, libsamplerate-0.2.2, spatialaudio e JACK

Plugins opcionais de interface

FreeRDP-3.12.0, libtar, libvncclient e LIRC

Plugins opcionais de filtro de visualizações e de vídeo

Goom, libvsxu e projectM

Plugins opcionais de descoberta de serviço

Avahi-0.8, libmtp e libupnp

Opções diversas

GnuTLS-3.8.9, libnotify-0.8.4, libxml2-2.13.6, Protobuf-29.3, taglib-2.0.2, xdg-utils-1.2.1 (tempo de execução), AtmoLight, libmicrodns e Srt

Instalação do VLC

Primeiro, adicione correções para problemas do taglib-2.0 e ffmpeg-7 e posteriores:

patch -Np1 -i ../vlc-3.0.21-taglib-1.patch         &&
patch -Np1 -i ../vlc-3.0.21-fedora_ffmpeg7-1.patch

Instale o VLC executando os seguintes comandos:

BUILDCC=gcc ./configure --prefix=/usr --disable-libplacebo &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/vlc-3.0.21 install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

--disable-libplacebo: Essa chave é exigida para desabilitar suporte para usar libplacebo como um pipeline de renderização porque o VLC é incompatível com a versão mais recente da libplacebo.

--disable-vpx: Use essa chave para desabilitar a libvpx.

--disable-mad: Use essa chave se você não tiver a libmad instalada.

--disable-avcodec --disable-swscale: Use essas chaves se você não tiver o FFmpeg instalado.

--disable-a52: Use essa chave se você não tiver a liba52 instalada.

--disable-xcb: Use essa chave se você não tiver o Sistema de Janelas X instalado.

--disable-alsa: Use essa chave se você não tiver o ALSA instalado.

--disable-libgcrypt: Use essa chave se você não tiver a libgcrypt instalada.

--disable-sftp: O padrão é o de construir o módulo sftp se libssh2-1.11.1 estiver instalado. Use essa chave se você não quiser construir esse módulo.

Nota

Existem muitas opções para o comando configure do VLC. Verifique a saída gerada do configure --help para uma lista completa.

Conteúdo

Aplicativos Instalados: cvlc, nvlc, rvlc, svlc, vlc e vlc-wrapper
Bibliotecas Instaladas: libvlccore.so, libvlc.so e muitos plugins em /usr/lib/vlc/plugins
Diretórios Instalados: /usr/{include,lib,share}/vlc, /usr/share/kde4 e /usr/share/doc/vlc-3.0.21

Descrições Curtas

cvlc

é um conjunto de comandos sequenciais para executar o VLC com a interface fictícia

nvlc

é um conjunto de comandos sequenciais para executar o VLC com a interface ncurses

rvlc

é um conjunto de comandos sequenciais para executar o VLC com uma interface de linha de comando

svlc

é um conjunto de comandos sequenciais para executar o VLC com a interface de temas

vlc

é o reprodutor de mídia VLC

vlc-wrapper

é um envolucrador para eliminar privilégios com o VLC

xine-ui-0.99.14

Introdução ao Xine User Interface

O pacote xine User Interface contém um reprodutor multimídia. Ele reproduz CDs, DVDs e VCDs. Ele também decodifica arquivos multimídia como AVI, MOV, WMV, MPEG e MP3 a partir de unidades locais de disco e exibe multimídia transmitida pela Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Nota

Embora essa versão do xine-ui funcione com a maioria dos arquivos, ela não consegue abrir DVDs encriptados (com conteúdo embaralhado) com a versão atual da libdvdcss.

Informação do Pacote

Dependências do Xine User Interface

Exigidas

xine-lib-1.2.13 e shared-mime-info-2.4

Opcionais

cURL-8.12.1, AAlib-1.4rc5, LIRC e libcaca

Instalação do Xine User Interface

Instale o xine User Interface executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docsdir=/usr/share/doc/xine-ui-0.99.14 install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

docsdir=/usr/share/doc/xine-ui-0.99.14: Esse parâmetro faz com que a documentação do Xine UI seja instalada no diretório versionado /usr/share/doc/xine-ui-0.99.14, em vez do padrão /usr/share/doc/xine-ui.

Configurando o Xine User Interface

Arquivos de Configuração

~/.xine/config

Informação de Configuração

O arquivo acima é criado e pode ser mantido por meio da caixa de diálogo de configuração do xine. A documentação para as definições de configuração está localizada em /usr/share/doc/xine-ui-0.99.14/README.config_en.

Se você tiver uma placa de TV DVB, poderá assistir a TV com o comando xine dvb:// e mudar de canal com a roda de rolagem no teu mouse.

Conteúdo

Aplicativos Instalados: aaxine, cacaxine, fbxine, xine, xine-bugreport, xine-check e xine-remote
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/xine e /usr/share/doc/xine-ui-0.99.14

Descrições Curtas

aaxine

é um reprodutor de vídeo de arte ASCII que utiliza AAlib como interface para as bibliotecas xine

cacaxine

é um reprodutor de vídeo de arte colorida ASCII que utiliza CACA como interface para as bibliotecas xine

fbxine

é uma interface de Framebuffer para as bibliotecas xine

xine

é um reprodutor multimídia projetado para reproduzir fluxos MPEG (áudio e vídeo), fluxos elementares MPEG (MP3), fluxos de transporte MPEG, arquivos Ogg, arquivos AVI, arquivos ASF, alguns arquivos Quicktime, VCDs e DVDs

xine-bugreport

produz uma descrição concisa do sistema e orienta você ao longo do processo de informar um defeito

xine-check

testa a instalação do reprodutor de vídeo xine em busca de problemas comuns. Ele testa as configurações do sistema operacional, instalação de plugins, configurações da unidade de CD/DVD e parâmetros de suporte de vídeo

xine-remote

é uma ferramenta para conectar-se a um servidor de controle remoto xine

Capítulo 45. Utilitários de Escrita de CD/DVD

Este capítulo contém informações acerca de utilitários de escrita de CD/DVD no Linux.

Fontes adicionais de informação incluem:

Cdrdao-1.2.4

Introdução ao Cdrdao

O pacote Cdrdao contém utilitários de gravação de CD. Eles são úteis para gravar um CD no modo disco de uma vez.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Cdrdao

Recomendadas

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/cdrdao

Instalação do Cdrdao

Instale o Cdrdao executando os seguintes comandos:

./configure --prefix=/usr --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/cdrdao-1.2.4 &&
install -v -m644 README /usr/share/doc/cdrdao-1.2.4

Explicações do Comando

--mandir=/usr/share/man: Instale páginas de manual em /usr/share/man em vez de /usr/man.

Conteúdo

Aplicativos Instalados: cdrdao, cue2toc, toc2cddb, toc2cue e, opcionalmente, toc2mp3
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/cdrdao, /usr/share/doc/cdrdao-1.2.4

Descrições Curtas

cdrdao

grava CD-Rs de áudio ou dados no modo disk-at-once (DAO) baseado em uma descrição textual do conteúdo do CD

cue2toc

converte CUE para formato TOC para CDs de áudio

toc2cddb

converte um arquivo TOC do Cdrdao em um arquivo cddb e o imprime na stdout

toc2cue

converte TOC para formato CUE para CDs de áudio

toc2mp3

converte uma imagem de disco de CD de áudio (arquivo .toc) em arquivos MP3

Cdrtools-3.02a09

Introdução ao Cdrtools

O pacote Cdrtools contém utilitários de gravação de CD. Eles são úteis para ler, criar ou escrever (gravar) CDs, DVDs e discos Blu-ray.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Cdrtools

Exigidas

alsa-lib-1.2.13

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Cdrtools

Instalação do Cdrtools

Nota

Esse pacote não suporta construção paralela.

Instale o Cdrtools executando os seguintes comandos:

sed -i 's|/opt/schily|/usr|g'           DEFAULTS/Defaults.linux &&
sed -i 's|DEFINSGRP=.*|DEFINSGRP=root|' DEFAULTS/Defaults.linux &&
sed -i 's|INSDIR=\s*sbin|INSDIR=bin|'   rscsi/Makefile          &&

export GMAKE_NOWARN=true &&
export CFLAGS="$CFLAGS -std=gnu89 -fno-strict-aliasing" &&

make -j1 INS_BASE=/usr  \
         DEFINSUSR=root \
         DEFINSGRP=root \
         VERSION_OS="LinuxFromScratch"

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

GMAKE_NOWARN=true &&

make INS_BASE=/usr    \
     DEFINSUSR=root   \
     DEFINSGRP=root   \
     MANSUFF_LIB=3cdr \
     install          &&

install -v -m755 -d /usr/share/doc/cdrtools-3.02a09 &&
install -v -m644 README.* READMEs/* ABOUT doc/*.ps \
                    /usr/share/doc/cdrtools-3.02a09

Explicações do Comando

export GMAKE_NOWARN=true: Essa variável evita um aviso ao usar GNU make.

INS_BASE=/usr: Esse parâmetro move o diretório de instalação de /opt/schily para /usr.

DEFINSUSR=root DEFINSGRP=root: Esses parâmetros instalam todos os aplicativos com titularidade de propriedade root:root em vez do padrão bin:bin.

MANSUFF_LIB=3cdr: Esse parâmetro evita que o Cdrtools sobrescreva páginas importantes que já estão instaladas pelo LFS. As páginas de manual instaladas da seção 3 terão um sufixo 3cdr e podem ser mostradas usando man 3cdr <página de manual>.

Conteúdo

Aplicativos Instalados: btcflash, cdda2mp3, cdda2ogg, cdda2wav, cdrecord, devdump, isodebug, isodump, isoinfo, isovfy, mkhybrid, mkisofs, readcd, rscsi, scgcheck, scgskeleton
Bibliotecas Instaladas: libcdrdeflt.a, libdeflt.a, libedc_ecc.a, libedc_ecc_dec.a, libfile.a, libfind.a, libhfs.a, libmdigest.a, libparanoia.a, librscg.a, libscg.a, libscgcmd.a, libschily.a, libsiconv.a
Diretórios Instalados: /usr/lib/{profiled,siconv}, /usr/include/{scg,schily}, /usr/share/doc/cdda2wav,cdrecord,libparanoia,mkisofs,rscsi}

Descrições Curtas

btcflash

atualiza o firmware em gravadores de DVD+/-RW BTC DRW1008. Por favor, tenha cuidado com esse programa

cdda2wav

converte áudio de CD em arquivos de som WAV

cdrecord

grava áudio ou dados em Discos Compactos

devdump

é um aplicativo de diagnóstico usado para despejar um dispositivo ISO-9660 ou arquivo em hexadecimal

isodebug

é usado para exibir os parâmetros de linha de comando usados para criar uma imagem ISO-9660

isodump

é um aplicativo de diagnóstico usado para despejar um dispositivo ou arquivo baseado na ISO-9660

isoinfo

é usado para analisar ou listar uma imagem ISO-9660

isovfy

é usado para verificar uma imagem ISO-9660

mkhybrid

é um link simbólico para mkisofs usado para criar imagens híbridas de sistemas de arquivos ISO-9660/HFS

mkisofs

é usado para criar imagens de sistemas de arquivos ISO-9660/JOLIET/HFS, opcionalmente com atributos Rock Ridge

readcd

lê ou escreve Discos Compactos

rscsi

é um gerenciador remoto SCSI

scgcheck

é usado para verificar e averiguar a Interface Binária do Aplicativo da libscg

libscg.a

é uma biblioteca de transporte SCSI altamente portável

dvd+rw-tools-7.1

Introdução ao dvd+rw-tools

O pacote dvd+rw-tools contém vários utilitários para masterizar a mídia DVD, tanto +RW/+R quanto -R[W]. A ferramenta principal é growisofs que fornece uma maneira para estruturar e desenvolver um sistema de arquivos ISO9660 em (assim como gravar uma imagem arbitrária pré-masterizada em) todas as mídias de DVD suportadas. Isso é útil para criar um novo DVD ou adicionar uma imagem existente em um DVD parcialmente gravado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do dvd+rw-tools

Exigidas

Cdrtools-3.02a09 (tempo de execução)

Instalação do dvd+rw-tools

Instale o dvd+rw-tools executando os seguintes comandos:

sed -i '/stat.h/a #include <sys/sysmacros.h>' growisofs.c &&
sed -i '/stdlib/a #include <limits.h>' transport.hxx &&
make all rpl8 btcflash

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make prefix=/usr install &&
install -v -m644 -D index.html \
    /usr/share/doc/dvd+rw-tools-7.1/index.html

Explicações do Comando

sed -i '/stdlib/a #include <limits.h>' ...: Esse sed inclui limits.h, um dos cabeçalhos do núcleo. Isso é necessário devido a uma mudança nos cabeçalhos do núcleo 2.6.23.

make all rpl8 btcflash: Esse comando usa alvos adicionais, de forma que todos os utilitários sejam construídos.

Conteúdo

Aplicativos Instalados: btcflash, dvd+rw-booktype, dvd+rw-format, dvd+rw-mediainfo, dvd-ram-control, growisofs e rpl8
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/dvd+rw-tools-7.1

Descrições Curtas

growisofs

é um aplicativo combinado de estrutura de interação direta com o(a) usuário(a) para mkisofs/gravação de DVD

libburn-1.5.6

Introdução ao libburn

libburn é uma biblioteca para gravação de dados pré-formatados em mídia óptica: CD, DVD e BD (Blu-Ray).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libburn

Opcionais

Doxygen-1.13.2 (para gerar documentação HTML)

Instalação do libburn

Instale o libburn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libburn-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libburn-1.5.6

Conteúdo

Aplicativo Instalado: cdrskin
Biblioteca Instalada: libburn.so
Diretório Instalado: /usr/include/libburn

Descrições Curtas

cdrskin

grava dados pré-formatados em CD, DVD e BD via libburn

libburn.so

contém as funções da API da libburn

libisoburn-1.5.6

Introdução ao libisoburn

libisoburn é uma interface para as bibliotecas libburn e libisofs que habilita criação e expansão dos sistemas de arquivos ISO-9660 sobre todas as mídias CD/DVD/BD suportadas pela libburn. Isso inclui mídias como DVD+RW, que não suportam gerenciamento multissessão em nível de mídia e até mesmo arquivos simples de disco ou dispositivos de bloco.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://files.libburnia-project.org/releases/libisoburn-1.5.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: da transferência efb19f7f718f0791f717b2c6094995ec

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 20 MB (com documentação Tk e HTML)

  • Tempo de construção estimado: 0,2 UPC (com documentação Tk e HTML)

Dependências do libisoburn

Exigidas

libburn-1.5.6 e libisofs-1.5.6

Opcionais

Doxygen-1.13.2 (para gerar documentação HTML), Tk-8.6.16 (para xorriso-tcltk) e libjte

Instalação do libisoburn

Instale o libisoburn executando os seguintes comandos:

./configure --prefix=/usr              \
            --disable-static           \
            --enable-pkg-check-modules &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libisoburn-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libisoburn-1.5.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-pkg-check-modules: Essa chave informa ao conjunto de comandos sequenciais de configuração para usar pkg-config para verificar as bibliotecas libburn e libisofs.

Conteúdo

Aplicativos Instalados: osirrox, xorrecord, xorriso, xorriso-dd-target, xorrisofs e xorriso-tcltk
Biblioteca Instalada: libisoburn.so
Diretórios Instalados: /usr/include/libisoburn e /usr/share/doc/libisoburn-1.5.6

Descrições Curtas

osirrox

é um link simbólico para xorriso que copia arquivos da imagem ISO para um sistema de arquivos em disco

xorrecord

é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo cdrecord

xorriso

é um aplicativo para criar, carregar, manipular, ler e escrever imagens de sistema de arquivos ISO 9660 com extensões Rock Ridge

xorriso-dd-target

é um aplicativo para verificar um dispositivo USB ou cartão de memória para ver se ele é adequado para cópia de imagens

xorrisofs

é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo mkisofs

xorriso-tcltk

é uma estrutura de interação direta com o(a) usuário(a) que opera o xorriso em modo de diálogo

libisoburn.so

contém as funções da API da libisoburn

libisofs-1.5.6

Introdução ao libisofs

libisofs é uma biblioteca para criar um sistema de arquivos ISO-9660 com extensões como RockRidge ou Joliet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libisofs

Opcionais

Doxygen-1.13.2 (para gerar documentação HTML) e libjte

Instalação do libisofs

Instale o libisofs executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libisofs-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libisofs-1.5.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libisofs.so
Diretório Instalado: /usr/include/libisofs

Descrições Curtas

libisofs.so

contém as funções da API da libisofs

Parte XIII. Impressão, Digitalização e Composição Tipográfica

Capítulo 46. Impressão

Este capítulo contém sistemas de gerenciamento de armazenamento intermediário da impressora e aplicativos GhostScript para renderizar PostScript para exibição em terminais ou papel.

Cups-2.4.11

Introdução ao Cups

O Common Unix Printing System (CUPS) é um aplicativo de gerenciamento de fila de documentos de impressão e utilitários associados. É baseado no "Internet Printing Protocol" e fornece serviços de impressão para a maioria das impressoras PostScript e raster.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Cups

Exigidas

GnuTLS-3.8.9

Recomendadas
Opcionais

Avahi-0.8, libpaper-2.2.6, MIT Kerberos V5-1.21.3, PHP-8.4.4 e Python2

Exigidas (pós instalação)

cups-filters-2.0.1

Opcionais (pós instalação)

Gutenprint-5.3.4 e hplip (impressoras HP)

Configuração do Núcleo

Nota

Costumava existir um conflito entre a estrutura de retaguarda libusb do Cups e o controlador de núcleo usblp. Esse não mais é o caso e o CUPS funcionará com ambos habilitados.

Se você quiser usar o controlador usblp do núcleo (por exemplo, se desejar usar o escputil oriundo do Gutenprint-5.3.4), habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

Se você tiver uma impressora paralela, habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

Device Drivers --->
  <*/M> Parallel port support --->                                     [PARPORT]
    <*/M> PC-style hardware                                         [PARPORT_PC]
  Character devices --->
    <*/M> Parallel printer support                                     [PRINTER]

Instalação do Cups

Você precisará adicionar um(a) usuário(a) lp, pois o Cups criará alguns arquivos de propriedade desse usuário. (O(A) usuário(a) lp é o padrão usado pelo Cups, mas pode ser mudado para um(a) usuário(a) diferente passando-se um parâmetro para o conjunto de comandos sequenciais configure). Use o seguinte comando como o(a) usuário(a) root:

useradd -c "Usuário(a) do Serviço de Impressão" -d /var/spool/cups -g lp -s /bin/false -u 9 lp

Você também precisará de um grupo dedicado que conterá usuários(as) autorizados(as) a realizar tarefas administrativas do Cups. Adicione o grupo executando o seguinte comando como o(a) usuário(a) root:

groupadd -g 19 lpadmin

Se você deseja adicionar um(a) usuário(a) ao grupo administrativo do Cups, execute o seguinte comando como o(a) usuário(a) root:

usermod -a -G lpadmin <nome_usuário(a)>

Se você não instalou o xdg-utils-1.2.1, use o seguinte sed para mudar o navegador padrão que será usado para acessar a interface web do Cups:

sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in

Substitua firefox pelo navegador da web da tua escolha.

Construa o Cups executando os seguintes comandos:

./configure --libdir=/usr/lib            \
            --with-rcdir=/tmp/cupsinit   \
            --with-rundir=/run/cups      \
            --with-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.11 &&
make

Para testar os resultados, emita: LC_ALL=C make -k check. Uma sessão gráfica já ativa com endereço de barramento é necessária para se executar os testes. Certifique-se de que não exista outra instância do Cups executando, caso contrário, pelo menos quatro (4) testes falharão com "address in use".

Agora, como o(a) usuário(a) root:

make install &&
ln -svnf ../cups/doc-2.4.11 /usr/share/doc/cups-2.4.11

Remova o conjunto fornecido de comandos sequenciais de inicialização, o qual é incompatível com o LFS:

rm -rf /tmp/cupsinit

Crie um arquivo de configuração básica de cliente do Cups executando o seguinte comando como o(a) usuário(a) root:

echo "ServerName /run/cups/cups.sock" > /etc/cups/client.conf

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado e emitir o seguinte comando como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor

Explicações do Comando

--with-rcdir=/tmp/cupsinit: Essa chave informa ao processo de construção para instalar o conjunto fornecido de comandos sequenciais de inicialização em /tmp em vez de /etc/rc.d.

--with-rundir=/run/cups: Essa chave impede o pacote de referenciar o diretório obsoleto /var/run.

--with-system-groups=lpadmin: Essa chave garante que somente o lpadmin será usado como o grupo administrativo do Cups .

--disable-libusb: Use essa chave se você tiver instalado o libusb-1.0.27, mas desejar usar o controlador usblp do núcleo.

--enable-libpaper: Use essa chave se você tiver instalado a libpaper e desejar usá-lo com o Cups.

Configurando o Cups

Arquivos de Configuração

/etc/cups/*

Informação de Configuração

Normalmente, impressoras são configuradas por intermédio de um navegador da web. O servidor Cups normalmente se conectará por meio da URL http://localhost:631. A partir daí, impressoras, tarefas de impressão e a configuração do servidor podem ser configurados(as) e gerenciados(as). A administração remota do sistema também pode ser configurada. A configuração também pode ser feita a partir da linha de comando por meio dos comandos lpadmin, lpoptions e lpstat.

A configuração do Cups é dependente do tipo de impressora e pode ser complexa. Geralmente, as impressoras PostScript são mais fáceis. Para instruções detalhadas acerca da configuração e uso do Cups, veja-se https://www.cups.org/documentation.html.

Para impressoras não PostScript imprimirem com o Cups, você precisa instalar o ghostscript-10.04.0 para converter PostScript em imagens raster; e um controlador (por exemplo, proveniente de Gutenprint-5.3.4) para converter as imagens raster resultantes em um formato que a impressora entenda. Os controladores Foomatic usam o ghostscript-10.04.0 para converter PostScript diretamente em um formato imprimível, mas isso é considerado abaixo do ideal pelos(as) desenvolvedores(as) do Cups.

Configuração do Linux PAM

Se o CUPS tiver sido construído com suporte ao Linux PAM, você precisa criar um arquivo de configuração do PAM para fazê-lo funcionar corretamente com o BLFS.

Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM:

cat > /etc/pam.d/cups << "EOF"
# Inicia /etc/pam.d/cups

auth    include system-auth
account include system-account
session include system-session

# Termina /etc/pam.d/cups
EOF

Conjunto de Comandos Sequenciais de Inicialização

Se você quiser que o serviço de impressão Cups inicie automaticamente quando o sistema for inicializado, instale o conjunto de comandos sequenciais init incluído no pacote blfs-bootscripts-20250225:

make install-cups

Conteúdo

Aplicativos Instalados: cancel, cupsaccept, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestppd, ippeveprinter, ippfind, ipptool, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge e ppdpo
Bibliotecas Instaladas: libcupsimage.so e libcups.so
Diretórios Instalados: /etc/cups, /usr/{include,lib,share}/cups, /usr/share/doc/cups-2.4.11, /run/cups e /var/{cache,log,spool}/cups

Descrições Curtas

cancel

cancela tarefas de impressão existentes nas filas de impressão

cupsaccept

aceita tarefas enviadas para um destino

cups-config

é um utilitário de configuração do aplicativo Cups

cupsctl

atualiza ou consulta o arquivo cupsd.conf para um servidor

cupsd

é o agendador do Common Unix Printing System

cupsdisable

para impressoras e classes

cupsenable

inicia impressoras e classes

cupsfilter

é uma interface para o subsistema de filtros do Cups que te permite converter um arquivo para um formato específico

cupsreject

rejeita tarefas enviadas para um destino

cupstestppd

testa a conformidade de arquivos PPD

ippeveprinter

é uma impressora IPP Everywhere para CUPS

ippfind

encontra impressoras de protocolo de impressão da Internet

ipptool

envia solicitações IPP para o URI especificado e testa e (ou) exibe os resultados

lp

submete arquivos para impressão ou altera uma tarefa pendente

lpadmin

configura filas de impressoras e classes fornecidas pelo Cups

lpc

fornece controle limitado sobre filas de impressoras e classes fornecidas pelo Cups

lpinfo

lista os dispositivos ou controladores disponíveis conhecidos pelo servidor Cups

lpmove

move a tarefa especificada para um novo destino

lpoptions

exibe ou configura opções e padrões da impressora

lpq

mostra a situação atual da fila de impressão na impressora nomeada

lpr

submete arquivos para impressão

lprm

cancela tarefas de impressão que tenham sido enfileiradas para impressão

lpstat

exibe informações de situação acerca das atuais classes, tarefas e impressoras

ppdc

compila arquivos fonte PPDC em um ou mais arquivos PPD

ppdhtml

lê um arquivo de informações do controlador e produz uma página HTML de resumo que lista todos os controladores em um arquivo e as opções suportadas

ppdi

importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD

ppdmerge

mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue

ppdpo

extrai sequências de caracteres de UI a partir de arquivos fonte PPDC e atualiza um arquivo fonte de catálogo de mensagens em formato de sequências de caracteres ou GNU gettext ou Mac OS X para tradução

libcups.so

contém as funções da API do Cups

cups-browsed-2.1.1

Introdução ao cups-browsed

O processo de segundo plano cups-browsed é usado para navegar na rede de intercomunicação em busca de filas remotas do CUPS e impressoras IPP de rede de intercomunicação e criar automaticamente filas locais apontando para elas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do cups-browsed

Exigidas

Avahi-0.8, libcupsfilters-2.1.1 e libppd-2.1.1

Opcionais

OpenLDAP-2.6.9

Instalação do cups-browsed

Instale cups-browsed executando os seguintes comandos:

./configure --prefix=/usr                   \
            --with-cups-rundir=/run/cups    \
            --without-rcdir                 \
            --disable-static                \
            --docdir=/usr/share/doc/cups-browsed-2.1.1 &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-cups-rundir=/run/cups: Define o diretório que contém dados transitórios de impressão. O padrão /var/run/cups está obsoleto.

--without-rcdir: Essa chave desabilita instalação do conjunto incluído de comandos sequenciais de inicialização que não é compatível com o BLFS.

Conteúdo

Aplicativos Instalados: cups-browsed
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

cups-browsed

é um processo de segundo plano para navegar nas difusões do Bonjour e do CUPS de impressoras remotas e compartilhadas do CUPS

cups-filters-2.0.1

Introdução ao CUPS Filters

O pacote CUPS Filters só é necessário para adaptar as funções de filtro libcupsfilters-2.1.1 e libppd-2.1.1 para cups-2.x. Ele não deveria ser necessário para cups-3.x.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do CUPS Filters

Exigidas

libcupsfilters-2.1.1 e libppd-2.1.1

Opcionais (tempo de execução)

cups-browsed-2.1.1 (se você precisar de recursos de descoberta de rede de intercomunicação)

Instalação do CUPS Filters

Instale o CUPS Filters executando os seguintes comandos:

./configure --prefix=/usr                   \
            --disable-static                \
            --docdir=/usr/share/doc/cups-filters-2.0.1 &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: driverless, driverless-fax e foomatic-rip
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/cups/{backend,driver,filter}, /usr/share/doc/cups-filters-2.0.1 e /usr/share/ppd/cupsfilters

Descrições Curtas

driverless

é um utilitário gerador de PPD para impressão sem controlador

driverless-fax

é um envolucrador para o driverless para dispositivos do tipo FAX

foomatic-rip

é um filtro de impressão/involucrador RIP universal que pode ser usado como filtro do CUPS ou autônomo para impressão direta e sem aplicativo de gerenciamento de fila de documentos

ghostscript-10.04.0

Introdução ao Ghostscript

Ghostscript é um processador versátil para dados PostScript com a capacidade de renderizar PostScript para diferentes alvos. É uma parte obrigatória da pilha de impressão do CUPS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Se desejar, você pode baixar fontes adicionais.

Fontes Padrão

Outras Fontes

Dependências do Ghostscript

Recomendadas
Opcionais

Cairo-1.18.2, GTK-3.24.48, libidn-1.42, libpaper-2.2.6, libwebp-1.5.0 e um ambiente gráfico

Instalação do Ghostscript

Nota

O sistema de construção do Ghostscript não é amigável para o(a) usuário(a). Para a finalidade de usar cópias de sistema de várias bibliotecas gráficas, você precisa fazer isso usando métodos não convencionais.

Ghostscript inclui cópias (antigas) de diversas bibliotecas. Algumas delas parecem ter sido remendadas para corrigir vulnerabilidades conhecidas, mas outras dessas cópias são menos bem mantidas. Para garantir que quaisquer correções futuras sejam aplicadas em todo o sistema, é recomendado que você primeiro instale as versões lançadas dessas bibliotecas e depois configure o Ghostscript para se vincular a elas.

Se você tiver instalado as dependências recomendadas em teu sistema, remova as cópias de freetype, lcms2, libjpeg, libpng e openjpeg:

rm -rf freetype lcms2mt jpeg libpng openjpeg

Compile o Ghostscript:

rm -rf zlib &&

./configure --prefix=/usr           \
            --disable-compile-inits \
            --with-system-libtiff   &&
make

Nota

A biblioteca compartilhada depende do GTK-3.24.48. Ela é usada somente por aplicativos externos, como asymptote-3.01, dvisvgm-3.4.3 e ImageMagick-7.1.1-43.

Para compilar a biblioteca compartilhada libgs.so, execute o seguinte comando adicional como um(a) usuário(a) sem privilégios:

make so

Esse pacote não vem com uma suíte de teste. Um conjunto de arquivos de exemplo pode ser usado para testagem, mas isso é possível somente depois da instalação do pacote.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a biblioteca compartilhada, instale-a com:

make soinstall                                     &&
install -v -m644 base/*.h /usr/include/ghostscript &&
ln -sfvn ghostscript /usr/include/ps

Agora torne a documentação acessível a partir de um local padrão:

mv -v /usr/share/doc/ghostscript/10.04.0 /usr/share/doc/ghostscript-10.04.0 &&
rmdir /usr/share/doc/ghostscript                                            &&
cp -r examples/ -T /usr/share/ghostscript/10.04.0/examples

Se você tiver baixado as fontes, desempacote-as em /usr/share/ghostscript e certifique-se de que a titularidade da propriedade dos arquivos seja root: root.

tar -xvf ../ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript --no-same-owner &&
tar -xvf ../gnu-gs-fonts-other-6.0.tar.gz     -C /usr/share/ghostscript --no-same-owner &&
fc-cache -v /usr/share/ghostscript/fonts/

Você pode agora testar a renderização de vários arquivos PostScript e PDF a partir de /usr/share/ghostscript/10.04.0/examples . Para fazer isso, execute o seguinte comando (em uma sessão do X11):

gs -q -dBATCH /usr/share/ghostscript/10.04.0/examples/tiger.eps

Explicações do Comando

rm -rf zlib : zlib foi instalado como parte do LFS.

--disable-compile-inits: Essa opção torna gs e libgs.so ligeiramente menores.

--with-system-libtiff: Remova essa opção se você não tiver instalado o libtiff-4.7.0.

install -v -m644 base/*.h... : Alguns pacotes (ImageMagick é um) precisam dos cabeçalhos de interface do Ghostscript no lugar para se vincularem com a biblioteca compartilhada. Esses comandos instalam os cabeçalhos.

ln -sfvn ghostscript /usr/include/ps: Alguns pacotes esperam encontrar os cabeçalhos da interface em um local alternativo.

mv -v /usr/share/doc/ghostscript/10.04.0 /usr/share/doc/ghostscript-10.04.0: Isso move a documentação para onde ela é esperada ser encontrada.

--disable-cups: Essa opção economizará uma pequena quantidade de espaço ao não vincular gs e libgs.so às bibliotecas do Cups-2.4.11 se você as tiver instalado.

Conteúdo

Aplicativos Instalados: dvipdf, eps2eps, gs, gsbj, gsc (oriundo de soinstall), gsdj, gsdj500, gslj, gslp, gsnd, gsx (oriundo de soinstall), lprsetup.sh, pdf2dsc, pdf2ps, pf2afm, pfbtopfa, pphs, printafm, ps2ascii, ps2epsi, ps2pdf, ps2pdf12, ps2pdf13, ps2pdf14, ps2pdfwr, ps2ps, ps2ps2 e unix-lpr.sh
Biblioteca Instalada: libgs.so
Diretórios Instalados: /usr/include/ghostscript, /usr/share/ghostscript e /usr/share/doc/ghostscript-10.04.0

Descrições Curtas

gs

é um interpretador para PostScript(tm) e Portable Document Format (PDF) da Adobe Systems

libgs.so

fornece funcionalidade do Ghostscript para outros aplicativos, como GSView, ImageMagick e libspectre

Ghostscript fornece muitos conjuntos de comandos sequenciais usados para converter PostScript, PDF e outros formatos. Por favor, consulte a documentação HTML ou as páginas de manual para informações acerca dos recursos fornecidos.

Gutenprint-5.3.4

Introdução ao Gutenprint

O pacote Gutenprint (anteriormente Gimp-Print) contém controladores de alta qualidade para muitas marcas e modelos de impressoras para uso com o Cups-2.4.11. Veja-se uma lista de impressoras suportadas em https://gutenprint.sourceforge.net/p_Supported_Printers.php.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Gutenprint

Recomendadas
Recomendadas (em tempo de execução)
Opcionais (para regenerar documentação)

ImageMagick-7.1.1-43, texlive-20240312 (ou install-tl-unx), Doxygen-1.13.2 e DocBook-utils-0.6.14

Configuração do Núcleo

Se você pretende usar escputil com uma impressora Epson Stylus conectada por USB para comandos como --ink-level, que precisam acessar o dispositivo bruto, você precisa habilitar o controlador de núcleo usblp. Habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

Instalação do Gutenprint

Instale o Gutenprint executando os seguintes comandos:

sed -i 's|$(PACKAGE)/doc|doc/$(PACKAGE)-$(VERSION)|' \
       {,doc/,doc/developer/}Makefile.in &&

./configure --prefix=/usr                 \
            --disable-static              \
            --without-gimp2               \
            --without-gimp2-as-gutenprint &&
make

Para testar os resultados, emita: make check. Os testes tomam um tempo bastante longo e usam um monte de espaço em disco. Quando testado pela última vez (versão 5.2.15 em junho de 2019), isso precisava de 75 UPC e 13,5 GB para completar os testes (um teste, rastertogutenprint falhou porque os PPDs do CUPS eram para uma versão anterior. Talvez o genppds devesse ser executado antes dos testes). Observe que os testes usaram somente uma CPU.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/gutenprint-5.3.4/api/gutenprint{,ui2} &&
install -v -m644    doc/gutenprint/html/* \
                    /usr/share/doc/gutenprint-5.3.4/api/gutenprint &&
install -v -m644    doc/gutenprintui2/html/* \
                    /usr/share/doc/gutenprint-5.3.4/api/gutenprintui2

Explicações do Comando

sed -i '...' ...Makefile.in: Esse comando é usado de forma que a documentação do pacote seja instalada na estrutura convencional de diretório /usr/share/doc em vez de /usr/share/gutenprint/doc.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--without-gimp2: Essa chave desabilita suporte para GIMP porque ainda não foi atualizado para suportar GIMP3.

Configurando o Gutenprint

Informação de Configuração

Para o CUPS ver os controladores de impressão recém-instalados, ele tem de ser reiniciado (como o(a) usuário(a) root):

/etc/rc.d/init.d/cups restart

Em seguida, aponte teu navegador da web para http://localhost:631/ para adicionar uma nova impressora ao CUPS.

Conteúdo

Aplicativos Instalados: cups-calibrate, cups-genppd.5.2, cups-genppdupdate, escputil e testpattern
Bibliotecas Instaladas: libgutenprint.so, libgutenprintui2.so e, opcionalmente, vários filtros e controladores de estrutura de retaguarda do CUPS sob /usr/lib/gutenprint/5.2/modules/
Diretórios Instalados: /usr/{include,lib,share}/gutenprint, /usr/include/gutenprintui2 e /usr/share/doc/gutenprint-5.3.4

Descrições Curtas

cups-calibrate

calibra a saída de cores de impressoras usando os controladores do Gutenprint, CUPS ou do ESP Print Pro

cups-genppd.5.2

gera arquivos PPD do Gutenprint para uso com o CUPS

cups-genppdupdate

regenera os arquivos PPD do Gutenprint em uso pelo CUPS

escputil

é um utilitário de linha de comando para realizar várias tarefas de manutenção em impressoras jato de tinta Epson Stylus

testpattern

é um aplicativo de teste para aprender como usar a libgutenprint

libcupsfilters-2.1.1

Introdução ao libcupsfilters

A biblioteca libcupsfilters contém funções de filtro para as tarefas de conversão de formato de dados necessárias em aplicativos de impressora. Ela também contém várias funções de API para desenvolver controladores de impressora/aplicativos de impressora.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libcupsfilters

Exigidas

Cups-2.4.11, GLib-2.82.5, ghostscript-10.04.0 ou mupdf-1.25.4, Little CMS-2.17, Poppler-25.02.0 e Qpdf-11.10.1

Recomendadas

Instalação do libcupsfilters

Instale libcupsfilters executando os seguintes comandos:

./configure --prefix=/usr                   \
            --disable-static                \
            --docdir=/usr/share/doc/libcupsfilters-2.1.1 &&
make

Para testar os resultados, emita make check. Fontes DejaVu são necessárias para os testes.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-test-font-path=VALOR: Se você desejar executar os testes, mas não tiver a fonte /usr/share/fonts/dejavu/DejaVuSans.ttf padrão instalada, use essa chave para especificar onde DejaVuSans.ttf (ou talvez alguma outra fonte TTF de texto - embora isso esteja não testado) está localizada.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libcupsfilters.so
Diretórios Instalados: /usr/include/cupsfilters, /usr/share/cups/{banners,charsets,data} e /usr/share/doc/libcupsfilters-2.1.1

Descrições Curtas

libcupsfilters.so

contém funções de API de filtros do CUPS

libppd-2.1.1

Introdução ao libppd

A biblioteca libppd contém funções para lidar com impressoras legadas usando arquivos de descrição PPD.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do libppd

Exigidas

libcupsfilters-2.1.1

Instalação do libppd

Instale libppd executando os seguintes comandos:

./configure --prefix=/usr                   \
            --disable-static                \
            --with-cups-rundir=/run/cups    \
            --enable-ppdc-utils             \
            --docdir=/usr/share/doc/libppd-2.1.1 &&
make

Para testar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-cups-rundir=/run/cups: Define o diretório que contém dados transitórios de impressão. O padrão /var/run/cups está obsoleto.

--enable-ppdc-utils: Permite construir utilitários para manipular arquivos .ppd.

Conteúdo

Aplicativos Instalados: ppdc, ppdhtml, ppdi, ppdmerge e ppdpo
Bibliotecas Instaladas: libppd.so
Diretórios Instalados: /usr/include/ppd, /usr/share/ppdc e /usr/share/doc/libppd-2.1.1

Descrições Curtas

ppdc

compila arquivos fonte PPDC em um ou mais arquivos PPD

ppdhtml

lê um arquivo de informações do controlador e produz uma página HTML de resumo que lista todos os controladores em um arquivo e as opções suportadas

ppdi

importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD

ppdmerge

mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue

ppdpo

extrai sequências de caracteres de UI a partir de arquivos fonte PPDC e atualiza um arquivo fonte de catálogo de mensagens em formato de sequências de caracteres ou GNU gettext ou Mac OS X para tradução

libppd.so

contém funções de API para manipular arquivos .ppd

Capítulo 47. Digitalizando

Este capítulo contém aplicativos de digitalização que te permitem converter documentos impressos em documentos formatados legíveis por outros aplicativos.

SANE-1.2.1

Introdução ao SANE

SANE é a abreviação de Scanner Access Now Easy. O acesso à digitalizadora, entretanto, está longe de ser fácil, já que cada fornecedor(a) tem os próprios protocolos deles(as). O único protocolo conhecido que deveria trazer alguma unidade a esse caos é a interface TWAIN, mas isso é muito impreciso para permitir uma estrutura de digitalização estável. Portanto, SANE vem com o próprio protocolo dele e os controladores do(a) fornecedor(a) não podem ser usados.

SANE é dividido em estruturas de retaguarda e estruturas de interação direta com o(a) usuário(a). As estruturas de retaguarda são controladores para as digitalizadoras e câmeras suportadas. As estruturas de interação direta com o(a) usuário(a) são interfaces de usuário(a) para acessar as estruturas de retaguarda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informações do Pacote de Estruturas de Retaguarda

Nota

O local do fluxo de desenvolvimento para esse arquivo está em https://gitlab.com/sane-project, mas o URL do arquivo usa uma soma de verificação MD5 incorporada. Por conveniência, o pacote foi copiado para o local acima.

Dependências do SANE

Opcionais

Avahi-0.8, Cups-2.4.11, libjpeg-turbo-3.0.1, libtiff-4.7.0, libusb-1.0.27, v4l-utils-1.28.1, Net-SNMP, libieee1284, libgphoto2 e texlive-20240312 (ou install-tl-unx)

Configuração do Núcleo, Controladores e Pacotes Adicionais

Para acessar tua digitalizadora, você provavelmente precisará dos controladores de núcleo relacionados e (ou) pacotes adicionais de suporte. Uma digitalizadora SCSI precisará de controladores SCSI; uma digitalizadora de porta paralela precisa de suporte a porta paralela (você deveria usar modos EPP aprimorados) e talvez libieee1284, e uma digitalizadora USB precisará do pacote libusb-1.0.27. Para dispositivos HP, você possivelmente precise do hplip. Certifique-se de ter os controladores necessários configurados corretamente para acessar os dispositivos.

Instalação do SANE

Instalação do SANE Backends

O processo de segundo plano do SANE deveria executar com o próprio grupo dele. Crie esse grupo emitindo o seguinte comando como o(a) usuário(a) root:

groupadd -g 70 scanner

Nota

configure assume que o(a) usuário(a) construindo estruturas de retaguarda do SANE é um(a) membro(a) do grupo scanner para testar a existência desse grupo. Como resultado, o(a) usuário(a) construindo o pacote precisa ser adicionado(a) ao grupo scanner. Adicione o(a) usuário(a) ao grupo scanner emitindo o seguinte comando como o(a) usuário(a) root:

usermod -G scanner -a nome_usuário(a)

Depois de adicionar o grupo scanner como acima, você precisará sair e entrar novamente para ativá-lo.

Para uma digitalizadora USB, se você estiver vinculando ao libusb-1.0.27, inclua a chave de configuração --enable-libusb_1_0. Instale as estruturas de retaguarda do SANE executando os seguintes comandos:

sg scanner -c "                                 \
PYTHON=python3 ./configure --prefix=/usr        \
                           --sysconfdir=/etc    \
                           --localstatedir=/var \
                           --with-lockdir=/run/lock \
                           --docdir=/usr/share/doc/sane-backends-1.2.1" &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install                                         &&
install -m 644 -v tools/udev/libsane.rules           \
                  /etc/udev/rules.d/65-scanner.rules &&
mkdir -p          /run/lock/sane &&
chgrp -v scanner  /run/lock/sane

Com a digitalizadora ligada, execute scanimage -L e o nome e local do dispositivo deveriam aparecer. Claro, você precisa dos controladores de dispositivo configurados para a finalidade de executar esse teste.

Explicações do Comando

sg scanner -c "...": executa o comando entre aspas duplas com o grupo principal scanner. Isso possivelmente seja necessário se o(a) usuário(a) tiver sido adicionado(a) recentemente ao grupo scanner e não tiver feito logout e login.

PYTHON=python3: Essa chave força o sistema de construção a usar Python 3 em vez de Python 2.

--sysconfdir=/etc: Essa chave instala os arquivos de configuração em /etc/sane.d em vez de /usr/etc/sane.d.

Configurando o SANE

Arquivos de Configuração

/etc/sane.d/*.conf

Informação de Configuração

Configuração da Estrutura de Retaguarda

Os arquivos de configuração de estrutura de retaguarda estão localizados em /etc/sane.d. Informações para configurar as várias estruturas de retaguarda podem ser encontradas usando-se a página de manual(5) para a estrutura de retaguarda desejada. Execute man sane-<estrutura de retaguarda>, substituindo a estrutura de retaguarda desejada.

Adicione quaisquer usuários(as) que usarão uma escaneadora ao grupo scanner.

Se você quiser acessar uma digitalizadora na rede de intercomunicação, inclua duas linhas em net.conf, como usuário(a) root (certifique-se de substituir <ip_servidor> pelo valor atual):

cat >> /etc/sane.d/net.conf << "EOF"
connect_timeout = 60
<ip_servidor>
EOF

No lado do servidor, inclua o IP do cliente na lista de acesso de /etc/sane.d/saned.conf, reinicie o processo de segundo plano saned e certifique-se de que o firewall, se houver, está aberto ao cliente.

Informação Geral

Para informações gerais acerca de como configurar e usar o SANE, veja-se man sane. Para informações acerca de dispositivos USB de digitalização, execute man sane-usb. Para informações relativas a dispositivos SCSI, execute man sane-scsi.

Configuração e instalação do processo de segundo plano 'saned'

O processo de segundo plano saned não é destinado a ser usado por clientes não confiáveis. Você deveria fornecer proteção Técnicas de Firewall para garantir que somente clientes confiáveis acessem o processo de segundo plano. Devido aos complexos requisitos de segurança para garantir que somente clientes confiáveis acessem o processo de segundo plano, o BLFS não fornece instruções para configurar o processo de segundo plano saned. Algumas informações boas (mas desatualizadas) para configurar e proteger o processo de segundo plano saned podem ser encontradas em https://penguin-breeder.org/sane/saned/.

Conteúdo

Aplicativos Instalados: gamma4scanimage, sane-config, saned, sane-find-scanner, scanimage e umax_pp
Bibliotecas Instaladas: libsane.so e numerosos módulos de estrutura de retaguarda da digitalizadora
Diretórios Instalados: /etc/sane.d, /usr/{include,lib,share}/sane e /usr/share/doc/sane-1.2.1

Descrições Curtas

gamma4scanimage

cria uma tabela gama no formato esperado pelo scanimage

sane-config

é uma ferramenta usada para determinar os sinalizadores do compilador e do vinculador que deveriam ser usados para compilar e vincular o SANE

saned

é o processo de segundo plano do SANE que permite que clientes remotos acessem dispositivos de aquisição de imagens disponíveis no dispositivo local

sane-find-scanner

é uma ferramenta de linha de comando para localizar digitalizadoras SCSI e USB e determinar os arquivos de dispositivos delas. O objetivo principal dela é o de garantir que as digitalizadoras possam ser detectadas pelas estruturas de retaguarda do SANE

scanimage

é uma interface de linha de comando para digitalização a partir de dispositivos de aquisição de imagens, como digitalizadoras de mesa ou câmeras. Também é usada para listar os dispositivos de estrutura de retaguarda disponíveis

umax_pp

é uma ferramenta usada para ler informações oriundas de digitalizadoras de porta paralela UMAX. Ela também pode ser usada para realizar diagnósticos nessas digitalizadoras

libsane.so

é a interface de programação de aplicativos usada para comunicação entre estruturas de interação direta com o(a) usuário(a) e estruturas de retaguarda

libsane-*.so

módulos são plug-ins de estrutura de retaguarda de biblioteca de digitalização usados para interfacear com dispositivos de digitalização. Veja-se http://www.sane-project.org/sane-supported-devices.html para uma lista de estruturas de retaguarda suportadas

Simple-scan-46.0

Introdução ao Simple-scan

O pacote Simple-scan contém um aplicativo moderno de digitalização de documentos. Ele captura imagens usando SANE e suporta os mais recentes gerenciamento de cores e padrões gráficos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Simple-scan

Exigidas

colord-1.4.7, itstool-2.0.7, libgusb-0.4.9, libadwaita-1.6.4, libwebp-1.5.0 e SANE-1.2.1

Instalação do Simple-scan

Instale Simple-scan executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install &&
gtk-update-icon-cache -qtf /usr/share/icons/hicolor

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

gtk-update-icon-cache [...]: Esse comando atualiza o cache de ícones do GTK+ abrangente a todo o sistema, pois o sistema de construção do Simple-scan não o atualiza para dar conta dos ícones que ele instala.

Conteúdo

Aplicativos Instalados: simple-scan
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/simple-scan

Descrições Curtas

simple-scan

é um aplicativo moderno de digitalização de documentos

Capítulo 48. Standard Generalized Markup Language (SGML)

Este capítulo contém definições de tipo de documento (DTDs) DocBook SGML, folhas de estilo DocBook DSSSL e ferramentas DocBook para validar, transformar, formatar e publicar documentos DocBook.

sgml-common-0.6.3

Introdução ao SGML Common

O pacote SGML Common contém o install-catalog. Isso é útil para criar e manter catálogos centralizados SGML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Instalação do SGML Common

Em vez da convenção normal de incluir os arquivos das autotools no pacote, os(as) mantenedores(as) incluíram links simbólicos para os arquivos em /usr/share/automake. Para versões anteriores do Automake essa convenção está correta, mas versões recentes do Automake instalam os arquivos internos em diretórios específicos da versão. Isso faz com que o conjunto de comandos sequenciais configure aborte. Para corrigir esse erro, as autotools são regeneradas. Como o arquivo Makefile.am incluído usa uma sintaxe não suportada pelas versões atuais do Automake, um remendo é exigido para corrigir a sintaxe.

patch -Np1 -i ../sgml-common-0.6.3-manpage-1.patch &&
autoreconf -f -i

Instale o SGML Common executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc install &&

install-catalog --add /etc/sgml/sgml-ent.cat \
    /usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&

install-catalog --add /etc/sgml/sgml-docbook.cat \
    /etc/sgml/sgml-ent.cat

Dica de Atualização

Remova os itens de catálogo acima antes de atualizar (como o(a) usuário(a) root) com:

install-catalog --remove /etc/sgml/sgml-ent.cat \
    /usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&

install-catalog --remove /etc/sgml/sgml-docbook.cat \
    /etc/sgml/sgml-ent.cat

Configurando o SGML Common

Arquivos de Configuração

/etc/sgml/sgml.conf

Informação de Configuração

Nenhuma mudança nesse arquivo é necessária.

Conteúdo

Aplicativos Instalados: install-catalog e sgmlwhich
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos de entidade DocBook SGML e XML
Diretórios Instalados: /etc/sgml, /usr/share/doc/sgml-common-0.6.3 e /usr/share/sgml

Descrições Curtas

install-catalog

cria um catálogo centralizado que mantém referências para catálogos espalhados pela árvore de diretórios /usr/share/sgml

sgmlwhich

imprime na saída padrão o nome do arquivo de configuração principal

arquivos de entidades SGML

contém as entidades básicas de caracteres definidas com entradas SDATA

arquivos de entidades XML

contém as entidades básicas de caracteres definidas por uma representação hexadecimal do número de caracteres Unicode

docbook-3.1-dtd

Introdução ao DocBook-3.1 SGML DTD

O pacote DocBook SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.docbook.org/sgml/3.1/docbk31.zip

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 432749c0c806dbae81c8bcb70da3b5d3

  • Tamanho da transferência: 55 KB

  • Espaço em disco estimado exigido: 676 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do DocBook-3.1 SGML DTD

Exigidas

libarchive-3.7.7 e sgml-common-0.6.3

Instalação do DocBook-3.1 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (na verdade, um link simbólico para bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook-3.1 SGML DTD executando os seguintes comandos:

sed -i -e '/ISO 8879/d' \
       -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \
       docbook.cat

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -d -m755 /usr/share/sgml/docbook/sgml-dtd-3.1 &&
chown -R root:root . &&
install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
    /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
    /etc/sgml/sgml-docbook.cat

Explicações do Comando

sed -i -e '/ISO 8879/d' docbook.cat: Esse comando remove as definições ENT do arquivo de catálogo.

sed -i -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' docbook.cat: Esse comando substitui a entrada de catálogo DTDDECL, a qual não é suportada pelas ferramentas SGML do Linux, pela entrada de catálogo SGMLDECL.

Configurando o DocBook-3.1 SGML DTD

Arquivos de Configuração

/etc/sgml/catalog

Informação de Configuração

O conjunto de comandos sequenciais de instalação acima atualiza o catálogo.

Usar somente a versão 3.x mais atual do DocBook SGML DTD exige o seguinte (realizar como o(a) usuário(a) root):

cat >> /usr/share/sgml/docbook/sgml-dtd-3.1/catalog << "EOF"
  -- Inicia mudanças no catálogo de Versão Principal Única --

PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd"

  -- Termina mudanças no catálogo de Versão Principal Única --
EOF

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos SGML DTD e MOD
Diretório Instalado: /usr/share/sgml/docbook/sgml-dtd-3.1

Descrições Curtas

Arquivos SGML DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos SGML correspondentes

Arquivos SGML MOD

contém componentes da definição do tipo de documento que são carregados nos arquivos DTD

docbook-4.5-dtd

Introdução ao DocBook-4.5 SGML DTD

O pacote DocBook-4.5 SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.docbook.org/sgml/4.5/docbook-4.5.zip

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 07c581f4bbcba6d3aac85360a19f95f7

  • Tamanho da transferência: 70 KB

  • Espaço em disco estimado exigido: 784 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do DocBook-4.5 SGML DTD

Exigidas

libarchive-3.7.7 e sgml-common-0.6.3

Instalação do DocBook-4.5 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (na verdade, um link simbólico para bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook-4.5 SGML DTD executando os seguintes comandos:

sed -i -e '/ISO 8879/d' \
       -e '/gml/d' docbook.cat

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -d /usr/share/sgml/docbook/sgml-dtd-4.5 &&
chown -R root:root . &&

install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.5/catalog &&
cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.5 &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \
    /usr/share/sgml/docbook/sgml-dtd-4.5/catalog &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \
    /etc/sgml/sgml-docbook.cat

Explicações do Comando

sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat: Esse comando remove as definições ENT do arquivo de catálogo.

Configurando o DocBook-4.5 SGML DTD

Arquivos de Configuração

/etc/sgml/catalog

Informação de Configuração

O conjunto de comandos sequenciais de instalação acima atualiza o catálogo.

Usar somente a versão 4.x mais atual do DocBook SGML DTD exige o seguinte (realizar como o(a) usuário(a) root):

cat >> /usr/share/sgml/docbook/sgml-dtd-4.5/catalog << "EOF"
  -- Inicia mudanças no catálogo de Versão Principal Única --

PUBLIC "-//OASIS//DTD DocBook V4.4//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.3//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.0//EN" "docbook.dtd"

  -- Termina mudanças no catálogo de Versão Principal Única --
EOF

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos SGML DTD e MOD
Diretório Instalado: /usr/share/sgml/docbook/sgml-dtd-4.5

Descrições Curtas

Arquivos SGML DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos SGML correspondentes

Arquivos SGML MOD

contém componentes da definição do tipo de documento que são carregados nos arquivos DTD

OpenSP-1.5.2

Introdução ao OpenSP

O pacote OpenSP contém uma biblioteca C++ para usar arquivos SGML/XML. Isso é útil para validar, analisar e manipular documentos SGML e XML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do OpenSP

Exigidas

sgml-common-0.6.3

Opcionais

libnsl-2.0.1 e xmlto-0.0.29

Instalação do OpenSP

Instale o OpenSP executando os seguintes comandos:

patch -Np1 -i ../OpenSP-1.5.2-gcc14-1.patch          &&
sed -i 's/32,/253,/' lib/Syntax.cxx                  &&
sed -i 's/LITLEN          240 /LITLEN          8092/' \
    unicode/{gensyntax.pl,unicode.syn}               &&

./configure --prefix=/usr                              \
            --disable-static                           \
            --disable-doc-build                        \
            --enable-default-catalog=/etc/sgml/catalog \
            --enable-http                              \
            --enable-default-search-path=/usr/share/sgml &&

make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2

Para testar os resultados, emita: make check. Até nove dos vinte e três (23) testes possivelmente falhem. Não fique assustado(a).

Agora, como o(a) usuário(a) root:

make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2 \
     docdir=/usr/share/doc/OpenSP-1.5.2      \
     install &&

ln -v -sf onsgmls   /usr/bin/nsgmls   &&
ln -v -sf osgmlnorm /usr/bin/sgmlnorm &&
ln -v -sf ospam     /usr/bin/spam     &&
ln -v -sf ospcat    /usr/bin/spcat    &&
ln -v -sf ospent    /usr/bin/spent    &&
ln -v -sf osx       /usr/bin/sx       &&
ln -v -sf osx       /usr/bin/sgml2xml &&
ln -v -sf libosp.so /usr/lib/libsp.so

Explicações do Comando

sed -i 's/32,/253,/...unicode.syn}: Esses seds evitam algumas mensagens irritantes que possivelmente apareçam durante a execução do openjade.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-http: Essa chave adiciona suporte para HTTP.

--disable-doc-build: Essa chave evita que o conjunto de comandos sequenciais configure verifique se você tem o xmlto instalado. Se você tiver o xmlto, poderá remover essa opção.

--enable-default-catalog=/etc/sgml/catalog: Essa chave configura o caminho para o catálogo centralizado.

--enable-default-search-path: Essa chave configura o valor padrão de SGML_SEARCH_PATH.

--enable-xml-messages: Essa chave adiciona suporte para mensagens formatadas em XML.

make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2 : Isso configura a variável pkgdatadir no Makefile de /usr/share/OpenSP para /usr/share/sgml/OpenSP-1.5.2.

ln -v -sf ...: Esses comandos criam os equivalentes SP dos executáveis e bibliotecas OpenSP.

Conteúdo

Aplicativos Instalados: onsgmls, osgmlnorm, ospam, ospcat, ospent, osx e os links simbólicos equivalentes do SP: nsgmls, sgml2xml, sgmlnorm, spam, spcat, spent e sx
Biblioteca Instalada: libosp.so e o link simbólico equivalente do SP: libsp.so
Diretórios Instalados: /usr/include/OpenSP, /usr/share/doc/OpenSP e /usr/share/sgml/OpenSP-1.5.2

Descrições Curtas

onsgmls

é usado para processar arquivos SGML

osgmlnorm

imprime na saída padrão uma instância de documento normalizada para o documento SGML contido na concatenação das entidades com identificadores de sistema .nf e .fi

ospam

é um editor de fluxo de marcação

ospcat

imprime identificadores de sistema eficazes encontrados nos catálogos

ospent

fornece acesso ao gerenciador de entidades do OpenSP

osx

é um normalizador SGML ou usado para converter arquivos SGML em arquivos XML

nsgmls

é um link simbólico para onsgmls

sgml2xml

é um link simbólico para osx

sgmlnorm

é um link simbólico para osgmlnorm

spam

é um link simbólico para ospam

spcat

é um link simbólico para ospcat

spent

é um link simbólico para ospent

sx

é um link simbólico para osx

libosp.so

contém funções exigidas pelos aplicativos do OpenSP para analisar, validar e manipular arquivos SGML e XML

libsp.so

é um link simbólico para libosp.so

OpenJade-1.3.2

Introdução ao OpenJade

O pacote OpenJade contém um mecanismo DSSSL. Isso é útil para transformações SGML e XML em RTF, TeX, SGML e XML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferência Adicional

Dependências do OpenJade

Exigidas

OpenSP-1.5.2

Instalação do OpenJade

Primeiro corrija os problemas ao construir com compiladores mais recentes:

patch -Np1 -i ../openjade-1.3.2-upstream-1.patch

Agora corrija um problema de compilação com perl-5.16 e posterior:

sed -i -e '/getopts/{N;s#&G#g#;s#do .getopts.pl.;##;}' \
       -e '/use POSIX/ause Getopt::Std;' msggen.pl

Instale o OpenJade executando os seguintes comandos:

export CXXFLAGS="${CXXFLAGS:--O2 -g} -fno-lifetime-dse"            &&
./configure --prefix=/usr                                \
            --mandir=/usr/share/man                      \
            --enable-http                                \
            --disable-static                             \
            --enable-default-catalog=/etc/sgml/catalog   \
            --enable-default-search-path=/usr/share/sgml \
            --datadir=/usr/share/sgml/openjade-1.3.2   &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install                                                   &&
make install-man                                               &&
ln -v -sf openjade /usr/bin/jade                               &&
ln -v -sf libogrove.so /usr/lib/libgrove.so                    &&
ln -v -sf libospgrove.so /usr/lib/libspgrove.so                &&
ln -v -sf libostyle.so /usr/lib/libstyle.so                    &&

install -v -m644 dsssl/catalog /usr/share/sgml/openjade-1.3.2/ &&

install -v -m644 dsssl/*.{dtd,dsl,sgm}              \
    /usr/share/sgml/openjade-1.3.2                             &&

install-catalog --add /etc/sgml/openjade-1.3.2.cat  \
    /usr/share/sgml/openjade-1.3.2/catalog                     &&

install-catalog --add /etc/sgml/sgml-docbook.cat    \
    /etc/sgml/openjade-1.3.2.cat

Explicações do Comando

export CXXFLAGS=...: Esse comando evita falhas de segmentação quando o pacote é compilado com gcc-6.1.

make install-man: Esse comando instala a página de manual do openjade.

--disable-static: Essa chave evita a construção da biblioteca estática.

--enable-http: Essa chave adiciona suporte para HTTP.

--enable-default-catalog=/etc/sgml/catalog: Essa chave configura o caminho para o catálogo centralizado.

--enable-default-search-path: Essa chave configura o valor padrão de SGML_SEARCH_PATH.

--datadir=/usr/share/sgml/openjade-1.3.2: Essa chave coloca os arquivos de dados em /usr/share/sgml/openjade-1.3.2 em vez de /usr/share.

ln -v -sf ...: Esses comandos criam os equivalentes Jade dos executáveis e bibliotecas OpenJade.

Configurando o OpenJade

Informação de Configuração

Como o(a) usuário(a) root:

echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\" \
    \"/usr/share/xml/docbook/xml-dtd-4.5/docbookx.dtd\"" >> \
    /usr/share/sgml/openjade-1.3.2/catalog

Essa configuração é necessária somente se você pretende usar o OpenJade para processar os arquivos XML do BLFS por intermédio de folhas de estilo DSSSL.

Conteúdo

Aplicativos Instalados: openjade e o link simbólico equivalente do Jade, jade
Bibliotecas Instaladas: libogrove.so, libospgrove.so, libostyle.so e os links simbólicos equivalentes do Jade: libgrove.so, libspgrove.so e libstyle.so
Diretório Instalado: /usr/share/sgml/openjade-1.3.2

Descrições Curtas

openjade

é um mecanismo DSSSL usado para transformações

jade

é um link simbólico para openjade

docbook-dsssl-1.79

Introdução ao DocBook DSSSL Stylesheets

O pacote DocBook DSSSL Stylesheets contém folhas de estilo DSSSL. Elas são usadas pelo OpenJade ou outras ferramentas para transformar arquivos SGML e XML do DocBook.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Documentação e dados de teste

Dependências do DocBook DSSSL Stylesheets

Exigidas

sgml-common-0.6.3

Exigidas (para testar o conjunto de ferramentas SGML do DocBook)

docbook-3.1-dtd, docbook-4.5-dtd, OpenSP-1.5.2 e OpenJade-1.3.2

Instalação do DocBook DSSSL Stylesheets

Se você baixou a documentação, execute:

tar -xf ../docbook-dsssl-doc-1.79.tar.bz2 --strip-components=1

Instale o DocBook DSSSL Stylesheets executando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 bin/collateindex.pl /usr/bin                      &&
install -v -m644 bin/collateindex.pl.1 /usr/share/man/man1         &&
install -v -d -m755 /usr/share/sgml/docbook/dsssl-stylesheets-1.79 &&
cp -v -R * /usr/share/sgml/docbook/dsssl-stylesheets-1.79          &&

install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
    /usr/share/sgml/docbook/dsssl-stylesheets-1.79/catalog         &&

install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
    /usr/share/sgml/docbook/dsssl-stylesheets-1.79/common/catalog  &&

install-catalog --add /etc/sgml/sgml-docbook.cat              \
    /etc/sgml/dsssl-docbook-stylesheets.cat

Explicações do Comando

Os comandos acima criam um conjunto de comandos sequenciais de instalação para esse pacote.

Testando o Conjunto de Ferramentas SGML do DocBook (opcional)

Os comandos a seguir realizarão os testes necessários para confirmar se a tua cadeia de ferramentas instaladas SGML do DocBook produzirá os resultados desejados. Você precisa ter os pacotes docbook-3.1-dtd, docbook-4.5-dtd, OpenSP-1.5.2 e OpenJade-1.3.2 instalados e realizar os testes como o(a) usuário(a) root.

Todos os testes serão realizados a partir do diretório /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata como o(a) usuário(a) root:

cd /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata

O primeiro teste não deveria produzir nenhuma saída para stdout (tua tela) e criaria um arquivo chamado jtest.rtf no diretório atual:

openjade -t rtf -d jtest.dsl jtest.sgm

O próximo teste deveria retornar somente a seguinte linha para stdout: onsgmls:I: "OpenSP" version "1.5.2"

onsgmls -sv test.sgm

O próximo teste não deveria produzir nenhuma saída para stdout e criaria um arquivo chamado test.rtf no diretório atual:

openjade -t rtf \
    -d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/print/docbook.dsl \
    test.sgm

O último teste não deveria produzir saída para stdout e criaria um arquivo chamado c1.htm no diretório atual:

openjade -t sgml \
    -d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl \
    test.sgm

Finalmente, limpe:

rm jtest.rtf test.rtf c1.htm

Conteúdo

Aplicativo Instalado: collateindex.pl
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Folhas de estilo DSSSL
Diretório Instalado: /usr/share/sgml/docbook/dsssl-stylesheets-1.79

Descrições Curtas

collateindex.pl

é um conjunto de comandos sequenciais do Perl que cria um índice DocBook a partir de dados brutos do índice

DocBook-utils-0.6.14

Introdução ao DocBook-utils

O pacote DocBook-utils é uma coleção de conjuntos de comandos sequenciais utilitários usados para converter e analisar documentos SGML em geral, e arquivos DocBook em particular. Os conjuntos de comandos sequenciais são usados para converter DocBook ou outros formatos SGML em formatos de arquivo clássicos, como HTML, man, info, RTF e muitos mais. Existe também um utilitário para comparar dois arquivos SGML e exibir somente as diferenças na marcação. Isso é útil para comparar documentos preparados para diferentes idiomas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do DocBook-utils

Exigidas

OpenJade-1.3.2, docbook-dsssl-1.79 e docbook-3.1-dtd

Recomendadas (dependências somente de tempo de execução)

Instalação do DocBook-utils

Instale o DocBook-utils executando os seguintes comandos:

patch -Np1 -i ../docbook-utils-0.6.14-grep_fix-1.patch &&
sed -i 's:/html::' doc/HTML/Makefile.in                &&

./configure --prefix=/usr --mandir=/usr/share/man      &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc install

Muitos pacotes usam um nome alternativo para os conjuntos de comandos sequenciais DocBook-utils. Se você desejar criar esses nomes alternativos, use o seguinte comando como o(a) usuário(a) root:

for doctype in html ps dvi man pdf rtf tex texi txt
do
    ln -svf docbook2$doctype /usr/bin/db2$doctype
done

Nota

O conjunto de comandos sequenciais jw usa o comando which para localizar os utilitários exigidos. Você precisa instalar o Which-2.23 antes de tentar usar qualquer um dos aplicativos DocBook-utils.

Explicações do Comando

patch -Np1 -i ../docbook-utils-0.6.14-grep_fix-1.patch: Esse remendo corrige a sintaxe no conjunto de comandos sequenciais jw (Jade Wrapper), o qual está no centro de grande parte do processamento do db2*, de forma que a versão atual do grep não o rejeitará.

sed -i 's:/html::' doc/HTML/Makefile.in: Esse comando muda o diretório de instalação dos documentos HTML.

docdir=/usr/share/doc: Essa opção é colocada na linha make install porque não é reconhecida pelo configure.

Conteúdo

Aplicativos Instalados: docbook2dvi, docbook2html, docbook2man, docbook2pdf, docbook2ps, docbook2rtf, docbook2tex, docbook2texi, docbook2txt, jw e sgmldiff
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/docbook-utils-0.6.14 e /usr/share/sgml/docbook/utils-0.6.14
Links Simbólicos Instalados: db2dvi, db2html, db2man, db2pdf, db2ps, db2rtf, db2tex, db2texi e db2txt

Descrições Curtas

docbook2*

são conjuntos de comandos sequenciais envolucradores simples de uma linha para jw. Eles são fornecidos como nomes fáceis de lembrar usados para converter DocBook ou outros arquivos SGML para o respectivo formato

db2*

são links simbólicos apontando para os comandos docbook2* respectivamente nomeados, criados para satisfazer o uso desses nomes por alguns aplicativos

jw

é um conjunto de comandos sequenciais usado para converter DocBook ou outros arquivos SGML para vários formatos de saída. Eles escondem a maior parte da complexidade do OpenJade e adiciona recursos confortáveis

sgmldiff

é usado para comparar dois arquivos SGML e retornar somente as diferenças na marcação. Isso é especialmente útil para comparar arquivos que deveriam ser idênticos, exceto pelas diferenças linguísticas no conteúdo

Capítulo 49. Linguagem Extensível de Marcação (XML)

Este capítulo contém a Definição de Tipo de Documento (DTD) XML do DocBook e folhas de estilo do DocBook, que são usadas para validar, transformar, formatar e publicar documentos do DocBook.

docbook-xml-4.5

Introdução ao DocBook-4.5 XML DTD

O pacote DocBook-4.5 XML DTD-4.5 contém definições de tipo de documento para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.docbook.org/xml/4.5/docbook-xml-4.5.zip

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 03083e288e87a7e829e437358da7ef9e

  • Tamanho da transferência: 96 KB

  • Espaço em disco estimado exigido: 1,2 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do DocBook-4.5 XML DTD

Exigidas

libarchive-3.7.7 e libxml2-2.13.6

Instalação do DocBook-4.5 XML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (na verdade, um link simbólico para bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook XML DTD executando os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
cp -v -af --no-preserve=ownership docbook.cat *.dtd ent/ *.mod \
    /usr/share/xml/docbook/xml-dtd-4.5

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/docbook executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/docbook ]; then
    xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V4.5//EN" \
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/catalog executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//ENTITIES DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//DTD DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog

Configurando a DTD XML do DocBook-4.5

Arquivos de Configuração

/etc/xml/catalog e /etc/xml/docbook

Informação de Configuração

Cuidado

Vários pacotes do BLFS solicitam a versão 4.x do DocBook XML DTD antes da V4.5, de forma que a etapa a seguir precisa ser feita para que esses pacotes sejam construídos com sucesso.

A instalação acima cria os arquivos e atualiza os catálogos. Para a finalidade de utilizar a V4.5 do DocBook XML DTD quando qualquer versão 4.x for solicitada no Identificador do Sistema, você precisa adicionar declarações adicionais aos arquivos de catálogo. Se você tiver algum dos DocBook XML DTD mencionados abaixo já instalados em teu sistema, remova essas entradas do comando for abaixo (emita os comandos como o(a) usuário(a) root):

for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
  xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
done

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos DTD, MOD e ENT
Diretórios Instalados: /etc/xml e /usr/share/xml/docbook/xml-dtd-4.5

Descrições Curtas

Arquivos DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos XML correspondentes

Arquivos MOD

contêm componentes da definição do tipo de documento que são carregados nos arquivos DTD

Arquivos ENT

contém listas de entidades nomeadas de caracteres permitidas em HTML

docbook-xml-5.0

Introdução ao DocBook XML DTD and Schemas 5.0

O pacote DocBook XML DTD and Schemas-5.0 contém definições de tipo de documento e esquemas para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão. Além de fornecer uma DTD, a versão 5 introduziu o esquema RelaxNG e as regras do Schematron e é incompatível com versões anteriores de XML do DocBook.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://docbook.org/xml/5.0/docbook-5.0.zip

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2411c19ed4fb141f3fa3d389fae40736

  • Tamanho da transferência: 820 KB

  • Espaço em disco estimado exigido: 6,2 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do DocBook XML DTD and Schemas 5.0

Exigidas

libarchive-3.7.7 e libxml2-2.13.6

Instalação do DocBook XML DTD and Schemas 5.0

Instale o DocBook XML DTD and Schemas executando os seguintes comandos como o(a) usuário(a) root:

install -vdm755 /usr/share/xml/docbook/schema/{dtd,rng,sch,xsd}/5.0 &&
install -vm644  dtd/* /usr/share/xml/docbook/schema/dtd/5.0         &&
install -vm644  rng/* /usr/share/xml/docbook/schema/rng/5.0         &&
install -vm644  sch/* /usr/share/xml/docbook/schema/sch/5.0         &&
install -vm644  xsd/* /usr/share/xml/docbook/schema/xsd/5.0

Ainda como o(a) usuário(a) root, crie os catálogos individuais:

xmlcatalog --noout --create /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml &&

xmlcatalog --noout --add "public" \
  "-//OASIS//DTD DocBook XML 5.0//EN" \
  "docbook.dtd" /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml &&
xmlcatalog --noout --add "system" \
  "http://www.oasis-open.org/docbook/xml/5.0/dtd/docbook.dtd" \
  "docbook.dtd" /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml &&

xmlcatalog --noout --create /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbook.rng" \
  "docbook.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng" \
  "docbook.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbookxi.rng" \
  "docbookxi.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" \
  "docbookxi.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbook.rnc" \
  "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rnc" \
  "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbookxi.rnc" \
  "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rnc" \
  "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml &&

xmlcatalog --noout --create /usr/share/xml/docbook/schema/sch/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/sch/docbook.sch" \
  "docbook.sch" /usr/share/xml/docbook/schema/sch/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/sch/docbook.sch" \
  "docbook.sch" /usr/share/xml/docbook/schema/sch/5.0/catalog.xml &&

xmlcatalog --noout --create /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/docbook.xsd" \
  "docbook.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbook.xsd" \
  "docbook.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/docbookxi.xsd" \
  "docbookxi.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbookxi.xsd" \
  "docbookxi.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/xlink.xsd" \
  "xlink.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
   "http://www.oasis-open.org/docbook/xml/5.0/xsd/xlink.xsd" \
   "xlink.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
   "http://docbook.org/xml/5.0/xsd/xml.xsd" \
   "xml.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml &&
xmlcatalog --noout --add "uri" \
   "http://www.oasis-open.org/docbook/xml/5.0/xsd/xml.xsd" \
   "xml.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml

Crie (ou atualize) e povoe o catálogo XML do sistema (/etc/xml/catalog) executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/catalog ]; then
    install -v -d -m755 /etc/xml &&
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
  "-//OASIS//DTD DocBook XML 5.0//EN" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
  "http://docbook.org/xml/5.0/dtd/" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.0/dtd/" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.0/rng/"  \
  "file:///usr/share/xml/docbook/schema/rng/5.0/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.0/sch/"  \
  "file:///usr/share/xml/docbook/schema/sch/5.0/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.0/xsd/"  \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/catalog.xml" \
  /etc/xml/catalog

Configurando a DTD e Esquemas 5.0 de XML do DocBook

Arquivos de Configuração

/etc/xml/catalog e /etc/xml/docbook-5.0

Conteúdo

Arquivos Instalados: Arquivos DTD, RNC, RNG, SCH e XSD
Diretórios Instalados: /etc/xml e /usr/share/xml/docbook/schema/{dtd,rng,sch,xsd}/5.0

Descrições Curtas

Arquivos DTD

contém as definições de tipo de documento 5.0 do DocBook que definem os tipos de elementos e as listas de atributos que podem ser usadas nos arquivos XML correspondentes

Arquivos RNC, RNG e SCH

contém as definições de esquema 5.0 RelaxNG, RelaxNG Compact e Schematron do Docbook

Arquivos XSD

arquivos contém regras Schematron do DocBook-5.0

docbook-xsl-nons-1.79.2

Introdução ao DocBook XSL Stylesheets

O pacote DocBook XSL Stylesheets contém folhas de estilo XSL. Elas são úteis para realizar transformações em arquivos XML do DocBook.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Documentação opcional

Dependências do DocBook XSL Stylesheets

Recomendadas (em tempo de execução)
Opcionais (todas usadas em tempo de execução)

apache-ant-1.10.15 (para produzir documentos webhelp), libxslt-1.1.42 (ou qualquer outro processador XSLT), para processar documentos Docbook, Ruby-3.4.2 (para utilizar as folhas de estilo epub), Zip-3.0 (para produzir documentos epub3) e Saxon6 e Xerces2 Java (usado com apache-ant-1.10.15 para produzir documentos webhelp)

Instalação do DocBook XSL Stylesheets

Primeiro, corrija um problema que causa estouros de pilha ao fazer recursão:

patch -Np1 -i ../docbook-xsl-nons-1.79.2-stack_fix-1.patch

Se você baixou o tarball opcional da documentação, desempacote-o com o seguinte comando:

tar -xf ../docbook-xsl-doc-1.79.2.tar.bz2 --strip-components=1

O BLFS não instala os pacotes exigidos para executar a suíte de teste e fornecer resultados significativos.

Instale o DocBook XSL Stylesheets executando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 &&

cp -v -R VERSION assembly common eclipse epub epub3 extensions fo        \
         highlighting html htmlhelp images javahelp lib manpages params  \
         profiling roundtrip slides template tests tools webhelp website \
         xhtml xhtml-1_1 xhtml5                                          \
    /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 &&

ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2/VERSION.xsl &&

install -v -m644 -D README \
                    /usr/share/doc/docbook-xsl-nons-1.79.2/README.txt &&
install -v -m644    RELEASE-NOTES* NEWS* \
                    /usr/share/doc/docbook-xsl-nons-1.79.2

Se você baixou o tarball de documentação opcional, instale a documentação emitindo o seguinte comando como o(a) usuário(a) root:

cp -v -R doc/* /usr/share/doc/docbook-xsl-nons-1.79.2

Configurando Folhas de Estilo XSL do DocBook

Arquivos de Configuração

/etc/xml/catalog

Informação de Configuração

Crie (ou posponha) e povoe o arquivo de catálogo XML usando os seguintes comandos como o(a) usuário(a) root (ambas as formas http e https são usadas porque o fluxo de desenvolvimento tem ambas colocadas na documentação deles(as)):

if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://cdn.docbook.org/release/xsl-nons/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "https://cdn.docbook.org/release/xsl-nons/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://cdn.docbook.org/release/xsl-nons/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "https://cdn.docbook.org/release/xsl-nons/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://cdn.docbook.org/release/xsl-nons/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "https://cdn.docbook.org/release/xsl-nons/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://cdn.docbook.org/release/xsl-nons/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "https://cdn.docbook.org/release/xsl-nons/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://docbook.sourceforge.net/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://docbook.sourceforge.net/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \
    /etc/xml/catalog

Ocasionalmente, você pode achar necessário instalar outras versões das folhas de estilo XSL, pois alguns projetos referenciam uma versão específica. Um exemplo é o BLFS-6.0, que exigia a versão 1.67.2. Nesses casos você deveria instalar qualquer outra versão exigida no próprio diretório versionado dela e criar entradas de catálogo como segue (substitua o número desejado de versão por <versão>):

xmlcatalog --noout --add "rewriteSystem" \
           "http://docbook.sourceforge.net/release/xsl/<version>" \
           "/usr/share/xml/docbook/xsl-stylesheets-<version>" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://docbook.sourceforge.net/release/xsl/<version>" \
           "/usr/share/xml/docbook/xsl-stylesheets-<version>" \
    /etc/xml/catalog

Conteúdo

Arquivos Instalados: /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2/*/*.xsl
Diretórios Instalados: /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 e /usr/share/doc/docbook-xsl-nons-1.79.2

Descrições Curtas

Folhas de Estilo XSL

são usados para realizar transformações em arquivos XML

docbook-xsl-ns-1.79.2

Introdução ao DocBook XSL Stylesheets (Namespaced)

O pacote Folhas de Estilo DocBook XSL (Namespaced) contém folhas de estilo XSL. Elas são úteis para realizar transformações sobre arquivos XML DocBook 5.0.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Transferências Adicionais

Dependências do DocBook XSL Stylesheets (Namespaced)

Recomendadas (em tempo de execução)
Opcionais (todas usadas em tempo de execução)

apache-ant-1.10.15 (para produzir documentos webhelp), libxslt-1.1.42 (ou qualquer outro processador XSLT), para processar documentos Docbook, Ruby-3.4.2 (para utilizar as folhas de estilo epub), Zip-3.0 (para produzir documentos epub3), e Saxon6 e Xerces2 Java (usados com apache-ant-1.10.15 para produzir documentos webhelp)

Instalação do DocBook XSL Stylesheets (Namespaced)

Primeiro, corrija um problema que causa estouros de pilha ao fazer recursão:

patch -Np1 -i ../docbook-xsl-1.79.2-stack_fix-1.patch

O BLFS não instala os pacotes exigidos para executar a suíte de teste e fornecer resultados significativos.

Instale o DocBook XSL Stylesheets executando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.79.2 &&

cp -v -R VERSION assembly common eclipse epub epub3 extensions fo        \
         highlighting html htmlhelp images javahelp lib manpages params  \
         profiling roundtrip slides template tests tools webhelp website \
         xhtml xhtml-1_1 xhtml5                                          \
    /usr/share/xml/docbook/xsl-stylesheets-1.79.2 &&

ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.79.2/VERSION.xsl

A documentação para esse pacote é compartilhada com a contraparte dele sem espaço de nomes, o pacote docbook-xsl-nons-1.79.2. Instale esse último se você quiser a documentação.

Configurando Folhas de Estilo XSL do DocBook

Arquivos de Configuração

/etc/xml/catalog

Informação de Configuração

Crie (ou posponha) e povoe o arquivo de catálogo XML usando os seguintes comandos como o(a) usuário(a) root (ambas as formas http e https são usadas porque o fluxo de desenvolvimento tem ambas colocadas na documentação deles(as)):

if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://cdn.docbook.org/release/xsl/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "https://cdn.docbook.org/release/xsl/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://cdn.docbook.org/release/xsl/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "https://cdn.docbook.org/release/xsl/1.79.2" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://cdn.docbook.org/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "https://cdn.docbook.org/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://cdn.docbook.org/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "https://cdn.docbook.org/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://docbook.sourceforge.net/release/xsl-ns/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://docbook.sourceforge.net/release/xsl-ns/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \
    /etc/xml/catalog

Conteúdo

Arquivos Instalados: /usr/share/xml/docbook/xsl-stylesheets-1.79.2/*/*.xsl
Diretórios Instalados: /usr/share/xml/docbook/xsl-stylesheets-1.79.2

Descrições Curtas

Folhas de Estilo XSL (Namespaced)

são usados para realizar transformações em arquivos XML

itstool-2.0.7

Introdução ao itstool

Itstool extrai mensagens a partir de arquivos XML e gera arquivos de modelo PO, depois mescla traduções a partir de arquivos MO para criar arquivos traduzidos XML. Ele determina o que traduzir e como dividi-lo em mensagens usando o Internationalization Tag Set (ITS) da W3C.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://files.itstool.org/itstool/itstool-2.0.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 267a3bdc72a2d8abb1b824f2ea32ee9b

  • Tamanho da transferência: 104 KB

  • Espaço em disco estimado exigido: 688 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Itstool

Exigidas

docbook-xml-4.5

Instalação do itstool

Primeiro, corrija alguns problemas de compatibilidade com Python-3.12 e posterior:

sed -i 's/re.sub(/re.sub(r/'         itstool.in &&
sed -i 's/re.compile(/re.compile(r/' itstool.in

Instale o itstool executando os seguintes comandos:

PYTHON=/usr/bin/python3 ./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: itstool
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/itstool

Descrições Curtas

itstool

é usado para criar arquivos traduzidos XML

xmlto-0.0.29

Introdução ao xmlto

O pacote xmlto é uma estrutura de interação direta com o(a) usuário(a) para uma cadeia de ferramentas de XSL. Ela escolhe uma folha de estilo apropriada para a conversão que você queira e a aplica usando um processador externo de XSLT. Ele também realiza qualquer pós-processamento necessário.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://pagure.io/xmlto/archive/0.0.29/xmlto-0.0.29.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 556f2642cdcd005749bd4c08bc621c37

  • Tamanho da transferência: 64 KB

  • Espaço em disco estimado exigido: 1,9 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do xmlto

Exigidas

docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42

Opcionais (para pós-processamento da estrutura de retaguarda de DVI, PDF e PostScript)

fop-2.10, dblatex e PassiveTeX

Opcionais (para pós-processamento do estrutura de retaguarda de texto)

Um de Links-2.30, Lynx-2.9.2, W3m ou ELinks

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xmlto

Instalação do xmlto

Instale o xmlto executando os seguintes comandos:

autoreconf -fiv                                  &&
LINKS="/usr/bin/links" ./configure --prefix=/usr &&

make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

LINKS="/usr/bin/links": Essa variável de ambiente corrige um defeito que faz com que o xmlto pense que o comando links é o mesmo que elinks. Configurar essa variável não causa problemas se o Links-2.30 não estiver instalado, a menos que você tenha o ELinks instalado e deseje usá-lo para pós-processamento da estrutura de retaguarda de texto. Se desejar ELinks, você deveria remover essa variável de ambiente.

Conteúdo

Aplicativos Instalados: xmlif e xmlto
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/xmlto

Descrições Curtas

xmlif

é uma instrução de processamento condicional para XML

xmlto

aplica uma folha de estilo XSL a um documento XML

Capítulo 50. PostScript

Este capítulo inclui aplicativos que criam, manipulam ou visualizam arquivos PostScript e criam ou visualizam arquivos Portable Document Format (PDF).

Enscript-1.6.6

Introdução ao Enscript

Enscript converte arquivos de texto ASCII em PostScript, HTML, RTF, ANSI e sobreposições.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Cuidado

Enscript não pode converter texto codificado em UTF-8 para PostScript. O problema é discutido detalhadamente na seção Codificação Necessária Não É uma Opção Válida da página Problemas Relacionados à Localidade. A solução é usar paps-0.8.0, em vez de Enscript, para converter texto codificado em UTF-8 para PostScript.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/enscript/enscript-1.6.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3acc242b829adacabcaf28533f049afd

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 14 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do Enscript

Opcionais

texlive-20240312 (ou install-tl-unx)

Instalação do Enscript

Instale o Enscript executando os seguintes comandos:

./configure --prefix=/usr              \
            --sysconfdir=/etc/enscript \
            --localstatedir=/var       \
            --with-media=Letter &&
make &&

pushd docs &&
  makeinfo --plaintext -o enscript.txt enscript.texi &&
popd

Se tiver texlive-20240312 instalado, você consegue criar documentação PostScript e PDF emitindo (não suporta make paralelo):

make -j1 -C docs ps pdf

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d /usr/share/doc/enscript-1.6.6 &&
install -v -m644    README* *.txt docs/*.txt \
                    /usr/share/doc/enscript-1.6.6

Se você construiu documentação PostScript e PDF, instale-a usando o seguinte comando como o(a) usuário(a) root:

install -v -m644 docs/*.{dvi,pdf,ps} \
                 /usr/share/doc/enscript-1.6.6

Explicações do Comando

--sysconfdir=/etc/enscript: Essa chave coloca os dados de configuração em /etc/enscript em vez de /usr /etc.

--localstatedir=/var: Essa chave configura o diretório para dados de tempo de execução como /var em vez de /usr/var.

--with-media=Letter: Essa chave configura o formato de mídias para tamanho carta em vez do padrão A4.

Conteúdo

Aplicativos Instalados: diffpp, enscript, mkafmmap, over, sliceprint e states
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/enscript, /usr/share/doc/enscript-1.6.6 e /usr/share/enscript

Descrições Curtas

diffpp

converte arquivos de saída diff para um formato adequado para ser impresso com enscript

enscript

é um filtro, usado principalmente por conjuntos de comandos sequenciais de impressão, que converte arquivos de texto ASCII para PostScript, HTML, RTF, ANSI e sobreposições

mkafmmap

cria um mapa de fontes a partir de um arquivo dado

over

é um conjunto de comandos sequenciais que chama enscript e passa os parâmetros corretos para criar fontes sobrepostas

sliceprint

fatia documentos com linhas longas

states

é uma ferramenta de processamento de texto semelhante ao awk com algumas extensões de máquina de estado. Ele foi projetado para realçar o código-fonte do aplicativo, e para tarefas semelhantes, onde as informações de estado ajudam no processamento de entrada

ePDFView-gtk3-20200814

Introdução ao ePDFView-gtk3

ePDFView-gtk3 é uma bifurcação do antigo programa ePDFView. Embora o repositório github https://github.com/Flow-It/epdfview_old.git o nomeie como 'antigo', é a bifurcação gtk3. É um substituto leve para o Evince, pois não depende das bibliotecas do GNOME e é mais capaz que o MuPDF.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do ePDFView

Exigidas

GTK-3.24.48 e Poppler-25.02.0

Recomendadas
Opcionais

A página inicial do repositório do projeto menciona que existem dependências opcionais, que são habilitadas por chaves. Elas são para construir a documentação e executar a suíte de teste, Doxygen-1.13.2 e Cppunit. Observe que doxygen instala somente uma página esquelética acerca dele mesmo, que não contém documentação de pacote, e o código de teste não compila com versões recentes de C++.

Instalação do ePDFView-gtk3

Instale o ePDFView-gtk3 executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr           \
            --buildtype=release     \
            -D enable-printing=true \
            ..                      &&
ninja

Esse pacote não vem com uma suíte construível de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK-3.24.48 instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Explicações do Comando

-D enable-printing=true: constrói o código para vincular com a(s) fila(s) de impressão do cups. Omita isso se você não tiver instalado o cups.

Configurando ePDFView-gtk3

ePDFView-gtk3 tem várias teclas de atalho de teclado para recursos opcionais. A maioria delas está 'desligada' por padrão, incluindo a barra de ferramentas, e se ela tiver sido fechada com o menu desabilitado, o programa pode iniciar com todas as opções não estando visíveis até que as teclas relevantes de função sejam pressionadas.

  • [F6] - alternar barra de ferramentas

  • [F7] - alternar menu

  • [F8] - alternar cores invertidas

  • [F9] - alternar mostrar índice

  • [F11] - alternar para tela cheia

Conteúdo

Aplicativo Instalado: epdfview
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/epdfview

Descrições Curtas

epdfview

é um aplicativo Gtk+-3 para visualizar documentos PDF

fop-2.10

Introdução ao fop

O pacote FOP (Formatting Objects Processor) contém um formatador de impressão controlado por objetos de formatação XSL (XSL-FO). É uma aplicação Java que lê uma árvore de objetos de formatação e renderiza as páginas resultantes em uma saída especificada. Os formatos de saída atualmente suportados incluem PDF, PCL, PostScript, SVG, XML (representação de árvore de área), impressão, AWT, MIF e texto ASCII. O alvo de saída principal é PDF.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.10-src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0815e845757c527e2617aca1ca2d82d1

  • Tamanho da transferência: 20 MB

  • Espaço em disco estimado exigido: 342 MB (incluindo arquivos baixados para o diretório do(a) usuário(a))

  • Tempo de construção estimado: 0,9 UPC

Transferências Adicionais

Transferências Adicionais Exigidas:

Pacotes recomendados

Dependências do fop

Exigidas

apache-ant-1.10.15

Opcionais

um ambiente gráfico (para executar testes), Ferramentas de E/S de Imagens JAI e JEuclid

Instalação do fop

Certifique-se de que $JAVA_HOME esteja configurada corretamente antes de iniciar a construção. Para construir as classes de extensão JIMI SDK e (ou) XMLUnit, certifique-se de que os arquivos .jar correspondentes possam ser encontrados por intermédio da variável de ambiente CLASSPATH.

Instalando Padrões de Hifenização OFFO

Copie os padrões de hifenização XML para a árvore do fonte do fop executando os seguintes comandos:

unzip ../offo-hyphenation.zip &&
cp offo-hyphenation/hyph/* fop/hyph &&
rm -rf offo-hyphenation

Instalando um binário temporário Maven

A partir do fop-2.5, o sistema de construção Maven é exigido. Nós usamos o binário fornecido pelo Apache, que instalamos em um local temporário:

tar -xf ../apache-maven-3.9.4-bin.tar.gz -C /tmp

Instalando Componentes fop

Primeiro, corrija um erro de construção causado pelo Java-23:

patch -Np1 -i ../fop-2.10-upstream_fixes-1.patch

O comando javadoc fornecido com o OpenJDK 10 e posterior tornou-se muito mais rigoroso que as versões anteriores em relação à conformidade dos comentários Javadoc no código-fonte para HTML. A documentação do FOP não atende a esses padrões, de forma que as verificações de conformidade tem de ser desabilitadas. Isso pode ser feito com o seguinte comando:

sed -i '\@</javad@i\
<arg value="-Xdoclint:none"/>\
<arg value="--allow-script-in-comments"/>\
<arg value="--ignore-source-errors"/>' \
    fop/build.xml

Compile o fop executando os seguintes comandos:

cd fop &&

LC_ALL=en_US.UTF-8                     \
PATH=$PATH:/tmp/apache-maven-3.9.4/bin \
ant package javadocs &&

mv build/javadocs .

Esse pacote vem com uma suíte de teste, mas a infraestrutura java instalada neste livro não permite executá-la.

Agora, instale o Fop como o(a) usuário(a) root:

install -v -d -m755 -o root -g root          /opt/fop-2.10 &&
cp -vR build conf examples fop* javadocs lib /opt/fop-2.10 &&
chmod a+x /opt/fop-2.10/fop                                &&
ln -v -sfn fop-2.10 /opt/fop

Por fim, remova a cópia temporária do Apache Maven:

rm -rf /tmp/apache-maven-3.9.4

Explicações do Comando

sed -i ... build.xml: Isso adiciona três chaves ao comando javadoc, evitando que alguns erros ocorram durante a construção da documentação.

export LC_ALL=en_US.UTF-8: o compilador falha se usar uma localidade ASCII.

ant target: Isso lê o arquivo build.xml e constrói o alvo: compile compila os fontes java; jar-main gera arquivos jar; jar-hyphenation gera os padrões de hifenização para o FOP; junit executa os testes junit; e javadocs constrói a documentação. O alvo all executa tudo do acima.

ln -v -sf fop-2.10 /opt/fop: Isso é opcional e cria um link simbólico de conveniência, de forma que $FOP_HOME não tenha que ser mudada cada vez que exista uma mudança na versão do pacote.

Configurando o fop

Arquivos de Configuração

~/.foprc

Informação de Configuração

Usar fop para processar alguns FOs grandes (incluindo o FO derivado dos fontes XML do BLFS) pode levar a erros de memória. A menos que você adicione um parâmetro ao comando java usado no conjunto de comandos sequenciais fop, você possivelmente receba mensagens semelhantes a esta mostrada abaixo:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Para evitar erros como esse, você precisa passar um parâmetro extra para o comando java usado no conjunto de comandos sequenciais fop. Isso pode ser feito criando-se um ~/.foprc (que é carregado pelo conjunto de comandos sequenciais fop) e adicionando-se o parâmetro à variável de ambiente FOP_OPTS.

O conjunto de comandos sequenciais fop procura por uma variável de ambiente FOP_HOME para localizar as bibliotecas de classes do fop. Você também pode criar essa variável usando o arquivo ~/.foprc. Crie um arquivo ~/.foprc usando os seguintes comandos:

cat > ~/.foprc << "EOF"
FOP_OPTS="-Xmx<RAM_Instalada>m"
FOP_HOME="/opt/fop"
EOF

Substitua <RAM_Instalada> por um número que represente a quantidade de RAM instalada em teu computador (em megabytes). Um exemplo seria FOP_OPTS="-Xmx768m".

Para incluir o conjunto de comandos sequenciais fop em teu caminho, atualize o perfil abrangente a todo o sistema com o seguinte comando como o(a) usuário(a) root:

cat > /etc/profile.d/fop.sh << "EOF"
# inicia /etc/profile.d/fop.sh

pathappend /opt/fop

# Termina /etc/profile.d/fop.sh
EOF

Nota

Executar fop pode ser um tanto detalhado. O nível de registro padrão pode ser mudado de INFO para FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, ALL ou OFF. Para fazer isso, edite o $JAVA_HOME/jre/lib/logging.properties e mude as entradas para .level e java.util.logging.ConsoleHandler.level para o valor desejado.

Conteúdo

Aplicativos Instalados: fop
Bibliotecas Instaladas: fop.jar e numerosas classes da biblioteca de suporte localizadas em /opt/fop/{build,lib}; Os componentes JAI incluem libmlib_jai.so, jai_codec.jar, jai_core.jar e mlibwrapper_jai.jar
Diretório Instalado: /opt/fop-2.10

Descrições Curtas

fop

é um conjunto de comandos sequenciais envolucradores para o comando java, os quais configuram o ambiente do fop e passam os parâmetros exigidos

fop.jar

contém todas as classes Java do fop

MuPDF-1.25.4

Introdução ao MuPDF

MuPDF é um visualizador leve de PDF e XPS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do MuPDF

Exigidas

GLU-9.0.3 e Bibliotecas do Xorg

Recomendadas
Opcionais

xdg-utils-1.2.1 (tempo de execução), jbig2dec e MuJS

Exigidas (tempo de execução)

um ambiente gráfico

Instalação do MuPDF

Instale o MuPDF executando os seguintes comandos:

cat > user.make << EOF &&
USE_SYSTEM_FREETYPE := yes
USE_SYSTEM_HARFBUZZ := yes
USE_SYSTEM_JBIG2DEC := no
USE_SYSTEM_JPEGXR := no # not used without HAVE_JPEGXR
USE_SYSTEM_LCMS2 := no # need lcms2-art fork
USE_SYSTEM_LIBJPEG := yes
USE_SYSTEM_MUJS := no # build needs source anyway
USE_SYSTEM_OPENJPEG := yes
USE_SYSTEM_ZLIB := yes
USE_SYSTEM_GLUT := no # need freeglut2-art fork
USE_SYSTEM_CURL := yes
USE_SYSTEM_GUMBO := no
EOF

export XCFLAGS=-fPIC                      &&
make build=release shared=yes verbose=yes &&
unset XCFLAGS

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make prefix=/usr                        \
     shared=yes                         \
     docdir=/usr/share/doc/mupdf-1.25.4 \
     install                            &&

ln -sfv libmupdf.so.25,4 /usr/lib/libmupdf.so   &&
ln -sfv libmupdf.so.25,4 /usr/lib/libmupdf.so.4 &&
chmod 755 /usr/lib/libmupdf.so.25,4             &&

ln -sfv mupdf-x11 /usr/bin/mupdf

Explicações do Comando

ln -sfv mupdf-x11 /usr/bin/mupdf : Esse link simbólico escolhe entre mupdf-gl e mupdf-x11 ao executar mupdf.

Conteúdo

Aplicativo Instalado: mupdf (link simbólico), mupdf-gl, mupdf-x11, mupdf-x11-curl, muraster e mutool
Bibliotecas Instaladas: libmupdf.so
Diretórios Instalados: /usr/include/mupdf, /usr/share/doc/mupdf-1.25.4

Descrições Curtas

mupdf

é um aplicativo para visualizar documentos PDF, XPS, EPUB e CBZ e vários formatos de imagem, como PNG, JPEG, GIFF e TIFF

mupdf-gl

mesmo que mupdf, usando um renderizador opengl

mupdf-x11

mesmo que mupdf, usando um renderizador do Janelas X

muraster

é um aplicativo usado para realizar tarefas de rasterização com documentos PDF

mutool

é um aplicativo para realizar diversas operações em arquivos PDF, como mesclar e limpar documentos PDF

libmupdf.so

contém as funções de API do mupdf

paps-0.8.0

Introdução ao paps

paps é um conversor de texto para PostScript que funciona por intermédio do Pango. A entrada dele é um arquivo de texto codificado em UTF-8 e produz PostScript vetorizado. Ele pode ser usado para imprimir qualquer conjunto de comandos sequenciais complexos suportados pelo Pango.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do paps

Exigidas

fmt-11.1.4 e Pango-1.56.1

Opcionais

Doxygen-1.13.2

Instalação do paps

Primeiro, corrija um problema com glib-2.81.0 ou posterior:

sed -i -r 's/g_utf8_(next|offset)/(char*) &/' src/paps.cc

Instale o paps executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-Werror \
            --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: paps
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

paps

é um conversor de texto para PostScript que suporta codificação de caracteres UTF-8

Capítulo 51. Composição Tipográfica

Este capítulo inclui aplicações texlive que criam resultados equivalentes à composição tipográfica.

Existem duas rotas alternativas ao longo deste capítulo:

Algumas pessoas possivelmente desejem usar o instalador binário, seja por causa da complexidade de instalar todo o texlive a partir do fonte, ou porque querem somente uma parte do pacote; ou talvez porque desejam obter atualizações assim que estiverem disponíveis (o fonte somente é atualizado anualmente, mas os binários e os arquivos tex e sty associados são atualizados por aproximadamente dez (10) meses). Essas pessoas deveriam começar em Configurando o PATH para TeX Live e depois seguir as instruções do install-tl-unx. Depois da instalação, elas conseguem executar o tlmgr para atualizar o sistema delas.

A maioria das pessoas que leem o BLFS desejará construir a partir do fonte. O BLFS costumava começar instalando install-tl-unx e depois usava isso para inicializar a construção. Hoje em dia, construímos quase todo o texlive sem uma instalação binária, adicionando os arquivos texmf empacotados separadamente nessa construção. Para isso, comece em Configurando o PATH para TeX Live e depois vá para texlive-20240312, que instalará a maior parte do texlive, juntamente com todos os arquivos de suporte. Essa instalação quase completa pode então ser usada para construir as partes restantes do texlive: asymptote-3.01, biber-2.20, dvisvgm-3.4.3 e xindy-2.5.1.

Como os arquivos texmf (incluindo documentação, fontes, conjuntos de comandos sequenciais e arquivos de suporte) estão todos em um tarball, não é prático limitar o que é extraído de maneira sensata (você poderia excluir um ou outro dos mecanismos de composição tipográfica, e não os muitos arquivos suportantes) ao construir a partir do fonte dessa maneira.

Em ambos os casos, o BLFS instala em /opt/texlive/2024.

Além disso, por favor, observe que o texlive é lançado anualmente e atualizar a partir do ano anterior para o ano atual não mais é suportado. Se, por alguma razão, você desejar manter versões por vários anos, para a maioria das coisas, você consegue montar o sistema antigo ou o novo em /opt/texlive e corrigir o PATH dele conforme necessário. No entanto, fazer isso não preservará nenhuma mudança no texmf-local e, se você construir a partir do fonte e tentar executar uma versão mais recente do biber com uma versão mais antiga do biblatex, é improvável que funcione.

Configurando o PATH para TeX Live

O fluxo de desenvolvimento prefere instalar em /usr/local, mas os(as) editores(as) do BLFS consideram isso inconveniente e pensam que usar /opt/texlive é mais apropriado. Originalmente, o BLFS usava uma instalação binária completa para inicializar a instalação do fonte, de forma que o mesmo prefixo é usado para ambos.

Antes de começar a construir o TeX Live, configure teu PATH, de forma que o sistema consiga encontrar os arquivos corretamente. Se você configurou teus conjuntos de comandos sequenciais de login conforme recomendado em Os Arquivos de Iniciação do Shell Bash, atualize os caminhos necessários criando o conjunto de comandos sequenciais texlive.sh. Os aplicativos são sempre instalados em um subdiretório <ARQUITETURA>-linux e no x86 de 32 bits isso é sempre i386-linux. Para x86_64 e i?86, podemos gerar isso como $TEXARCH:

Nota

Se atualizar a partir de uma versão do ano anterior, você deveria editar manualmente o texlive.sh para garantir que a versão para o ano que você deseja usar seja a única TeX presente (algumas pessoas precisam manter vários anos disponíveis para garantir que não existam regressões nos documentos delas).

Agora, crie o conjunto de comandos sequenciais texlive.sh como o(a) usuário(a) root:

TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/')

cat > /etc/profile.d/texlive.sh << EOF
# Begin texlive setup
TEXLIVE_PREFIX=/opt/texlive/2024
export TEXLIVE_PREFIX

pathappend \$TEXLIVE_PREFIX/texmf-dist/doc/info INFOPATH
pathappend \$TEXLIVE_PREFIX/bin/$TEXARCH

TEXMFCNF=\$TEXLIVE_PREFIX/texmf-dist/web2c
export TEXMFCNF

# End texlive setup
EOF

unset TEXARCH

Nota

As barras invertidas antes dos cifrões no conjunto de comandos sequenciais acima são para facilitar a operação de copiar/colar. As barras invertidas não deveriam aparecer no conjunto de comandos sequenciais atual.

Os novos caminhos podem ser ativados imediatamente executando-se:

source /etc/profile

Agora você deveria prosseguir para install-tl-unx para uma instalação binária do texlive ou para texlive-20240312 para começar a instalação a partir do fonte.

install-tl-unx

Introdução ao TeX Live e ao instalador dele

O pacote TeX Live é um sistema abrangente de produção de documentos TeX. Ele inclui TeX, LaTeX2e, LuaLaTeX, Metafont, MetaPost, BibTeX e muitos outros aplicativos; uma extensiva coleção de macros, fontes e documentação; e suporte para composição tipográfica em muitos conjuntos de comandos sequenciais oriundos de todo o mundo.

Esta página é para pessoas que desejam usar o instalador binário para fornecer os aplicativos, os conjuntos de comandos sequenciais e muitos arquivos e documentação de suporte. O instalador é atualizado frequentemente, de forma que qualquer soma de verificação MD5 publicada ficará desatualizada em breve. Versões mais recentes do instalador são esperadas funcionarem com estas instruções, desde que sejam instaladas num diretório 2024/.

Existem duas razões pelas quais você possivelmente deseje instalar os binários no BLFS: ou você precisa de uma instalação menor (por exemplo, no mínimo TeX simples sem LaTeX, ConTeXt, etc), ou você deseja usar o tlmgr para obter atualizações enquanto essa versão for suportada (tipicamente, até março do ano seguinte ao lançamento dela). Para o última, você pode preferir instalar em teu diretório /home como um(a) usuário(a) sem privilégios e, em seguida, fazer as mudanças correspondentes no PATH em teu ~/.bashrc ou equivalente.

Nota

Se você deseja usar o ConTeXt com luametatex (a maior parte do antigo código MKII e MKIV foi removido do TeX Live 2023 pelo(a) desenvolvedor(a) do ConTeXt), usar o binário é provavelmente a opção mais fácil. O fonte não mais é fornecido com o TeX Live e está mal adaptado para construção com sistemas, exceto aqueles executando Mac e Windows. Vejam-se os comentários 1 a 5 de #17823.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Varies frequently

  • Tamanho da transferência: 5,5 MB

  • Espaço em disco estimado exigido: 85 MB para TeX simples, normalmente 320 MB para latex e mecanismos posteriores, 8,6 GB se tudo estiver incluído

  • Tempo de construção estimado: varia, dependendo da velocidade e do tráfego da rede de intercomunicação

Recomendadas
Recomendadas (em tempo de execução)

A versão binária do asy está vinculada à libGLX.so.0 originária de libglvnd, mas instalar isso quebrará atualizações futuras dos pacotes do BLFS, como Mesa-24.3.4. Contorne isso criando um link simbólico como o(a) usuário(a) root:

ln -sv libGL.so.1 /usr/lib/libGLX.so.0

Nota

Como sempre acontece com software binário contribuído, é possível que as dependências exigidas mudem quando o instalador for atualizado. Em particular, essas dependências só foram verificadas em x86_64.

Python2 é usado pelo módulo CTAN ebong não mantido (destinado a escrever Bengali em formato Rapid Roman). /usr/bin/python também está na linha shebang para os conjuntos de comandos sequenciais latex-papersize e lilyglyphs, e a documentação no CTAN diz que ambos os módulos foram atualizados para funcionar com python3. No pythontex existem conjuntos de comandos sequenciais para invocar python3 ou python2 de acordo com a versão do sistema do python. Ruby-3.4.2 é usado por dois conjuntos de comandos sequenciais, um é para pTex (escrita vertical japonesa) e o outro é match_parens que pode geralmente ser útil. O módulo perl Tk, que precisa ser executado a partir de uma sessão do X11 para executar os testes e exige Tk-8.6.16, é usado por um dos conjuntos de comandos sequenciais para ptex e é necessário para texdoctk (uma interface GUI para localizar arquivos de documentação e abri-los com o visualizador apropriado). ps2pdf, proveniente de ghostscript-10.04.0, é usado por alguns utilitários e conjuntos de comandos sequenciais.

Instalação Binária do TeX Live

O conjunto de aplicativos do TeX Live com os documentos de suporte deles, fontes e utilitários é muito grande. Os(As) mantenedores(as) originais recomendam colocar todos os arquivos em uma estrutura de diretórios única. O BLFS recomenda /opt/texlive.

Nota

Se você tiver escolhido instalar o binário como um(a) usuário(a) normal, o diretório para o prefixo precisa ser escrevível por esse(a) usuário(a). O(A) usuário(a) root pode mudar a titularidade de propriedade do /opt/texlive/2024 para esse(a) usuário(a) antes que o(a) usuário(a) inicie a instalação. Se qualquer mudança posterior nesse diretório for feita pelo(a) usuário(a) root, isso mudará a titularidade de propriedade, o que quebra o uso por usuários(as) normais.

Como acontece com qualquer outro pacote, desempacote o instalador e mude para o diretório dele, install-tl-<CCYYMMDD>. Esse nome de diretório muda quando o instalador é atualizado, de forma que substitua <CCYYMMDD> pelo nome correto de diretório.

Nota

Os binários de distribuição instalados abaixo podem usar lincagem estática para bibliotecas gerais do sistema Linux. Bibliotecas ou interpretadores adicionais, conforme especificado na seção de dependências, não precisam estar presentes durante a instalação, mas os aplicativos que precisam deles não serão executados até que as dependências específicas deles tenham sido instaladas.

Com todos os softwares binários contribuídos, possivelmente exista uma incompatibilidade entre o conjunto de ferramentas do(a) construtor(a) e o teu hardware. Na maior parte do TeX isso provavelmente não importará, mas em casos incomuns você poderá encontrar problemas. Por exemplo, se o teu processador x86_64 não suportar 3dnowext ou 3dnow, o binário 2014-06-28 falharia no ConTeXt ao executar LuaTeX, embora lualatex funcionasse, assim como os binários i686 na mesma máquina. Nesses casos, a solução mais fácil é a de instalar o texlive a partir do fonte. Similarmente, a versão binária x86_64 do asy executa muito lentamente ao criar diagramas 3D.

Agora, como o(a) usuário(a) root:

TEXLIVE_INSTALL_PREFIX=/opt/texlive ./install-tl

Esse comando é interativo e permite seleção ou modificação de plataforma, pacotes, diretórios e outras opções. O tempo para concluir a transferência dependerá da velocidade da tua conexão de Internet e do número de pacotes selecionados.

Para uma instalação mínima que construirá documentação que seja referenciada no BLFS, as únicas coleções de instalação necessárias são '[a] Programas e arquivos essenciais' e '[D] Pacotes fundamentais do LaTeX'. Isso baixará cerca de 130 arquivos e usará cerca de 320 MB. Usuários(as) conseguem selecionar outras coleções conforme necessário, mas uma instalação completa baixará vários milhares de arquivos e usará mais de 8 GB.

Nota

Depois da instalação, a variável de ambiente PATH precisará ser atualizada. Se o caminho estiver no local especificado acima, execute como o(a) usuário(a) root:

cat > /etc/profile.d/texlive.sh << EOF
# Begin texlive setup
TEXLIVE_PREFIX=/opt/texlive/2024
export TEXLIVE_PREFIX

pathappend $TEXLIVE_PREFIX/bin/x86_64-linux
# End texlive setup
EOF

Imediatamente depois da instalação, atualize o PATH atual para teu shell atual como um(a) usuário(a) normal:

source /etc/profile.d/texlive.sh

Explicações do Comando

./install-tl --location http://mirror.aut.ac.nz/CTAN/systems/texlive/tlnet/: use uma variação disso se você desejar usar um espelho diferente, por exemplo, porque está na Nova Zelândia, mas o instalador escolher usar um espelho australiano. A lista de espelhos está em https://ctan.org/mirrors/.

Conteúdo

Aplicativos Instalados: Mais que trezentos (300) binários e links simbólicos para conjuntos de comandos sequenciais
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /opt/texlive

Descrições Curtas

TeXprograms

Os aplicativos incluídos no TeX são numerosos demais para se listar individualmente. Por favor, consulte as páginas HTML e PDF do programa individual nos vários arquivos html, man ou pdf nos subdiretórios de 2024/texmf-dist/. Usar texdoc pdflatex (substitua pdflatex pelo nome do comando) também possivelmente seja útil

texlive-20240312-source

Introdução ao TeX Live a partir do fonte

Nota

De acordo com https://www.tug.org/historic/ o site mestre na França suporta somente FTP e rsync. Agora que o FTP está geralmente obsoleto, essa página tem links para espelhos, alguns dos quais suportam HTTPS, por exemplo, em Utah e Chemnitz, bem como na China. Se você preferir usar um espelho diferente a partir dos links de exemplo aqui, você precisará navegar até systems/historic/texlive/2024 ou systems/texlive/2024 conforme o caso.

A maior parte do TeX Live pode ser construída a partir do fonte sem uma instalação pré existente, mas o xindy (para indexação) precisa de versões funcionais de latex e pdflatex quando o configure for executado e a suíte de teste e a instalação do asy (para gráficos vetoriais) falharão se o TeX ainda não tiver sido instalado. Além disso, biber não é fornecido no fonte do texlive e a versão de dvisvgm na árvore do texlive não pode ser construída se bibliotecas de sistema compartilhadas forem usadas.

Todos esses pacotes são tratados em nas próprias páginas deles e podem ser construídos depois de se instalar esse pacote. Se ainda não tiver feito isso, você deveria iniciar em Configurando o PATH para TeX Live, de forma que os comandos finais para inicializar a nova instalação sejam encontrados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2024/texlive-20240312-source.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1da2f08e3ba4a3708870dd088c1d6823

  • Tamanho da transferência: 67 MB

  • Espaço em disco estimado exigido: 9,1 GB incluindo a transferência adicional e os testes; 8,3 GB instalado

  • Tempo de construção estimado: 4,6 UPC incluindo a transferência adicional e os testes, construindo com paralelismo=4

Transferências Adicionais Exigidas

Muito do ambiente do texlive (incluindo conjuntos de comandos sequenciais, documentação, fontes e vários outros arquivos) não faz parte do tarball do fonte. Você precisa baixá-lo separadamente. Isso te dará todos os arquivos adicionais que são fornecidos por uma instalação completa da versão binária, pois não existe uma maneira realista de restringir quais partes serão instaladas.

Devido ao tamanho desse pacote, é improvável que ele seja espelhado por espelhos do BLFS. Se você estiver impossibilitado(a) de baixar os arquivos para esse pacote, vá para https://www.ctan.org/mirrors/ para encontrar um espelho mais acessível.

A base de dados tlpdb é enviada como um tarball separado. O programa texdoc precisa de um arquivo de cache derivado a partir desse (e criará o cache na primeira execução dele).

Dependências do TeX Live a partir do fonte

Recomendadas
Opcionais

O fonte vem com as próprias versões dele de diversas bibliotecas, as quais ou não estão em desenvolvimento ativo ou são usadas somente para funcionalidades limitadas. Se você instalar essas, como acontece com algumas outras dependências opcionais neste livro, você precisará dizer ao configure para usar as versões do sistema. GD, t1lib, ZZIPlib, TECkit

Dependências de tempo de execução

Python2 é usado pelo módulo CTAN ebong não mantido (destinado a escrever Bengali em formato Rapid Roman). /usr/bin/python também está na linha shebang para os conjuntos de comandos sequenciais latex-papersize e lilyglyphs, e a documentação no CTAN diz que ambos os módulos foram atualizados para funcionar com python3. No pythontex existem conjuntos de comandos sequenciais para invocar python3 ou python2 de acordo com a versão do sistema do python. Ruby-3.4.2 é usado por dois conjuntos de comandos sequenciais, um é para pTex (escrita vertical japonesa) e o outro é match_parens que pode geralmente ser útil. O módulo perl Tk, que precisa ser executado a partir de uma sessão do X11 para executar os testes e exige Tk-8.6.16, é usado por um dos conjuntos de comandos sequenciais para ptex e é necessário para texdoctk (uma interface GUI para localizar arquivos de documentação e abri-los com o visualizador apropriado). ps2pdf, proveniente de ghostscript-10.04.0, é usado por alguns utilitários e conjuntos de comandos sequenciais.

Instalação do TeX Live

Instale o TeX Live executando os seguintes comandos:

Cuidado

Se você desejar atualizar para o texlive atual em um sistema mais antigo, onde pacotes extras (asymptote, dvisvgm ou xindy) tenham sido instalados, você precisará reinstalá-los, bem como corrigir teu PATH para $TEXLIVE_PREFIX.

Nota

Uma instalação bem-sucedida exige que alguns comandos do texlive sejam executados como o(a) usuário(a) root, de forma que nós exportaremos a variável TEXARCH para permitir que o(a) root a use.

Corrija uma falha de construção que ocorre em algumas plataformas devido a avisos mais rigorosos do compilador:

sed -e '182 s/internal_font_number/boolean/' \
    -e '301 s/internal_font_number/boolean/' \
    -i texk/web2c/pdftexdir/pdftex.ch

Agora, como um(a) usuário(a) normal:

export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&

patch -Np1 -i ../texlive-20240312-source-upstream_fixes-1.patch &&

mkdir texlive-build &&
cd    texlive-build &&

../configure -C                                   \
    --prefix=$TEXLIVE_PREFIX                      \
    --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH         \
    --datarootdir=$TEXLIVE_PREFIX                 \
    --includedir=$TEXLIVE_PREFIX/include          \
    --infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \
    --libdir=$TEXLIVE_PREFIX/lib                  \
    --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man   \
    --disable-native-texlive-build                \
    --disable-static --enable-shared              \
    --disable-dvisvgm                             \
    --with-system-cairo                           \
    --with-system-fontconfig                      \
    --with-system-freetype2                       \
    --with-system-gmp                             \
    --with-system-graphite2                       \
    --with-system-harfbuzz                        \
    --with-system-icu                             \
    --with-system-libgs                           \
    --with-system-libpaper                        \
    --with-system-libpng                          \
    --with-system-mpfr                            \
    --with-system-pixman                          \
    --with-system-zlib                            \
    --with-banner-add=" - BLFS" &&

make

Para testar os resultados, emita: make -k check. Um teste, psutils.test, é conhecido por falhar se usar a libpaper do sistema porque o TeX Live inclui versões antigas de psutils e libpaper que resultam em uma diferença nas casas decimais finais do teste psresize. O(A) desenvolvedor(a) do libpaper não pensa que isso seja significativo.

Agora, como o(a) usuário(a) root:

make install-strip &&
make texlinks      &&
mkdir -pv                                $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
tar -xf ../../texlive-20240312-extra.tar.xz -C $TEXLIVE_PREFIX/tlpkg --strip-components=2

Nota

Execute make texlinks somente uma vez. Se for executado novamente, poderá mudar todos os links simbólicos do aplicativo, de forma que eles apontem para eles mesmos e sejam inúteis.

Agora instale os arquivos adicionais como o(a) usuário(a) root:

tar -xf ../../texlive-20240312-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1

Ainda como o(a) usuário(a) root, inicialize o novo sistema (o comando fmtutil-sys --all produzirá um monte de saída gerada):

mktexlsr &&
fmtutil-sys --all

Para permitir que o Evince-46.3.1, ou o dvisvgm-3.4.3, se vincule a libkpathsea.so, como o(a) usuário(a) root, (re)crie um link simbólico a partir de /usr/lib:

ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so{,.6} /usr/lib

Nota

O TeX Live não inclui o fonte para ConTeXt, somente os itens que estão no CTAN. Tentar construir o ConTeXt puramente a partir do fonte em um sistema TeX Live do BLFS é um uso de nicho e parece que será mais problemático do que vale a pena.

Se você desejar usar o ConTeXt com luametatex (a maior parte do antigo código do MKII e MKIV foi removido do TeX Live 2023 pelo(a) desenvolvedor(a) do ConTeXt), começando com o binário (somente instalando o ConTeXt, 753 MB em março de 2024 ) provavelmente seria a maneira mais fácil de inicializá-lo. O fonte para luametatex pode ser extraída com git a partir de github luametatex, compilado com meson e ninja, e instalado copiando-se para o diretório correto do programa. Isso deveria evitar ter-se que corrigir todos os links simbólicos, etc., e também evitar incluir as muitas partes não relacionadas do texmf-dist. Vejam-se os comentários 1 a 5 de #17823.

Agora você pode prosseguir para asymptote-3.01, biber-2.20, dvisvgm-3.4.3 e (ou) xindy-2.5.1 se desejar instalá-los.

Explicações do Comando

-C: cria config.cache, o que economiza tempo significativo em uma construção paralela.

--prefix=, --bindir=, --datarootdir= e outras chaves dir: essas chaves asseguram que os arquivos instalados a partir do fonte sobrescreverão quaisquer arquivos correspondentes previamente instalados por install-tl-unx, de forma que os métodos alternativos de se instalar o texlive sejam consistentes.

--includedir= --libdir= : essas chaves garantem que as bibliotecas e os arquivos de inclusão estarão dentro dos diretórios do texlive deste ano.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-shared: Use versões compartilhadas de libkpathsea, libptexenc, libsynctex, libtexlua52 e libtexluajit.

--with-system-...: A menos que esse parâmetro seja usado, as versões incluídas dessas bibliotecas serão compiladas estaticamente nos aplicativos que necessitarem delas. Se você decidiu não instalar uma biblioteca recomendada, omita a chave correspondente.

--disable-dvisvgm: Conforme observado acima, a versão enviada do dvisvgm, que tem arquivos modificados de configuração, não pode ser construída com bibliotecas de sistema compartilhadas.

make texlinks : isso executa o conjunto de comandos sequenciais texlinks.sh para criar links simbólicos de formats para engines. Na prática, vários dos alvos, como o xetex, agora são binários separados e para esses ele informará "file already exists".

tar -xf texlive-20240312-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1: o tarball contém os arquivos para o diretório texmf-dist e, devido ao tamanho dele, nós não queremos desperdiçar tempo e espaço desempacotando-o e depois copiando os arquivos.

install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/: Isso coloca os módulos do Perl TLConfig.pm e TLUtils.pm no diretório onde o instalador do binário os coloca - está no início do PATH @INC@ do Perl dentro do texlive quando instalado usando as chaves de configuração acima. Sem esses módulos, o texlive não é usável.

mktexlsr: Crie um arquivo ls-R que lista o que foi instalado - isso é usado pelo kpathsea para encontrar arquivos.

fmtutil-sys --all: Isso inicializa os formatos do TeX, bases Metafont e memorandos Metapost.

--without-x: use isso se você não tiver o Xorg instalado.

Existem muitas outras opções '--disable' ou '--without'. Algumas delas, como --without-texinfo, são aceitas, mas não mais fazem nada; outras impedirão um aplicativo de ser construído - mas a quantidade muito maior de espaço usado para os itens relacionados no texmf significa que não existe nenhum benefício óbvio em desabilitar alguns dos aplicativos.

Conteúdo

Aplicativos Instalados: Mais que trezentos (300) binários e links simbólicos para conjuntos de comandos sequenciais
Bibliotecas Instaladas: libkpathsea.so, libptexenc.so, libsynctex.so, libtexlua52.so, libtexluajit.so
Diretórios Instalados: $TEXLIVE_PREFIX/bin, $TEXLIVE_PREFIX/include, $TEXLIVE_PREFIX/lib, $TEXLIVE_PREFIX/texmf-dist

Descrições Curtas

TeXprograms

Os aplicativos incluídos no TeX são numerosos demais para se listar individualmente. Por favor, consulte as páginas HTML e PDF do programa individual nos vários arquivos html, man ou pdf nos subdiretórios de 2024/texmf-dist/. Usar texdoc pdflatex (substitua pdflatex pelo nome do comando) também possivelmente seja útil

libkpathsea.so

(kpathsearch) existe para procurar um arquivo em uma lista de diretórios e é usado pelo kpsewhich

libptexenc.so

é uma biblioteca para pTeX japonês (publicação de TeX)

libsynctex.so

é a biblioteca do analisador SyncTeX (Synchronize TeXnology)

libtexlua52.so

fornece Lua 5.2, modificado para uso com o LuaTeX

libtexluajit.so

fornece LuaJIT, modificado para uso com o LuaJITTeX

asymptote-3.01

Introdução ao asymptote

Asymptote é uma poderosa linguagem gráfica vetorial descritiva que fornece uma estrutura natural baseada em coordenadas para desenhos técnicos. Rótulos e equações podem ser tipografados com LaTeX. Além de saída EPS, PDF e PNG, ele pode produzir renderização HTML 3D WebGL e (usando o dvisvgm) saída SVG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/asymptote/asymptote-3.01.src.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f2286eec207c03e9b5d378e77a6b43a2

  • Tamanho da transferência: 30 MB

  • Espaço em disco estimado exigido: 338 MB (56 MB instalado depois de sobrescrever arquivos em $TEXLIVE_PREFIX/texmf-dist/, com todas as dependências que estão no BLFS)

  • Tempo de construção estimado: 1,0 UPC (usando paralelismo = 4)

Dependências do asymptote

Exigidas

ghostscript-10.04.0 e texlive-20240312

Recomendadas
Recomendadas em tempo de execução
Opcionais

fftw-3.3.10, gsl-2.8, libsigsegv-2.14, ambos Boost-1.87.0 e rapidjson para usar LSP que pode ser usado com emacs, click e eigen

Opcionais (em tempo de execução)

ImageMagick-7.1.1-43 para converter a saída para outros formatos, como JPEG ou para criar GIFs animados, PyQt5 (não testado, tem uma dependência de construção de Qt5) para usar xasy

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/asymptote

Instalação do asymptote

Nota

Certos conjuntos de comandos sequenciais 3D de PDF possivelmente não funcionem quando invocados a partir do pdflatex em algumas máquinas APU zen+ amdgpu.

Instale o asymptote executando os seguintes comandos:

export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&

./configure --prefix=$TEXLIVE_PREFIX                          \
            --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH             \
            --datarootdir=$TEXLIVE_PREFIX/texmf-dist          \
            --infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info     \
            --libdir=$TEXLIVE_PREFIX/texmf-dist               \
            --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man       \
            --disable-lsp                                     \
            --enable-gc=system                                \
            --with-latex=$TEXLIVE_PREFIX/texmf-dist/tex/latex \
            --with-context=$TEXLIVE_PREFIX/texmf-dist/tex/context/third &&

make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--prefix=, --bindir=, --datarootdir= e outras chaves dir: essas chaves asseguram que os arquivos instalados a partir do fonte sobrescreverão quaisquer arquivos correspondentes previamente instalados por install-tl-unx, de forma que os métodos alternativos de se instalar o texlive sejam consistentes.

--libdir=$TEXLIVE_PREFIX/texmf-dist: Esse parâmetro garante que o diretório asymptote sobrescreverá de forma semelhante quaisquer arquivos instalados por install-tl-unx.

--disable-lsp: O Language Server Protocol é habilitado por padrão, com diversas fontes de terceiros incluídas, mas ele não constrói, a menos que boost e rapidjson tenham sido instalados.

--enable-gc=system: isso garante que a versão do sistema da libgc.so será usada em vez da versão fornecida com esse pacote.

--with-latex= --with-context=: Essas chaves garantem que os arquivos de estilo e um arquivo tex sejam instalados nos diretórios do texlive em vez de criar um diretório texmf-local para eles.

Conteúdo

Aplicativos Instalados: asy e xasy
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $TEXLIVE_PREFIX/texmf-dist/asymptote, $TEXLIVE_PREFIX/doc/asymptote e $TEXLIVE_PREFIX/info/asymptote

Descrições Curtas

asy

é um aplicativo de gráficos vetoriais

xasy

é um conjunto de comandos sequenciais Python3 que fornece uma GUI Qt5 para o asy

biber-2.20

Introdução ao biber

Biber é um substituto do BibTeX para usuários(as) do biblatex, escrito em Perl, com suporte completo a Unicode.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/plk/biber/archive/v2.20/biber-2.20.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a7f400cdac3a3d9d9ab13ca053eb6791

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 15 MB (instala 1,6 MB de módulos Perl)

  • Tempo de construção estimado: 0,4 UPC incluindo testes

Nota

Se você tiver atualizado para um novo lançamento do texlive-source, o biber e as dependências Perl dele ainda estarão presentes em /usr e não precisam ser reconstruídas. Contudo, o biblatex instala em /opt/texlive/2024 e precisa ser reinstalado.

Se você instalou as dependências acima usando as instruções do BLFS para cada uma delas, perl ./Build.PL reclamará que Mozilla::CA não está instalado, mas isso não é necessário, a menos que o CPAN seja usado para instalar os módulos. O BLFS corrige LWP::Protocol::https para usar os certificados do sistema; Mozilla::CA usa certificados antigos.

Dependências do Biber

Exigidas

autovivification-0.18, Business-ISBN-3.011, Business-ISMN-1.204, Business-ISSN-1.008, Class-Accessor-0.51, Data-Compare-1.29, Data-Dump-1.25, Data-Uniqid-0.12, DateTime-Calendar-Julian-0.107, DateTime-Format-Builder-0.83, Encode-EUCJPASCII-0.03, Encode-HanExtra-0.23, Encode-JIS2K-0.05, File-Slurper-0.014, IO-String-1.08, IPC-Run3-0.049, Lingua-Translit-0.29, List-AllUtils-0.19, List-MoreUtils-0.430, Log-Log4perl-1.57, LWP-Protocol-https-6.14, Module-Build-0.4234, Parse-RecDescent-1.967015, PerlIO-utf8_strict-0.010, Regexp-Common-2024080801, Sort-Key-1.33, Text-BibTeX-0.91, Text-CSV-2.05, Text-Roman-3.5, Unicode-Collate-1.31, Unicode-LineBreak-2019.001, XML-LibXML-Simple-1.01, XML-LibXSLT-2.003000 e XML-Writer-0.900

Recomendadas (exigidas para a suíte de teste)

Nota

É possível instalar todas as dependências ausentes automaticamente. Você precisa primeiro instalar Module-Build-0.4234, usando instalação automática de módulos "Perl". Em seguida, execute perl ./Build.PL e quando solicitado, torne-se o(a) usuário(a) root e execute ./Build installdeps - isso usará CPAN e, como observado acima, usará Mozilla::CA, em vez de usar os certificados de sistema.

Instalação do Biber

Instale o Biber executando os seguintes comandos:

perl ./Build.PL &&
./Build

Para testar os resultados, digite: ./Build test

Agora, como o(a) usuário(a) root:

./Build install

Conteúdo

Aplicativos Instalados: biber
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/lib/perl5/site_perl/5.*{,/<arch>-linux/auto}/Biber

Descrições Curtas

biber

é usado para produzir bibliografias em documentos LaTeX

dvisvgm-3.4.3

Introdução ao dvisvgm

O pacote dvisvgm converte arquivos DVI, EPS e PDF para o formato SVG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/mgieseki/dvisvgm/releases/download/3.4.3/dvisvgm-3.4.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1b354023a504a72bba35a639a0987d76

  • Tamanho da transferência: 2,8 MB

  • Espaço em disco estimado exigido: 268 MB (net 7 MB instalados depois de sobrescrever arquivos em $TEXLIVE_PREFIX/texmf-dist/, adicionar 948 MB para os testes)

  • Tempo de construção estimado: 0,8 UPC (adicionar 0,5 UPC para testes, ambos usando paralelismo=4)

Dependências do dvisvgm

Exigidas

Brotli-1.1.0, ghostscript-10.04.0, Potrace-1.16 e texlive-20240312

Recomendadas
Opcionais

asciidoc-10.2.1 com xmlto-0.0.29 e libxslt-1.1.42, dblatex (com o acima) e xxHash (a versão atual está incluída no tarball)

Instalação do dvisvgm

A suíte de teste assume que uma versão moderna do Python tenha sido instalada como python simples. Mudar isso para usar o python3 exige um sed para um arquivo Makefile.in.

Instale o dvisvgm executando os seguintes comandos:

sed -i 's/python/&3/' tests/Makefile.in         &&
./configure                                     \
    --bindir=$TEXLIVE_PREFIX/bin/${TEXARCH}     \
    --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \
    --with-kpathsea=$TEXLIVE_PREFIX             &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-kpathsea=$TEXLIVE_PREFIX: Isso permite que o sistema de construção encontre os cabeçalhos para kpathsea

Conteúdo

Aplicativos Instalados: dvisvgm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

dvisvgm

converte arquivos DVI, EPS e PDF para o formato SVG

xindy-2.5.1

Introdução ao xindy

Xindy é um processador de índice que pode ser usado para gerar índices semelhantes a livros para sistemas arbitrários de preparação de documentos. Isso inclui sistemas como TeX e LaTeX, a família roff e sistemas baseados em SGML/XML (por exemplo, HTML) que processam algum tipo de texto e geram informações de indexação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://tug.ctan.org/support/xindy/base/xindy-2.5.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 221acfeeb0f6f8388f89a59c56491041

  • Tamanho da transferência: 506 KB

  • Espaço em disco estimado exigido: 15 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Transferências Adicionais Exigidas

Dependências do Xindy

Exigidas

Clisp-2.49 e texlive-20240312

Instalação do xindy

Instale o xindy executando os seguintes comandos:

export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&

sed -i "s/ grep -v '^;'/ awk NF/" make-rules/inputenc/Makefile.in &&

sed -i 's%\(indexentry\)%\1\\%' make-rules/inputenc/make-inp-rules.pl &&

patch -Np1 -i ../xindy-2.5.1-upstream_fixes-2.patch &&

./configure --prefix=$TEXLIVE_PREFIX              \
            --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH \
            --datarootdir=$TEXLIVE_PREFIX         \
            --includedir=/usr/include             \
            --libdir=$TEXLIVE_PREFIX/texmf-dist   \
            --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man &&

make LC_ALL=POSIX

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -i "s/ grep -v '^;'/ awk NF/" ...: A construção classifica os arquivos em codificações latinas{1..3} para criar latin.xdy, e versões Unicode desses, para criar utf8.xdy depois de usar grep -v '^;' para remover linhas em branco. Com grep-2.23, qualquer dado que não esteja na codificação esperada é tratado como binário, resultando em um arquivo inútil. Esse comando usa uma forma alternativa de remover linhas em branco.

sed -i 's%\(indexentry\)%\1\\%' ...: Uma expressão regular contém indexentry{ - Perl avisou acerca da chave esquerda sem escape por algum tempo e agora a trata como ilegal. Mude para indexentry\{, duplicando a barra invertida para o sed.

patch -Np1 -i ../xindy-2.5.1-upstream_fixes-2.patch: O Xindy agora é mantido no CTAN. Esse remendo atualiza o fonte com algumas das mudanças feitas lá (mas ignorando as mudanças que foram feitas somente para permitir espaços nos nomes de caminhos e algumas mudanças triviais recentes).

--prefix=, --bindir=, --datarootdir= e outras chaves dir: essas chaves asseguram que os arquivos instalados a partir do fonte sobrescreverão quaisquer arquivos correspondentes previamente instalados por install-tl-unx, de forma que os métodos alternativos de se instalar o texlive sejam consistentes.

--includedir=/usr/include: Esse parâmetro garante que os cabeçalhos kpathsea oriundos do texlive-20240312 serão encontrados.

make LC_ALL=POSIX: com a versão atual do coreutils, é essencial construir o xindy na localidade POSIX (ou C), porque em uma localidade UTF -8 o arquivo latin.xdy conterá somente um cabeçalho e então uma linha 'Binary file (standard input) matches' em vez das muitas linhas de comandos de regra de mesclagem do lisp que deve conter.

Conteúdo

Aplicativos Instalados: tex2xindy, texindy, xindy
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $TEXLIVE_PREFIX/texmf-dist/xindy

Descrições Curtas

tex2xindy

transforma um arquivo de índice do LaTeX em um arquivo de índice bruto do xindy

texindy

é um envolucrador para o xindy que ativa muitas convenções do LaTeX por padrão

xindy

cria um índice classificado e rotulado a partir de um índice bruto do LaTeX

Apêndice A. Licença da Creative Commons

Código Jurídico da Creative Commons

Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença 2.0

Importante

A INSTITUIÇÃO "CREATIVE COMMONS" NÃO É UM ESCRITÓRIO DE ADVOCACIA E NÃO PRESTA SERVIÇOS JURÍDICOS. A DISTRIBUIÇÃO DESTA LICENÇA NÃO ESTABELECE QUALQUER RELAÇÃO ADVOCATÍCIA. A "CREATIVE COMMONS" DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". A "CREATIVE COMMONS" NÃO FAZ QUALQUER GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU USO.

Licença

A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO COM OS TERMOS DESTA LICENÇA PÚBLICA "CREATIVE COMMONS" ("CCPL" OU "LICENÇA"). A OBRA É PROTEGIDA POR DIREITO AUTORAL E (OU) OUTRAS LEIS APLICÁVEIS. QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB ESTA LICENÇA OU PELA LEGISLAÇÃO AUTORAL É PROIBIDO.

AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ ACEITA E CONCORDA FICAR OBRIGADO(A) NOS TERMOS DESTA LICENÇA. O LICENCIANTE CONCEDE A VOCÊ OS DIREITOS AQUI CONTIDOS EM CONTRAPARTIDA À SUA ACEITAÇÃO DESTES TERMOS E CONDIÇÕES.

  1. Definições

    1. "Obra Coletiva" significa uma obra, tal como uma edição periódica, antologia ou enciclopédia, na qual a Obra em sua totalidade e de forma inalterada, em conjunto com um número de outras contribuições, constituindo obras independentes e separadas em si mesmas, são agregadas em um trabalho coletivo. Uma obra que constitua uma Obra Coletiva não será considerada Obra Derivada (conforme definido abaixo) para os propósitos desta licença.

    2. "Obra Derivada" significa uma obra baseada sobre a Obra ou sobre a Obra e outras obras pré existentes, tal como uma tradução, arranjo musical, dramatização, romantização, versão de filme, gravação de som, reprodução de obra artística, resumo, condensação ou qualquer outra forma na qual a Obra possa ser refeita, transformada ou adaptada, com a exceção de que uma obra que constitua uma Obra Coletiva não será considerada Obra Derivada para fins desta licença. Para evitar dúvidas, quando a Obra for uma composição musical ou gravação de som, a sincronização da Obra em relação cronometrada com uma imagem em movimento ("synching") será considerada uma Obra Derivada para os propósitos desta licença.

    3. "Licenciante" significa a pessoa física ou a jurídica que oferece a Obra sob os termos desta Licença.

    4. "Autor(a) Original" significa a pessoa física ou jurídica que criou a Obra.

    5. "Obra" significa a obra autoral, passível de proteção pelo direito autoral, oferecida sob os termos desta Licença.

    6. "Você" significa a pessoa física ou jurídica exercendo direitos sob esta Licença que não tenha previamente violado os termos desta Licença com relação à Obra, ou que tenha recebido permissão expressa do(a) Licenciante para exercer direitos sob esta Licença apesar de uma violação prévia.

    7. "Elementos da Licença" significa os principais atributos da licença correspondente, conforme escolhidos pelo(a) Licenciante e indicados no título desta Licença: Atribuição, Não-comercial, Compartilhamento pela Mesma Licença.

  2. Direitos de Uso Legítimo. Nada nesta licença é destinado a reduzir, limitar ou restringir quaisquer direitos emergentes do uso legítimo, primeira venda ou outras limitações sobre os direitos exclusivos do titular de direitos autorais sob a legislação autoral ou quaisquer outras leis aplicáveis.

  3. Concessão da Licença. Sujeita aos termos e condições desta Licença, o(a) Licenciante concede a Você uma licença de abrangência mundial, sem royalties, não-exclusiva, perpétua (pela duração do direito autoral aplicável), para exercer os direitos sobre a Obra definidos abaixo:

    1. reproduzir a Obra, incorporar a Obra em uma ou mais Obras Coletivas e reproduzir a Obra quando incorporada em Obra Coletiva;

    2. para criar e reproduzir Obras Derivadas;

    3. para distribuir cópias ou gravações da Obra, exibir publicamente, executar publicamente e executar publicamente por meio de uma transmissão de áudio digital a Obra, inclusive quando incorporada em Obras Coletivas;

    4. para distribuir cópias ou gravações de Obras Derivadas, exibir publicamente, executar publicamente e executar publicamente por meio de uma transmissão digital de áudio Obras Derivadas;

    Os direitos acima podem ser exercidos em todas as mídias e formatos, independente de serem conhecidos agora ou concebidos posteriormente. Os direitos acima incluem o direito de fazer modificações que forem tecnicamente necessárias para exercer os direitos em outras mídias, meios e formatos. Todos os direitos não concedidos expressamente pelo(a) Licenciante ficam aqui reservados, incluindo, mas não se limitando, os direitos definidos nas Seções 4(e) e 4(f).

  4. Restrições. A licença concedida na Seção 3 acima está expressamente sujeita e limitada aos seguintes termos:

    1. Você pode distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais a Obra apenas sob os termos desta Licença, e Você deve incluir uma cópia desta licença, ou o Identificador Uniformizado de Recursos ("Uniform Resource Identifier") para esta Licença, com cada cópia ou gravação da Obra que Você distribuir, exibir publicamente, executar publicamente, ou executar publicamente por meios digitais. Você não poderá oferecer ou impor quaisquer termos sobre a Obra que alterem ou restrinjam os termos desta Licença ou o exercício dos direitos aqui concedidos para os(as) destinatários(as). Você não poderá sublicenciar a Obra. Você deverá manter intactas todas as informações que se referem a esta Licença e à exclusão de garantias. Você não pode distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais a Obra com qualquer medida tecnológica que controle o acesso ou o uso da Obra de maneira inconsistente com os termos deste Acordo de Licença. O disposto acima se aplica à Obra enquanto incorporada em uma Obra Coletiva, mas isso não requer que a Obra Coletiva, à parte da Obra em si, esteja sujeita aos termos desta Licença. Se Você criar uma Obra Coletiva, em havendo notificação de qualquer Licenciante, Você deve, na medida do razoável, remover da Obra Coletiva qualquer referência a esse Licenciante ou Autor Original, conforme solicitado. Se você criar uma Obra Derivada, em havendo notificação de qualquer Licenciante, Você deve, na medida do razoável, remover da Obra Derivada qualquer referência a esse Licenciante ou ao(à) Autor(a) Original, conforme solicitado.

    2. Você pode distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais uma Obra Derivada somente sob os termos desta Licença, ou de uma versão posterior desta licença com os mesmos Elementos da Licença desta licença, ou de uma licença do internacional da "Creative Commons" ("iCommons") que contenha os mesmos Elementos da Licença desta Licença (por exemplo, Atribuição, Uso Não Comercial, Compartilhamento pela Mesma Licença Japão). Você deve incluir uma cópia desta licença ou de outra licença especificada na sentença anterior, ou o Identificador Uniformizado de Recursos ("Uniform Resource Identifier") para esta licença ou de outra licença especificada na sentença anterior, com cada cópia ou gravação de cada Obra Derivada que Você distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais. Você não poderá oferecer ou impor quaisquer termos sobre a Obra Derivada que alterem ou restrinjam os termos desta Licença ou o exercício dos direitos aqui concedidos para os(as) destinatários(as), e Você deverá manter intactas todas as informações que se refiram a esta Licença e à exclusão de garantias. Você não poderá distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais a Obra Derivada com qualquer medida tecnológica que controle o acesso ou o uso da Obra de maneira inconsistente com os termos deste Acordo de Licença. O disposto acima se aplica à Obra Derivada quando incorporada em uma Obra Coletiva, mas isso não requer que a Obra Coletiva, à parte da Obra em si, esteja sujeita aos termos desta Licença.

    3. Você não poderá exercer nenhum dos direitos acima concedidos a Você na Seção 3 de qualquer maneira que seja predominantemente intencionada ou direcionada à obtenção de vantagem comercial ou compensação monetária privada. A troca da Obra por outros materiais protegidos por direito autoral por intermédio de compartilhamento digital de arquivos ou de outras formas não deverá ser considerada como intencionada ou direcionada à obtenção de vantagens comerciais ou compensação monetária privada, desde que não haja pagamento de nenhuma compensação monetária com relação à troca de obras protegidas por direito de autor.

    4. Se Você distribuir, exibir publicamente, executar publicamente ou executar publicamente por meios digitais a Obra ou qualquer Obra Derivada ou Obra Coletiva, Você deve manter intactas todas as informações relativas a direitos autorais sobre a Obra e atribuir para o(a) Autor(a) Original crédito razoável com relação ao meio ou mídia que Você está utilizando, por intermédio da veiculação do nome (ou pseudônimo, se for o caso) do(a) Autor(a) Original, se fornecido; o título da Obra, se fornecido; na medida do razoável, o Identificador Uniformizado de Recursos ("URI") que o(a) Licenciante especificar para estar associado à Obra, se houver, exceto se o "URI" não se referir ao aviso de direitos autorais ou à informação sobre o regime de licenciamento da Obra; e no caso de Obra Derivada, crédito identificando o uso da Obra na Obra Derivada (exemplo: "Tradução Francesa da Obra de Autor(a) Original", ou "Roteiro baseado na Obra original de Autor(a) Original"). Tal crédito pode ser implementado de qualquer forma razoável; entretanto, no caso de Obra Derivada ou Obra Coletiva, esse crédito aparecerá no mínimo onde qualquer outro crédito comparável de autoria aparece e de modo ao menos tão proeminente quanto esse outro crédito de autoria comparável.

    5. Para evitar dúvidas, quando a Obra for uma composição musical:

      1. Royalties de Desempenho Sob Licenças Gerais. O(A) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por meio de uma sociedade de direitos de execução (por exemplo, "ASCAP", "BMI", "SESAC"), royalties pela execução pública ou pela execução digital pública (por exemplo, "webcast") da Obra, se essa execução for destinada principalmente ou dirigida em direção a vantagens comerciais ou compensação monetária privada.

      2. Direitos Mecânicos e Royalties Estatutários. O(A) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por meio de uma agência de direitos musicais ou agente designado (por exemplo, Agência "Harry Fox"), royalties por qualquer gravação fonográfica que Você criar a partir da Obra ("versão cover") e distribuir, sujeita à licença compulsória criada pela 17 USC Seção 115 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a distribuição de tal versão "cover" for principalmente destinada ou direcionada a vantagens comerciais ou compensação monetária privada. 6. Direitos de "Webcasting" e Royalties Estatutários. Para evitar dúvidas, quando a Obra for uma gravação de som, o(a) Licenciante reserva-se o direito exclusivo de cobrar, seja individualmente ou por intermédio de uma sociedade de direitos de execução (por exemplo, "SoundExchange"), royalties pela execução digital pública (por exemplo, "webcast") da Obra, sujeito à licença compulsória criada pela 17 USC Seção 114 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a Tua execução digital pública for principalmente destinada ou direcionada a vantagens comerciais ou compensação monetária privada.

    6. Direitos de Webcast e Royalties Estatutários. Para evitar dúvidas, quando a Obra for uma gravação de som, o(a) Licenciante reserva-se o direito exclusivo de coletar, seja individualmente ou por meio de uma sociedade de direitos de execução (por exemplo, "SoundExchange"), royalties pela execução digital pública (por exemplo, "webcast") da Obra, sujeita à licença compulsória criada pela 17 USC Seção 114 da Lei de Direitos Autorais dos Estados Unidos da América do Norte (ou equivalente em outras jurisdições), se a Tua execução digital pública for principalmente destinada ou direcionada para vantagem comercial ou compensação monetária privada.

  5. Declarações, Garantias e Isenção de Responsabilidade

    EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES POR ESCRITO, O(A) LICENCIANTE OFERECE A OBRA "NO ESTADO EM QUE SE ENCONTRA" ("AS IS") E NÃO PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES DE QUALQUER ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU IMPLÍCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A TITULARIDADE DA OBRA, ADEQUAÇÃO PARA QUAISQUER PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU INEXISTÊNCIA DE QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA OU AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS IMPLÍCITAS, ESSAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ.

  6. Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA PELA LEI APLICÁVEL, EM NENHUMA CIRCUNSTÂNCIA O(A) LICENCIANTE SERÁ RESPONSÁVEL PARA COM VOCÊ POR QUAISQUER DANOS, ESPECIAIS, INCIDENTAIS, CONSEQUENCIAIS, PUNITIVOS OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU DO USO DA OBRA, MESMO QUE O(A) LICENCIANTE TENHA SIDO AVISADO(A) SOBRE A POSSIBILIDADE DE TAIS DANOS.

  7. Terminação

    1. Esta Licença e os direitos aqui concedidos terminarão automaticamente no caso de qualquer violação dos termos desta Licença por Você. Pessoas físicas ou jurídicas que tenham recebido Obras Derivadas ou Obras Coletivas de Você sob esta Licença, entretanto, não terão suas licenças terminadas desde que tais pessoas físicas ou jurídicas permaneçam em total cumprimento com essas licenças. As Seções 1, 2, 5, 6, 7 e 8 subsistirão a qualquer terminação desta Licença.

    2. Sujeito aos termos e condições dispostos acima, a licença aqui concedida é perpétua (pela duração do direito autoral aplicável à Obra). Não obstante o disposto acima, o(a) Licenciante reserva-se o direito de difundir a Obra sob termos diferentes de licença ou de cessar a distribuição da Obra a qualquer momento; desde que, no entanto, quaisquer destas ações não sirvam como meio de retratação desta Licença (ou de qualquer outra licença que tenha sido concedida sob os termos desta Licença, ou que deva ser concedida sob os termos desta Licença) e esta Licença continuará válida e eficaz a não ser que seja terminada de acordo com o disposto acima.

  8. Outras Disposições

    1. Cada vez que Você distribuir ou executar publicamente por meios digitais a Obra ou uma Obra Coletiva, o(a) Licenciante oferece ao destinatário uma licença da Obra nos mesmos termos e condições que a licença concedida a Você sob esta Licença.

    2. Cada vez que Você distribuir ou executar publicamente por meios digitais uma Obra Derivada, o(a) Licenciante oferece ao destinatário uma licença à Obra original nos mesmos termos e condições que foram concedidos a Você sob esta Licença.

    3. Se qualquer disposição desta Licença for tida como inválida ou não-executável sob a lei aplicável, isso não afetará a validade ou a possibilidade de execução do restante dos termos desta Licença e, sem a necessidade de qualquer ação adicional das partes deste acordo, tal disposição será reformada na mínima extensão necessária para tal disposição tornar-se válida e executável.

    4. Nenhum termo ou disposição desta Licença será considerado renunciado e nenhuma violação será considerada consentida, a não ser que tal renúncia ou consentimento seja feita por escrito e assinada pela parte que será afetada por tal renúncia ou consentimento.

    5. Esta Licença representa o acordo integral entre as partes com respeito à Obra aqui licenciada. Não há entendimentos, acordos ou declarações relativas à Obra que não estejam especificadas aqui. O(A) Licenciante não será obrigado(a) por nenhuma disposição adicional que possa aparecer em quaisquer comunicações provenientes de Você. Esta Licença não pode ser modificada sem o mútuo acordo, por escrito, entre o(a) Licenciante e Você.

Importante

A "Creative Commons" não é uma parte desta Licença e não presta qualquer garantia relacionada à Obra. A "Creative Commons" não será responsável perante Você ou qualquer outra parte por quaisquer danos, incluindo, sem limitação, danos gerais, especiais, incidentais ou consequentes, originados com relação a esta licença. Não obstante as duas frases anteriores, se a "Creative Commons" tiver expressamente se identificado como a Licenciante, ela deverá ter todos os direitos e obrigações de Licenciante.

Exceto para o propósito delimitado de indicar ao público que a Obra é licenciada sob a "CCPL" (Licença Pública "Creative Commons"), nenhuma parte deverá utilizar a marca "Creative Commons" ou qualquer outra marca ou logo relacionado à "Creative Commons" sem consentimento prévio e por escrito da "Creative Commons". Qualquer uso permitido deverá ser de acordo com as diretrizes da "Creative Commons" de utilização da marca então válidas, conforme sejam publicadas no sítio da "web" dela ou de outro modo disponibilizadas periodicamente mediante solicitação.

A "Creative Commons" pode ser contactada em http://creativecommons.org/.

Apêndice B. A Licença do MIT

Direitos autorais © 1999-2025 A Equipe de Desenvolvimento do BLFS

Permissão é aqui concedida, gratuitamente, para qualquer pessoa que obtenha uma cópia deste software e arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos para usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar, e (ou) vender cópias do Software, e para permitir para as pessoas para quem o Software for fornecido para fazer o mesmo, sujeito às seguintes condições:

O aviso de direitos autorais acima e este aviso de permissão deveria ser incluído em todas as cópias ou porções substanciais do Software.

O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Glossário

Siglas

669

UNIS/Módulo Compositor 669

ABI

Application Binary Interface

ADSL

Asymmetric Digital Subscriber Line

AFS

Andrew File System

AGESA

AMD Generic Encapsulated Software Architecture

AIFF

Audio Interchange File Format

ALSA

Advanced Linux Sound Architecture

ANSI

American National Standards Institute

API

Application Programming Interface

APR

Apache Portable Runtime

ARP

Address Resolution Protocol

ASCII

American Standard Code for Information Interchange

ASLR

Address Space Layout Randomization

ASN

Abstract Syntax Notation

ASF

Advanced Streaming Format

ATA

Advanced Technology Attachment

ATSC

Advanced Television Systems Committee

ATK

Accessibility ToolKit

AVI

Audio Video Interleave

AWT

Abstract Window Toolkit

BER

Basic Encoding Rules

BIND

Berkeley Internet Name Domain

BIOS

Basic Input/Output System

BLFS

Beyond Linux From Scratch

BMP

Bit MaP

CD

Compact Disk

CDDA

Compact Disc Digital Audio

CIFS

Common Internet File System

Ver Também SMB .

CMS

Cryptographic Message Syntax

CODEC

Módulo COmpression/DECompression

CORBA

Common Object Request Broker Architecture

CPU

Central Processing Unit

CRD

Color Rendering Dictionary

CSA

Color Space Array

CSS (no DVD)

Conteúdo Scrambling System

CSS

Cascading Style Sheets

CUPS

Common Unix Printing System

CVS

Concurrent Versions System

DAO

Disc At Once

DARPA

Directory Address Resolution Protocol Allocation

DEC

Digital Equipment Corporation

DER

Distinguished Encoding Rules

DES

Data Encryption Standard

DHCP

Dynamic Host Configuration Protocol

DICT

Dictionary Server Protocol (RFC 2229)

DIN

German Industrial Norm

DNS

Domain Name Service

DOS

Disk Operating System

DRI

Direct Rendering Infrastructure

DSC

Document Structuring Conventions

DSO

Dynamic Shared Objects

DSSSL

Document Style Semantics and Specification Language

DV

Digital Video

DVD

Digital Versatile Disk (também Digital Video Disk)

DVI

DeVice Independent

ELF

Executable and Linking Format

EPP

Enhanced Parallel Port

EPS

Encapsulated PostScript

ESD

Enlighten Sound Daemon

ESMTP

Extended Simple Mail Transfer Protocol

FAM

File Alteration Monitor

FAME

Fast Assembly Mpeg Encoder

FAQ

Frequently Asked Questions

FAX

Facsimile

FB

Frame Buffer

FHS

File Hierarchy Standard

FLAC

Free Lossless Audio CODEC

FO

Formatted Objects

FTP

File Transfer Protocol

GCC

GNU Compiler Collection

GDBM

GNU DataBase Manager

GDK

GTK+ Drawing Kit

GDM

GNOME Display Manager

GID

Group IDentity

GIF

Graphics Interchange Format

GLUT

OpenGL Utility Toolkit

GMP

GNU Multiple Precision Arithmetic

GNAT

GNU NYU Ada 9x Translator

GNOME

GNU Network Object Model Environment

GNU

GNU's Not Unix

GOT

Global Offset Table

GPL

General Public License

GPM

General Purpose Mouse

GSS

Generic Security Service

GSSAPI

Generic Security Service Application Programming Interface

GTK

GIMP ToolKit

GUI

Graphical User Interface

HFS

Hierarchical File System

HTML

HyperText Markup Language

HTTP

HyperText Transfer Protocol

HTTPS

HyperText Transfer Protocol Secured

HUP

Hang UP

IANA

Internet Assigned Numbers Authority

ICC

International Color Consortium

ICMP

Internet Control Message Protocol

IDE

Integrated Drive Electronics

Integrated Development Environment

IDL

Interface Definition Language

IJS

Ink Jet Systems

ILS

Internet Location Server

IMAP

Internet Message Access Protocol

IMON

Inode MONitor

IP

Internet Protocol

Ver Também TCP .

IPX

Internetwork Packet eXchange

IRC

Internet Relay Chat

ISDN

Integrated Services Digital Network

ISO

International Standards Organisation

ISP

Internet Service Provider

IT

ImpulseTracker Module

JAI

Java Advanced Imaging

JAR

Java ARchive

JDK

Java Development Kit

JFIF

JPEG File Interchange Format

JPEG

Joint Photographic Experts Group

KDC

Key Distribution Center

KDE

KDesktop Environment

LAME

Lame Ain't an MP3 Encoder

LAN

Local Area Network

LDAP

Lightweight Directory Access Protocol

LDIF

Lightweight Data Interchange Format

LFS

Linux From Scratch

LGPL

Library General Public License

LPR

Line PRinter

LZO

Lempel-Ziv-Oberhumer

LZW

Lempel-Ziv-Welch

MAC

Media Access Control

MCOP

Multimedia COmmunication Protocol

MCU

Multipoint Control Unit

MD

Message-Digest

MDA

Mail Delivery Agent

MED

MED/OctaMED Module

MIDI

Musical Instrument Digital Interface

MIF

Maker Interchange Format

MII

Media Independent Interface

MIME

Multipurpose Internet Mail Extensions

MIT

Massachusetts Institute of Technology

MNG

Multiple-image Network Graphics

MOD

Módulo ProTracker

MP3

MPEG-1 audio layer 3

MPEG

Moving Picture Experts Group

MSL

Magick Scripting Language

MTA

Mail Transport Agent

MTM

MultiTracker Module

MUA

Mail User Agent

NASM

Netwide ASseMbler

NNTP

Network News Transfer Protocol

NFS

Network File System

NIS

Network Information Service

NPTL

Native Posix Thread Library

NSPR

Netscape Portable Runtime

NSS

Network Security Services

NTP

Network Time Protocol

OAF

Object Activation Framework

ODBC

Open DataBase Connectivity

OMF

Open Metadata Framework

ORB

Object Request Broker

Ver Também CORBA .

ORDBMS

Object Relational Database Management System

OS

Operating System

OSF

Open Software Foundation

OSS

Open Sound System

PAM

Pluggable Authentication Modules

PBM

Portable BitMap

PCI

Peripheral Component Interconnect

PCL

Printer Control Language

PCM

Pulse Code Modulation

PDC

Primary Domain Controller

PDF

Portable Document Format

PEAR

PHP Extension and Application Repository

PGM

Portable Grey Map

PGP

Pretty Good Privacy

PHP

PHP Hypertext Preprocessor

PIE

Position Independent Executable

PIM

Personal Information Manager

PLIP

Parallel Line Internet Protocol

PNG

Portable Network Graphics

PO

Portable Object

POD

Plain Old Documentation

POP

Post Office Protocol

PPD

PostScript Printer Description

PPM

Portable Pixel Map

PPP

Point-to-Point Protocol

PPPoE

Point-to-Point Protocol over Ethernet

PS

PostScript

RADIUS

Remote Authentication Dial-In User Service

RAM

Random Access Memory

RARP

Reverse Address Resolution Protocol

RCS

Revision Control System

RFC

Request For Comments

RGB

Red Green Blue

RGBA

Red Green Blue Alpha

ROM

Read-Only Memory

RP

Roaring Penguin

RPC

Remote Procedure Call

RTC

Real Time Clock

RTP

Real Time Protocol

RW

Read Write

S3M

ScreamTracker Version 3 Module

S/MIME

Secure/MIME

SANE

Scanner Access Now Easy

SASL

Simple Authentication and Security Layer

SATA

Serial Advanced Technology Attachment

SBU

Standard Build Unit

SCSI

Small Computer System Interface

SDK

Software Development Kit

SGML

Standard Generalized Markup Language

SMART

Self Monitoring Analysis and Reporting Technology

SMB

Server Message Block

SMIL

Synchronized Multimedia Integration Language

SMTP

Simple Mail Transfer Protocol

SQL

Structured Query Language

SSH

Secure SHell

SSL

Secure Sockets Layer

SSP

Stack Smash Protection

SUID

Set User IDentity

SVG

Scalable Vector Graphics

SVGA

Super Video Graphics Array

TCL

Tool Command Language

TCP

Transmission Control Protocol

TGT

Ticket-Granting Ticket

TIFF

Tag(ged) Image File Format

TLS

Transport Layer Security

TTF

TrueType Font

TTS

Text To Speech

UCS

Universal Character Set

UDF

Universal Disk Format

UID

User IDentity

UDP

User Datagram Protocol

UI

User Interface

UML

Unified Modelling Language

URL

Uniform Resource Locator

USB

Universal Serial Bus

USR

Upstream Ready

UTF

UCS Transformation Format

UUCP

Unix-to-Unix Copy Protocol

VCD

Video Compact Disk

VCS

Version Control System

VESA

Video Electronics Standards Association

VGA

Video Graphics Array

VNC

Virtual Network Computer

VOB

Video OBject

VOIP

Voice Over IP

W3C

World Wide Web Consortium

WAV

Waveform Audio

WWW

World Wide Web

XDMCP

XDisplay Manager Control Protocol

XM

FastTracker Module

XML

eXtensible Markup Language

XSL

eXtensible Style Language

XSLT

eXtensible Style Language Transformation

XSM

X/Open System Management

XMMS

XMultiMedia System

YP

Yellow Pages

YUV

Luminance-Bandwidth-Chrominance

Índice Remissivo

  • 7zip:
  • AAlib:
  • AbiWord:
  • Abseil-cpp:
  • AccountsService:
  • acpid:
  • adwaita-icon-theme:
  • alabaster:
  • Algorithm::Diff:
  • Alien::Build:
  • Alien::Build::Plugin::Download::GitLab:
  • Alien::Libxml2:
  • alsa-firmware:
  • alsa-lib:
  • alsa-plugins:
  • alsa-tools:
  • alsa-utils:
  • Apache:
  • Apache Ant:
  • AppStream:
  • appstream-glib:
  • Apr:
  • Apr-Util:
  • Archive::Zip:
  • Ark:
  • asciidoc:
  • asciidoctor:
  • Aspell:
  • asymptote:
  • at:
  • at-spi2-core:
  • Atkmm:
  • Atkmm:
  • attrs:
  • Audacious:
  • AudioFile:
  • Autofs:
  • autovivification:
  • Avahi:
  • B::COW:
  • B::Hooks::EndOfScope:
  • Babel:
  • Babl:
  • Balsa:
  • Baobab:
  • Biber:
  • BIND:
  • Utilitários BIND:
  • Conjuntos de comandos sequenciais de inicialização do BLFS:
  • blocaled:
  • Bluefish:
  • BlueZ:
  • Bogofilter:
  • Boost:
  • Brasero:
  • breeze-icons:
  • bridge-utils:
  • Brotli:
  • btrfs-progs:
  • bubblewrap:
  • Business::ISBN:
  • Business-ISBN-Data:
  • Business::ISMN:
  • Business::ISSN:
  • c-ares:
  • cachecontrol:
  • Cairo:
  • Fontes Cantarell:
  • Capture::Tiny:
  • cargo-c:
  • cbindgen:
  • CDParanoia:
  • Cdrdao:
  • Cdrtools:
  • certifi:
  • chardet:
  • charset-normalizer:
  • cifs-utils:
  • Class::Accessor:
  • Class::Data::Inheritable:
  • Class::Inspector:
  • Class::Singleton:
  • Class:Tiny:
  • Clisp:
  • Clone:
  • clucene:
  • CMake:
  • Colord:
  • colord-gtk:
  • commonmark:
  • Compface:
  • Config::AutoConf:
  • fontes-console:
  • Instalação automatizada "CPAN" de módulos "Perl":
  • CPAN::Meta::Check:
  • Cpio:
  • CrackLib:
  • cryptsetup:
  • cssselect:
  • Cups:
  • cups-browsed:
  • cups-filters:
  • cups-pk-helper:
  • cURL:
  • Cyrus SASL:
  • cython:
  • D-Bus:
  • Dash:
  • Data::Compare:
  • Data::Dump:
  • Data::Uniqid:
  • DateTime:
  • DateTime::Calendar::Julian:
  • DateTime::Format::Builder:
  • DateTime::Format::Strptime:
  • DateTime::Locale:
  • DateTime::TimeZone:
  • dbus-glib:
  • dbus-python:
  • dbusmock:
  • DConf:
  • Fontes DejaVu:
  • desktop-file-utils:
  • Devel::StackTrace:
  • dhcpcd:
  • Dist::CheckConflicts:
  • Folhas de Estilo DSSSL do DocBook:
  • DocBook SGML DTD-3.1:
  • DocBook SGML DTD-4.5:
  • DocBook-utils:
  • DTD XML do DocBook:
  • Folhas de estilo XSL do DocBook:
  • Folhas de Estilo DocBook XSL (Namespaced):
  • DTD e Esquemas 5.0 de XML do DocBook:
  • docutils:
  • dolphin:
  • dolphin-plugins:
  • dos2unix:
  • ferramentas, sistemas de arquivos, dos:
  • double-conversion:
  • Dovecot:
  • Doxygen:
  • doxypypy:
  • doxyqml:
  • dtc:
  • duktape:
  • dvd+rw-tools:
  • dvisvgm:
  • Ed:
  • editables:
  • efibootmgr:
  • efivar:
  • elogind:
  • Emacs:
  • enchant:
  • Encode::EUCJPASCII:
  • Encode::HanExtra:
  • Encode::JIS2K:
  • Encode::Locale:
  • Enscript:
  • EOG:
  • epdfview:
  • Epiphany:
  • Eval::Closure:
  • Evince:
  • Evolution:
  • evolution-data-server:
  • Exception::Class:
  • Exempi:
  • Exim:
  • Exiv2:
  • Exo:
  • Exporter::Tiny:
  • extra-cmake-modules:
  • ExtUtils::LibBuilder:
  • faac:
  • faad2:
  • falkon:
  • Fcron:
  • fdk-aac:
  • feh:
  • Fetchmail:
  • FFI::CheckLib:
  • FFmpeg:
  • fftw:
  • File::chdir:
  • File::Copy::Recursive:
  • File::FcntlLock:
  • File::Find::Rule:
  • File::Listing:
  • File-Roller:
  • File::ShareDir:
  • File::ShareDir::Install:
  • File::Slurper:
  • File::Which:
  • Firefox:
  • FLAC:
  • FLTK:
  • Fluxbox:
  • fmt:
  • Fontconfig:
  • FontForge:
  • fop:
  • Freeglut:
  • FreeRDP:
  • FreeType:
  • frei0r:
  • FriBidi:
  • Fuse 3:
  • Garcon:
  • Gavl:
  • GC:
  • GCC-14.2.0:
  • Gcr:
  • Gcr:
  • GDB:
  • gdk-pixbuf:
  • GDM:
  • Gedit:
  • Gegl:
  • GeoClue:
  • geocode-glib:
  • gexiv2:
  • Ghostscript:
  • gi-docgen:
  • giflib:
  • Gimp:
  • Git:
  • Gjs:
  • Glad:
  • GLEW:
  • glib-networking:
  • GLib2:
  • GLibmm:
  • GLibmm:
  • GLM:
  • Glslang:
  • glslc:
  • GLU:
  • GMime 3:
  • gmmlib:
  • gnome-autoar:
  • gnome-backgrounds:
  • gnome-bluetooth:
  • gnome-calculator:
  • gnome-color-manager:
  • gnome-connections:
  • gnome-control-center:
  • gnome-desktop:
  • gnome-disk-utility:
  • gnome-icon-theme:
  • gnome-icon-theme-extras:
  • gnome-icon-theme-symbolic:
  • gnome-keyring:
  • gnome-maps:
  • gnome-menus:
  • gnome-nettool:
  • gnome-online-accounts:
  • gnome-power-manager:
  • gnome-screenshot:
  • gnome-session:
  • gnome-settings-daemon:
  • gnome-shell:
  • gnome-shell-extensions:
  • gnome-system-monitor:
  • gnome-terminal:
  • gnome-themes-extra:
  • gnome-tweaks:
  • gnome-user-docs:
  • gnome-weather:
  • Gnumeric:
  • GnuPG:
  • GnuTLS:
  • GOffice:
  • Gparted:
  • GPGME:
  • GPM:
  • gptfdisk:
  • graphene:
  • Graphite2:
  • Graphviz:
  • grub-efi:
  • gsettings-desktop-schemas:
  • Gsl:
  • gsound:
  • gspell:
  • gst-libav:
  • gst-plugins-bad:
  • gst-plugins-base:
  • gst-plugins-good:
  • gst-plugins-ugly:
  • gstreamer:
  • GTK-Doc:
  • gtk-vnc:
  • GTK3:
  • GTK-4:
  • Gtkmm:
  • Gtkmm:
  • gtksourceview:
  • gtksourceview4:
  • gtksourceview5:
  • Gucharmap:
  • Guile:
  • Gutenprint:
  • Gvfs:
  • Gwenview:
  • HarfBuzz:
  • hatch-fancy-pypi-readme:
  • hatchling:
  • hatch_vcs:
  • Hdparm:
  • Heirloom mailx:
  • Hicolor-icon-theme:
  • Highlight:
  • highway:
  • HTML::Parser:
  • HTML::Tagset:
  • html5lib:
  • HTTP::CookieJar:
  • HTTP::Cookies:
  • HTTP::Daemon:
  • HTTP::Date:
  • HTTP::Message:
  • HTTP::Negotiate:
  • ibus:
  • icewm:
  • Icon-naming-utils:
  • icu:
  • id3lib:
  • idna:
  • ImageMagick:
  • imagesize:
  • imlib2:
  • iniconfig:
  • inih:
  • Inkscape:
  • install-tl-unx:
  • intel-media-driver:
  • intel-vaapi-driver:
  • IO::HTML:
  • IO::Socket::SSL:
  • IO::String:
  • Fontes IPAex:
  • IPC::Run3:
  • IPC::System::Simple:
  • iptables:
  • ISO Codes:
  • itstool:
  • iw:
  • jansson:
  • jasper:
  • Binário JDK:
  • utilitários do jfs:
  • JOE:
  • JSON-C:
  • JSON-GLib:
  • K3b:
  • Kate:
  • kcolorpicker:
  • kconfig:
  • KDE Frameworks:
  • Plasma do KDE:
  • Kdenlive:
  • kdsoap:
  • kdsoap-ws-discovery-client:
  • Servidor DHCP Kea:
  • keybinder-3.0:
  • keyutils:
  • khelpcenter:
  • kidletime:
  • kimageannotator:
  • kio-extras:
  • KMix:
  • Konsole:
  • konversation:
  • kwave:
  • kwayland:
  • kwindowsystem:
  • LAME:
  • layer-shell-qt:
  • ldns:
  • Liba52:
  • libadwaita:
  • libaio:
  • Libao:
  • libaom:
  • libarchive:
  • libass:
  • libassuan:
  • libatasmart:
  • libatomic_ops:
  • libavif:
  • libblockdev:
  • libburn:
  • libbytesize:
  • libcairomm-1.0:
  • libcairomm-1.16:
  • libcanberra:
  • libcap:
  • libcddb:
  • libcdio:
  • libclc:
  • libcloudproviders:
  • libcupsfilters:
  • libdaemon:
  • libdbusmenu-lxqt:
  • libdisplay-info:
  • libdrm:
  • Libdv:
  • libdvdcss:
  • Libdvdnav:
  • Libdvdread:
  • libei:
  • libepoxy:
  • Fontes Liberation:
  • libevdev:
  • libevent:
  • libexif:
  • libfm-extra:
  • libfm-qt:
  • libgcrypt:
  • libgdata:
  • libgedit-amtk:
  • libgedit-gtksourceview:
  • libgee:
  • libgpg-error:
  • libgsf:
  • libgstgtk4:
  • libgtop:
  • libgudev:
  • libgusb:
  • libgweather:
  • libgxps:
  • libhandy1:
  • libical:
  • libidn:
  • libidn2:
  • libinput:
  • libisoburn:
  • libisofs:
  • libjpeg-turbo:
  • libjxl:
  • libkcddb:
  • libkdcraw:
  • libkexiv2:
  • libksba:
  • libkscreen:
  • liblinear:
  • liblxqt:
  • Libmad:
  • libmbim:
  • Libmng:
  • libmnl:
  • libmpeg2:
  • libmusicbrainz:
  • libmypaint:
  • libndp:
  • libnl:
  • libnma:
  • libnotify:
  • libnsl:
  • libnvme:
  • biblioteca oauth:
  • Libogg:
  • libpaper:
  • libpcap:
  • libpeas:
  • libplacebo:
  • libpng:
  • libportal:
  • libppd:
  • libpsl:
  • libptytty:
  • biblioteca pwquality:
  • libqalculate:
  • libqmi:
  • libqrencode:
  • libqtxdg:
  • libraw:
  • LibreOffice:
  • librsvg:
  • libsamplerate:
  • libseccomp:
  • libsecret:
  • libshumate:
  • libsigc++:
  • libsigc++-3:
  • libsigsegv:
  • libslirp:
  • libsndfile:
  • libsoup:
  • libsoup3:
  • libspiro:
  • libssh2:
  • libstatgrab:
  • libsysstat:
  • libtasn1:
  • libtiff:
  • libtirpc:
  • libunistring:
  • libunwind:
  • liburcu:
  • libusb:
  • libuv:
  • libva:
  • libvdpau:
  • libvdpau-va-gl:
  • Libvorbis:
  • libvpx:
  • libwacom:
  • libwebp:
  • libwnck 3:
  • libwww-perl:
  • libXau:
  • libxcb:
  • libxcvt:
  • libXdmcp:
  • libxfce4ui:
  • libxfce4util:
  • libxfce4windowing:
  • libxkbcommon:
  • libxklavier:
  • libxml2:
  • libxmlb:
  • libxslt:
  • libyaml:
  • lightdm:
  • Lingua::Translit:
  • Links:
  • Linux-PAM:
  • List::AllUtils:
  • List::MoreUtils:
  • List::MoreUtils::XS:
  • List::SomeUtils:
  • List::SomeUtils::XS:
  • List::UtilsBy:
  • Little CMS2:
  • LLVM:
  • lmdb:
  • lm-sensors:
  • localsearch:
  • Log::Log4perl:
  • log4cplus:
  • logrotate:
  • Fontes Lohit:
  • LSB-Tools:
  • lsof:
  • Lua:
  • luajit:
  • luit:
  • LVM2:
  • LWP::MediaTypes:
  • LWP::Protocol::https:
  • lxde-icon-theme:
  • lximage-qt:
  • lxml:
  • lxqt-about:
  • lxqt-admin:
  • lxqt-archiver:
  • lxqt-build-tools:
  • lxqt-config:
  • lxqt-globalkeys:
  • lxqt-menu-data:
  • lxqt-notificationd:
  • lxqt-openssh-askpass:
  • lxqt-panel:
  • lxqt-policykit:
  • lxqt-powermanagement:
  • lxqt-qtplugin:
  • lxqt-runner:
  • lxqt-session:
  • lxqt-sudo:
  • lxqt-themes:
  • Lynx:
  • LZO:
  • make-ca:
  • Mako:
  • MariaDB:
  • Markdown:
  • MC:
  • mdadm:
  • menu-cache:
  • mercurial:
  • Mesa:
  • meson_python:
  • MIME::Base32:
  • MIME::Charset:
  • MIT Kerberos V5:
  • mlt:
  • ModemManager:
  • Module::Build:
  • Module::Implementation:
  • Module::Runtime:
  • Mousepad:
  • mpg123:
  • mpv:
  • MRO::Compat:
  • msgpack:
  • mtdev:
  • muparser:
  • mupdf:
  • mutt:
  • Mutter:
  • mypaint-brushes:
  • namespace::autoclean:
  • namespace::clean:
  • Nano:
  • NASM:
  • Nautilus:
  • NcFTP:
  • neon:
  • Net::DNS:
  • Net::HTTP:
  • Net::SSLeay:
  • Net-tools:
  • Nettle:
  • network-manager-applet:
  • NetworkManager:
  • newt:
  • Utilitários do NFS:
  • nghttp2:
  • Nmap:
  • nodejs:
  • notification-daemon:
  • Fontes Noto:
  • NPth:
  • NSPR:
  • NSS:
  • ntfs-3g:
  • ntp:
  • Number::Compare:
  • numpy:
  • obconf-qt:
  • Okular:
  • Openbox:
  • opencv:
  • OpenJade:
  • OpenJDK:
  • OpenJPEG:
  • OpenLDAP:
  • OpenSP:
  • OpenSSH:
  • Opus:
  • oxygen-icons:
  • p11-kit:
  • Package::Stash:
  • packaging:
  • Pango:
  • Pangomm:
  • Pangomm:
  • paps:
  • Params::Validate:
  • Params::ValidationCompiler:
  • Parole:
  • Parse::RecDescent:
  • Parse::Yapp:
  • Parted:
  • patchelf:
  • Path::Tiny:
  • pathspec:
  • pavucontrol:
  • pavucontrol-qt:
  • pax:
  • pciutils:
  • pcmanfm-qt:
  • PCRE2:
  • Dependências de Módulos "Perl":
  • Módulos Perl:
  • PerlIO::utf8_strict:
  • phonon:
  • phonon-backend-vlc:
  • PHP:
  • PIN-Entry:
  • pipewire:
  • Pixman:
  • plasma-activities:
  • plasma-activities-stats:
  • plasma-wayland-protocols:
  • pluggy:
  • ply:
  • pm-utils:
  • pnmixer:
  • Polkit:
  • polkit-gnome:
  • polkit-qt:
  • Poppler:
  • Popt:
  • Postfix:
  • PostgreSQL:
  • Potrace:
  • power-profiles-daemon:
  • Procmail:
  • Proftpd:
  • Protobuf:
  • Protobuf-c:
  • psftools:
  • psutil:
  • PulseAudio:
  • pulseaudio-qt:
  • Py3c:
  • PyAtSpi2:
  • PyCairo:
  • pygdbmi:
  • Pygments:
  • PyGObject3:
  • pyparsing:
  • pyproject-metadata:
  • pyserial:
  • pytest:
  • Dependências do "Python":
  • Módulos "Python":
  • Python3:
  • Python3.11:
  • pytz:
  • PyXDG:
  • PyYAML:
  • qca:
  • qemu:
  • Qpdf:
  • qps:
  • Qt6:
  • qterminal:
  • qtermwidget:
  • qtwebengine:
  • qtxdg-tools:
  • Raptor:
  • Rasqal:
  • recommonmark:
  • Redland:
  • Regexp::Common:
  • requests:
  • rest:
  • Ristretto:
  • Role::Tiny:
  • rpcbind:
  • rpcsvc-proto:
  • rsync:
  • Ruby:
  • Rust:
  • rust-bindgen:
  • rxvt-unicode:
  • Samba:
  • SANE:
  • sassc:
  • SBC:
  • SCons:
  • Scope::Guard:
  • scour:
  • Screen:
  • screengrab:
  • sddm:
  • SDL:
  • SDL2:
  • Seahorse:
  • seamonkey:
  • sendmail:
  • sentry-sdk:
  • Serf:
  • setuptools_scm:
  • sg3_utils:
  • SGML Common:
  • SGMLSpm:
  • Shadow:
  • shared-mime-info:
  • Sharutils:
  • Simple-scan:
  • six:
  • slang:
  • smartmontools:
  • smartypants:
  • Snapshot:
  • snowballstemmer:
  • solid:
  • Sort::Key:
  • sound-theme-freedesktop:
  • SoundTouch:
  • Source Code Pro:
  • Specio:
  • Speex:
  • sphinx:
  • sphinxcontrib-applehelp:
  • sphinxcontrib-devhelp:
  • sphinxcontrib-htmlhelp:
  • sphinxcontrib-jquery:
  • sphinxcontrib-jsmath:
  • sphinxcontrib-qthelp:
  • sphinxcontrib-serializinghtml:
  • sphinx_rtd_theme:
  • SpiderMonkey:
  • SPIRV-Headers:
  • SPIRV-LLVM-Translator:
  • SPIRV-Tools:
  • SQLite:
  • ssh-askpass:
  • sshfs:
  • startup-notification:
  • stunnel:
  • Sub::Exporter::Progressive:
  • Sub::Quote:
  • Sub::Uplevel:
  • Subversion:
  • Sudo:
  • SWIG:
  • sysmon3:
  • sysmond:
  • Sysstat:
  • Taglib:
  • Talloc:
  • Tcsh:
  • Tecla:
  • Term::Table:
  • fonte-terminus:
  • Test::Command:
  • Test::Deep:
  • Test::Differences:
  • Test::Exception:
  • Test::Fatal:
  • Test::File:
  • Test::File::ShareDir:
  • Test::LeakTrace:
  • Test::Needs:
  • Test::Requires:
  • Test::RequiresInternet:
  • Test::Simple:
  • Test::utf8:
  • Test::Warnings:
  • Test::Without::Module:
  • Test2::Plugin::NoWarnings:
  • texlive:
  • Text::BibTeX:
  • Text::CSV:
  • Text::CSV_XS:
  • Text::Diff:
  • Text::Glob:
  • Text::Roman:
  • Thunar:
  • thunar-volman:
  • Thunderbird:
  • Tidy HTML5:
  • Tie::Cycle:
  • tigervnc:
  • time:
  • TimeDate:
  • tinysparql:
  • Tk:
  • totem-pl-parser:
  • Traceroute:
  • Transmission:
  • tree:
  • Tripwire:
  • trove-classifiers:
  • Try::Tiny:
  • Fontes TTF e OTF:
  • Tumbler:
  • twm:
  • typogrify:
  • uchardet:
  • UDisks2:
  • uhttpmock:
  • umockdev:
  • Unbound:
  • Unicode::Collate:
  • Unicode::LineBreak:
  • unifdef:
  • unixODBC:
  • UnRar:
  • UPower:
  • URI:
  • urllib3:
  • usbutils:
  • utfcpp:
  • util-macros:
  • v4l-utils:
  • Vala:
  • Valgrind:
  • Variable::Magic:
  • Vim:
  • VLC:
  • VL Gothic:
  • Ferramentas Vorbis:
  • VTE:
  • Vulkan-Headers:
  • Vulkan-Loader:
  • Wayland:
  • protocolos-wayland:
  • webencodings:
  • WebKitGTK:
  • webp-pixbuf-loader:
  • WenQuanYi Zen Hei:
  • Wget:
  • Which:
  • Whois:
  • Wireless Tools:
  • Wireplumber:
  • Wireshark:
  • woff2:
  • wpa_supplicant:
  • Wv:
  • WWW::RobotRules:
  • x264:
  • x265:
  • xapian:
  • xarchiver:
  • xbitmaps:
  • xcb-proto:
  • xcb-util:
  • Utilitários XCB:
  • xclock:
  • xcursor-themes:
  • xdg-dbus-proxy:
  • xdg-desktop-portal:
  • xdg-desktop-portal-gnome:
  • xdg-desktop-portal-gtk:
  • xdg-desktop-portal-lxqt:
  • xdg-user-dirs:
  • xdg-utils:
  • xdotool:
  • Xfburn:
  • xfce4-appfinder:
  • xfce4-dev-tools:
  • xfce4-notifyd:
  • xfce4-panel:
  • xfce4-power-manager:
  • xfce4-pulseaudio-plugin:
  • xfce4-session:
  • xfce4-settings:
  • xfce4-terminal:
  • Xfconf:
  • Xfdesktop:
  • aplicativos do xfs:
  • Xfwm4:
  • xindy:
  • Bibliotecas Xine:
  • Interface de Usuário(a) Xine:
  • xinit:
  • XKeyboardConfig:
  • XML::LibXML:
  • XML::LibXML::Simple:
  • XML-LibXSLT:
  • XML::NamespaceSupport:
  • XML::SAX:
  • XML::SAX::Base:
  • XML::Simple:
  • XML::Writer:
  • xmlto:
  • xorg-evdev-driver:
  • xorg-libinput-driver:
  • xorg-server:
  • xorg-synaptics-driver:
  • xorg-wacom-driver:
  • Xorg:
  • Aplicativos do Xorg-7:
  • Fontes do Xorg:
  • xorg7-input-driver:
  • Legado do Xorg:
  • Bibliotecas do Xorg:
  • xorgproto:
  • XScreenSaver:
  • xterm:
  • XviD:
  • xwayland:
  • yasm:
  • Yelp:
  • yelp-xsl:
  • Zip:
  • zsh:
  • zxing-cpp:

  • 7z:
  • 7za:
  • 7zr:
  • a2x:
  • a52dec:
  • aafire:
  • aainfo:
  • aalib-config:
  • aasavefont:
  • aatest:
  • aaxine:
  • ab:
  • abiword:
  • accounts-daemon:
  • aconnect:
  • acpid:
  • acpi_listen:
  • acyclic:
  • addgnupghome:
  • adig:
  • adwaita-1-demo:
  • ahost:
  • alsactl:
  • alsaloop:
  • alsamixer:
  • alsatplg:
  • alsaucm:
  • amdgpu-arch:
  • amidi:
  • amixer:
  • analyze-build:
  • animate:
  • ant:
  • antRun:
  • antRun.pl:
  • apachectl:
  • aplay:
  • aplaymidi:
  • appdata-compose:
  • applygnupgdefaults:
  • appstream-builder:
  • appstream-util:
  • appstreamcli:
  • apr-1-config:
  • apu-1-config:
  • apxs:
  • arecord:
  • arecordmidi:
  • aria_chk:
  • aria_dump_log:
  • aria_ftdump:
  • aria_pack:
  • aria_read_log:
  • aria_s3_copy:
  • ark:
  • arp:
  • arpaname:
  • as10k1:
  • asciidoc:
  • asciidoctor:
  • aseqdump:
  • aseqnet:
  • aserver:
  • asn1Coding:
  • asn1Decoding:
  • asn1Parser:
  • aspell:
  • aspell-import:
  • assistant:
  • asy:
  • at:
  • atd:
  • atq:
  • atrm:
  • atrun:
  • audacious:
  • audtool:
  • automount:
  • avahi-autoipd:
  • avahi-browse:
  • avahi-browse-domains:
  • avahi-daemon:
  • avahi-discover-standalone:
  • avahi-dnsconfd:
  • avahi-publish:
  • avahi-publish-address:
  • avahi-publish-service:
  • avahi-resolve:
  • avahi-resolve-address:
  • avahi-resolve-host-name:
  • avahi-set-host-name:
  • axfer:
  • balsa:
  • balsa-ab:
  • balsam:
  • baobab:
  • batch:
  • bcomps:
  • bdftopcf:
  • bdftruncate:
  • benchmark_xl:
  • bf_compact:
  • bf_copy:
  • bf_tar:
  • biber:
  • biblex:
  • bibparse:
  • bindgen:
  • blkdeactivate:
  • blocaled:
  • blocks:
  • bluefish:
  • bluemoon:
  • bluetooth-sendto:
  • bluetoothctl:
  • bluetoothd:
  • bogofilter:
  • bogolexer:
  • bogotune:
  • bogoupgrade:
  • bogoutil:
  • brasero:
  • brctl:
  • broadwayd:
  • brotli:
  • bscalc:
  • bsdcat:
  • bsdcpio:
  • bsdtar:
  • bsdunzip:
  • bssh:
  • btcflash:
  • btmon:
  • btrfs:
  • btrfs-convert:
  • btrfs-find-root:
  • btrfs-map-logical:
  • btrfs-select-super:
  • btrfstune:
  • bugpoint:
  • bundle:
  • bundler:
  • busctl:
  • bvnc:
  • bwrap:
  • c-index-test:
  • cacaxine:
  • doesitcache:
  • cairo-trace:
  • calc_tickadj:
  • callgrind_annotate:
  • callgrind_control:
  • canberra-gtk-play:
  • canbusutil:
  • cancel:
  • capinfos:
  • captype:
  • cargo:
  • cargo-clippy:
  • cargo-fmt:
  • cbindgen:
  • ccache-swig:
  • ccmake:
  • ccomps:
  • cd-convert:
  • cd-create-profile:
  • cd-drive:
  • cd-fix-profile:
  • cd-iccdump:
  • cd-info:
  • cd-it8:
  • cd-paranoia:
  • cd-read:
  • cdda-player:
  • cdda2wav:
  • cddb_query:
  • cdparanoia:
  • cdrdao:
  • cdrecord:
  • cdrskin:
  • certtool:
  • certutil:
  • cgdisk:
  • cg_annotate:
  • cg_diff:
  • cg_merge:
  • chardetect:
  • checkers:
  • checkgid:
  • checkXML6:
  • cifs.idmap:
  • cifs.upcall:
  • cifscreds:
  • cifsdd:
  • cifsiostat:
  • circo:
  • cjpeg:
  • cjxl:
  • clang:
  • clang-check:
  • clang-extdef-mapping:
  • clang-format:
  • clang-linker-wrapper:
  • clang-offload-bundler:
  • clang-offload-packager:
  • clang-refactor:
  • clang-rename:
  • clang-scan-deps:
  • clang-tblgen:
  • clippy-driver:
  • clisp:
  • clisp-link:
  • cluster:
  • clusterdb:
  • cm2html:
  • cm2latex:
  • cm2man:
  • cm2pseudoxml:
  • cm2xetex:
  • cm2xml:
  • cmake:
  • cmake-gui:
  • cmark:
  • collateindex.pl:
  • colormgr:
  • compare:
  • comparerender:
  • compface:
  • complete-ant-cmd.pl:
  • composite:
  • config_data:
  • conjure:
  • convert:
  • convert-dtsv0:
  • copydatabase:
  • corepack:
  • cpack:
  • cpio:
  • cracklib-check:
  • cracklib-format:
  • cracklib-packer:
  • cracklib-packer:
  • crc32:
  • create-cracklib-dict:
  • createdb:
  • createuser:
  • cryptsetup:
  • cryptsetup-reencrypt:
  • cspctl:
  • ctags:
  • ctest:
  • cue2toc:
  • cups-browsed:
  • cups-calibrate:
  • cups-config:
  • cups-genppd.5.2:
  • cups-genppdupdate:
  • cupsaccept:
  • cupsctl:
  • cupsd:
  • cupsdisable:
  • cupsenable:
  • cupsfilter:
  • cupsreject:
  • cupstestppd:
  • curl:
  • curl-config:
  • cvlc:
  • cvt:
  • cvtsudoers:
  • cwebp:
  • cx18-ctl:
  • cxpm:
  • cygdb:
  • cython:
  • cythonize:
  • ferramenta dane:
  • dash:
  • db2*:
  • dbmmanage:
  • dbus-binding-tool:
  • dbus-cleanup-sockets:
  • dbus-daemon:
  • dbus-launch:
  • dbus-monitor:
  • dbus-run-session:
  • dbus-send:
  • dbus-test-tool:
  • dbus-update-activation-environment:
  • dbus-uuidgen:
  • dbwrap_tool:
  • dconf:
  • dconf-editor:
  • dcraw_emu:
  • dcraw_half:
  • ddns-confgen:
  • decode_tm6000:
  • delv:
  • depdiagram-generate:
  • depdiagram-generate-all:
  • depdiagram-prepare:
  • derb:
  • designer:
  • desktop-file-edit:
  • desktop-file-install:
  • desktop-file-validate:
  • desktoptojson:
  • devdump:
  • dhcpcd:
  • diagtool:
  • diffimg:
  • diffpp:
  • dig:
  • dijkstra:
  • dirmngr:
  • dirmngr-client:
  • disable-paste:
  • display:
  • display-buttons:
  • display-coords:
  • djpeg:
  • djxl:
  • dl10k1:
  • dltest:
  • dmeventd:
  • dmsetup:
  • dnssec-cds:
  • dnssec-dsfromkey:
  • dnssec-importkey:
  • dnssec-keyfromlabel:
  • dnssec-keymgr:
  • dnssec-ksr:
  • dnssec-revoke:
  • dnssec-settime:
  • dnssec-signzone:
  • dnssec-verify:
  • docbook2*:
  • docutils:
  • dolphin:
  • dos2unix:
  • dot:
  • dot2gxl:
  • doveadm:
  • doveconf:
  • dovecot:
  • dovecot-sysreport:
  • doxygen:
  • doxyindexer:
  • doxypypy:
  • doxyqml:
  • doxysearch.cgi:
  • doxywizard:
  • drill:
  • driverless:
  • driverless-fax:
  • dropdb:
  • dropuser:
  • dsymutil:
  • dtc:
  • dtdiff:
  • dubdv:
  • dumpmscat:
  • dumpnames:
  • dumpsexp:
  • dvb-fe-tool:
  • dvb-format-convert:
  • dvbv5-scan:
  • dvbv5-zap:
  • dvconnect:
  • dvisvgm:
  • dwebp:
  • ebrowse:
  • ecpg:
  • ed:
  • edgepaint:
  • editcap:
  • editmap:
  • efibootdump:
  • efibootmgr:
  • efisecdb:
  • efivar:
  • elf2dmp:
  • elogind-inhibit:
  • emacs:
  • emacsclient:
  • enchant-2:
  • enchant-lsmod-2:
  • encodedv:
  • enscript:
  • eog:
  • epdfview:
  • epiphany:
  • erb:
  • escapesrc:
  • escputil:
  • etags:
  • eventlogadm:
  • evince:
  • evince-previewer:
  • evince-thumbnailer:
  • evolution:
  • exempi:
  • exicyclog:
  • exigrep:
  • exim:
  • exim-4.98.1-2:
  • eximon:
  • eximon.bin:
  • eximstats:
  • exim_checkaccess:
  • exim_dbmbuild:
  • exim_dumpdb:
  • exim_fixdb:
  • exim_lock:
  • exim_msgdate:
  • exim_tidydb:
  • exim_update_id:
  • exinext:
  • exipick:
  • exiqgrep:
  • exiqsumm:
  • exiv2:
  • exiwhat:
  • exo-desktop-item-edit:
  • exo-open:
  • exportfs:
  • extract_a52:
  • extract_mpeg2:
  • f2py:
  • faac:
  • faad:
  • faillock:
  • falkon:
  • fancontrol:
  • rótulo fat:
  • fax2ps:
  • fax2tiff:
  • fbrun:
  • fbsetbg:
  • fbsetroot:
  • fbxine:
  • fc-cache:
  • fc-cat:
  • fc-conflist:
  • fc-list:
  • fc-match:
  • fc-pattern:
  • fc-query:
  • fc-scan:
  • fc-validate:
  • fcgistarter:
  • fcron:
  • fcrondyn:
  • fcronsighup:
  • fcrontab:
  • fdp:
  • fdtdump:
  • fdtget:
  • fdtoverlay:
  • fdtput:
  • feh:
  • fetchmail:
  • fetchmailconf:
  • ffmpeg:
  • ffplay:
  • ffprobe:
  • fftw-wisdom:
  • fftw-wisdom-to-conf:
  • file-roller:
  • FileCheck:
  • findrule:
  • firefox:
  • fix-qdf:
  • fixparts:
  • flac:
  • flea:
  • fltk-config:
  • fluid:
  • fluxbox:
  • fluxbox-generate_menu:
  • fluxbox-remote:
  • fluxbox-update_configs:
  • fontforge:
  • fontimage:
  • fontlint:
  • foomatic-rip:
  • fop:
  • formail:
  • freerdp-proxy:
  • freerdp-shadow-cli:
  • freetype2-config:
  • fribidi:
  • fsadm:
  • fsck.btrfs:
  • fsck.jfs:
  • fsck.xfs:
  • fsck.fat:
  • fsidd:
  • ftpasswd:
  • ftpcount:
  • ftpdctl:
  • ftpmail:
  • ftpquota:
  • ftpscrub:
  • ftpshut:
  • ftptop:
  • ftpwho:
  • fusermount3:
  • g-ir-annotation-tool:
  • g-ir-compiler:
  • g-ir-doc-tool:
  • g-ir-generate:
  • g-ir-inspect:
  • g-ir-scanner:
  • g13:
  • galera_new_cluster:
  • galera_recovery:
  • gamma4scanimage:
  • aplicativo:
  • gc:
  • gcalccmd:
  • gccgo:
  • gcm-import:
  • gcm-inspect:
  • gcm-picker:
  • gcm-viewer:
  • gcore:
  • gcr-viewer:
  • gcr-viewer-gtk4:
  • gdb-add-index:
  • gdb-prog:
  • gdbserver:
  • gdbus:
  • gdbus-codegen:
  • gdisk:
  • gdk-pixbuf-csource:
  • gdk-pixbuf-pixdata:
  • gdk-pixbuf-query-loaders:
  • gdk-pixbuf-thumbnailer:
  • gdm:
  • gdm-control:
  • gedit:
  • gegl:
  • gegl-imgcmp:
  • gem:
  • genbrk:
  • genccode:
  • gencfu:
  • gencmn:
  • gencnval:
  • gendict:
  • genl-ctrl-list:
  • gennorm2:
  • genrb:
  • gensprep:
  • gentest:
  • get-versions:
  • getcifsacl:
  • gfortran:
  • gi-compile-repository:
  • gi-decompile-typelib:
  • gi-docgen:
  • gi-inspect-typelib:
  • gif2rgb:
  • gif2webp:
  • gifbuild:
  • gifclrmp:
  • giffix:
  • giftext:
  • giftool:
  • gimp-3.0:
  • gimp-console-3.0:
  • gimptool-3.0:
  • gio:
  • gio-querymodules:
  • git:
  • git-clang-format:
  • git-cvsserver:
  • git-receive-pack:
  • git-shell:
  • git-upload-archive:
  • git-upload-pack:
  • gitk:
  • gjs-console:
  • glad:
  • glewinfo:
  • glib-compile-resources:
  • glib-compile-schemas:
  • glib-genmarshal:
  • glib-gettextize:
  • glib-mkenums:
  • glslang:
  • glslc:
  • glxgears:
  • glxinfo:
  • gm2:
  • gml2gv:
  • gnome-calculator:
  • gnome-connections:
  • gnome-control-center:
  • gnome-disk-image-mounter:
  • gnome-disks:
  • gnome-keyring-daemon:
  • gnome-maps:
  • gnome-nettool:
  • gnome-panel-control:
  • gnome-power-statistics:
  • gnome-screenshot:
  • gnome-session:
  • gnome-session-inhibit:
  • gnome-session-quit:
  • gnome-shell:
  • gnome-system-monitor:
  • gnome-terminal:
  • gnome-tweaks:
  • gnome-weather:
  • gnumeric:
  • gnumeric-1.12.59:
  • gnutls-cli:
  • gnutls-cli-debug:
  • gnutls-serv:
  • go:
  • gobject-query:
  • gofmt:
  • gparted:
  • gparted_polkit:
  • gpg:
  • gpg-agent:
  • gpg-card:
  • gpg-connect-agent:
  • gpg-error:
  • gpg-wks-client:
  • gpg-wks-server:
  • gpgconf:
  • gpgme-json:
  • ferramenta gpgme:
  • gpgparsemail:
  • gpgrt-config:
  • gpgscm:
  • gpgsm:
  • gpgsplit:
  • gpgtar:
  • gpgv:
  • gpm:
  • gpm-root:
  • gr2fonttest:
  • graphml2gv:
  • gresource:
  • growisofs:
  • grub-mkfont:
  • grub-mount:
  • gs:
  • gsettings:
  • gsf:
  • gsf-office-thumbnailer:
  • gsf-vba-dump:
  • gsl-config:
  • gsl-histogram:
  • gsl-randist:
  • gsound-play:
  • gspell-app1:
  • cliente-gss:
  • servidor-gss:
  • gst-device-monitor-1.0:
  • gst-discoverer-1.0:
  • gst-inspect-1.0:
  • gst-launch-1.0:
  • gst-play-1.0:
  • gst-stats-1.0:
  • gst-tester-1.0:
  • gst-transcoder-1.0:
  • gst-typefind-1.0:
  • gstack:
  • gtester:
  • gtester-report:
  • gtf:
  • gtk-builder-tool:
  • gtk-encode-symbolic-svg:
  • gtk-launch:
  • gtk-query-immodules-3.0:
  • gtk-query-settings:
  • gtk-update-icon-cache:
  • gtk3-demo:
  • gtk3-demo-application:
  • gtk3-icon-browser:
  • gtk3-widget-factory:
  • gtk4-broadwayd:
  • gtk4-builder-tool:
  • gtk4-demo:
  • gtk4-demo-application:
  • gtk4-encode-symbolic-svg:
  • gtk4-icon-browser:
  • gtk4-launch:
  • gtk4-node-editor:
  • gtk4-print-editor:
  • gtk4-query-settings:
  • gtk4-update-icon-cache:
  • gtk4-widget-factory:
  • gtkdoc*:
  • gucharmap:
  • guild:
  • guile:
  • guile-config:
  • guile-snarf:
  • guile-tools:
  • gusbcmd:
  • gv2gml:
  • gv2gxl:
  • gvcolor:
  • gvedit:
  • gvgen:
  • gview:
  • gvim:
  • gvim:
  • gvimdiff:
  • gvimtutor:
  • gvmap:
  • gvmap.sh:
  • gvnccapture:
  • gvpack:
  • gvpr:
  • gwenview:
  • gwenview_importer:
  • gxl2dot:
  • gxl2gv:
  • half_mt:
  • handy-1-demo:
  • hatchling:
  • hb-info:
  • hb-ot-shape-closure:
  • hb-shape:
  • hb-subset:
  • hb-view:
  • hda-verb:
  • hdajackretask:
  • hdparm:
  • hdspconf:
  • hdsploader:
  • hdspmixer:
  • hex2hcd:
  • hg:
  • highlight:
  • highlight-gui:
  • hltest:
  • hmac256:
  • hmaptool:
  • host:
  • hoststat:
  • htcacheclean:
  • htdbm:
  • htdigest:
  • htpasswd:
  • httpd:
  • httxt2dbm:
  • hwmixvolume:
  • ibus-daemon:
  • ibus-setup:
  • iceauth:
  • icehelp:
  • icesh:
  • icesound:
  • icewm:
  • icewm-menu-fdo:
  • icewm-menu-xrandr:
  • icewm-session:
  • icewm-set-gnomewm:
  • icewmbg:
  • icewmhint:
  • icon-name-mapping:
  • icu-config:
  • icuinfo:
  • icupkg:
  • id3convert:
  • id3cp:
  • id3info:
  • id3tag:
  • identify:
  • idl2wrs:
  • idle3:
  • idn:
  • idn2:
  • iecset:
  • ifrename:
  • img2webp:
  • imgcmp:
  • imginfo:
  • imlib2_bumpmap:
  • imlib2_colorspace:
  • imlib2_conv:
  • imlib2_grab:
  • imlib2_load:
  • imlib2_poly:
  • imlib2_show:
  • imlib2_test:
  • imlib2_view:
  • import:
  • initdb:
  • init_audigy*:
  • init_live:
  • inkscape:
  • inkview:
  • innochecksum:
  • install-catalog:
  • install_initd:
  • integritysetup:
  • intercept-build:
  • iostat:
  • ip6tables:
  • ipmaddr:
  • ippeveprinter:
  • ippfind:
  • ipptool:
  • iptables:
  • iptables-apply:
  • iptables-legacy:
  • iptables-legacy-restore:
  • iptables-legacy-save:
  • iptables-restore:
  • iptables-save:
  • iptables-xml:
  • iptunnel:
  • ir-keytable:
  • irb:
  • isadump:
  • isaset:
  • iso-info:
  • iso-read:
  • isodebug:
  • isodump:
  • isoinfo:
  • isovfy:
  • ispell:
  • isql:
  • itstool:
  • iusql:
  • ivtv-ctl:
  • iw:
  • iwconfig:
  • iwevent:
  • iwgetid:
  • iwlist:
  • iwpriv:
  • iwspy:
  • jade:
  • jar:
  • jarsigner:
  • jasper:
  • java:
  • javac:
  • javadoc:
  • javap:
  • jcmd:
  • jconsole:
  • jdb:
  • jdeprscan:
  • jdeps:
  • jfr:
  • jfs_debugfs:
  • jfs_fsck:
  • jfs_fscklog:
  • jfs_logdump:
  • jfs_mkfs:
  • jfs_tune:
  • jhsdb:
  • jimage:
  • jinfo:
  • jiv:
  • jlink:
  • jmacs:
  • jmap:
  • jmod:
  • joe:
  • jpackage:
  • jpegtran:
  • jpgicc:
  • jpico:
  • jps:
  • jrunscript:
  • js128 :
  • js128-config :
  • jshell:
  • json-glib-format:
  • json-glib-validate:
  • jstack:
  • jstar:
  • jstat:
  • jstatd:
  • jw:
  • jwebserver:
  • jxlinfo:
  • k3b:
  • k5srvutil:
  • kacpimon:
  • kadmin:
  • kadmin.local:
  • kadmind:
  • kate:
  • kbuildsycoca6:
  • kbxutil:
  • kcookiejar6:
  • kdb5_ldap_util:
  • kdb5_util:
  • kded6:
  • kdeinit6:
  • kdenlive:
  • kdenlive_render:
  • kdestroy:
  • kea-admin:
  • kea-ctrl-agent:
  • kea-dhcp-ddns:
  • kea-dhcp4:
  • kea-dhcp6:
  • kea-lfc:
  • keactrl:
  • keashell:
  • key.dns_resolver:
  • keyctl:
  • keytool:
  • kf6-config:
  • kf6kross:
  • kgendesignerplugin:
  • kglobalaccel6:
  • khelpcenter:
  • kinit:
  • kjs6:
  • kjscmd6:
  • kjsconsole:
  • klist:
  • kmix:
  • kmixctrl:
  • kmixremote:
  • koi8rxterm:
  • konsole:
  • konsoleprofile:
  • konversation:
  • kpackagelauncherqml:
  • kpackagetool6:
  • kpasswd:
  • kprop:
  • kpropd:
  • kproplog:
  • krb5-send-pr:
  • krb5-config:
  • krb5kdc:
  • kreadconfig6:
  • kreadconfig6:
  • kscreen-doctor:
  • kshell6:
  • ksu:
  • kswitch:
  • ktelnetservice6:
  • ktrash6:
  • ktutil:
  • kvno:
  • kwalletd6:
  • kwave:
  • kwrite:
  • kwriteconfig6:
  • kwriteconfig6:
  • l2ping:
  • l2test:
  • l4p-templ:
  • lame:
  • lconvert:
  • ld10k1:
  • ld10k1d:
  • ldapadd:
  • ldapcompare:
  • ldapdelete:
  • ldapexop:
  • ldapmodify:
  • ldapmodrdn:
  • ldappasswd:
  • ldapsearch:
  • ldapurl:
  • ldapvc:
  • ldapwhoami:
  • ldbadd:
  • ldbdel:
  • ldbedit:
  • ldbmodify:
  • ldbrename:
  • ldbsearch:
  • ldns-config:
  • libevdev-tweak-device:
  • libinput:
  • libndp:
  • libnewt:
  • libpng-config:
  • libreoffice-suite:
  • librest-demo:
  • libwacom-list-devices:
  • libwacom-list-local-devices:
  • libwacom-show-stylus:
  • libwacom-update-db:
  • lightdm:
  • lightdm-gtk-greeter:
  • linguist:
  • linkicc:
  • links:
  • llc:
  • lli:
  • llvm-addr2line:
  • llvm-ar:
  • llvm-as:
  • llvm-bcanalyzer:
  • llvm-bitcode-strip:
  • llvm-c-test:
  • llvm-cat:
  • llvm-cfi-verify:
  • llvm-config:
  • llvm-cov:
  • llvm-cvtres:
  • llvm-cxxdump:
  • llvm-cxxfilt:
  • llvm-cxxmap:
  • llvm-debuginfo-analyzer:
  • llvm-debuginfod:
  • llvm-debuginfod-find:
  • llvm-diff:
  • llvm-dis:
  • llvm-dwarfdump:
  • llvm-dwarfutil:
  • llvm-dwp:
  • llvm-elfabi:
  • llvm-exegesis:
  • llvm-extract:
  • llvm-gsymutil:
  • llvm-ifs:
  • llvm-install-name-tool:
  • llvm-jitlink:
  • llvm-libtool-darwin:
  • llvm-link:
  • llvm-lipo:
  • llvm-lto:
  • llvm-lto2:
  • llvm-mc:
  • llvm-mca:
  • llvm-ml:
  • llvm-modextract:
  • llvm-mt:
  • llvm-nm:
  • llvm-objcopy:
  • llvm-objdump:
  • llvm-opt-report:
  • llvm-pdbutil:
  • llvm-profdata:
  • llvm-profgen:
  • llvm-ranlib:
  • llvm-rc:
  • llvm-readobj:
  • llvm-readtapi:
  • llvm-reduce:
  • llvm-remarkutil:
  • llvm-rtdyld:
  • llvm-size:
  • llvm-spirv:
  • llvm-split:
  • llvm-stress:
  • llvm-strings:
  • llvm-symbolizer:
  • llvm-tblgen:
  • llvm-tli-checker:
  • llvm-undname:
  • llvm-xray:
  • lo10k1:
  • lobase:
  • localc:
  • localsearch:
  • lockfile:
  • locktest:
  • lodraw:
  • loginctl:
  • logresolve:
  • logrotate:
  • loimpress:
  • lomath:
  • loweb:
  • lowntfs-3g:
  • lowriter:
  • lp:
  • lpadmin:
  • lpc:
  • lpinfo:
  • lpmove:
  • lpoptions:
  • lpq:
  • lpr:
  • lprm:
  • lpstat:
  • lrelease:
  • lsb_release:
  • lsof:
  • lspci:
  • lsusb:
  • lsusb.py:
  • lua:
  • luac:
  • luajit:
  • lupdate:
  • lvm:
  • lvm-cache-stats:
  • lvmdump:
  • lwp-download:
  • lwp-dump:
  • lwp-mirror:
  • lwp-request:
  • lxdoas:
  • lximage-qt:
  • lxqt-about:
  • lxqt-admin-time:
  • lxqt-admin-user:
  • lxqt-archiver:
  • lxqt-backlight_backend:
  • lxqt-config:
  • lxqt-config-appearance:
  • lxqt-config-brightness:
  • lxqt-config-file-associations:
  • lxqt-config-globalkeyshortcuts:
  • lxqt-config-input:
  • lxqt-config-locale:
  • lxqt-config-monitor:
  • lxqt-config-notificationd:
  • lxqt-config-powermanagement:
  • lxqt-config-session:
  • lxqt-globalkeysd:
  • lxqt-leave:
  • lxqt-notificationd:
  • lxqt-openssh-askpass:
  • lxqt-panel:
  • lxqt-policykit-agent:
  • lxqt-powermanagement:
  • lxqt-runner:
  • lxqt-session:
  • lxqt-sudo:
  • lxqt2-transupdate:
  • lxsu:
  • lxsudo:
  • lynx:
  • mac2unix:
  • magick:
  • Magick-config:
  • mail:
  • mailq:
  • mailq:
  • mailstat:
  • mailstats:
  • mailx:
  • make-ca:
  • makeconv:
  • makemap:
  • mako-render:
  • mariabackup:
  • mariadb-access:
  • mariadb-admin:
  • mariadb-binlog:
  • mariadb-check:
  • mariadb-client-test-embedded:
  • mariadb-client-test:
  • mariadb-conv:
  • mariadb-convert-table-format:
  • mariadb-dump:
  • mariadb-dumpslow:
  • mariadb-find-rows:
  • mariadb-fix-extensions:
  • mariadb-hotcopy:
  • mariadb-import:
  • mariadb-install-db:
  • mariadb-ldb:
  • mariadb:
  • mariadb-plugin:
  • mariadb-secure-installation:
  • mariadb-service-convert:
  • mariadb-setpermission:
  • mariadb-show:
  • mariadb-slap:
  • mariadb-test-embedded:
  • mariadb-test:
  • mariadb-tzinfo-to-sql:
  • mariadb-upgrade:
  • mariadb-waitpid:
  • mariadbd-embedded:
  • mariadbd:
  • mariadbd-multi:
  • mariadbd-safe:
  • mariadb_config:
  • markdown_py:
  • masktest:
  • mbim-network:
  • mbimcli:
  • mbstream:
  • mc:
  • mcdiff:
  • mcedit:
  • mcview:
  • mdadm:
  • mdb_copy:
  • mdb_dump:
  • mdb_load:
  • mdb_stat:
  • mdig:
  • mdmon:
  • mdsearch:
  • media-ctl:
  • meinproc6:
  • melt:
  • mem_image:
  • mergecap:
  • meshdebug:
  • metaflac:
  • mev:
  • mii-tool:
  • mixartloader:
  • mkafmmap:
  • mkbitmap:
  • mkfontdir:
  • mkfontscale:
  • mkfs.btrfs:
  • mkfs.jfs:
  • mkfs.ntfs:
  • mkfs.xfs:
  • mkfs.fat:
  • mkhomedir_helper:
  • mkhybrid:
  • mkisofs:
  • mkntfs:
  • mkpasswd:
  • mm2gv:
  • mmc-tool:
  • mmcli:
  • ModemManager:
  • mogrify:
  • montage:
  • mount.cifs:
  • mount.fuse3:
  • mount.lowntfs-3g:
  • mount.nfs:
  • mount.nfs4:
  • mount.ntfs:
  • mount.ntfs-3g:
  • mount.smb3:
  • mountstats:
  • mouse-dpi-tool:
  • mouse-test:
  • mousepad:
  • mozcerts-qt6:
  • mp3rtp:
  • mpeg2dec:
  • mpg123:
  • mpg123-id3dump:
  • mpg123-strip:
  • out123:
  • mpicalc:
  • mpstat:
  • mpv:
  • msql2mysql:
  • ms_print:
  • mt:
  • mtdev-test:
  • multirender_test:
  • mupdf:
  • mupdf-gl:
  • mupdf-x11:
  • muraster:
  • mutool:
  • mutt:
  • muttbug:
  • mutter:
  • mutt_dotlock:
  • mutt_pgpring:
  • mvxattr:
  • myisamchk:
  • myisamlog:
  • myisampack:
  • myisam_ftdump:
  • mysql_config:
  • mytop:
  • my_print_defaults:
  • nail:
  • named:
  • named-checkconf:
  • named-checkzone:
  • named-compilezone:
  • named-journalprint:
  • named-nzd2nzf:
  • named-rrchecker:
  • nameif:
  • nano:
  • nasm:
  • nautilus:
  • ncat:
  • ncftp:
  • ncftpbatch:
  • ncftpbookmarks:
  • ncftpget:
  • ncftpls:
  • ncftpput:
  • ncftpspooler:
  • ndiff:
  • ndisasm:
  • ndptool:
  • ndrdump:
  • neato:
  • neon-config:
  • net:
  • netstat:
  • nettle-hash:
  • nettle-lfib-stream:
  • nettle-pbkdf2:
  • NetworkManager:
  • newaliases:
  • newaliases:
  • nfsconf:
  • nfsdclnts:
  • nfsiostat:
  • nfsstat:
  • nfsynproxy:
  • nl-class-add:
  • nl-class-delete:
  • nl-class-list:
  • nl-classid-lookup:
  • nl-cls-add:
  • nl-cls-delete:
  • nl-cls-list:
  • nl-link-list:
  • nl-pktloc-lookup:
  • nl-qdisc-add:
  • nl-qdisc-delete:
  • nl-qdisc-list:
  • nm-connection-editor:
  • nm-online:
  • nmap:
  • nmbd:
  • nmblookup:
  • nmcli:
  • nmtui:
  • nmtui-connect:
  • nmtui-edit:
  • nmtui-hostname:
  • node:
  • nop:
  • normalizer:
  • notify-send:
  • nping:
  • npm:
  • npth-config:
  • nsec3hash:
  • nsgmls:
  • nslookup:
  • nspr-config:
  • nss-config:
  • nsupdate:
  • ntfs-3g:
  • ntfs-3g.probe:
  • ntfscat:
  • ntfsclone:
  • ntfscluster:
  • ntfscmp:
  • ntfscp:
  • ntfsfix:
  • ntfsinfo:
  • ntfslabel:
  • ntfsls:
  • ntfsresize:
  • ntfsundelete:
  • ntlm_auth:
  • ntp-keygen:
  • ntp-wait:
  • ntpd:
  • ntpdate:
  • ntpdc:
  • ntpq:
  • ntptime:
  • ntptrace:
  • nvlc:
  • nvptx-arch:
  • obconf-qt:
  • obxprop:
  • ferramenta ocsp:
  • odbcinst:
  • odbc_config:
  • ogg123:
  • oggdec:
  • oggenc:
  • ogginfo:
  • oid2name:
  • okular:
  • oLschema2ldif:
  • onsgmls:
  • on_ac_power:
  • openbox:
  • openbox-gnome-session:
  • openbox-kde-session:
  • openbox-session:
  • openjade:
  • opj_compress:
  • opj_decompress:
  • opj_dump:
  • opt:
  • osage:
  • osgmlnorm:
  • osirrox:
  • ospam:
  • ospcat:
  • ospent:
  • osx:
  • over:
  • p11-kit:
  • ferramenta p11:
  • pa-info:
  • pacat:
  • pacmd:
  • pactl:
  • padsp:
  • pal2rgb:
  • pamon:
  • pam_namespace_helper:
  • pam_timestamp_check:
  • pango-list:
  • pango-segmentation:
  • pango-view:
  • paper:
  • paperconf:
  • paplay:
  • paps:
  • parec:
  • parecord:
  • parole:
  • parted:
  • partprobe:
  • pasuspender:
  • patchelf:
  • patchwork:
  • pavucontrol:
  • pavucontrol-qt:
  • pax:
  • pax11publish:
  • pcilmr:
  • pcmanfm-qt:
  • pcre2-config:
  • pcre2grep:
  • pcre2:
  • pcxhrloader:
  • pdbedit:
  • pdfattach:
  • pdfdetach:
  • pdffonts:
  • pdfimages:
  • pdfinfo:
  • pdftocairo:
  • pdftohtml:
  • pdftoppm:
  • pdftops:
  • pdftotext:
  • pdfunite:
  • pdfseparate:
  • pdfsig:
  • pear:
  • peas-demo:
  • perror:
  • pgbench:
  • pgpewrap:
  • pg_amcheck:
  • pg_archivecleanup:
  • pg_basebackup:
  • pg_checksums:
  • pg_config:
  • pg_controldata:
  • pg_ctl:
  • pg_dump:
  • pg_dumpall:
  • pg_isready:
  • pg_receivewal:
  • pg_recvlogical:
  • pg_resetwal:
  • pg_restore:
  • pg_rewind:
  • pg_standby:
  • pg_test_fsync:
  • pg_test_timing:
  • pg_upgrade:
  • pg_verifybackup:
  • pg_waldump:
  • php:
  • php-fpm:
  • phpdbg:
  • pidstat:
  • pinentry:
  • pinentry-curses:
  • pinentry-emacs:
  • pinentry-fltk:
  • pinentry-gnome3:
  • pinentry-qt:
  • pinentry-tty:
  • pipewire:
  • pipewire-pulse:
  • pixeltool:
  • pk12util:
  • pkaction:
  • pkcheck:
  • pkcs1-conv:
  • pkexec:
  • pkgdata:
  • pkttyagent:
  • plasma-activities:
  • plasmapkg2:
  • playout:
  • plipconfig:
  • pltcl_delmod:
  • pltcl_listmod:
  • pltcl_loadmod:
  • pluginviewer:
  • pm-hibernate:
  • pm-is-supported:
  • pm-powersave:
  • pm-suspend:
  • pm-suspend-hybrid:
  • png-fix-itxt:
  • pngfix:
  • pnmixer:
  • polkit-gnome-authentication-agent-1:
  • polkitd:
  • postalias:
  • postcat:
  • postconf:
  • postdrop:
  • postfix:
  • postgres:
  • postkick:
  • postlock:
  • postlog:
  • postmap:
  • postmulti:
  • postprocessing_benchmark:
  • postqueue:
  • postsuper:
  • potrace:
  • powerprofilesctl:
  • ppdc:
  • ppdc:
  • ppdhtml:
  • ppdhtml:
  • ppdi:
  • ppdi:
  • ppdmerge:
  • ppdmerge:
  • ppdpo:
  • ppdpo:
  • ppm2tiff:
  • praliases:
  • precat:
  • preparetips6:
  • preunzip:
  • prezip:
  • prezip-bin:
  • procmail:
  • profiles:
  • proftpd:
  • protoc:
  • protoc-c:
  • prune:
  • prxs:
  • psicc:
  • ferramenta psk:
  • psl:
  • pspell-config:
  • psql:
  • pulseaudio:
  • purgestat:
  • pw-cat:
  • pw-cli:
  • pw-config:
  • pw-dot:
  • pw-dump:
  • pw-jack:
  • pw-link:
  • pw-loopback:
  • pw-metadata:
  • pw-mididump:
  • pw-mon:
  • pw-profiler:
  • pw-reserve:
  • pw-top:
  • pw-v4l2:
  • pwhistory_helper:
  • pwmake:
  • pwmconfig:
  • pwscore:
  • pybabel:
  • pydo3c:
  • pygmentize:
  • pyserial-miniterm:
  • pyserial-ports:
  • pytest:
  • python3:
  • python3.11:
  • python3.13:
  • qalc:
  • qcatool-qt6:
  • qcoro:
  • qdbus:
  • qdbuscpp2xml:
  • qdbusviewer:
  • qdbusxml2cpp:
  • qdistancefieldgenerator:
  • qdoc:
  • qemu-edid:
  • qemu-ga:
  • qemu-img:
  • qemu-io:
  • qemu-keymap:
  • qemu-nbd:
  • qemu-pr-helper:
  • qemu-storage-daemon:
  • qemu-system-x86_64:
  • qemu-vmsr-helper:
  • qmake:
  • qmi-firmware-update:
  • qmi-network:
  • qmicli:
  • qml:
  • qmleasing:
  • qmlformat:
  • qmllint:
  • qmlplugindump:
  • qmlpreview:
  • qmlprofiler:
  • qmlscene:
  • qmltestrunner:
  • qpaeq:
  • qpdf:
  • zlib-flate:
  • qps:
  • qrencode:
  • qt-faststart:
  • qtdiag:
  • qterminal:
  • qtpaths:
  • qtplugininfo:
  • QtWebEngineProcess:
  • qtwebengine_convert_dict:
  • qtxdg-mat:
  • quest:
  • qv4l2:
  • qvidcap:
  • rake:
  • randpkt:
  • rapper:
  • rarp:
  • rasqal-config:
  • half_mt:
  • raw2tiff:
  • rawshark:
  • rctest:
  • rdbg:
  • rdfproc:
  • rdjpgcom:
  • rdoc:
  • rds-ctl:
  • readcd:
  • red:
  • redland-config:
  • redland-db-upgrade:
  • regdiff:
  • regpatch:
  • regshell:
  • regtree:
  • reindexdb:
  • remove_initd:
  • reordercap:
  • replace:
  • request-key:
  • rescan-scsi-bus.sh:
  • resize:
  • resolveip:
  • resolve_stack_dump:
  • rgview:
  • ri:
  • ristretto:
  • rjoe:
  • rmiregistry:
  • rnano:
  • rndc:
  • rndc-confgen:
  • roqet:
  • rotatelogs:
  • route:
  • rpc.mountd:
  • rpc.nfsd:
  • rpc.statd:
  • rpcbind:
  • rpcclient:
  • rpcdebug:
  • rpcgen:
  • rpcinfo:
  • rscsi:
  • rst2html:
  • rst2html4:
  • rst2html5:
  • rst2latex:
  • rst2man:
  • rst2odt:
  • rst2odt_prepstyles:
  • rst2pseudoxml:
  • rst2s5:
  • rst2xetex:
  • rst2xml:
  • rstpep2html:
  • rsvg-convert:
  • rsync:
  • rsync-ssl:
  • ruby:
  • run-with-aspell:
  • runant.pl:
  • runant.py:
  • rust-gdb:
  • rust-gdbgui:
  • rust-lldb:
  • rustc:
  • rustdoc:
  • rustfmt:
  • rvlc:
  • sadf:
  • saidar:
  • samba-gpupdate:
  • samba-log-parser:
  • samba-regedit:
  • samba-tool:
  • sancov:
  • sane-config:
  • sane-find-scanner:
  • saned:
  • sanstats:
  • sar:
  • saslauthd:
  • sasldblistusers2:
  • saslpasswd2:
  • sassc:
  • sbcdec:
  • sbcenc:
  • sbcinfo:
  • sbiload:
  • scalar:
  • scan-build:
  • scan-build-py:
  • scan-view:
  • scanimage:
  • sccmap:
  • scgcheck:
  • sclient:
  • scmp_sys_resolver:
  • scons:
  • scons-configure-cache:
  • sconsign:
  • scour:
  • scp:
  • screen:
  • screengrab:
  • scsi_logging_level:
  • scsi_mandat:
  • scsi_readcap:
  • scsi_ready:
  • scsi_satl:
  • scsi_start:
  • scsi_stop:
  • scsi_temperature:
  • sddm:
  • sddm-greeter:
  • sdl-config:
  • sdl2-config:
  • seahorse:
  • seamonkey:
  • secret-tool:
  • sendmail:
  • sendmail:
  • sensord:
  • sensors:
  • sensors-conf-convert:
  • sensors-detect:
  • serialver:
  • sessreg:
  • setcifsacl:
  • setpci:
  • setxkbmap:
  • sexp-conv:
  • sfconvert:
  • sfddiff:
  • sfdp:
  • sfinfo:
  • sfreerdp:
  • sfreerdp-server:
  • sftp:
  • sgdisk:
  • sginfo:
  • sgml2xml:
  • sgmldiff:
  • sgmlnorm:
  • sgmlspl:
  • sgmlspl.pl:
  • sgmlwhich:
  • sgm_dd:
  • sgp_dd:
  • sg_bg_ctl:
  • sg_compare_and_write:
  • sg_copy_results:
  • sg_dd:
  • sg_decode_sense:
  • sg_emc_trespass:
  • sg_format:
  • sg_get_config:
  • sg_get_elem_status:
  • sg_get_lba_status:
  • sg_ident:
  • sg_inq:
  • sg_logs:
  • sg_luns:
  • sg_map:
  • sg_map26:
  • sg_modes:
  • sg_opcodes:
  • sg_persist:
  • sg_prevent:
  • sg_raw:
  • sg_rbuf:
  • sg_rdac:
  • sg_read:
  • sg_readcap:
  • sg_read_attr:
  • sg_read_block_limits:
  • sg_read_buffer:
  • sg_read_long:
  • sg_reassign:
  • sg_referrals:
  • sg_rep_pip:
  • sg_rep_zones:
  • sg_requests:
  • sg_reset:
  • sg_reset_wp:
  • sg_rmsn:
  • sg_rtpg:
  • sg_safte:
  • sg_sanitize:
  • sg_sat_identify:
  • sg_sat_phy_event:
  • sg_sat_read_gplog:
  • sg_sat_set_features:
  • sg_scan:
  • sg_seek:
  • sg_senddiag:
  • sg_ses:
  • sg_ses_microcode:
  • sg_start:
  • sg_stpg:
  • sg_stream_ctl:
  • sg_sync:
  • sg_test_rwbuf:
  • sg_timestamp:
  • sg_turs:
  • sg_unmap:
  • sg_verify:
  • sg_vpd:
  • sg_write_buffer:
  • sg_write_long:
  • sg_write_same:
  • sg_write_verify:
  • sg_write_x:
  • sg_wr_mode:
  • sg_xcopy:
  • sg_zone:
  • shar:
  • sharesec:
  • sharkd:
  • showmount:
  • siggen:
  • simple-scan:
  • simpleexpand:
  • simpleindex:
  • simplesearch:
  • simple_dcraw:
  • sim_client:
  • sim_server:
  • skdump:
  • sktest:
  • slapacl:
  • slapadd:
  • slapauth:
  • slapcat:
  • slapd:
  • slapdn:
  • slapindex:
  • slapmodify:
  • slappasswd:
  • slapschema:
  • slaptest:
  • slattach:
  • slencheck:
  • sliceprint:
  • slsh:
  • sm-notify:
  • smartctl:
  • smartd:
  • smartypants:
  • smb2-quota:
  • smbcacls:
  • smbclient:
  • smbcontrol:
  • smbcquotas:
  • smbd:
  • smbget:
  • smbinfo:
  • smbpasswd:
  • smbspool:
  • smbstatus:
  • smbtar:
  • smbtorture:
  • smbtree:
  • smime_keys:
  • smproxy:
  • smrsh:
  • snapshot:
  • sndfile-cmp:
  • sndfile-concat:
  • sndfile-convert:
  • sndfile-deinterleave:
  • sndfile-info:
  • sndfile-interleave:
  • sndfile-metadata-get:
  • sndfile-metadata-set:
  • sndfile-play:
  • sndfile-salvage:
  • sntp:
  • solid-hardware6:
  • solid-hardware6:
  • soundstretch:
  • spa-acp-tool:
  • spa-inspect:
  • spa-json-dump:
  • spa-monitor:
  • spa-resample:
  • spam:
  • spcat:
  • speaker-test:
  • speexdec:
  • speexenc:
  • spell:
  • spent:
  • sphinx-apidoc:
  • sphinx-autogen:
  • sphinx-build:
  • sphinx-quickstart:
  • spirv-as:
  • spirv-cfg:
  • spirv-dis:
  • spirv-lesspipe.sh:
  • spirv-link:
  • spirv-lint:
  • spirv-objdump:
  • spirv-opt:
  • spirv-reduce:
  • spirv-val:
  • sqlite3:
  • ferramenta srp:
  • sscape_ctl:
  • ssconvert:
  • ssdiff:
  • sserver:
  • ssindex:
  • ssh:
  • ssh-add:
  • ssh-agent:
  • ssh-copy-id:
  • ssh-keygen:
  • ssh-keyscan:
  • sshd:
  • sshfs:
  • ssindex:
  • sst_sump:
  • start-pulseaudio-x11:
  • start-statd:
  • startfluxbox:
  • startlxqt:
  • startx:
  • startxfce4:
  • states:
  • statgrab:
  • statgrab-make-mrtg-config:
  • statgrab-make-mrtg-index:
  • stream:
  • stringify:
  • stunnel:
  • stunnel3:
  • sudo:
  • sudoedit:
  • sudoku:
  • sudoreplay:
  • sudo_logsrvd:
  • sudo_sendlog:
  • suexec:
  • svlc:
  • svn:
  • svnadmin:
  • svnbench:
  • svndumpfilter:
  • svnfsfs:
  • svnlook:
  • svnmucc:
  • svnrdump:
  • svnserve:
  • svnsync:
  • svnversion:
  • swig:
  • sx:
  • sxpm:
  • synclient:
  • syndaemon:
  • tab2space:
  • taglib-config:
  • tapestat:
  • tcsh:
  • tdbbackup:
  • tdbdump:
  • tdbrestore:
  • tdbtool:
  • tecla:
  • termidx:
  • testparm:
  • testpattern:
  • testsaslauthd:
  • tex2xindy:
  • texindy:
  • Aplicativos do TeX Live:
  • text2pcap:
  • thunar:
  • thunar-settings:
  • thunar-volman:
  • thunar-volman-settings:
  • thunderbird:
  • tickadj:
  • tidy:
  • tiff2bw:
  • tiff2pdf:
  • tiff2ps:
  • tiff2rgba:
  • tiffcmp:
  • tiffcp:
  • tiffcrop:
  • tiffdither:
  • tiffdump:
  • tiffgt:
  • tiffinfo:
  • tiffmedian:
  • tiffset:
  • tiffsplit:
  • tificc:
  • time:
  • tinysparql:
  • tjbench:
  • Aplicativos do TeX Live:
  • toc2cddb:
  • toc2cue:
  • toc2mp3:
  • touchpad-edge-detector:
  • traceroute:
  • traceroute6:
  • transicc:
  • translit:
  • transmission-create:
  • transmission-daemon:
  • transmission-edit:
  • transmission-gtk:
  • transmission-qt:
  • transmission-remote:
  • transmission-show:
  • tred:
  • tree:
  • tripwire:
  • trust:
  • tshark:
  • tsig-keygen:
  • tumblerd:
  • twadmin:
  • twm:
  • twopi:
  • twprint:
  • uchardet:
  • uconv:
  • ucs2any:
  • udisksctl:
  • umax_pp:
  • umockdev-record:
  • umockdev-run:
  • umockdev-wrapper:
  • umount.nfs:
  • umount.nfs4:
  • umount.udisks2:
  • unbound:
  • unbound-anchor:
  • unbound-checkconf:
  • unbound-control:
  • unbound-control-setup:
  • unbound-host:
  • uncompface:
  • unflatten:
  • unifdef:
  • unifdefall:
  • uninstall_ndiff:
  • uninstall_zenmap:
  • uniproc:
  • unix2dos:
  • unix2mac:
  • unix_chkpwd:
  • unix_update:
  • unopkg:
  • unprocessed_raw:
  • unrar:
  • unshar:
  • atualiza-certificados-ac:
  • update-desktop-database:
  • update-leap:
  • update-mime-database:
  • update-smart-drivedb:
  • upower:
  • urxvt:
  • urxvtc:
  • urxvtd:
  • us428control:
  • usb-devices:
  • usbhid-dump:
  • usx2yloader:
  • uuclient:
  • uudecode:
  • uuencode:
  • uuserver:
  • uxterm:
  • v4l2-compliance:
  • v4l2-ctl:
  • v4l2-dbg:
  • v4l2-sysfs-path:
  • v4l2gl:
  • v4l2grab:
  • vacation:
  • vacuumdb:
  • vacuumlo:
  • vala-gen-introspect:
  • valac:
  • valadoc:
  • valgrind:
  • valgrind-di-server:
  • valgrind-listener:
  • vapigen:
  • vcut:
  • verify-uselistorder:
  • veritysetup:
  • vfat-resize:
  • vgdb:
  • vgimportclone:
  • vimdot:
  • visualinfo:
  • visudo:
  • vlc:
  • vlc-wrapper:
  • vncconfig:
  • vncpasswd:
  • vncserver:
  • vncviewer:
  • vorbiscomment:
  • vpxdec:
  • vpxenc:
  • vte-2.91:
  • vte-2.91-gtk4:
  • vwebp:
  • vxloader:
  • watchgnupg:
  • wayland-scanner:
  • wbinfo:
  • WebKitWebDriver:
  • webpinfo:
  • webpmux:
  • wget:
  • which:
  • whiptail:
  • whois:
  • winbindd:
  • winpr-hash:
  • winpr-makecert:
  • wireplumber:
  • wireshark:
  • wish:
  • wish8.6:
  • wlfreerdp:
  • wnckprop:
  • word-list-compress:
  • wpa_cli:
  • wpa_passphrase:
  • wpa_supplicant:
  • wpctl:
  • wpexec:
  • wrjpgcom:
  • wv:
  • X:
  • x0vncserver:
  • xapian-check:
  • xapian-compact:
  • xapian-config:
  • xapian-delve:
  • xapian-metadata:
  • xapian-pos:
  • xapian-progsrv:
  • xapian-replicate:
  • xapian-replicate-server:
  • xapian-tcpsrv:
  • xarchiver:
  • xasy:
  • xauth:
  • xb-tool:
  • xbm2xface.pl:
  • xclock:
  • xcmsdb:
  • xcursorgen:
  • xdg-dbus-proxy:
  • xdg-desktop-icon:
  • xdg-desktop-menu:
  • xdg-email:
  • xdg-icon-resource:
  • xdg-mime:
  • xdg-open:
  • xdg-screensaver:
  • xdg-settings:
  • xdg-user-dir:
  • xdg-user-dirs-update:
  • xdpr:
  • xdpyinfo:
  • xdriinfo:
  • Xephyr:
  • xev:
  • xfburn:
  • xfce4-accessibility-settings:
  • xfce4-appearance-settings:
  • xfce4-appfinder:
  • xfce4-display-settings:
  • xfce4-keyboard-settings:
  • xfce4-kiosk-query:
  • xfce4-mime-settings:
  • xfce4-mouse-settings:
  • xfce4-notifyd-config:
  • xfce4-panel:
  • xfce4-pm-helper:
  • xfce4-popup-applicationsmenu:
  • xfce4-popup-directorymenu:
  • xfce4-popup-windowmenu:
  • xfce4-power-manager:
  • xfce4-power-manager-settings:
  • xfce4-session:
  • xfce4-session-logout:
  • xfce4-session-settings:
  • xfce4-settings-editor:
  • xfce4-settings-manager:
  • xfce4-terminal:
  • xfconf-query:
  • xfdesktop:
  • xfdesktop-settings:
  • xfpm-power-backlight-helper:
  • xfreerdp:
  • xfsettingsd:
  • xfs_admin:
  • xfs_bmap:
  • xfs_copy:
  • xfs_db:
  • xfs_estimate:
  • xfs_freeze:
  • xfs_fsr:
  • xfs_growfs:
  • xfs_info:
  • xfs_io:
  • xfs_logprint:
  • xfs_mdrestore:
  • xfs_metadump:
  • xfs_mkfile:
  • xfs_ncheck:
  • xfs_property:
  • xfs_protofile:
  • xfs_quota:
  • xfs_repair:
  • xfs_rtcp:
  • xfs_scrub:
  • xfs_scrub_all:
  • xfs_spaceman:
  • xfwm4:
  • xfwm4-settings:
  • xfwm4-tweaks-settings:
  • xfwm4-workspace-settings:
  • xgamma:
  • xhost:
  • xindy:
  • xine:
  • xine-bugreport:
  • xine-check:
  • xine-config:
  • xine-list-1.2:
  • xine-remote:
  • xinit:
  • xinput:
  • xkbbell:
  • xkbcli:
  • xkbcomp:
  • xkbevd:
  • xkbvleds:
  • xkbwatch:
  • xkill:
  • xlsatoms:
  • xlsclients:
  • xmessage:
  • xml2-config:
  • xmlcatalog:
  • xmlif:
  • xmllint:
  • xmlto:
  • xmodmap:
  • Xnest:
  • Xorg:
  • xorrecord:
  • xorriso:
  • xorriso-dd-target:
  • xorriso-tcltk:
  • xorrisofs:
  • xpr:
  • xprop:
  • xpstojpeg:
  • xpstopdf:
  • xpstopng:
  • xpstops:
  • xpstosvg:
  • xrandr:
  • xrdb:
  • xrefresh:
  • xscreensaver:
  • xscreensaver-command:
  • xscreensaver-demo:
  • xscreensaver-settings:
  • xset:
  • xsetroot:
  • xsetwacom:
  • xslt-config:
  • xsltproc:
  • xtables-multi:
  • xterm:
  • Xvfb:
  • xvinfo:
  • Xvnc:
  • Xwayland:
  • xwd:
  • xwininfo:
  • xwud:
  • yapp:
  • yasm:
  • yat2m:
  • yelp:
  • zip:
  • zipcloak:
  • zipnote:
  • zipsplit:
  • zsh:
  • 4channels:

  • ant-*.jar:
  • c-ares.so:
  • udev.so:
  • evdev_drv.so:
  • fop.jar:
  • libkeybinder-3.0.so:
  • liba52.so:
  • libaa.so:
  • libabiword-3.0.so:
  • libaccountsservice.so:
  • libadwaita-1.so:
  • libaio.so:
  • libao.so:
  • libaom.so:
  • libappstream.so:
  • libappstream-glib.so:
  • libapr-1.so:
  • libaprutil-1.so:
  • libarchive.so:
  • libasound.so:
  • libasound_module_pcm_a52.so:
  • libasound_module_pcm_jack.so:
  • libasound_module_pcm_oss.so:
  • libasound_module_pcm_pulse.so:
  • libasound_module_pcm_upmix.so:
  • libasound_module_pcm_vdownmix.so:
  • libasound_module_rate_samplerate.so:
  • libaspell.so:
  • libass.so:
  • libassuan.so:
  • libatasmart.so:
  • libatk-1.0.so:
  • libatk-bridge.so:
  • libatk-bridge-2.0.so:
  • libatkmm-1.6.so:
  • libatkmm-2.36.so:
  • libatomic_ops.so:
  • libatopology.so:
  • libatspi.so:
  • libaudiofile.so:
  • libavcodec.so:
  • libavdevice.so:
  • libavfilter.so:
  • libavformat.so:
  • libavif.so:
  • libavresample:
  • libavutil.so:
  • libbabl-0.1.so:
  • libbluetooth.so:
  • libboost_*.so:
  • libbrasero-burn3.so:
  • libbrasero-media3.so:
  • libbrasero-utils3.so:
  • libbrotlicommon{,-static.a,.so}:
  • libbrotlidec{,-static.a,.so}:
  • libbrotlienc{,-static.a,.so}:
  • libbtparse.so:
  • libburn.so:
  • libbytesize.so:
  • libcairo.so:
  • libcairo-gobject.so:
  • libcairo-script-interpreter.so:
  • libcairomm-1.0.so:
  • libcairomm-1.16.so:
  • libcamel-1.2.so:
  • libcanberra.so:
  • libcanberra-gtk3.so:
  • libcdda_interface:
  • libcdda_paranoia:
  • libcdio.so:
  • libcdt.so:
  • libcgraph.so:
  • libcloudproviders.so:
  • libcolord-gtk.so:
  • libcolord-gtk4.so:
  • libcolord.so:
  • libcolordcompat.so:
  • libcolordprivate.so:
  • libcolorhug.so:
  • libcompface.a:
  • libcord.so:
  • libcrack.so:
  • libcups.so:
  • libcupsfilters.so:
  • libcurl.so:
  • libdaemon.so:
  • libdbus-1.so:
  • libdbus-glib-1.so:
  • libdbusmenu-lxqt.so:
  • libdconf.so:
  • libdevmapper.so:
  • libdouble-conversion.so:
  • libdrm.so:
  • libdrm_amdgpu.so:
  • libdrm_intel.so:
  • libdrm_nouveau.so:
  • libdrm_radeon.so:
  • libduktape.so:
  • libduktaped.so:
  • libdv.{so,a}:
  • libdvdcss.so:
  • libdvdnav.so:
  • libdvdread.so:
  • libebackend-1.2.so:
  • libebook-1.2.so:
  • libebook-contacts-1.2.so:
  • libecal-1.2.so:
  • libecpg.{so,a}:
  • libecpg_compat.{so,a}:
  • libedata-book-1.2.so:
  • libedata-cal-1.2.so:
  • libedataserver-1.2.so:
  • libedataserverui-3.0.so:
  • libedataserverui4-1.0.so:
  • libefiboot.so:
  • libefisec.so:
  • libefivar.so:
  • libei.so:
  • libeis.so:
  • libelogind.so:
  • libenchant-2.so:
  • libepoxy.so:
  • libetestserverutils.so:
  • ebvdev.so:
  • libexempi.so:
  • libexif.so:
  • libexo-2.so:
  • libexslt.so:
  • libfaac.so:
  • libfaad.so:
  • libFalkonPrivate.so.3:
  • libfdk-aac.so:
  • libfdt.so:
  • libfftw3.so:
  • libfftw3f.so:
  • libfftw3f_threads.so:
  • libfftw3l.so:
  • libfftw3l_threads.so:
  • libfftw3_threads.so:
  • libFLAC{,++}.so:
  • libfltk.so:
  • libfm-extra.so:
  • libfm-qt6.so:
  • libfontconfig.so:
  • libfontenc.so:
  • libfreerdp3.so:
  • libfreetype.so:
  • libfribidi.so:
  • libFS.so:
  • libfuse3.so:
  • libgailutil-3.so:
  • libgarcon-1.so:
  • libgavl.so:
  • libgbm.so:
  • libgc.so:
  • libgccpp.so:
  • libgck-1.so:
  • libgck-2.so:
  • libgcr-4.so:
  • libgcrypt.so:
  • libgctba.so:
  • libgdata.so:
  • libgdk-3.so:
  • libgdkmm-3.0.so:
  • libgdkmm-4.0.so:
  • libgdk_pixbuf-2.0.so:
  • libgedit-amtk-5.so:
  • libgee-0.8.so:
  • libgegl-0.4.so:
  • libgegl-npd-0.4.so:
  • libgeocode-glib-2.so:
  • libgexiv2.so:
  • libgif.so:
  • libgimp-3.0.so:
  • libgimpbase-3.0.so:
  • libgimpcolor-3.0.so:
  • libgimpconfig-3.0.so:
  • libgimpmath-3.0.so:
  • libgimpmodule-2.0.so:
  • libgimpthumb-3.0.so:
  • libgimpui-3.0.so:
  • libgimpwidgets-3.0.so:
  • libgio-2.0.so:
  • libgiomm-2.4.so:
  • libgiomm-2.68.so:
  • libgirepository-1.0.so:
  • libgirepository-2.0.so:
  • libgjs.so:
  • libEGL.so:
  • libGL.so:
  • libglapi.so:
  • libGLES2.so:
  • libGLESv1_CM.so:
  • libGLEW.so:
  • libglib-2.0.so:
  • libglibmm-2.4.so:
  • libglibmm-2.68.so:
  • libglslang.so:
  • libGLU.so:
  • libglut.so:
  • libgmime-3.0.so:
  • libgmodule-2.0.so:
  • libgnome-autoar-0.so:
  • libgnome-autoar-gtk-0.so:
  • libgnome-bluetooth-3.0.so:
  • libgnome-desktop-3.so:
  • libgnome-menu-3.so:
  • libgnutls.so:
  • libgoa-1.0.so:
  • libgoa-backend-1.0.so:
  • libgobject-2.0.so:
  • libgoffice-0.10.so:
  • libgpg-error.so:
  • libgpgme.so:
  • libgpgmepp.so:
  • libgpm.so:
  • libgport.a:
  • libgraphene-1.0.so:
  • libgraphite2.so:
  • libgs.so:
  • libgsf-1.so:
  • libgsl.so:
  • libgslcblas.so:
  • libgsound.so:
  • libgspell-1.so:
  • libgssapi_krb5.so:
  • libgstbase-1.0.so:
  • libgstcheck-1.0.so:
  • libgstcontroller-1.0.so:
  • libgstgtk4.so:
  • libgstnet-1.0.so:
  • libgstreamer-1.0.so:
  • libgthread-2.0.so:
  • libgtk-3.so:
  • libgtk-4.so:
  • libgtk-vnc-2.0.so:
  • libgtkmm-3.0.so:
  • libgtkmm-4.0.so:
  • libgtksourceview-3.0.so:
  • libgtksourceview-4.so:
  • libgtksourceview-5.so:
  • libgtop-2.0.so:
  • libgucharmap_2_90.so:
  • libgudev-1.0.so:
  • libgusb.so:
  • libgvc.so:
  • libgvfscommon.so:
  • libgvnc-1.0.so:
  • libgvncpulse-1.0.so:
  • libgweather-4.so:
  • libgxps.so:
  • libhandle.so:
  • libhandy-1.so:
  • libharfbuzz.so:
  • libharfbuzz-cairo:
  • libharfbuzz-gobject.so:
  • libharfbuzz-icu.so:
  • libharfbuzz-subset.so:
  • libhwy.so:
  • libhwy_contrib.so:
  • libhwy_test.so:
  • libibus-1.0.so:
  • libical.so:
  • libical-glib.so:
  • libicalss.so:
  • libicalss_cxx.so:
  • libicalvcal.so:
  • libical_cxx.so:
  • libICE.so:
  • libicudata.so:
  • libicui18n.so:
  • libicuio.so:
  • libicutest.so:
  • libicutu.so:
  • libicuuc.so:
  • libid3.so:
  • libidn.so:
  • libidn2.so:
  • libigdgmm.so:
  • libigfxcmrt.so:
  • libImlib2.so:
  • libinih.so:
  • libINIReader.so:
  • libinkscape_base.so:
  • libinproctrace.so:
  • libinput.so:
  • libinput_drv.so:
  • libisoburn.so:
  • libisofs.so:
  • libiw.so:
  • libjansson.so:
  • libjasper.so:
  • libjavascriptcoregtk-4.1.so:
  • libjavascriptcoregtk-6.0.so:
  • libjpeg.so:
  • libjson-c.so:
  • libjson-glib-1.0.so:
  • libjxl.so:
  • libjxl_cms.so:
  • libjxl_extras_codec.so:
  • libjxl_jni.so:
  • libjxl_threads.so:
  • libkadm5clnt.so:
  • libkadm5srv.so:
  • libkcddb.so:
  • libkdb5.so:
  • libKDSoapWSDiscoveryClient.so:
  • libkeyutils.so:
  • libKF6ConfigCore.so:
  • libKF6ConfigGui.so:
  • libKF6ConfigQml.so:
  • libKF6IdleTime.so:
  • libKF6Screen.so:
  • libKF6ScreenDpms.so:
  • libKF6solid.so:
  • libKF6WaylandClient.so:
  • libKF6WindowSystem.so:
  • libkpathsea.so:
  • libkrad.so:
  • libkrb5.so:
  • libksba.so:
  • liblber.so:
  • liblcms2.so:
  • libldap.so:
  • libldns.so:
  • liblibgedit-gtksourceview-300.so:
  • liblinear.so:
  • libLLVMSPIRVLib.so:
  • liblmdb.so:
  • liblsof.so:
  • liblua.so:
  • libluajit-5.1.so:
  • liblxqt.so:
  • liblxqt-config-cursor.so:
  • liblxqt-globalkeys-ui.so:
  • liblzo2.so:
  • libmad.so:
  • libMagick++-7.Q16HDRI.so:
  • libMagickCore-7.Q16HDRI.so:
  • libMagickWand-7.Q16HDRI.so:
  • libmbim-glib.so:
  • libmenu-cache.so:
  • libmm-glib.so:
  • libmng.so:
  • libmnl.so:
  • libmozjs-128.so :
  • libmp3lame.so:
  • libmp4v2.so:
  • libmpeg2.so:
  • libmpeg2convert.so:
  • libmpg123.so:
  • libmtdev.so:
  • libmupdf.so:
  • libmusicbrainz5.so:
  • libmutter-15.so:
  • libmutter-test-15.so:
  • libmypaint.so:
  • libnautilus-extension.so:
  • libneon.so:
  • libnetapi.so:
  • libnghttp2.so:
  • libnl*-3.so:
  • libnm.so:
  • libnma.so:
  • libnma-gtk4.so:
  • libnotify.so:
  • libnpth.so:
  • libnsl.so:
  • libnspr4.so:
  • libnss_winbind.so:
  • libnss_wins.so:
  • libntfs-3g.so:
  • libnvme.so:
  • liboauth.so:
  • libobrender.so:
  • libobt.so:
  • liboffis.so:
  • libogg.so:
  • libopus.so:
  • libosp.so:
  • libout123.so:
  • libp11-kit.so:
  • libpam.so:
  • libpango-1.0.so:
  • libpangomm-1.4.so:
  • libpangomm-2.48.so:
  • libpaper.so:
  • libparted.so:
  • libpathplan.so:
  • pcap-config:
  • libpcap.{a,so}:
  • libpci.so:
  • libpciaccess.so:
  • libpeas-1.0.so:
  • libpeas-gtk-1.0.so:
  • libpgtypes.{so,a}:
  • libpipewire-0.3.so:
  • libpixbufloader-avif.so:
  • libpixbufloader-jxl.so:
  • libpixbufloader-svg.so:
  • libpixbufloader-webp.so:
  • libpixman-1.so:
  • libplacebo.so:
  • libplc4.so:
  • libplds4.so:
  • libpng.so:
  • libpolkit-agent-1.so:
  • libpolkit-gobject-1.so:
  • libpoppler.so:
  • libpoppler-cpp.so:
  • libpoppler-glib.so:
  • libpoppler-qt6.so:
  • libpopt.so:
  • libportal.so:
  • libportal-gtk3.so:
  • libportal-gtk4.so:
  • libportal-qt6.so:
  • libpostproc.so:
  • libpotrace.so:
  • libppd.so:
  • libpq.{so,a}:
  • libprotobuf.so:
  • libprotobuf-c.so:
  • libprotobuf-lite.so:
  • libprotoc.so:
  • libpsl.so:
  • libpspell.so:
  • libptexenc.so:
  • libptytty.so:
  • libpwquality.so:
  • libqalculate.so:
  • libqca-qt6.so:
  • libqgpgme.so:
  • libqmi-glib.so:
  • libqpdf.so:
  • libqrencode.so:
  • libQt6Xdg.so:
  • libQt6XdgIconLoader.so:
  • libQt6XdgIconPlugin.so:
  • libqtermwidget6.so:
  • libqtlxqt.so:
  • libraptor2.so:
  • libraw.so:
  • librest-1.0.so:
  • librest-extras-1.0.so:
  • librsvg-2.so:
  • libruby.so:
  • libsane.so:
  • libsane-*.so:
  • libsasl2.so:
  • libsbc.so:
  • libscg.a:
  • libSDL.so:
  • libSDL2.so:
  • libseccomp.so:
  • libsecret-1.so:
  • libsensors.so:
  • libserf-1.so:
  • libsgutils2.so:
  • libshumate-1.0.so:
  • libsigc-2.0.so:
  • libsigc-3.0.so:
  • libsigsegv.so:
  • libslirp.so:
  • libSM.so:
  • libsmbclient.so:
  • libsndfile.so:
  • libSoundTouch.so:
  • libsoup-2.4.so:
  • libsoup-3.0.so:
  • libsoup-gnome-2.4.so:
  • libsp.so:
  • libspeex.so:
  • libspeexdsp.so:
  • libspiro.so:
  • libSPIRV.so:
  • libSPIRV-Tools.so:
  • libspreadsheet.so:
  • libSPVRemapper.so:
  • libsqlite3.so:
  • libssh2.so:
  • libstartup-notification-1.so:
  • libstatgrab.so:
  • libstd-<resumo_de_16_bytes>.so:
  • libstunnel.so:
  • libsvn_*-1.so:
  • libswresample.so:
  • libswscale.so:
  • libsyn123.so:
  • libsynctex.so:
  • libsysstat-qt6.so:
  • libtalloc.so:
  • libtasn1.so:
  • libtexlua52.so:
  • libtexluajit.so:
  • libthunarx-3.so:
  • libtidy.so:
  • libtiff.so:
  • libtiffxx.so:
  • libtinysparql-3.0.so:
  • libtirpc.so:
  • libtk8.6.so:
  • libtotem-plparser.so:
  • libtotem-plparser-mini.so:
  • libtracker-sparql-3.0.so:
  • libtumbler-1.so:
  • libuchardet.so:
  • libudisks2.so:
  • libuhttpmock-1.0.so:
  • libumockdev.so:
  • libunbound.so:
  • libunistring.so:
  • libupower-glib.so:
  • libusb-1.0.so:
  • libutf8_range.so:
  • libutf8_validity.so:
  • libuv.so:
  • libva.so:
  • libvala-0.56.so:
  • libvdpau.so:
  • libvdpau.so:
  • libvorbis.so:
  • libvpx.so:
  • libvte-2.91.so:
  • libvte-2.91-gtk4.so:
  • libvulkan.so:
  • libwacom.so:
  • libwayland-client.so:
  • libwayland-cursor.so:
  • libwayland-egl.so:
  • libwayland-server.so:
  • libwbclient.so:
  • libwebkit2gtk-4.1.so:
  • libwebkitgtk-6.0.so:
  • libwebp.so:
  • libwireplumber-0.5.so:
  • libwireshark.so:
  • libwiretap.so:
  • libwnck-3.so:
  • libwoff2common.so:
  • libwoff2enc.so:
  • libwoff2dec.so:
  • libwv-1.2.so:
  • libX11.so:
  • libx264.so:
  • libx265.so:
  • libxatracker.so:
  • libXau.so:
  • libXaw.so:
  • libXaw6.so:
  • libXaw7.so:
  • libxcb.so:
  • libxcb-cursor.so:
  • libxcb-ewmh.so:
  • libxcb-icccm.so:
  • libxcb-image.so:
  • libxcb-keysyms.so:
  • libxcb-render-util.so:
  • libxcb-util.so:
  • libXcomposite.so:
  • libXcursor.so:
  • libxcvt.so:
  • libXdamage.so:
  • libXdmcp.so:
  • libxdot.so:
  • libXext.so:
  • libxfce4kbd-private-2.so:
  • libxfce4panel-2.0.so:
  • libxfce4ui-1.so:
  • libxfce4util.so:
  • libxfconf-0.so:
  • libXfixes.so:
  • libXfont2.so:
  • libXft.so:
  • libXi.so:
  • libxine.so:
  • libXinerama.so:
  • libxkbcommon.so:
  • libxkbcommon-x11.so:
  • libxkbfile.so:
  • libxkbregistry.so:
  • libxklavier.so:
  • libxml2.so:
  • libxmlb.so:
  • libXmu.so:
  • libXmuu.so:
  • libXpm.so:
  • libXpresent.so:
  • libXrandr.so:
  • libXrender.so:
  • libXRes.so:
  • libxshmfence.so:
  • libxslt.so:
  • libXss.so:
  • libXt.so:
  • libXtst.so:
  • libXv.so:
  • libxvidcore.so:
  • libXvMC.so:
  • libXvMCW.so:
  • libXxf86dga.so:
  • libXxf86vm.so:
  • libyaml.so:
  • libyasm.a:
  • libyelp.so:
  • log4cplus.so:
  • lxqt-globalkeys.so:
  • modesetting_drv.so:
  • mod_authz_svn.so:
  • mod_dav_svn.so:
  • muparser.so:
  • p11-kit-proxy.so:
  • pam_pwquality.so:
  • synaptics_drv.so:
  • wacom_drv.so:

  • ALSA:
  • Automounter:
  • bluez:
  • Utilitários de Ponte:
  • Aplicativos BTRFS:
  • bubblewrap:
  • Capturando pacotes de rede de intercomunicação :
  • cifs-utils:
  • cryptsetup:
  • cups:
  • elogind:
  • escputil para impressoras usb:
  • Suporte FAT no Núcleo:
  • Fuse 3:
  • gpm:
  • intel-media-driver:
  • intel-vaapi-driver:
  • iptables:
  • iw:
  • Utilitários JFS:
  • Kea:
  • keyutils (testagem):
  • libevdev:
  • libinput:
  • Linux-PAM:
  • lm_sensors:
  • localsearch:
  • lsof (testagem):
  • lvm2:
  • mdadm:
  • mesa:
  • NetworkManager (teste):
  • Utilitários do NFS:
  • ntfs-3g:
  • Suporte de leitura e gravação NTFS no núcleo:
  • parted (testagem):
  • pm-utils:
  • polkit (testagem):
  • Power-profiles-daemon:
  • qemu:
  • qtwebengine:
  • Dispositivos de digitalização:
  • sysmond:
  • UEFI:
  • Suporte para USB do Lado do Anfitrião:
  • Wireless Tools:
  • wpa_supplicant:
  • Aplicativos XFS:
  • xorg-server:
  • xorg-wacom-driver:

  • $PGDATA/pg_hba_conf:
  • $PGDATA/pg_indent.con:
  • $PGDATA/postgresql.conf:
  • ~/.AbiSuite/templates/normal.awt:
  • ~/.ant/ant.conf:
  • ~/.antrc:
  • ~/.asoundrc:
  • ~/.config/openbox/autostart:
  • ~/.bashrc:
  • ~/.bash_logout:
  • ~/.bash_profile:
  • ~/.config/pulse:
  • ~/.config/user-dirs.dirs:
  • ~/.config/xdg-desktop-portal/portals.conf:
  • ~/.config/.mc/*:
  • ~/.cshdirs:
  • ~/.cshrc:
  • ~/.dircolors:
  • ~/.profile:
  • ~/.enchant:
  • ~/.fetchmailrc:
  • ~/.fluxbox/init:
  • ~/.fluxbox/keys:
  • ~/.fluxbox/menu:
  • ~/.fonts:
  • ~/.foprc:
  • ~/.gitconfig:
  • ~/.gpm-root:
  • ~/.hgrc:
  • ~/.history:
  • ~/.config/gtk-4.0/settings.ini:
  • ~/.config/gtk-3.0/settings.ini:
  • ~/.icewm/keys:
  • ~/.icewm/menu:
  • ~/.icewm/preferences:
  • ~/.icewm/toolbar:
  • ~/.icewm/winoptions:
  • ~/.joerc:
  • ~/.ldaprc:
  • ~/.libao:
  • ~/.libao:
  • ~/.links/*:
  • ~/.login:
  • ~/.logout:
  • ~/.mailrc:
  • ~/.config/openbox/menu.xml:
  • ~/.mime.types:
  • ~/.muttrc:
  • ~/.my.cnf:
  • ~/.nanorc:
  • ~/.ogg123rc:
  • ~/.pangorc:
  • ~/.procmailrc:
  • ~/.profile:
  • ~/.config/openbox/rc.xml:
  • ~/.screenrc:
  • ~/.slshrc:
  • ~/.ssh/*:
  • ~/.subversion/config:
  • ~/.tcshrc:
  • ~/.vimrc:
  • ~/.vimrc:
  • ~/.wgetrc:
  • ~/.wireshark/*:
  • ~/.xine/config:
  • ~/.xinitrc:
  • ~/.xinitrc:
  • ~/.xscreensaver:
  • /boot/grub/grub.cfg:
  • /boot/grub/grub.cfg:
  • /etc/aliases:
  • /etc/aliases:
  • /etc/ant/ant.conf:
  • /etc/asound.conf:
  • /etc/at.allow:
  • /etc/at.deny:
  • /etc/autofs/auto.master:
  • /etc/autofs/auto.misc:
  • /etc/autofs/auto.net:
  • /etc/bashrc:
  • /etc/blocaled.conf:
  • /etc/bluetooth/main.conf:
  • /etc/csh.cshrc:
  • /etc/csh.login:
  • /etc/csh.logout:
  • /etc/cups/*:
  • /etc/dbus-1/session.conf:
  • /etc/dbus-1/system.d/*:
  • /etc/dbus-1/system.conf:
  • /etc/default/useradd:
  • /etc/dhcpcd/dhcpcd.conf:
  • /etc/dircolors:
  • /etc/dovecot/dovecot.conf:
  • /etc/elogind/logind.conf:
  • /etc/exim.conf:
  • /etc/exportfs:
  • /etc/fcron.allow:
  • /etc/fcron.conf:
  • /etc/fcron.deny:
  • /etc/fonts/*:
  • /etc/fonts/conf.d/*:
  • /etc/fstab:
  • /etc/gdm/custom.conf:
  • /etc/gimp/3.0/*:
  • /etc/gitconfig:
  • /etc/gpm-root.conf:
  • /etc/group:
  • /etc/httpd/extra/*:
  • /etc/httpd/httpd.conf:
  • /etc/issue:
  • /etc/joe/jmacsrc:
  • /etc/joe/joerc:
  • /etc/joe/jpicorc:
  • /etc/joe/jstarrc:
  • /etc/joe/rjoerc:
  • /etc/kea/kea-dhcp-ddns.conf:
  • /etc/kea/kea-dhcp4.conf:
  • /etc/kea/kea-dhcp6.conf:
  • /etc/kea/kea-ctrl-agent.conf:
  • /etc/kea/keactrl.conf:
  • /etc/krb5.conf:
  • /etc/ld.so.conf:
  • /etc/ld.so.conf:
  • /etc/libao.conf:
  • /etc/libao.conf:
  • /etc/lightdm/lightdm.conf:
  • /etc/login.defs:
  • /etc/login.defs:
  • /etc/login.defs:
  • /etc/lynx/lynx.cfg:
  • /etc/mail/*:
  • /etc/make-ca.conf:
  • /etc/mariadb/my.cnf:
  • /etc/mercurial/hgrc:
  • /etc/mime.types:
  • /etc/Muttrc:
  • /etc/nail.rc:
  • /etc/named.conf:
  • /etc/namedb/pz/127.0.0.0:
  • /etc/namedb/root.hints:
  • /etc/nanorc:
  • /etc/NetworkManager/NetworkManager.conf:
  • /etc/ntp.conf:
  • /etc/openldap/ldap.conf:
  • /etc/openldap/slapd.conf:
  • /etc/openldap/slapd.d/*:
  • /etc/pam.conf:
  • /etc/pam.conf:
  • /etc/pam.d/*:
  • /etc/pam.d/*:
  • /etc/pam.d/*:
  • /etc/pango/pangorc:
  • /etc/passwd:
  • /etc/xdg/openbox/autostart:
  • /etc/sensors3.conf:
  • /etc/xdg/openbox/menu.xml:
  • /etc/xdg/openbox/rc.xml:
  • /etc/gtk-3.0/settings.ini:
  • /etc/pear.conf:
  • /etc/php-fpm.conf:
  • /etc/php-fpm.d/www.conf:
  • /etc/php.ini:
  • /etc/postfix/*:
  • /etc/procmailrc:
  • /etc/profile:
  • /etc/profile:
  • /etc/profile.d:
  • /etc/profile.d/bash_completion.sh:
  • /etc/profile.d/dircolors.sh:
  • /etc/profile.d/extrapaths.sh:
  • /etc/profile.d/i18n.sh:
  • /etc/profile.d/readline.sh:
  • /etc/profile.d/umask.sh:
  • /etc/proftpd.conf:
  • /etc/pulse/client.conf:
  • /etc/pulse/daemon.conf:
  • /etc/pulse/default.pa:
  • /etc/request-key.conf:
  • /etc/request-key.d/*:
  • /etc/resolv.conf:
  • /etc/resolv.conf:
  • /etc/rndc.conf:
  • /etc/rsyncd.conf:
  • /etc/samba/smb.conf:
  • /etc/sane.d/*.conf:
  • /etc/saslauthd.conf:
  • /etc/screenrc:
  • /etc/security/*:
  • /etc/security/*:
  • /etc/security/access.conf:
  • /etc/security/limits.conf:
  • /etc/sgml/catalog:
  • /etc/sgml/catalog:
  • /etc/sgml/sgml.conf:
  • /etc/skel/*:
  • /etc/slsh.rc:
  • /etc/smartd.conf:
  • /etc/ssh/sshd_config:
  • /etc/ssh/ssh_config:
  • /etc/stunnel/stunnel.conf:
  • /etc/subversion/config:
  • /etc/sudoers:
  • /etc/sysconfig/autofs.conf:
  • /etc/sysconfig/ifconfig.eth0 (dhcpcd):
  • /etc/sysconfig/ifconfig.eth0 (dhcpcd):
  • /etc/sysconfig/mouse:
  • /etc/sysconfig/nfs-server:
  • /etc/sysconfig/sysstat:
  • /etc/sysconfig/sysstat.ioconf:
  • /etc/sysconfig/wpa_supplicant-*.conf:
  • /etc/syslog.conf:
  • /etc/tripwire/*:
  • /etc/udev/rules.d:
  • /etc/unbound/unbound.conf:
  • /etc/unixODBC/*:
  • /etc/vimrc:
  • /etc/vimrc:
  • /etc/wgetrc:
  • /etc/wireshark.conf:
  • /etc/X11/app-defaults/XScreenSaver:
  • /etc/xdg-desktop-portal/portals.conf:
  • /etc/xdg/user-dirs.conf:
  • /etc/xdg/user-dirs.defaults:
  • /etc/xml/catalog:
  • /etc/xml/catalog:
  • /etc/xml/catalog:
  • /etc/xml/catalog:
  • /etc/xml/docbook:
  • /etc/xml/docbook-5.0:
  • /etc/zsh/zlogin:
  • /etc/zsh/zlogout:
  • /etc/zsh/zprofile:
  • /etc/zsh/zshenv:
  • /etc/zsh/zshrc:
  • /etc/lightdm/keys.conf:
  • /etc/lightdm/lightdm-gtk-greeter.conf:
  • /etc/sddm.conf:
  • /etc/lightdm/users.conf:
  • /usr/lib/firmware:
  • /usr/share/enchant/enchant.ordering:
  • /usr/share/fontconfig/conf.avail/*:
  • /usr/share/fonts:
  • /usr/share/graphviz/config:
  • /usr/share/metainfo/org.linuxfromscratch.lfs.xml :
  • /usr/share/gtk-4.0/settings.ini:
  • /usr/share/xdg-desktop-portal/portals.conf:
  • /var/lib/alsa/asound.state:
  • /var/lib/krb5kdc/kdc.conf:
  • /etc/geoclue/conf.d/90-lfs-google.conf:

  • Informação Geral:
  • acpid:
  • alsa:
  • apache:
  • at:
  • autofs:
  • avahi:
  • bind:
  • bluetooth:
  • bridge-utils:
  • cups:
  • dbus:
  • dhcpcd (conjunto sequencial de comandos de serviço):
  • dovecot:
  • exim:
  • fcron:
  • gdm:
  • git:
  • gpm:
  • iptables:
  • krb5:
  • lightdm:
  • mariadb:
  • netfs:
  • netfs:
  • NetworkManager:
  • nfs-client:
  • nfs-server:
  • ntp:
  • php:
  • postfix:
  • postgresql:
  • power-profiles-daemon:
  • proftpd:
  • aleatório:
  • rpcbind:
  • samba:
  • saslauthd:
  • sddm:
  • sendmail:
  • slapd:
  • smartd:
  • sshd:
  • stunnel:
  • svn:
  • sysmond:
  • sysstat:
  • unbound:
  • winbind:
  • wpa:
  • zenmap:

  • Descrição do ALSA:
  • Configurando o Xorg:
  • hwdata:
  • Image::Magick:
  • Introdução ao Frameworks do KDE:
  • kirigami-addons:
  • Arquivos de arquivamento de biblioteca (.la):
  • bibliotecas: estáticas ou compartilhadas:
  • LXQt-post-install:
  • Pré Instalação do LXQt:
  • Arquivos SGML DTD:
  • Arquivos SGML DTD:
  • arquivos de entidade SGML:
  • Arquivos SGML MOD:
  • Arquivos SGML MOD:
  • Ajustando Fontconfig:
  • /usr/share/consolefonts:
  • links vulnerabilidade:
  • Arquivos DTD de XML:
  • Arquivos DTD de XML:
  • arquivos de entidade XML:
  • Arquivos de entidade de XML:
  • Arquivos MOD de XML:
  • Arquivos de Esquema de XML:
  • Regras Schematron de XML:
  • Folhas de Estilo XSL:
  • Folhas de Estilo XSL (Namespaced):